使用 Claude API 提取数据集和尝试制作类 Claude 模型

试图蒸馏出一个 8B 的 Claude 3 ??

2024/05/04 14:21:27


前言

终于把 AWS 的免费 32V 账号弄好啦,在 ap-south-1 (孟买) 区可以用 Claude-3-Sonnet。

3db6c201c559666b3504fbe0ab94fdc4.png

申请 Claude 的访问权限方法:

  1. 进入页面
  2. 点击申请访问权限,填写一个现实存在的公司(要与 IP 地址相符)。
  3. 通常短则几秒,长则半分钟就能通过审核。

目前大概总结出几点:

  1. 不能用 Opus,可能是算力要求太大。
  2. 如果出现 400 Method Not Allowed,就是账号在这个区域被限制了。换一个区重新申请访问权限就可以。

数据集

然后是尝试着从 WildChat, lmsys 这样的真实对话数据集里提取出 prompt 构建数据集。

策略是:

  1. 筛选掉所有被审查,被抹去个人信息的回复。
  2. 在此基础上随机抽样出 5k 样本。
  3. 去掉不用的字段,例如 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 错误。

解决方法:

  1. 打开扩充词表(但不能用 QLoRa)
  2. 或使用 Llama3 Prompt template。缺点是 Special token 未经初始化,可能会影响效果……

in solitude where we are least alone