
Andrej Karpathy
@karpathy · 2天前现在 nanochat 拥有了初步的身份认知,可以简单介绍自己和它的功能。比如,它知道自己是价值 800 美元的 nanochat d32,由我构建,并且不太擅长英语以外的语言,以及原因等等。
这种定制化完全通过合成数据生成来实现,并且我已经上传了一个新的示例脚本来演示这个过程。这可能有点难以理解,但默认情况下,大型语言模型不像动物一样,天生不具备个性和对自身能力的理解。它们不知道自己是什么,能做什么,不能做什么,知道什么,或者不知道什么。所有这些都必须显式地添加进去。具体做法是,让更强大的 LLM 模型生成合成对话(你只需要用文字告诉它对话应该是什么样子的),然后将这些对话混合到中期训练和/或 SFT 阶段。其中,最重要的挑战是确保生成的数据具有足够的熵和多样性。如果做得不好,即使设置了很高的温度,LLM 也会生成 1000 个非常相似的对话。我的脚本展示了一个添加多样性的简单示例 —— 比如,通过创建起始消息或主题列表,显式地从中抽样,并将它们作为少量样本示例添加到 prompt 中,以获取“灵感”。
我希望能玩得开心,所以 nanochat 现在叫我国王 Andrej Karpathy(哈哈),这只是为了说明大家可以完全自由地为 LLM 注入各种身份、知识或风格。希望这个方法对大家有所帮助,并能激发一些有趣的创意!

Andrej Karpathy
@karpathy · 2天前@r_chirra 搞定了!已部署上线。具体做法是,我做了一轮合成数据生成,收集了 1000 个多轮对话(参考了 nanochat 项目的 readme 等信息),然后将其混合到中期训练和 SFT 中。真有趣!
7
4
302
34.5万
149
225
3,428
1,352
472