본문으로 건너뛰기

Thimble 도구 호출 모델의 실패와 개선 기록

48M parameter tool-calling 모델에서 architecture보다 Tokenizer, loss, corrective data가 성능을 움직였다

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

작성자는 함수 호출만 생성하는 48M parameter 규모의 tool-calling 모델에서 Tokenizer와 grammar를 공동 설계하고, 오류 유형에 맞춘 loss weighting과 corrective data를 적용했습니다. JSON 구조 문자와 숫자를 singleton token으로 만들자 name-sequence accuracy가 80.4에서 91.5로 올랐고, LR decay 단계의 annealing은 같은 corpus에서 28.4를 33.1로 개선했습니다. 193개 실패 사례 중 특정 오류 66개를 겨냥한 합성 데이터는 고정된 Learning Rate에서 3.3포인트를 더했지만, span copying과 pointer heads 같은 architecture 변경은 성능을 크게 떨어뜨렸습니다. 실험 결과 이 규모에서는 모델 구조보다 data와 objective 변경이 성능을 좌우했습니다.

실용적 조언

  • Tool-calling 모델을 개선할 때는 JSON 구조를 처리하는 Tokenizer와 grammar를 따로 최적화하기보다 singleton token 설계와 문법 제약을 함께 맞추는 편이 효과적입니다. 구조 문자와 숫자를 단일 토큰으로 두면 constrained decoding 과정의 token healing을 줄일 수 있습니다. 원문 실험에서는 corpus 확장과 결합해 name-sequence accuracy가 80.4에서 91.5로 상승했습니다.
  • 오류 유형별 빈도에 따라 loss weight를 배분하고, 학습 후반의 LR decay 구간에 corrective data를 주입하는 방식을 우선 비교할 수 있습니다. 원문은 구조 1배부터 stop-decision 6배까지 차등 가중치를 적용했고, annealing은 처음부터 학습한 28.4보다 높은 33.1을 기록했습니다. 실패 사례를 bucket으로 묶어 특정 오류에 맞는 데이터를 합성하는 방법도 동일한 Learning Rate에서 3.3포인트 개선을 냈습니다.

섹션별 상세

01
작성자는 JSON 함수 스키마와 요청을 읽고 grammar-constrained decoder를 통해 호출만 출력하는 48M parameter 규모의 tool-calling 모델을 며칠간 구축했습니다. 구조 문자와 숫자를 singleton token으로 만드는 방식으로 Tokenizer와 grammar를 공동 설계해 constrained decoding에서 token healing이 필요하지 않게 했고, corpus 확장과 함께 name-sequence accuracy를 80.4에서 91.5로 높였습니다. 모델 구조보다 데이터와 학습 목표를 먼저 측정하는 실험 설계가 핵심이었습니다.
02
손실을 모든 토큰에 균등하게 적용하지 않고 결정 유형별 오류 비중에 맞춰 조정했습니다. 구조에는 1배, keys에는 1.5배, names에는 2배, values에는 4배, stop-decision에는 6배의 가중치를 부여해 모델이 실제로 자주 틀리는 선택에 더 큰 학습 신호를 받게 했습니다. 이 접근은 구조적으로 강제되는 출력과 학습해야 하는 호출 의미를 같은 방식으로 취급하지 않는다는 점에 의미가 있습니다.
03
새로운 corpus로 처음부터 재학습하는 대신 LR decay 단계에 corrective data를 annealing하는 방식도 비교했습니다. 같은 corpus에서 처음부터 학습한 결과는 28.4였고 annealing 방식은 33.1을 기록했으며, 추가 데이터는 현재 모델의 오류를 보완하는 형태로 주입됐습니다. 학습 후반의 목표형 데이터 투입이 전체 재학습보다 효율적인 개선 경로로 나타났습니다.
04
실패한 193개 사례를 오류 유형별 bucket으로 분류하고 각 bucket에 맞춘 데이터를 합성했습니다. 그중 66개는 언급되지 않은 optional argument를 하나 추가한 오류였고, 이 유형만 겨냥한 데이터 생성으로 Learning Rate를 고정한 채 3.3포인트의 개선을 얻었습니다. 실패 사례의 표면적인 양보다 반복되는 오류 메커니즘을 찾아 학습 데이터로 되돌리는 순환이 성능 개선에 직접 연결됐습니다.
05
통제된 실험에서 span copying은 30포인트, pointer heads를 이용한 name selection은 16포인트, grammar로 강제되는 토큰의 가중치를 낮추는 RFT 방식은 12포인트를 떨어뜨렸습니다. field-set reranking은 1.4포인트 하락했고 beam search와 best-of-N은 oracle 상한이 목표보다 낮았으며, RLOO는 시도한 모든 Learning Rate에서 발산했습니다. optional-skip 전역 prior는 catalog에 의존했고 benchmark의 numeric typing을 맞추는 방식은 학습되지 않아, 이 규모에서는 새로운 architecture보다 data와 objective 변경이 일관되게 효과적이었다는 결론으로 이어졌습니다.

용어 해설

문법 제약 디코딩(Grammar-Constrained Decoding)
모델이 JSON 문법과 함수 호출 스키마를 벗어난 토큰을 생성하지 못하도록 디코딩 단계에서 허용 가능한 출력만 남기는 방식입니다. 이 글에서는 구조 문자가 단일 토큰이 되도록 Tokenizer와 문법을 함께 설계해 token healing을 제거했습니다.
토크나이저(Tokenizer)
텍스트를 모델이 처리할 수 있는 토큰 단위로 나누는 구성 요소입니다. JSON 구조 문자와 숫자를 각각 하나의 토큰으로 유지하면 문법 제약 디코딩이 토큰 일부를 되돌리거나 보정할 필요가 없어지고, 호출 이름 시퀀스 정확도 개선에 기여합니다.
손실 가중치 조정(loss weighting)
모든 예측 오류를 같은 비중으로 학습하지 않고 결정 유형별 중요도에 따라 손실값을 다르게 반영하는 방법입니다. 이 실험에서는 구조 1배, key 1.5배, name 2배, value 4배, 종료 결정 6배를 적용해 실제 오류 분포에 맞췄습니다.
학습률 감쇠(LR decay)
학습이 진행되면서 Learning Rate를 낮추는 단계입니다. 이 글에서는 전체 모델을 처음부터 다시 학습하지 않고 LR decay 구간에 corrective data를 점진적으로 주입했으며, 같은 corpus에서 처음부터 학습한 경우의 28.4보다 높은 33.1을 얻었습니다.
오류 기반 데이터 합성(error-driven synthesis)
실패 사례를 오류 유형별로 분류한 뒤 각 유형을 겨냥한 학습 데이터를 새로 만드는 방법입니다. 193개 실패 중 66개가 언급되지 않은 optional argument를 추가한 유형으로 분류됐고, 해당 유형에 맞춘 데이터를 생성해 동일한 Learning Rate에서 3.3포인트를 높였습니다.
RLOO
여러 샘플의 상대적 보상을 비교해 정책을 업데이트하는 강화학습 계열 방법입니다. 이 실험에서는 annealed checkpoint에 RLOO를 적용했지만 시도한 모든 Learning Rate에서 발산해 목표 성능에 도달하지 못했습니다.

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 25.수집 2026. 08. 25.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.