跳至主要内容

模型定制

或者被称为“如何使用自定义模型构建应用程序”

概述

以下是关于如何使用自定义模型构建应用程序的快速指南。我们的目标是帮助开发者为大型语言模型构建产品运营,使其从原型走向部署。

AI 是一种工具,构建能够利用 AI 的应用程序使其对最终用户更加有用和实用。

在大型语言模型出现之前,AI 应用程序围绕个性化、精确性和预测性构建。传统的 AI 应用程序根据您之前的行为和“与您相似的客户”来预测您的下一个选择并向您推荐。

相比之下,大型语言模型应用程序围绕人机协作构建。作为开发者和最终用户,您在产品定制方面拥有更多自主权。您可以创造以前不存在的事物。

使用自定义大型语言模型构建的应用程序需要迭代开发周期,依靠持续的最终用户反馈和严格的评估来确保您的自定义模型行为与预期应用程序行为保持一致。

关键术语

在开始之前,让我们定义关键术语

应用程序行为可以定义为用户交互。它考虑了可用性、性能、安全性和适应性。应用程序行为包括目标和价值观。

模型行为可以定义为大型语言模型在特定上下文或应用程序边界内期望、适当和可接受的行为方式。模型行为包括目标和价值观。

目标确定模型行为是否符合预期的应用程序行为。

价值观表示开发者为模型和应用程序设定的预期政策。这可以是一系列规则、一部宪法,甚至是一个虚构角色的道德准则。

可控性:三种方法

有几种技术(具有不同程度的工程复杂性)可用于在您的应用程序上下文中引导模型行为。我们建议利用以下三种方法来实现这一点

  1. 系统提示
  2. 微调模型
  3. 部署审核层用于输入/输出处理

系统提示是一种在模型处理用户输入数据之前向模型提供上下文、指令和指导的方法(提示指南)。通过使用系统提示,您可以引导模型更好地符合您预期的产品行为——无论应用程序是对话还是任务,您可以指定一个角色、个性、语气、价值观或任何其他可能有助于您的模型更好地响应最终用户输入的相关信息。

系统提示可以包括

  • 清晰具体的指令和目标
  • 角色、期望的人设和语气
  • 风格指导,例如详细程度限制
  • 价值观定义,例如政策、规则和安全措施
  • 期望的输出格式

微调模型是一种根据您预期的应用程序行为来训练模型的方法(微调指南)。两种流行的大型语言模型微调方法

  1. 应用微调,您利用专门针对您的应用程序期望行为的示例数据集。
  2. 安全微调,您利用一个数据集,该数据集指定了可能导致不安全行为的示例输入,以及在这种情况下所需的安全输出。

部署内容审核分类器是创建模型在应用程序中行为护栏的第三种方法。如果您要将应用程序部署给最终用户,这被认为是额外的安全措施。

将模型微调到预期应用程序行为的指南

第一步:定义您预期的应用程序行为

第一步是定义目标,即您希望用户如何与您的 LLM 产品交互。

要获得灵感,请参考使用 Mistral 模型构建应用程序的开发者

  • 独立的产品,例如对话助手;
  • 在现有产品中完成特定任务,例如“总结”或“翻译”,或者通过 API 访问实现新功能,例如用于“知识检索”的函数调用。

在此处了解其他人如何使用自定义模型构建产品:开发者示例

第二步:根据您的价值观定义您的政策

当您在面向最终用户的应用程序中部署 LLM 时,您需要确定模型需要遵守哪些价值观才能满足您的内容审核指南和用户期望。

对于内容审核,可以参考 Llama Guard 的类别(如隐私、仇恨和专业建议)和 ML Commons Taxonomy 的类别(如儿童性虐待材料和仇恨)。

第三步:创建您的应用程序评估

您的评估目标是让您在部署之前更好地了解您的自定义模型行为是否符合您的应用程序行为。确定如何评估您的自定义模型将有助于确定微调中要包含的训练数据类型。

评估 LLM 有两种方法

  • 自动化评估
    • 基于指标的评估,类似于公开基准评估,例如您可以从预先标注的数据中得出指标。
    • 基于 LLM 的评估,您利用像 Mistral Large 这样的不同 LLM 来评估或判断您的自定义模型的输出。
  • 基于人工的评估,您聘请内容标注员来评估或判断您的自定义模型的输出并收集人工标注。

有关如何进行 LLM 评估的更多信息,请查看我们的评估指南

第四步:使用由 Mistral Large 支持的 MVP 测试您的应用程序行为假设

一旦您了解了自定义 LLM 的意图以及您希望模型的行为轮廓,就可以开始使用 Mistral Large 测试您的应用程序假设,并收集交互数据,以便更好地了解最终用户可能如何与您的 LLM 交互。例如,许多开发者通过创建具有有限访问权限(私有 Beta)的演示或 MVP 来开始他们的流程。

对于某些应用程序,系统提示是实现模型行为一致的最佳解决方案。如果您在两者之间难以抉择,请参阅我们的微调指南

如果系统提示适用于创建自定义模型,请跳至第六步。

第五步:微调以实现模型对齐

现在您已经对应用程序行为(包括价值观和目标)有了概念,并打算采用自定义模型,您可以开始用更小的自定义模型替换 Mistral Large 的过程。

请参阅我们的指南,了解如何准备您的微调数据集

准备微调数据集以提高模型性能时需要考虑的方面

  • 数据理解,在数据集中包含每个应用程序用例(如问答、摘要和推理)的所有内容政策。
  • 数据多样性,确保数据集在查询长度、结构、语气、主题、复杂程度和人口统计因素方面具有多样性。
  • 去重,移除重复项以防止微调数据被记忆。
  • 避免数据污染,将评估数据与微调数据集隔离。
  • 道德数据实践,提供清晰的标注指南和标注人员多样性,以最大程度地减少模型错误和偏差。

对于内容审核,可以从开源数据集(如 Safety-Tuned LlaMAs)开始。

在 Mistral,我们支持两种自定义模型的方法

  1. 使用 FT Codebase 的开源方法
  2. 通过 la Plateforme

前往 la Plateforme 中的 FT API,上传并验证您的训练数据。运行任务,完成后,您可以通过自己的模型 API 端点访问您的自定义模型。

第六步:使用您的评估测试您的自定义模型

现在您拥有了自定义模型 API 端点,您可以运行第四步中的应用程序评估。根据您的应用程序,请记住在评估集中包含安全评估

  • 开发评估,在训练和微调期间进行持续评估,以将模型性能与发布标准进行比较,并评估缓解策略的影响。这些评估使用对抗性查询或外部学术基准。
  • 保证评估,由外部团队在关键里程碑设置治理和审查评估。这些标准化评估使用严格管理的数据集,并为缓解工作提供高级见解。它们测试安全政策和危险能力,例如生物危害、说服和网络安全。
  • 红队测试需要专家团队使用非结构化方法进行对抗性测试,以发现潜在弱点并改进风险缓解和评估方法。
  • 外部评估,包括由独立外部领域专家进行的评估,以识别模型局限性并进行压力测试。

根据模型性能,您可以选择使用新的训练数据重新训练模型以支持更好的模型性能,或者通过将 Mistral Large API 切换为您的自定义模型端点来将其部署到您的应用程序中。

第七步:部署后,根据实际应用程序数据持续监控和更新您的自定义模型、评估和测试

恭喜!您已将自定义模型部署到您的应用程序中。