使用 SFT 训练您的第一个 LLM
本教程将引导您完成向导的每一步,使用监督微调(SFT)训练语言模型。SFT 是教模型遵循指令的最常用方法。
开始之前
确保您有:
已安装 AITraining(pip install aitraining)
至少 8GB RAM(推荐 16GB)
GPU 有帮助但不是必需的(Apple Silicon 效果很好!)
步骤 0:启动向导
您将看到欢迎横幅和说明。
步骤 1:选择训练器类型
📋 Step 0: Choose Trainer Type
Available trainer types:
1. Large Language Models (LLM) - text generation, chat, instruction following
2. Text Classification - categorize text into labels
3. Token Classification - NER, POS tagging
...
Select trainer type [1-10, default: 1]:
输入 1 并按 Enter 选择 LLM 训练。
步骤 2:选择训练方法
📋 Step 1: Choose Training Type
Available trainers:
1. sft - Supervised Fine-Tuning (most common)
2. dpo - Direct Preference Optimization
3. orpo - Odds Ratio Preference Optimization
4. ppo - Proximal Policy Optimization (RL)
5. reward - Reward model training
6. distillation - Knowledge distillation
7. default - Generic training (same as SFT)
Select trainer [1-7, default: 1]:
输入 1 并按 Enter 选择 SFT。
default 和 sft 是相同的 - 它们使用相同的训练代码。default
只是未指定训练器时的后备选项。
这些是什么意思?
训练器 何时使用 SFT / default 教模型遵循指令。您有良好响应的示例。从这里开始! DPO 您有同一提示的好与坏响应配对 ORPO 类似 DPO 但使用更少数据 PPO 高级:使用奖励模型对响应评分 Reward 训练奖励模型以对输出评分(与 PPO 一起使用) Distillation 将知识从较大的教师模型转移到较小的学生模型
步骤 3:项目名称
📋 Step 2: Basic Configuration
Project name [my-llm-project]:
输入项目名称,如 my-first-chatbot 或按 Enter 接受默认值。
如果存在同名文件夹,向导会提供创建版本化名称(例如 my-project-v2)。
步骤 4:模型选择
这是最重要的步骤。向导显示来自 HuggingFace 的热门模型:
📋 Step 3: Model Selection
Popular models (trending):
Sort: [T]rending [D]ownloads [L]ikes [R]ecent
Filter size: [A]ll [S]mall(<3B) [M]edium(3-10B) [L]arge(>10B) (current: all)
1. google/gemma-3-270m (270M)
2. google/gemma-2-2b (2B)
3. meta-llama/Llama-3.2-1B (1B)
4. meta-llama/Llama-3.2-3B (3B)
5. mistralai/Mistral-7B-v0.3 (7B)
...
Model (number, HF ID, or command):
选择正确的模型大小
使用 /filter 然后 S 选择小模型。 推荐:google/gemma-3-270m 或 meta-llama/Llama-3.2-1B 这些在 Apple Silicon 上训练需要 15-30 分钟。
我有游戏 PC(RTX 3060/3070,8-12GB VRAM)
使用 /filter 然后 S 或 M。 推荐:google/gemma-2-2b 或 meta-llama/Llama-3.2-3B 稍后为更大模型启用量化。
我有工作站(RTX 3090/4090,24GB+ VRAM)
任何高达 10B 的模型都很好。 推荐:meta-llama/Llama-3.2-8B 或 mistralai/Mistral-7B-v0.3
大胆使用! 推荐:meta-llama/Llama-3.1-70B 带量化
基础模型 vs 指令调优模型
选择模型时,您会看到两种类型:
模型名称 类型 何时使用 google/gemma-2-2bBase(预训练) 通用目的,学习您的特定风格 google/gemma-2-2b-itInstruction-tuned(IT) 已遵循指令,进一步微调 meta-llama/Llama-3.2-1BBase 为您的用例提供干净的基础 meta-llama/Llama-3.2-1B-InstructInstruction-tuned 已有帮助,进行优化
经验法则 :如果想要完全控制,使用基础模型。如果想要先发优势,使用指令调优模型(-it、-Instruct)。
选择您的模型
选项 A :输入数字从列表中选择:
Model (number, HF ID, or command): 1
✓ Model: google/gemma-3-270m
选项 B :直接输入 HuggingFace ID:
Model (number, HF ID, or command): google/gemma-2-2b
✓ Model: google/gemma-2-2b
选项 C :搜索特定模型:
Model (number, HF ID, or command): /search llama
步骤 5:数据集配置
📋 Step 4: Dataset Configuration
Dataset options:
• Local folder with CSV/JSON/Parquet files (e.g., ./data/my_dataset)
• HuggingFace dataset ID (e.g., tatsu-lab/alpaca)
• Choose from popular datasets below
Popular datasets (trending):
1. tatsu-lab/alpaca — Instruction following dataset (52k)
2. OpenAssistant/oasst1 — Conversation dataset
3. HuggingFaceH4/ultrachat_200k — Multi-turn conversations
...
理解数据集大小
关键 :将数据集大小与模型大小匹配!
小模型(< 1B 参数) :最多使用 1,000 - 10,000 个示例
中等模型(1-7B 参数) :10,000 - 100,000 个示例
大模型(7B+ 参数) :50,000+ 个示例
为什么?小模型在大数据集上会过拟合。270M 模型在 52k 个 Alpaca 示例上训练会记忆,而不是泛化。
数据集选择选项
使用预构建数据集 (最简单):
Dataset (number, HF ID, or command): 1
✓ Dataset: tatsu-lab/alpaca
🔍 Validating dataset...
✓ Dataset loaded. Columns found: instruction, input, output
使用您自己的数据 :
Dataset (number, HF ID, or command): ./my_data
使用 HuggingFace 数据集 :
Dataset (number, HF ID, or command): username/my-dataset
数据集格式分析
向导自动分析您的数据集:
🔄 Dataset Format Analysis:
Loading dataset sample from HuggingFace: tatsu-lab/alpaca
✓ Detected dataset format: alpaca
• Your dataset is in alpaca format
• This can be converted to the standard messages format for better compatibility
Do you want to analyze and convert your dataset to the model's chat format? (y/N):
输入 y 启用自动转换。这确保您的数据与模型的聊天模板正确配合。
训练/验证分割
Training split name [train]:
按 Enter 使用默认的 train 分割。
Validation split name (optional) [none]:
如果您的数据集有验证分割(validation、test),在此输入。否则,按 Enter 跳过。
最大样本数(测试)
Maximum samples (optional, for testing/debugging):
对于您的第一次训练 :输入 100 或 500
进行快速测试运行。一旦工作正常,移除限制并在完整数据集上训练。
步骤 6:高级配置(可选)
📋 Step 5: Advanced Configuration (Optional)
Would you like to configure advanced parameters?
• Training hyperparameters (learning rate, batch size, etc.)
• PEFT/LoRA settings
• Model quantization
• And more...
Configure advanced parameters? [y/N]:
对于您的第一次训练,按 Enter 跳过此步骤并使用智能默认值。
何时配置高级选项
情况 更改什么 训练太慢 启用 LoRA(peft=True)以减少内存 内存不足 减少 batch_size 或启用量化 模型不学习 调整 lr(学习率) 想要跟踪训练 启用 W&B 日志记录
步骤 7:审查并开始
📋 Configuration Summary
Basic Configuration:
• trainer: sft
• project_name: my-first-chatbot
Dataset:
• data_path: tatsu-lab/alpaca
• train_split: train
• auto_convert_dataset: ✓
Model & Training:
• model: google/gemma-3-270m
Logging:
• log: wandb ✓
• wandb_visualizer: ✓ (LEET panel will open automatically)
✓ Configuration is valid!
🚀 Start training with this configuration? [Y/n]:
按 Enter 开始训练!
接下来会发生什么
模型下载(仅首次)
数据集加载和转换
训练开始并显示进度更新
W&B LEET 面板显示实时指标(如果启用)
训练好的模型保存到项目文件夹
Loading model google/gemma-3-270m...
Processing data...
Training started...
Epoch 1/1: loss=2.45, accuracy=0.52
Step 100/500: loss=1.89
Step 200/500: loss=1.42
...
Model saved to ./my-first-chatbot
测试您的模型
训练完成后:
打开 http://localhost:7860/inference 并从 ./my-first-chatbot 加载您的模型进行测试!
常见问题
使用较小的模型(按大小过滤)
在高级选项中启用 LoRA
减少批次大小
启用量化(int4)
检查数据集格式 - 尝试更高的学习率 - 确保数据具有正确的列
在高级选项中启用混合精度(bf16)
首先使用较小的数据集
启用 LoRA
下一步