跳到主要内容

模型定制

也称为"如何使用自定义模型构建应用程序”;

概述

以下是关于如何使用自定义模型构建应用程序的快速指南。我们的目标是帮助开发人员构建LLM从原型到部署的产品操作。

人工智能是一种工具,构建利用人工智能的应用程序,使其对最终用户更有用、更实用。

在LLM之前,人工智能应用程序是围绕个性化、精度和预测构建的。传统的人工智能应用程序旨在预测你的下一个选择,并根据你之前的行为和“像你这样的客户”向你推荐。

相比之下,LLM应用程序是围绕人类AI协作构建的。作为开发人员和最终用户,您在产品的定制方面拥有更多的代理权。你可以创造出以前不存在的东西。

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

关键术语

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

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

模型行为 可以定义为LLM在特定环境或应用边界中的预期、适当和可接受的方式。模型行为包括目标和价值观。

目标 确定模型行为是否与预期的应用程序行为一致。

价值观 表示开发人员对模型和应用程序的预期策略。这可以是一套规则、一部宪法,甚至是虚构人物的道德。

可操纵性:三种方法

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

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

A 系统提示 是一种在模型被分配用户输入数据之前为模型提供上下文、说明和指导的方法(快速指南). 通过使用系统提示,您可以引导模型更好地与您的预期产品行为保持一致——无论应用程序是对话还是任务,您都可以指定角色、个性、语气、价值观或任何其他相关信息,这些信息可能有助于您的模型更好地响应最终用户的输入。

系统提示可能包括:

  • 明确和具体的指示和目标
  • 角色、期望的角色和语气
  • 风格指导,例如冗长的限制
  • 价值定义,如政策、规则和保障措施
  • 期望的输出格式

调整模型 是一种根据预期的应用程序行为训练模型的方法(微调指南). 两种常用的LLM调优方法:

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

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

根据预期的应用程序行为调整模型的指南

步骤1:定义预期的应用程序行为

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

为了获得灵感,请参考使用MIUI模型构建的开发人员:

  • 会话助手等独立产品;
  • 在预先存在的产品中完成特定任务,如“总结”或“翻译”,或启用新功能,如使用API访问“知识检索”的函数调用。

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

第二步:根据你的价值观制定你的政策

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

对于内容审核,请从以下内容中寻找灵感 Llama警卫的类别,如隐私、仇恨和专业建议 ML公共分类 比如CSAM和仇恨。

步骤3:创建应用程序评估

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

有两种方法可以评估LLM:

  • 自动评估
    • 基于指标,类似于公共基准评估,例如,您可以从预先注释的数据中得出指标。
    • LLM基础,您可以利用不同的LLM(如MIUI Large)来评估或判断自定义模型的输出。
  • 基于人类的撤离,您可以使用内容注释器来评估或判断自定义模型的输出,并收集人类注释。

有关如何进行法学硕士评估的更多信息,请查看我们的 评估指南.

步骤4:使用MIUI Large支持的MVP测试您的应用程序行为假设

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

对于某些应用程序,系统提示是对齐模型行为的最佳解决方案。如果您需要帮助在两者之间做出选择,请查看我们的 微调指南.

如果系统提示可以创建自定义模型,请跳到步骤6。

步骤5:调整模型对齐

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

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

在准备Tuning Dataset以获得更好的模型性能时需要考虑的领域:

  • 数据理解,在数据集中包含每个应用程序用例的所有内容策略(如问答、总结和推理)。
  • 数据种类,确保数据集在查询长度、结构、语气、主题、复杂程度和人口统计方面的多样性。
  • 重复数据删除,删除重复项以防止您的调优数据被记住。
  • 避免数据污染,将评估数据与调优数据集隔离。
  • 道德数据实践,提供明确的标签指南和注释器多样性,以最大限度地减少模型误差和偏差。

对于内容审核,从开源数据集开始,比如 安全调整的LlaMA.

在MIUI,我们支持两种方式来定制我们的模型:

  1. OSS与 FT代码库
  2. Via La 前板

前往前板内的FT API,上传并验证您的培训数据。运行作业,完成后,您可以通过自己的模型API端点访问自定义模型。

步骤6:使用Evals测试自定义模型

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

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

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

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

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