Chat Loaders: Fine-tune a ChatModel in your Voice

聊天加载器:以你的风格微调聊天模型

阅读需时 3 分钟

摘要

我们正在添加一种新的集成类型 ChatLoaders,以更轻松地根据您独特的写作风格微调模型。这些实用程序有助于将来自热门消息平台的数据转换为聊天消息,这些消息与微调格式兼容,例如 OpenAI 支持的格式。

感谢 Greg KamradtMisbah Syed 在这方面的思想领导力。

重要链接

背景

周二,OpenAI 宣布 改进了微调支持,将该服务扩展到更大的聊天模型,如 GPT-3.5-turbo。这使任何人都可以为自己的用例定制这些更大、更强大的模型。他们还预告了今年晚些时候将支持 GPT-4 的微调。

虽然微调通常 建议 用于教授 LLM 大量新知识或用于事实回忆;但它 *是* 风格迁移的良好方法。

我们有很多社区成员询问让 ChatGPT “以您自己的声音” 回复的最佳方法 - 微调是实现这一目标的绝佳方法!

Twitter 上像 Greg Kamdrat 这样的优秀人士也看好这个用例

在您的通信上进行微调可能对各种应用都很有用,例如以您品牌的口吻回复客户、生成更了解您团队独特术语的内容、可靠地用目标语言聊天,或者仅仅是为了好玩!

为什么这比直接指令更好?风格和基调可能难以描述!我们大多数人的写作方式不像 ChatGPT,而且有时很难让 LLM 以特定的声音(尤其是在较长的对话中)持续回复。

为什么这比少量示例更好?仅用几个简洁的片段来捕捉您的声音可能具有挑战性!微调让您可以提供更多示例供模型学习,而无需在每次想要查询模型时都看到它们。

聊天加载器

在 LangChain,我们希望尽可能方便您利用这种改进的微调支持。为了简化模型对您声音的适应,我们正在添加一种新的集成类型:ChatLoaders

这些实用程序获取从热门消息平台导出的数据,并将其转换为 LangChain 消息对象,然后您可以轻松地将其转换为平台无关的消息格式,例如 OpenAI、Llama 2 等。此训练数据可以直接用于微调模型。

到目前为止,我们已经为以下热门消息平台添加了加载器

  • Facebook Messenger
  • Slack
  • Telegram
  • WhatsApp

我们还添加了关于如何为 Discord 和 Twitter(使用 Apify)执行此操作的指南,并计划在不久的将来集成更多的聊天加载器。如果您有想要支持的喜欢的消息平台,我们很乐意帮助您完成 PR!

为了帮助您入门,我们在 LangChain 文档中添加了一个  端到端示例笔记本,展示了如何在 Facebook 消息示例集上微调 gpt-3.5-turbo(ChatGPT 背后的模型)。

请确保您的对话的所有参与者都支持在继续之前就使用聊天数据训练模型的决定。

一旦您拥有微调后的模型,您就可以在 LangChain 的 ChatOpenAI 类中直接使用模型名称。

from langchain.chat_models import ChatOpenAI

llm = ChatOpenAI(model="ft:gpt-3.5-turbo-0613:{openaiOrg}::{modelId}")
llm.predict("What classes are you taking this year?")

然后您可以将其插入任何其他 LangChain 组件!

端到端示例

我们还创建了一个基于 Elon Musk 推文的微调模型的端到端示例。这使用 Apify 加载数据。请注意,它少于 100 个示例,因此结果可能不是最好的。

我们在 GitHub 仓库 此处 开源了这个示例。我们还在 Streamlit 应用程序上托管了它,以便您可以轻松地试用 此处

网络研讨会

关于这个主题还有很多要讨论的内容。哪些类型的消息最适合微调?还有哪些其他数据来源?您需要多少个点?

下周,我们将与 Greg Kamradt 在 网络研讨会 中讨论这些内容以及更多内容。快来加入吧!

结论

我们很高兴看到微调解锁的所有创新应用。 我们已经实现了一些 ChatLoaders,但我们需要您的帮助,以使创建您自己的个性化模型更加容易。 帮助我们创建更多 ChatLoaders!