피드로 돌아가기
Hugging Face BlogAI/ML
원문 읽기
Qwen-3의 Jinja 채팅 템플릿 개선으로 추론 토글, 동적 컨텍스트 관리, 도구 인자 직렬화, 기본 시스템 프롬프트 제거 구현
The 4 Things Qwen-3’s Chat Template Teaches Us
AI 요약
Context
이전 모델들(Qwen-2.5, QwQ)은 사용자가 원하지 않아도 매번 태그를 강제로 삽입했고, 장문의 도구 호출 중 초기 추론 블록을 조기에 버려 컨텍스트를 손실했으며, 도구 인자가 이미 JSON 문자열인 경우에도 중복 직렬화 위험이 있었다.
Technical Solution
- enable_thinking 플래그를 통한 선택적 추론: false 설정 시 빈 쌍을 삽입하여 모델이 단계별 사고를 생략하도록 지시
- Rolling checkpoint 시스템으로 동적 컨텍스트 관리: 메시지 리스트를 역순 순회해 마지막 사용자 턴 이후의 어시스턴트 응답에서만 완전한 블록 유지, 이전 항목은 제거
- 도구 인자 직렬화 개선: tool_call.arguments의 타입 검사 후 문자열이면 그대로 사용, 객체면 | tojson 필터 적용
- 기본 시스템 프롬프트 제거: Qwen-3과 QwQ에서 "You are Qwen..." 기본 메시지 삭제
Key Takeaway
채팅 템플릿의 세부 설계를 통해 사용자 선택성, 컨텍스트 효율성, 도구 상호작용 신뢰성을 동시에 달성할 수 있으며, 특히 멀티 스텝 도구 워크플로우에서 필요한 추론만 보존하고 불필요한 사고는 제거하는 선택적 메커니즘이 핵심이다.
실천 포인트
LLM 기반 에이전트를 구축하는 엔지니어는 채팅 템플릿에 선택적 추론 플래그를 구현하고, 역순 메시지 순회를 통해 활성 도구 호출 이후 컨텍스트만 보존하며, 도구 인자 직렬화 전에 타입을 확인하는 방식을 적용하면 토큰 낭비를 줄이면서도 다단계 워크플로우에서 필요한 추론 체인을 보호할 수 있다.