Alibaba Group이 개발한 고성능 오픈소스 모델 Qwen 2.5. 뛰어난 한국어 능력, 코딩 성능 및 도구 호출 지시 이행력을 바탕으로 소형 0.5B부터 대형 72B까지 다양한 라인업을 제공합니다.
Qwen(Tongyi Qianwen)은 Alibaba가 개발하고 오픈소스로 배포하는 최상위 고성능 LLM 시리즈입니다. Qwen 2.5 릴리스 이후, 다국어 처리 능력(특히 한국어 이해도)과 복잡한 수학적 문제 풀이, 코딩 능력이 비약적으로 상승하여 로컬 환경에서 가장 애용되는 모델 중 하나가 되었습니다.
| 모델 | 파라미터 | 컨텍스트 | 특징 |
|---|---|---|---|
| Qwen 2.5 3B | 3B | 32768 | 초경량, 모바일/온디바이스 최적 |
| Qwen 2.5 7B | 7B | 32768 | 로컬 개발 및 RAG 용 최적 밸런스 |
| Qwen 2.5 14B / 32B | 14B / 32B | 32768 | 중형 고성능, 정교한 에이전트 태스크 |
| Qwen 2.5 72B | 72B | 32768 | 상용 API급 최상의 성능 |
Qwen 2.5의 3B, 7B, 14B, 72B 등 주요 모델은 상업적 이용이 허용되는 Apache 2.0 라이선스로 배포됩니다. 단, 32B 등 일부 특정 모델 라인업의 경우 Alibaba의 Qwen Research License가 적용되므로 실무 도입 전 사용 약관 확인이 필요합니다.
ollama run qwen2.5 # 7B (기본)
ollama run qwen2.5:3b # 3B 경량
ollama run qwen2.5:72b # 72B 고성능pip install transformers torch acceleratefrom transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "Qwen/Qwen2.5-7B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [{"role": "user", "content": "Spring Cloud Gateway의 필터 체인 동작 방식을 설명해줘"}]
input_ids = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to("cuda")
outputs = model.generate(input_ids, max_new_tokens=512)
print(tokenizer.decode(outputs[0][input_ids.shape[-1]:], skip_special_tokens=True))from transformers import pipeline
pipe = pipeline(
"text-generation",
model="Qwen/Qwen2.5-7B-Instruct",
torch_dtype="auto",
device_map="auto",
)
result = pipe(
[{"role": "user", "content": "LangChain ReAct 에이전트 개념에 대해 요약해줘"}],
max_new_tokens=256,
)
print(result[0]["generated_text"][-1]["content"])pip install transformers peft trl datasetsfrom transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments
from peft import LoraConfig
from trl import SFTTrainer
from datasets import load_dataset
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct", torch_dtype="auto", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
peft_config = LoraConfig(
r=16, lora_alpha=32,
target_modules=["q_proj", "v_proj", "k_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
task_type="CAUSAL_LM",
)
training_args = TrainingArguments(
output_dir="./qwen-finetuned",
per_device_train_batch_size=2,
gradient_accumulation_steps=4,
num_train_epochs=3,
learning_rate=1e-4,
fp16=True,
)
trainer = SFTTrainer(
model=model,
args=training_args,
peft_config=peft_config,
train_dataset=load_dataset("your/dataset", split="train"),
max_seq_length=512,
)
trainer.train()