来源:互联网 更新时间:2026-08-13 14:24
以Llama 3为例。在它的tokenizer中,所有特殊标签都被赋予了特殊标记。我们只需要提供“<|begin_of_text|><|start_header_id|>user<|end_header_id|>”这样的开头,模型就会自动生成一条用户查询,然后我们再用“<|start_header_id|>assistant<|end_header_id|>”引导它生成答案。
这个循环一旦转起来,训练数据就源源不断地产生了。从最终结果来看,用这种方法训练出的模型,效果确实显著优于基础版本。
接下来,我们手把手演示一下如何使用Magpie来生成类似的数据。这里我们会用一台配置相对较低的机器来演示,以便更多人能进行尝试。
1. **环境准备**:首先,克隆Magpie的代码库,并创建一个独立的虚拟环境,确保项目之间的依赖不冲突,然后安装所需的依赖包。由于演示中使用Llama 3 8B模型,需要先去Hugging Face申请模型访问权限,并生成一个访问令牌。
2. **登录与配置**:在终端使用`huggingface-cli login`命令登录你的Hugging Face账号,并输入刚才获取的令牌。完成后,在代码文件夹中找到`demo.ipynb`文件,打开它并选择我们之前创建的虚拟环境,就可以开始运行了。
3. **开始生成**:在代码中,我们需要初始化模型、配置好生成管道,并提供一个“预查询模板”。这个模板就是触发模型自问自答的“钥匙”。一切就绪后,模型就会根据模板自动生成问题和答案。重复这个过程,就能得到大量合成数据。
这就是使用Magpie生成合成数据的全流程。利用这些数据去训练自己的模型,往往能收获意想不到的效果。
---
### Magpie 官方资源与部署指南
以下内容来自Magpie官方文档,提供更全面的技术支持。
#### Magpie 支持的模型
目前,Magpie已在 **Llama-3** 和 **Qwen2** 系列模型上进行了充分测试。如果你有其他模型需要支持,可以自行将其配置提交到代码库的 `configs/model_configs.json` 文件中。
| 模型系列 | Magpie | Magpie 脚本 | 数据集 |
| :--- | :--- | :--- | :--- |
| Llama 3 | ✅ | 8B, 70B | 8B, 70B |
| Qwen2 | ✅ | 7B, 72B | 72B |
| Phi 3 | ✅ | mini, small, medium | medium |
| Llama 2 | ⭕️ | 7B, 70B | |
| Gemma | ⭕️ | 7B | |
| Mistral | ⭕️ | 7B | |
| Yi | ⭕️ | 34B | |
* ✅: 效果极佳
* ⭕️: 部分有效。可能会得到一些有趣的结果,但可能需要配合强大的过滤器或logits处理器。
* ❌: 无效
* ❓: 未测试
#### 摘要
高质量的指令数据对于大语言模型的对齐至关重要。尽管一些模型(如Llama-3-Instruct)开放了权重,但其用于对齐的源数据仍然是私有的,这在一定程度上阻碍了AI的民主化进程。
现有的开源数据创建方法,要么受限于高昂的人力成本,要么受限于有限的、预定义的提示范围,导致其难以有效扩展,也制约了公共对齐数据集的多样性和质量。为此,我们提出了Magpie,一种用于大规模生成对齐数据的自我合成方法。
其核心发现是:向对齐后的模型(如Llama-3-Instruct)输入仅包含“左侧”模板(即用户消息预留位置之前的部分)时,该模型能够自动生成用户查询。利用这一发现,我们成功生成了400万条指令及其对应的响应。在对数据进行全面分析后,我们从中精选出30万条高质量样本。
为了验证Magpie数据的有效性,我们使用不同的公共指令数据集分别对Llama-3-8B-Base模型进行微调,并对比评估结果。数据显示,在某些任务上,仅用Magpie数据微调的模型,其表现已经能与官方的Llama-3-8B-Instruct模型相媲美。要知道,后者可是通过监督微调并额外使用1000万个数据点进行了后续的强化学习对齐。
更进一步的实验表明,仅使用Magpie数据进行监督微调,其效果甚至优于此前使用UltraFeedback等公开数据进行监督微调后再进行偏好优化的方案。这一优势在AlpacaEval、ArenaHard和WildBench等对齐基准上表现得尤为突出。
#### 安装
**构建环境**
```bash
git clone https://github.com/magpie-align/magpie.git
cd magpie
conda create -n magpie python=3.10
conda activate magpie
pip install -r requirements.txt
```
**从 Hugging Face 获取 Llama-3 模型访问权限**
你可以在这里申请Llama-3的访问权限。在终端登录,输入:
```bash
huggingface-cli login
```
然后输入以 "hf_" 开头的Hugging Face私钥。
#### 示例
**使用 Jupyter Notebook**
示例文件位于 `demo.ipynb`。
#### 批量数据生成
要使用Llama-3-8B-Instruct运行批量数据生成,可以直接运行:
```bash
cd scripts
bash magpie.sh
```
该脚本会在数据文件夹中生成指令和响应。它已在RTX 4090 24G GPU上经过测试。如果你的GPU内存较小,可以考虑开启量化。
我们还为其他模型提供了脚本,位于 `scripts` 文件夹中。请注意,对于超过8B参数量的模型,你可能需要4xA100 GPU才能运行。
#### 数据集标记和去重
**标记**
要标记上一步生成的指令-响应对(例如 `***_ins_res.json`),可以运行:
```bash
cd scripts
bash unitag.sh ***_ins_res.json all
```
该脚本会自动为生成的数据集生成质量、难度、任务类别、安全性和奖励等标签。你也可以一次性只生成一个标签。例如,只想用设备0生成安全标签,可以运行:
```bash
cd scripts
bash unitag.sh ***_ins_res.json safety 0
```
**数据合并和转换以进行微调**
你可以使用不同的生成配置生成多个数据集。官方提供了一个Jupyter notebook,用于将所有数据集合并并转换为ShareGPT格式,该格式被Axolotl完全支持,可直接用于微调。
**去重**
当你拥有一个完整的ShareGPT格式的数据集后,可以计算每条指令的最近邻距离,并去除重复项。运行以下命令即可:
```bash
cd exp
python gen_dis.py --input_file ***_sharegpt.jsonl
```
这里的 `***_sharegpt.jsonl` 是上一步得到的数据集路径。该Python脚本会自动构建FAISS索引并计算最小距离。 黄金价格不断创新高!黄金稳定币XAU、PAXG市值达11亿美元
新浪机器学习热点小时报丨2026年07月25日18时_今日实时机器学习热点速递
CC币价格预测(2026-2035):Canton币今日价格走势+长期价格预测
新浪互联网热点小时报丨2026年07月26日16时_今日实时互联网热点速递
腾讯ima怎么把微信内容一键导入知识库?
腾讯ima怎么创建共享知识库?
今日比特币暴涨分析:Metaplanet的比特币BTC投资推动股价上涨17%
蚂蚁庄园今日答案7月21日(今日已更新) 蚂蚁庄园今天正确答案是什么呢
新浪人工智能热点小时报丨2026年07月30日18时_今日实时人工智能热点速递
2026热门直线加速赛车手游推荐:高人气、爽快加速体验的精品榜单
Intel喜讯连连:18A工艺良率提升到85%、CPU将涨价15%
Windy卫星云图怎么看?云层变化识别技巧
kimi提示词专家使用方法新手指南
原神霜月三处月灵龛具体位置汇总
《幻兽帕鲁》不触发通缉捕捉传说商人方法
短剧《史上最强洪荒修为》剧情介绍
Aptos(APT)币是什么?APT代币经济学、价格预测及投资前景
9条破亿视频,新号涨粉百万,过去半年谁在制造AI爆款?
如何修复Edge浏览器无法通过微软账号进行身份验证?
为什么推特KOL都在BRC20赚钱 我一冲就亏?
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc