목록으로
Qwen/Qwen3-235B-A22B · Hugging Face
Service2025.05.18

Qwen/Qwen3-235B-A22B · Hugging Face

요약

Qwen3-235B-A22B는 복잡한 추론을 위한 'thinking mode'와 효율적인 일반 대화를 위한 'non-thinking mode' 간의 원활한 전환을 독자적으로 지원하는 최신 MoE 기반 대규모 언어 모델입니다.
이 모델은 수학, 코드 생성, 상식적 추론에서 향상된 성능을 보이며, 탁월한 Agent 기능과 100개 이상의 언어 및 방언을 지원하여 다양한 애플리케이션에서 강력한 활용성을 제공합니다.
️ 총 235B 파라미터와 22B 활성화 파라미터를 가지며, 기본적으로 32,768 토큰, YaRN을 통해 최대 131,072 토큰의 컨텍스트 길이를 지원하며 최적의 성능을 위해 특정 샘플링 파라미터 사용을 권장합니다.

상세 내용

Qwen3-235B-A22B는 Qwen 시리즈의 최신 세대 대규모 언어 모델로, dense 모델과 MoE(Mixture-of-Experts) 모델을 아우르는 포괄적인 스위트를 제공합니다. 이 모델은 추론(reasoning), 지시 따르기(instruction-following), 에이전트 능력(agent capabilities), 다국어 지원 분야에서 획기적인 발전을 이루었습니다.

주요 특징:
* 사고 모드 전환 (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 파라미터를 통해 사고 모드를 제어하는 것입니다.

  • enablethinking=Trueenable_thinking=True (기본 설정):
  • * 모델은 복잡한 문제 해결을 위해 내부적으로 추론 과정을 거칩니다.
    * 모델 출력은 <think>...</think><think>...</think> 블록 내에 추론 내용을 포함하고, 그 뒤에 최종 응답이 오는 형식입니다.
    * 예시: thinkingcontent=tokenizer.decode(outputids[:index],skipspecialtokens=True).strip("\n")thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n")와 같이 토큰 id 151668 (즉, </think></think>)을 기준으로 thinking_contentcontent를 파싱할 수 있습니다.
    * 권장 샘플링 파라미터: Temperature=0.6Temperature=0.6, TopP=0.95TopP=0.95, TopK=20TopK=20, MinP=0MinP=0. 성능 저하 및 반복을 피하기 위해 greedy decoding은 사용하지 않아야 합니다.

  • enablethinking=Falseenable_thinking=False:
  • * 모델의 사고 행동을 엄격하게 비활성화하여, 이전 Qwen2.5-Instruct 모델과 유사하게 작동합니다.
    * 이 모드에서는 <think>...</think><think>...</think> 블록이 생성되지 않으며, 효율성 향상에 중점을 둡니다.
    * 권장 샘플링 파라미터: Temperature=0.7Temperature=0.7, TopP=0.8TopP=0.8, TopK=20TopK=20, MinP=0MinP=0.

  • 고급 사용법: 사용자 입력 통한 전환 (Advanced Usage: Switching via User Input):
  • * enablethinking=Trueenable_thinking=True인 경우, 사용자 프롬프트나 시스템 메시지에 /think 또는 /no_think 태그를 추가하여 턴마다 모델의 사고 모드를 동적으로 제어할 수 있습니다. 모델은 다중 턴 대화에서 가장 최근의 지시를 따릅니다.
    * API 호환성을 위해, enablethinking=Trueenable_thinking=True일 때는 /think 또는 /no_think 사용 여부와 관계없이 항상 <think>...</think><think>...</think> 블록이 출력되지만, 사고가 비활성화된 경우 블록 내 내용은 비어 있을 수 있습니다.
    * enablethinking=Falseenable_thinking=False일 때는 소프트 스위치는 유효하지 않으며, 어떤 /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 (enablethinking=Trueenable_thinking=True): Temperature=0.6Temperature=0.6, TopP=0.95TopP=0.95, TopK=20TopK=20, MinP=0MinP=0. greedy decoding은 피해야 합니다.
    * Non-thinking mode (enablethinking=Falseenable_thinking=False): Temperature=0.7Temperature=0.7, TopP=0.8TopP=0.8, TopK=20TopK=20, MinP=0MinP=0.
    * 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)은 포함하지 않는 것이 좋습니다.

    원본 보기
    Hugging Face
    Shared by Anonymous