LLM EVAL

전문화된 Tool-Use DPO Recipe의 고정 예산 비교

Ilho Ahn

동일한 DPO 예산에서도 전문화된 tool-use recipe는 서로 다른 평가 축을 변화시켰으며, filtering·source mixing·longer training은 이 trade-off를 일관되게 해소하지 못했다.

전문화된 tool-use DPO recipe는 training source와 가까운 평가 축을 개선하면서도 다른 tool-use 능력에서는 같은 개선으로 이어지지 않을 수 있다. 고정 예산에서 semantic filtering, source mixing, longer training이 이러한 specialization을 줄이는지도 함께 점검했다.

Qwen3-8B를 기반으로 한 tool-use SFT checkpoint를 공통 reference로 두고 [1], 동일한 pair 예산과 optimizer step 예산에서 DPO negative recipe를 비교했다. 평가 질문은 function-call structure와 call-decision에 초점을 둔 recipe의 개선이 다른 평가 축에서도 유지되는지, 그리고 semantic filtering, 50:50 mixed-source recipe, longer training이 관찰된 trade-off를 줄이는지다. 이 글은 해당 조건을 점검한 실험 보고이며, 일반적인 recipe 순위나 새로운 reporting framework를 제안하지 않는다.

Tool-use DPO는 tool-call 출력이나 tool-use 판단에서 chosen/rejected pair를 구성하고, DPO로 policy를 업데이트하는 preference optimization 설정이다 [2]. 새로운 objective를 제안하지 않고, 고정 예산에서 specialized recipe, pair filtering, source mixing, checkpoint 조건에 따라 나타난 변화를 비교한다.

주요 평가 리소스

요약

  • 동일한 3000-pair, 375-step 예산에서 function-call structure 중심 recipe는 BFCL core에서, call-decision 중심 recipe는 When2Call에서 더 높은 점수를 기록했다. 어느 recipe도 두 평가 축에서 모두 우세하지 않았다.
  • Semantic filtering의 변화는 작거나 불확실했다. 50:50 mixed-source condition도 각 specialist의 intended metric에 미치지 못했고, IFEval accuracy는 두 specialist보다 낮았다.
  • 두 quality-gated recipe 모두 final checkpoint의 IFEval accuracy가 50-step checkpoint보다 낮았지만, 불확실성을 고려하면 이를 일반적인 early-stopping 기준으로 해석할 수는 없다.
  • 평가 축의 방향은 추가 training seed 2개와 재구성한 pair pool에서도 유지됐다. 다만 prompt overlap과 단일 run인 mixed-source condition 때문에 robustness 해석은 제한적이다.

공개 산출물

GitHub 저장소

논문

결과 표와 Figure 1은 정리된 평가 출력과 집계 표가 포함된 공개 artifact 저장소에서 확인할 수 있다 [3].

평가 설계

공통 Qwen3-8B tool-use SFT checkpoint를 기준으로 두 specialized DPO recipe와 각각의 동일 예산 ungated control을 비교한다. 모든 condition은 3000 preference pair, 375 optimizer step, beta 0.1, learning rate 5e-6, LoRA rank 16, effective batch size 8을 사용한다. Pair 수와 optimizer step 수는 같지만 source distribution과 loss가 적용되는 token 수까지 동일하지는 않다.

평가는 세 축으로 나뉜다. BFCL core는 주로 함수 선택과 인자 정확성에 초점을 둔 function-call structure axis다 [4]. When2Call은 tool call, follow-up question, unable-to-answer 같은 call-decision behavior를 평가한다 [5]. Public slice에는 direct-answer gold row가 없지만 frozen macro-F1 evaluator는 direct answer를 zero-support class로 포함하므로, 이 metric을 네 행동 유형이 균형 있게 포함된 macro F1으로 해석하지 않는다. IFEval prompt-strict accuracy는 주요 intended metric이 아니라, DPO가 instruction following을 얼마나 변화시키는지 측정하는 guardrail metric이다 [6].

결과

결과는 BFCL과 When2Call의 evaluation-axis 차이, semantic quality gate의 downstream 효과, mixed-source 비교, checkpoint별 guardrail trade-off, seed 및 pair-pool robustness 범위로 구분한다.

평가 축 비교

Table 1은 탐색적으로 선택한 50-step checkpoint에서 function-call structure 중심 recipe와 call-decision 중심 recipe를 비교한다. 이 checkpoint는 분석 뒤 regression이 더 작은 보고 시점으로 선택했으며, 사전 등록된 선택이나 보편적인 early-stopping 규칙은 아니다. 값은 function-call structure 중심 recipe - call-decision 중심 recipe로 계산한 percentage-point delta다. BFCL 행이 양수이면 function-call structure 중심 recipe의 점수가 더 높고, When2Call 행이 음수이면 call-decision 중심 recipe의 점수가 더 높다. 표에서 W2C는 When2Call의 약자다.

Condition Metric Delta (pp) 95% CI low 95% CI high
Semantic quality gate 적용 BFCL core +3.33 +1.53 +5.67
W2C behavior acc. -6.67 -10.75 -3.02
W2C macro F1 -5.31 -8.85 -2.34
Semantic quality gate 미적용 control BFCL core +2.67 +1.02 +4.86
W2C macro F1 -4.21 -7.48 -1.23
Table 1. 선택한 50-step checkpoint에서 function-call structure 중심 recipe - call-decision 중심 recipe로 계산한 evaluation-axis delta와 grouped bootstrap CI다.

이 방향만으로 negative type의 인과 효과를 말할 수는 없다. Call-decision training source는 When2Call evaluation과 같은 task family에 속하며, recipe 사이의 prompt와 chosen response도 일치시키지 않았다. 따라서 측정된 gap은 데이터 소스 자체의 우위가 아니라 반복해서 관찰된 recipe profile로 해석한다.

Semantic quality gate의 역할

Semantic filtering은 rejected output이 chosen output보다 실제로 나쁜지, schema-valid인지, 동등한 대안이 아닌지를 확인하는 pair-quality gate로 사용했다. 그러나 동일한 recipe에서 semantic quality gate 적용 condition과 미적용 control을 비교하면, Table 2의 downstream performance delta는 작거나 불확실하다.

Recipe Intended metric Delta (pp) 95% CI
Function-call structure BFCL core +0.33 [0.00, +1.08]
Call decision W2C macro F1 +0.55 [-0.83, +1.81]
Table 2. 동일 예산에서 quality-gated condition - ungated control로 계산한 downstream metric delta다.

Table 2는 filtering 제거의 근거가 아니다. Tool-use negative에는 optional/default/no-op 차이, 무해한 normalization, 허용 가능한 대체 tool, chosen/reference가 의심스러운 사례가 쉽게 섞인다. Filtering을 performance gain으로 보고하려면 별도 근거가 필요하며, quality control과 downstream 변화는 분리해 보고한다.

Mixed-source recipe

50:50 mixed-source recipe는 두 specialized source를 결합하면 두 intended-axis gain을 함께 유지할 수 있는지 확인한다. 각 source에서 quality-gated pair 1500개를 사용해 총 3000 pair와 375 optimizer step으로 예산을 맞췄다.

50-step checkpoint에서 mixed-source recipe의 BFCL core는 0.700으로 function-call structure 중심 recipe의 0.713보다 낮았다. When2Call macro F1은 0.513으로 call-decision 중심 recipe의 0.530보다 낮았다. IFEval prompt-strict accuracy도 0.521로 두 specialized recipe의 0.573, 0.583보다 낮았다. Mixed condition은 SFT baseline보다 두 intended axis를 모두 개선했지만, 각 specialist의 intended metric에 미치지 못했고 guardrail regression도 더 컸다. 이 예산에서 단순한 source mixing은 trade-off를 해소하지 못했다. 이 condition은 추가 seed나 reconstructed-pool replicate가 없는 단일 run이다.

Checkpoint와 guardrail trade-off

Figure 1은 intended-axis gain과 IFEval prompt-strict regression을 함께 표시하고, Table 3은 이에 대응하는 absolute score를 제시한다. 동일한 recipe에서도 50-step checkpoint에서 final checkpoint로 이동하면 intended metric과 guardrail metric이 모두 달라진다.

IFEval prompt-strict delta와 BFCL core 또는 When2Call macro F1 delta를 비교한 두 패널 산점도. Function-call structure 중심 recipe와 call-decision 중심 recipe에서 semantic quality gate 적용 여부에 따른 지점을 50-step checkpoint부터 final checkpoint까지 연결한다.
Figure 1. Shared SFT baseline 대비 intended-metric gain과 IFEval prompt-strict delta를 함께 표시했다. 선 종류는 두 recipe를, marker 형태는 semantic quality gate 적용 condition과 미적용 control을 구분하며, 화살표는 50-step checkpoint에서 final checkpoint로 향한다. 축은 원 보고서와 동일한 percentage-point delta를 사용한다.

50-step에서 final checkpoint로 이동할 때 function-call structure recipe의 BFCL gain은 2.00 pp, IFEval accuracy는 5.21 pp 감소했다(95% CI [0.00, 10.42]). Call-decision recipe의 When2Call macro F1은 0.18 pp, IFEval accuracy는 2.08 pp 감소했다(95% CI [-2.08, 6.25]). 두 IFEval interval 모두 0에 닿거나 포함했다.

Condition Checkpoint BFCL core W2C macro F1 IFEval prompt-strict
SFT baseline Selected 0.667 0.481 0.635
Function-call structure 50 steps 0.713 0.477 0.573
Final 0.693 0.479 0.521
Call decision 50 steps 0.680 0.530 0.583
Final 0.660 0.528 0.562
50:50 mixed source 50 steps 0.700 0.513 0.521
Table 3. SFT baseline과 quality-gated DPO condition의 absolute score다. 값은 높을수록 좋은 비율이며, IFEval prompt-strict accuracy는 guardrail axis다.

Early checkpoint의 일반적 우위는 이 결과로 뒷받침되지 않는다. Final checkpoint를 자동으로 보고하면 intended-axis gain과 guardrail regression 사이의 trade-off가 가려질 수 있다. 이 설정에서는 checkpoint 선택도 실험 결과의 일부다.

Robustness와 coverage 범위

Check Observed result Scope
Training seeds 3개 seed에서 같은 방향이 유지됐다.
Gap 범위 (pp): BFCL 3.00–4.00; W2C accuracy 5.00–6.67; W2C macro F1 4.26–5.31.
고정 pair pool에 한정.
재구성한 pair pool Pair-id와 content-hash overlap은 없었고, prompt-id overlap은 401/3000, 1337/3000이었다.
재구성 pool gap (pp): BFCL 3.33; W2C accuracy 6.33; W2C macro F1 5.04.
재구성 1회; prompt는 독립적이지 않음.
When2Call coverage Labeled row 27,952개; direct-answer gold row 0개. 포함된 decision slice 3종에 한정.
Table 4. Robustness 검사와 각 결과가 지지하는 범위.

해석

Tool-use DPO는 모든 평가 축을 일관되게 개선하지 않았다. Function-call structure 중심 recipe는 function-call correctness에서, call-decision 중심 recipe는 평가에 포함된 call-decision slice에서 더 큰 변화를 보였다. Semantic quality gate는 일반적인 downstream gain을 지지하지 않았고, 50:50 mixed-source recipe도 두 specialist의 intended metric과 더 나은 guardrail 결과를 동시에 달성하지 못했다. Longer training은 function-call recipe의 intended gain을 줄이고 IFEval regression을 키웠으며, call-decision recipe에서는 같은 방향의 point estimate가 더 큰 불확실성과 함께 관찰됐다.

이 결과는 새로운 reporting framework를 입증하지 않는다. 다만 단일 metric이나 final checkpoint만으로는 recipe specialization, guardrail regression, sampling 범위가 가려질 수 있음을 보여준다. Recipe–Checkpoint Profile은 여기서 새로운 기여가 아니라 reporting implication으로 사용한다. 고정 예산, recipe, checkpoint, intended·guardrail metric, seed, pair-sampling 범위, overlap 결과를 함께 명시하는 방식이다.

한계

DPO training pair는 recipe별 source distribution과 prompt를 서로 일치시키지 않았다. Call-decision 중심 recipe에서는 When2Call 계열의 data source와 evaluation family가 분리되지 않는다. 따라서 evaluation-axis pattern은 negative failure type 자체의 인과 효과나 어느 데이터 소스의 quality가 더 높은지를 보여 주는 결과가 아니라 고정 예산 recipe 비교다.

고정 예산 조건에도 한계가 있다. Pair 수, optimizer step, DPO recipe, reference checkpoint는 고정했지만 token 수와 source distribution은 동일하지 않았다. 모든 DPO 결과는 하나의 Qwen3-8B SFT reference, 하나의 QLoRA DPO recipe, 하나의 pair/step 예산에서 나왔다 [7] [8]. Mixed-source condition도 자체 seed 또는 reconstructed-pool replicate가 없는 단일 run이다.

IFEval slice는 guardrail diagnostic으로 해석해야 한다. Bootstrap interval은 평가 표본의 불확실성을 다루지만, training stochasticity, data sampling, benchmark construction에서 오는 모든 불확실성을 포함하지는 않는다.

References

  1. Yang, An et al. Qwen3 Technical Report. arXiv:2505.09388, 2025. arXiv; Qwen Team. Qwen3-8B. Hugging Face model repository. Model card
  2. Rafailov, Rafael et al. Direct Preference Optimization: Your Language Model is Secretly a Reward Model. NeurIPS, 2023. arXiv
  3. Ahn, Ilho. Reporting Tool-Use DPO Under Fixed Budgets: Recipe–Checkpoint Profiles and Guardrail Trade-offs. Artifact release, June 5, 2026. Pinned artifact snapshot; Current paper PDF
  4. Patil, Shishir G. et al. The Berkeley Function Calling Leaderboard (BFCL): From Tool Use to Agentic Evaluation of Large Language Models. ICML, 2025. PMLR; Project page
  5. Ross, Hayley, Mahabaleshwarkar, Ameya Sunil, and Suhara, Yoshi. When2Call: When (not) to Call Tools. NAACL, 2025. DOI: 10.18653/v1/2025.naacl-long.174; Dataset card
  6. Zhou, Jeffrey et al. Instruction-Following Evaluation for Large Language Models. arXiv:2311.07911, 2023. arXiv
  7. Hu, Edward J. et al. LoRA: Low-Rank Adaptation of Large Language Models. ICLR, 2022. arXiv
  8. Dettmers, Tim et al. QLoRA: Efficient Finetuning of Quantized LLMs. NeurIPS, 2023. arXiv

Citation

Text citation:

Ilho Ahn, "전문화된 Tool-Use DPO Recipe의 고정 예산 비교", Mini Research, June 27, 2026.

BibTeX:

@article{ahn2026toolusedporeportingprofile,
  author = {Ilho Ahn},
  title = {전문화된 Tool-Use DPO Recipe의 고정 예산 비교},
  journal = {Mini Research},
  year = {2026},
  month = jun,
  url = {https://muted-color.github.io/research/2026/06/27/tool-use-dpo-fixed-budget-reporting-profile/ko/}
}