Qwen/Qwen3-235B-A22B · Hugging Face
요약
상세 내용
주요 특징:
* 사고 모드 전환 (Seamless Switching between Thinking and Non-Thinking Modes): Qwen3는 복잡한 논리적 추론, 수학, 코딩을 위한 'thinking mode'와 효율적인 일반 목적 대화를 위한 'non-thinking mode' 사이를 하나의 모델 내에서 원활하게 전환할 수 있는 독특한 기능을 지원하여 다양한 시나리오에서 최적의 성능을 보장합니다.
* 향상된 추론 능력 (Enhanced Reasoning Capabilities): 수학, 코드 생성, 상식적 논리 추론에서 이전 QwQ (thinking mode) 및 Qwen2.5 instruct 모델 (non-thinking mode)을 능가하는 상당한 개선을 보입니다.
* 인간 선호도 정렬 (Superior Human Preference Alignment): 창의적 글쓰기, 역할극, 다중 턴 대화, 지시 따르기에서 뛰어난 성능을 발휘하여 보다 자연스럽고 몰입감 있는 대화 경험을 제공합니다.
* 에이전트 능력 (Agent Capabilities): thinking mode와 non-thinking mode 모두에서 외부 도구와의 정밀한 통합이 가능하며, 복잡한 에이전트 기반 작업에서 오픈소스 모델 중 선도적인 성능을 달성합니다.
* 다국어 지원 (Multilingual Support): 100개 이상의 언어 및 방언을 지원하며, 다국어 지시 따르기 및 번역에 강력한 능력을 갖추고 있습니다.
모델 개요 (Model Overview):
Qwen3-235B-A22B는 Causal Language Model 유형이며, Pretraining과 Post-training 단계를 거쳐 훈련되었습니다.
* 파라미터 수 (Number of Parameters): 전체 235B 중 22B의 파라미터가 활성화됩니다. 이는 MoE 아키텍처의 특징입니다.
* 레이어 수 (Number of Layers): 94개.
* 어텐션 헤드 (Attention Heads - GQA): Q(Query)에 64개, KV(Key/Value)에 4개의 헤드를 사용하는 Grouped Query Attention (GQA)을 적용했습니다. 이는 메모리 사용량을 줄이면서도 성능을 유지하는 데 기여합니다.
* 전문가 수 (Number of Experts): 128개.
* 활성화된 전문가 수 (Number of Activated Experts): 각 토큰/레이어당 8개의 전문가가 활성화됩니다.
* 컨텍스트 길이 (Context Length): 기본적으로 32,768 토큰을 지원하며, YaRN (Yet another RoPE extension) 방법을 통해 최대 131,072 토큰까지 확장 가능합니다.
핵심 방법론: 사고 모드 전환 (Switching Between Thinking and Non-Thinking Mode):
Qwen3의 핵심 기능 중 하나는 enable_thinking 파라미터를 통해 사고 모드를 제어하는 것입니다.
* 모델 출력은 블록 내에 추론 내용을 포함하고, 그 뒤에 최종 응답이 오는 형식입니다.
* 예시: 와 같이 토큰 id
151668 (즉, )을 기준으로 thinking_content와 content를 파싱할 수 있습니다.* 권장 샘플링 파라미터: , , , . 성능 저하 및 반복을 피하기 위해
greedy decoding은 사용하지 않아야 합니다.* 이 모드에서는 블록이 생성되지 않으며, 효율성 향상에 중점을 둡니다.
* 권장 샘플링 파라미터: , , , .
/think 또는 /no_think 태그를 추가하여 턴마다 모델의 사고 모드를 동적으로 제어할 수 있습니다. 모델은 다중 턴 대화에서 가장 최근의 지시를 따릅니다.* API 호환성을 위해, 일 때는
/think 또는 /no_think 사용 여부와 관계없이 항상 블록이 출력되지만, 사고가 비활성화된 경우 블록 내 내용은 비어 있을 수 있습니다.* 일 때는 소프트 스위치는 유효하지 않으며, 어떤
/think 또는 /no_think 태그도 무시됩니다.긴 텍스트 처리 (Processing Long Texts):
* Qwen3는 기본적으로 32,768 토큰의 컨텍스트 길이를 지원합니다.
* 총 길이가 이 제한을 초과하는 경우, YaRN (Yet another RoPE extension) 방법을 사용한 RoPE scaling 기법을 권장합니다. YaRN을 통해 최대 131,072 토큰까지 지원됩니다.
* YaRN은 config.json 파일에 rope_scaling 필드를 추가하거나 ("rope_scaling": {"rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 32768}), 커맨드 라인 인자로 전달하여 활성화할 수 있습니다.
* YaRN은 현재 대부분의 오픈소스 프레임워크에서 static YaRN으로 구현되어 있어 입력 길이에 관계없이 스케일링 팩터가 일정하므로, 짧은 텍스트에서는 성능에 영향을 줄 수 있습니다. 평균 컨텍스트 길이가 32,768 토큰을 초과하지 않는다면 YaRN 활성화는 권장되지 않습니다.
에이전트 활용 (Agentic Use):
* Qwen3는 강력한 도구 호출 (tool calling) 능력을 갖추고 있습니다.
* Qwen-Agent를 사용하면 tool-calling 템플릿과 파서를 내부적으로 캡슐화하여 코딩 복잡성을 크게 줄일 수 있습니다.
* MCP 설정 파일, Qwen-Agent 내장 도구, 또는 직접 통합을 통해 사용 가능한 도구를 정의할 수 있습니다.
모범 사례 (Best Practices):
* 샘플링 파라미터 (Sampling Parameters):
* Thinking mode (): , , , . greedy decoding은 피해야 합니다.
* Non-thinking mode (): , , , .
* presence_penalty 파라미터를 0에서 2 사이로 조정하여 반복을 줄일 수 있으나, 너무 높으면 언어 혼합이나 성능 저하가 발생할 수 있습니다.
* 충분한 출력 길이 (Adequate Output Length): 대부분의 쿼리에 대해 32,768 토큰의 출력 길이를 권장하며, 수학 및 프로그래밍 대회와 같은 매우 복잡한 문제에는 38,912 토큰으로 설정할 것을 제안합니다.
* 출력 형식 표준화 (Standardize Output Format): 벤치마킹 시 프롬프트를 사용하여 모델 출력을 표준화하는 것을 권장합니다. 예를 들어, 수학 문제에는 "Please reason step by step, and put your final answer within \boxed{}."를, 객관식 질문에는 "Please show your choice in the answer field with only the choice letter, e.g., "answer": "C" ."와 같은 JSON 구조를 추가할 수 있습니다.
* 히스토리에 사고 내용 포함 안 함 (No Thinking Content in History): 다중 턴 대화 시, 이전 모델의 출력에는 최종 응답 부분만 포함하고 사고 내용 (thinking content)은 포함하지 않는 것이 좋습니다.