使用 Claude API 提取数据集和尝试制作类 Claude 模型
试图蒸馏出一个 8B 的 Claude 3 ??
前言
终于把 AWS 的免费 32V 账号弄好啦,在 ap-south-1 (孟买) 区可以用 Claude-3-Sonnet。
申请 Claude 的访问权限方法:
- 进入页面
- 点击申请访问权限,填写一个现实存在的公司(要与 IP 地址相符)。
- 通常短则几秒,长则半分钟就能通过审核。
目前大概总结出几点:
- 不能用 Opus,可能是算力要求太大。
- 如果出现 400 Method Not Allowed,就是账号在这个区域被限制了。换一个区重新申请访问权限就可以。
数据集
然后是尝试着从 WildChat, lmsys 这样的真实对话数据集里提取出 prompt 构建数据集。
策略是:
- 筛选掉所有被审查,被抹去个人信息的回复。
- 在此基础上随机抽样出 5k 样本。
- 去掉不用的字段,例如 hash 等。
源数据集是 sharegpt 格式的,将 assistant/gpt 部分全部替换成 Claude-3-Sonnet 的输出就好了。
最终经过构建+搜罗得到以下数据集:
模型 | 数据集大小 |
---|---|
Claude 3 Sonnet | 10k |
Claude 3 Opus | 10k |
皆为真实用户输入的多轮对话,因此长上下文能力可能会很强!
训练
底模选择的是 Llama-3-8B 基础版。框架依旧是 Llama Factory.
这里踩雷:Llama-3-8b 选其他 Prompt template 会导致出现设备端 assert 错误。
解决方法:
- 打开扩充词表(但不能用 QLoRa)
- 或使用 Llama3 Prompt template。缺点是 Special token 未经初始化,可能会影响效果……