模型选择 #

为什么模型选择重要? #

text
┌─────────────────────────────────────────────────────────────┐
│                   模型选择影响                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  基座模型决定了:                                            │
│  ├── 性能上限                                               │
│  │   └── 基座能力强,微调后效果好                           │
│  ├── 资源需求                                               │
│  │   └── 模型大小影响显存和推理成本                         │
│  ├── 微调难度                                               │
│  │   └── 不同模型微调难度不同                               │
│  └── 许可限制                                               │
│      └── 商业使用需要考虑许可证                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

主流开源模型 #

模型概览 #

模型 参数量 许可证 特点
LLaMA 2 7B-70B LLaMA 2 License Meta 开源,社区活跃
LLaMA 3 8B-70B LLaMA 3 License 最新版本,性能优秀
Qwen2 0.5B-72B Apache 2.0 阿里开源,中文友好
Mistral 7B Apache 2.0 高效架构,性能优秀
Mixtral 8x7B Apache 2.0 MoE 架构,能力强
Yi 6B-34B Apache 2.0 零一万物,中文优化
Baichuan2 7B-13B Apache 2.0 百川智能,中文优化
ChatGLM3 6B Apache 2.0 智谱 AI,中文优化

LLaMA 系列 #

text
┌─────────────────────────────────────────────────────────────┐
│                    LLaMA 系列                                │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  LLaMA 2                                                    │
│  ├── 参数:7B、13B、70B                                     │
│  ├── 许可:LLaMA 2 License(可商用)                        │
│  ├── 特点:                                                 │
│  │   ├── 社区生态最完善                                     │
│  │   ├── 微调资源丰富                                       │
│  │   └── 英文能力强                                         │
│  └── 适用:通用任务、英文场景                               │
│                                                             │
│  LLaMA 3                                                    │
│  ├── 参数:8B、70B                                          │
│  ├── 许可:LLaMA 3 License                                  │
│  ├── 特点:                                                 │
│  │   ├── 性能大幅提升                                       │
│  │   ├── 上下文长度增加                                     │
│  │   └── 训练数据更丰富                                     │
│  └── 适用:追求最佳性能                                     │
│                                                             │
└─────────────────────────────────────────────────────────────┘
python
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "meta-llama/Llama-2-7b-hf"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto"
)

Qwen 系列 #

text
┌─────────────────────────────────────────────────────────────┐
│                    Qwen 系列                                 │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Qwen2                                                      │
│  ├── 参数:0.5B、1.5B、7B、72B                              │
│  ├── 许可:Apache 2.0(完全开源)                           │
│  ├── 特点:                                                 │
│  │   ├── 中文能力优秀                                       │
│  │   ├── 多语言支持                                         │
│  │   ├── 尺寸丰富,适合不同场景                             │
│  │   └── 完全开源,商用友好                                 │
│  └── 适用:中文任务、多语言场景                             │
│                                                             │
│  Qwen2.5                                                    │
│  ├── 参数:0.5B、1.5B、3B、7B、14B、32B、72B                │
│  ├── 许可:Apache 2.0                                       │
│  ├── 特点:                                                 │
│  │   ├── 性能全面提升                                       │
│  │   ├── 更长的上下文                                       │
│  │   └── 更好的指令遵循                                     │
│  └── 适用:追求中文最佳效果                                 │
│                                                             │
└─────────────────────────────────────────────────────────────┘
python
model_name = "Qwen/Qwen2-7B"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto",
    trust_remote_code=True
)

Mistral 系列 #

text
┌─────────────────────────────────────────────────────────────┐
│                   Mistral 系列                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Mistral-7B                                                 │
│  ├── 参数:7B                                               │
│  ├── 许可:Apache 2.0                                       │
│  ├── 特点:                                                 │
│  │   ├── 高效架构(Sliding Window Attention)               │
│  │   ├── 性能超越 LLaMA 2 13B                               │
│  │   └── 推理速度快                                         │
│  └── 适用:资源受限、追求效率                               │
│                                                             │
│  Mixtral-8x7B                                               │
│  ├── 参数:8×7B(MoE 架构)                                 │
│  ├── 许可:Apache 2.0                                       │
│  ├── 特点:                                                 │
│  │   ├── MoE 架构,激活参数少                               │
│  │   ├── 性能接近 70B 模型                                  │
│  │   └── 推理效率高                                         │
│  └── 适用:追求高性能、高效率                               │
│                                                             │
└─────────────────────────────────────────────────────────────┘
python
model_name = "mistralai/Mistral-7B-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto"
)

模型选择因素 #

1. 任务类型 #

text
文本生成任务:
├── 推荐:LLaMA 3、Qwen2.5、Mistral
├── 特点:生成能力强、流畅度高
└── 示例:文案生成、故事创作

文本分类任务:
├── 推荐:Qwen2、LLaMA 2、Baichuan2
├── 特点:理解能力强、分类准确
└── 示例:情感分析、主题分类

问答任务:
├── 推荐:Qwen2.5、LLaMA 3、ChatGLM3
├── 特点:知识丰富、回答准确
└── 示例:知识问答、客服系统

对话任务:
├── 推荐:Qwen2.5、LLaMA 3-Instruct、Mistral-Instruct
├── 特点:对话流畅、上下文理解
└── 示例:聊天机器人、虚拟助手

代码任务:
├── 推荐:DeepSeek-Coder、CodeLlama、Qwen2.5-Coder
├── 特点:代码理解、生成能力强
└── 示例:代码补全、代码生成

2. 语言支持 #

text
中文任务:
├── 首选:Qwen2.5、Yi、Baichuan2、ChatGLM3
├── 次选:LLaMA 3(中文能力提升)
└── 原因:训练数据中文占比高

英文任务:
├── 首选:LLaMA 3、Mistral、Mixtral
├── 次选:Qwen2.5(英文能力也不错)
└── 原因:训练数据英文占比高

多语言任务:
├── 首选:Qwen2.5、LLaMA 3
├── 特点:支持多种语言
└── 原因:多语言训练数据

3. 资源限制 #

text
显存限制:

8GB 显存:
├── Qwen2-0.5B、Qwen2-1.5B
├── QLoRA 微调 7B 模型
└── 推理:量化后的 7B 模型

16GB 显存:
├── Qwen2-7B、LLaMA 3-8B
├── QLoRA 微调 13B 模型
└── LoRA 微调 7B 模型

24GB 显存:
├── LLaMA 2-13B、Qwen2-7B
├── LoRA 微调 13B 模型
└── QLoRA 微调 70B 模型

80GB 显存:
├── LLaMA 3-70B、Qwen2-72B
├── LoRA 微调 70B 模型
└── 全量微调 7B 模型

4. 许可证考虑 #

text
完全开源(Apache 2.0):
├── Qwen 系列
├── Mistral 系列
├── Yi 系列
├── Baichuan 系列
└── 商用无限制

限制性开源:
├── LLaMA 系列(LLaMA License)
│   └── 商用需要申请
├── ChatGLM 系列
│   └── 需要遵守许可条款
└── 使用前请仔细阅读许可协议

模型评估 #

基准测试 #

text
通用能力测试:
├── MMLU(多任务语言理解)
├── HellaSwag(常识推理)
├── WinoGrande(常识推理)
├── ARC(推理能力)
└── TruthfulQA(真实性)

中文能力测试:
├── C-Eval(中文综合能力)
├── CMMLU(中文多任务)
├── GSM8K-CN(数学推理)
└── HumanEval-CN(代码能力)

代码能力测试:
├── HumanEval(代码生成)
├── MBPP(Python 编程)
└── MultiPL-E(多语言编程)

实际评估 #

python
from transformers import pipeline
import torch

def evaluate_model(model_name, test_cases):
    generator = pipeline(
        'text-generation',
        model=model_name,
        torch_dtype=torch.float16,
        device_map='auto'
    )
    
    results = []
    for case in test_cases:
        output = generator(
            case['prompt'],
            max_new_tokens=100,
            temperature=0.7
        )
        results.append({
            'prompt': case['prompt'],
            'output': output[0]['generated_text'],
            'expected': case.get('expected')
        })
    
    return results

test_cases = [
    {"prompt": "什么是机器学习?", "expected": "机器学习是人工智能的一个分支..."},
    {"prompt": "请写一首关于春天的诗。", "expected": None},
]

results = evaluate_model("Qwen/Qwen2-7B", test_cases)

模型下载 #

Hugging Face #

python
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen2-7B"

tokenizer = AutoTokenizer.from_pretrained(
    model_name,
    trust_remote_code=True
)

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    device_map="auto",
    trust_remote_code=True
)

ModelScope(国内镜像) #

python
from modelscope import snapshot_download

model_dir = snapshot_download(
    'qwen/Qwen2-7B',
    cache_dir='./models'
)

本地加载 #

python
model = AutoModelForCausalLM.from_pretrained(
    "./local-model-path",
    torch_dtype=torch.float16,
    device_map="auto"
)

模型对比 #

性能对比 #

text
┌─────────────────────────────────────────────────────────────┐
│              模型性能对比(MMLU 分数)                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  模型              参数量    MMLU    中文能力    推理速度    │
│  ─────────────────────────────────────────────────────────  │
│  LLaMA 3-8B        8B       66.7    中等       快          │
│  LLaMA 3-70B       70B      79.5    良好       慢          │
│  Qwen2-7B          7B       70.5    优秀       快          │
│  Qwen2-72B         72B      82.3    优秀       慢          │
│  Mistral-7B        7B       62.5    一般       很快        │
│  Mixtral-8x7B      47B*     70.6    良好       中等        │
│                                                             │
│  * MoE 架构,实际激活参数约 13B                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

选择建议 #

text
追求最佳性能:
├── 英文:LLaMA 3-70B
├── 中文:Qwen2-72B
└── 多语言:Qwen2-72B

资源受限:
├── 8GB 显存:Qwen2-1.5B
├── 16GB 显存:Qwen2-7B
└── 24GB 显存:LLaMA 3-8B

追求效率:
├── Mistral-7B
├── Qwen2-7B
└── LLaMA 3-8B

中文场景:
├── 首选:Qwen2 系列
├── 次选:Yi、Baichuan2
└── 通用:LLaMA 3

商业使用:
├── 首选:Qwen2、Mistral(Apache 2.0)
├── 次选:LLaMA 3(需申请)
└── 注意:检查许可证条款

下一步 #

现在你已经了解了如何选择模型,接下来学习 训练配置,掌握微调训练的核心参数!

最后更新:2026-04-05