Vicuna 是一个开源的聊天机器人,通过使用从 ShareGPT.com 使用公共 API 收集的大约 70K 用户共享对话微调 LLaMA 基础模型创建的。
在线演示
为了确保数据质量,开发团队将 HTML 转换回 markdown 并过滤掉一些不合适或低质量的样本。以及将冗长的对话分成更小的部分,以适应模型的最大上下文长度。其训练方法建立在 Stanford Alpaca 的基础上,并进行了以下改进:
- 内存优化:为了使 Vicuna 能够理解长上下文,开发团队将最大上下文长度从 Alpaca 中的 512 扩展到 2048,大大增加了 GPU 内存需求。通过利用 utilizing gradient checkpointing 和 flash attention 来解决内存压力。
- 多轮对话:调整训练损失以考虑多轮对话,并仅根据聊天机器人的输出计算微调损失。
- 通过 Spot 实例降低成本:40 倍大的数据集和 4 倍的训练序列长度对训练费用提出了相当大的挑战。Vicuna 团队使用 SkyPilot managed spot 来降低成本,方法是利用更便宜的 spot 实例以及自动恢复抢占和自动区域切换。该解决方案将 7B 模型的训练成本从 500 美元削减至 140 美元左右,将 13B 模型的训练成本从 1000 美元左右削减至 300 美元。
评论