资料摘要:personal chatgpt 14 — llama2 introduction 及 fine tune llama2(guanaco dataset)
本讲由真实视频转录与作者 notebook/代码交叉整理。原始层:🔒 带时间戳视频转录;课程总览:personal chatgpt — LLMs 实践系列。
本讲先梳理 Llama 2 的模型家族与 Hugging Face 使用方式,再展示 7B Chat 模型的中英文文本生成,最后给出用 TRL 脚本、OpenAssistant Guanaco 数据、4-bit 加载和 PEFT/LoRA 微调 7B 基座模型的命令与 optimizer step 估算。
1. 模型版本与上下文
Section titled “1. 模型版本与上下文”课程记录 Llama 2 支持 4K context,并按参数规模(7B、13B、70B)、是否 Hugging Face 格式、是否 Chat 版组合出 12 个条目。这里的“12 个版本”是课程对仓库命名组合的教学归纳,不代表所有后续发布变体。
2. Hugging Face 文本生成
Section titled “2. Hugging Face 文本生成”Notebook 使用 meta-llama/Llama-2-7b-chat-hf,通过 transformers.pipeline("text-generation")、FP16 和 device_map="auto" 加载。示例先用英文影视推荐,再用中文电影推荐,课程观察到当时模型的中文能力有限。
3. Guanaco 数据与 TRL 微调命令
Section titled “3. Guanaco 数据与 TRL 微调命令”训练数据为 timdettmers/openassistant-guanaco,Notebook 保存显示训练 split 有 9,846 行。微调命令调用当时 TRL 仓库的 sft_trainer.py,启用 4-bit、PEFT、batch size 16、梯度累积 2。
4. optimizer step 估算
Section titled “4. optimizer step 估算”Notebook 按 3 epochs、单卡、batch 16、累计 2 计算:
课程/Notebook 将其口述或取整为约 924 步。实际末尾 batch、dataloader 丢弃策略和分布式 world size 会影响精确值。
公式 / 代码
Section titled “公式 / 代码”python trl/examples/scripts/sft_trainer.py \ --model_name meta-llama/Llama-2-7b-hf \ --dataset_name timdettmers/openassistant-guanaco \ --load_in_4bit \ --use_peft \ --batch_size 16 \ --gradient_accumulation_steps 2pipeline = transformers.pipeline( "text-generation", model="meta-llama/Llama-2-7b-chat-hf", torch_dtype=torch.float16, device_map="auto",)| 时间 | 内容 |
|---|---|
| 01:03 | 4K context |
| 01:25 | 7B/13B/70B、HF/原格式、Chat/基座的版本组合 |
| 03:44 | 查看约 6.7B 参数规模 |
| 04:04 | 英文生成示例 |
| 05:57 | 中文生成示例与能力观察 |
| 08:03 | 数据规模与训练步数估算 |
| 10:48 | 4-bit 加载 |
| 13:05 | PEFT/LoRA 配置来源 |
| 16:14 | 启动训练并观察运行状态 |
- 运行标签:conditional。 Llama 2 权重需要接受许可/具备访问权限;7B FP16 或 4-bit 加载需要足够的 GPU/CPU 内存及兼容 bitsandbytes 环境。
- Notebook 的推理部分会下载并加载大模型;训练部分以 shell 命令和数据查看为主,没有在当前 Notebook 中保存完整 5 小时训练结果。
lvwerra/trl仓库路径、脚本名和 CLI 参数属于当时版本,当前版本不保证原样存在。- 本地代理地址硬编码为
127.0.0.1:7890。 - 课程口述 4090 训练约 5 小时是特定环境经验值,不应当作普遍基准。
与前后讲关系
Section titled “与前后讲关系”- 承接第 12、13 讲: 把 SFTTrainer、4-bit、LoRA、梯度累积等资源优化组合应用到 Llama 2。
- 引出第 15 讲: 从 Hugging Face 封装转向 Meta 原始 Llama 2 源码、权重与推理入口。
- 连接第 16 讲: 本讲直接使用 TRL 的 SFT 脚本,第 16 讲解释 TRL 还提供 Reward Model 与 PPOTrainer。
- 课程所说的 12 个 Llama 2 条目由哪三个二元/多元维度组合而来?
- 基座版与 Chat 版的训练目标和预期用法有什么差异?
- 9,846 条数据、3 epochs、batch 16、累计 2 时,为什么约为 924 次 optimizer update?
- 4-bit 加载和 PEFT 分别作用于哪一层资源开销?
- 为什么课程中的 5 小时训练时间不能直接迁移到其他硬件?
- 视频:llama2 introduction 及 fine tune llama2(guanaco dataset)
- 转录:🔒 personal chatgpt 14 视频转录
- 课件 / 代码:🔒 llama2_introduction.ipynb
- 视频描述中的补充资料:https://huggingface.co/blog/llama2
- 滴答清单抓取时学习状态:已完成。
- 视频正文采用自动语音识别;关键术语已用标题、notebook 与源码校正,无法确认的口语细节不扩写。
- notebook 未执行的 CUDA、权重下载、训练或外部 API 单元,不表述为已复现实验。