你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

训练对话语言理解模型

完成言语标记后,可以开始训练模型。 训练是模型从标记的语句进行学习的过程。

若要训练模型,请启动训练作业。 只有已成功完成的作业才能创建模型。 训练作业在七天后过期,则无法再检索作业详细信息。 如果训练作业成功完成并创建了模型,则作业不会过期。 一次只能有一个训练作业处于运行状态,并且无法在同一微调任务中启动其他作业。

Note

使用“快速部署”选项时,对话语言理解 (CLU) 会自动创建即时训练作业,以使用所选 LLM 部署设置 CLU 意向路由器。

处理简单项目时训练时间可能是几秒钟,而在达到语句数最大限制时,训练时间最长可以达到几个小时。

成功完成训练后,将自动触发模型评估。 评估过程首先使用经过训练的模型对测试集中的语句运行预测,并将预测结果与提供的标签进行比较(这确立了真实性的基线)。

Prerequisites

平衡训练数据

在训练数据方面,请尝试保持架构均衡。 包括大量的一个意向和少量的另一个意向会导致模型带有对特定意向的偏向性。

要处理此场景,可能需要对训练集进行下采样。 或者可能需要补充训练集样本。 要进行下采样,可以:

  • 随机删除特定百分比的训练数据。
  • 分析数据集并删除过多的重复条目,这是一种更系统的方式。

若要补充训练集,请在 Language Studio 中的“数据标签”选项卡上选择“建议语句”。 对话语言理解会向 Azure OpenAI 发送调用,以生成类似的语句。

显示 Language Studio 中的语句建议的屏幕截图。

还应在训练集中查找意外的模式。 例如,检查特定意向的训练集是否全为小写,或以特定短语开头。 在这种情况下,训练的模型可能会学习训练集中的这些意外偏差,而不是变得通用化。

建议在训练集中引入大小写和标点符号多样性。 如果您的模型需要处理变化,请确保有一个也反映这种多样性的训练集。 例如,添加一些采用正确大小写的语句,再添加一些全部小写的语句。

数据拆分

开始训练过程之前,项目中标记的语句会划分为训练集和测试集。 其中的每一个都有不同的功能:

  • 训练集用于训练模型,模型从中学习带有标记的话语。
  • 测试集是一个盲集,它不是在训练期间引入到模型的,而是在评估期间引入的。

成功训练模型后,可将其用于根据测试集中的语句进行预测。 这些预测用于计算评估指标。 建议确保所有意向和实体在训练集和测试集中均有充分体现。

对话语言理解支持两种数据拆分方法:

  • 根据所选的百分比,自动从训练数据拆分测试集:系统会根据所选的百分比在训练集和测试集之间拆分标记的数据。 建议的拆分百分比为 80% 用于训练,20% 用于测试。

Note

如果选择自动从训练数据中拆分测试集选项,则只会根据提供的百分比分割已分配给训练集的数据。

  • 使用手动拆分训练和测试数据:此方法使用户能够定义语句应分别属于哪个集合。 只有在 标记期间向测试集添加了话语时,才启用此步骤。

训练模式

对话语言理解(CLU)支持两种模式来训练模型

  • 标准训练 使用快速机器学习算法快速训练模型。 此培训级别目前仅适用于 英语 ,并且对于不使用英语(美国)或英语(UK)的任何项目,都禁用该培训级别作为其主要语言。 此训练选项是免费的。 标准培训允许您添加话语并免费快速测试。 显示的评估分数可以引导你在项目中的适当位置进行更改以及添加更多语句。 虽然标准训练最适合快速测试和更新模型,但使用高级训练时,应看到更好的模型质量。 虽然标准训练最适合快速测试和更新模型,但使用高级训练时,应看到更好的模型质量。 经过几次迭代并做出增量改进后,可以考虑使用高级训练方法来训练模型的另一个版本。

  • 高级训练使用最新的机器学习技术基于数据来自定义模型。 此训练级别预计将为模型显示更好的性能分数,并使你能够使用 CLU 的多 语种功能 。 高级训练的定价不同。 有关详细信息,请参阅定价信息

请参考评估分数做出决定。 有时,与使用标准训练模式相比,在高级训练中特定示例可能会被错误预测。 如果使用高级训练得到的总体评估结果更好,我们建议您将该模型作为最终模型。 如果情况并非如此,并且你不希望使用任何多语言功能,则可以继续使用使用标准模式训练的模型。

Note

在不同的训练模式下,你可以预期在意图置信度评分的行为上看到差异,因为每种算法的评分校准方式不同。

训练模型

  1. 导航到 Foundry

  2. 如果尚未登录,门户会提示你使用 Azure 凭据执行此作。

  3. 登录后,可以在 Foundry 中创建或访问现有项目。

  4. 如果尚未开始执行此任务的项目,请选择它。

  5. 从左侧导航面板中选择“微调”选项。

    Foundry 中微调选择器的屏幕截图。

  6. 选择 “AI 服务微调 ”选项卡,然后选择 “+ 微调 ”按钮。

    Foundry 中微调按钮的屏幕截图。

  7. “创建服务微调 ”窗口中,选择“ 对话语言理解 ”选项卡,然后选择“ 下一步”。

    Foundry 中对话语言理解选项卡的屏幕截图。

  8. “创建 CLU 微调任务”窗口中,从下拉菜单中选择“连接”服务,然后完成“名称和语言”字段。 如果使用免费的 标准培训 模式,请选择语言字段的 英语

  9. 选择“创建”按钮。 创建操作可能需要几分钟才能完成。

    Note

    • 标准训练 可实现更快的训练时间和更快的迭代;但是,它仅适用于英语。
    • 高级培训 包括较长的培训持续时间,并且支持英语、其他语言和多语言项目。
    • 有关详细信息, 请参阅训练模式
  10. 从紧邻左侧的导航面板中,选择训练模型

    Foundry 中训练模型选择的屏幕截图。

  11. 接下来,从主窗口中选择“ + 训练模型 ”按钮。

  12. “训练新模型 ”窗口中,选择以下项之一:

    • 创建新的训练模型。 输入新的 模型名称
    • 覆盖现有模型名称。 替换针对新数据训练的现有模型。
  13. 选择 当前训练版本。 训练版本是确定模型如何从数据中学习的算法。 用于训练模型的机器学习会定期更新。 建议使用最新版本进行训练,因为它进行了彻底的测试,并从数据中提供最平衡的模型预测。

    在 Foundry 中选择模式选项的屏幕截图。

  14. 选择“下一步”。

  15. 选择训练新模型窗口中提供的数据拆分方法之一:

    • 自动从训练数据拆分测试集 ,使系统能够根据指定的百分比在训练集和测试集之间拆分话语。

    • 使用手动拆分训练和测试数据 ,系统可以使用分配和标记的训练和测试集创建自定义模型。 * 只有在标记话语时已将话语添加到测试集时,此选项才可用。

      Foundry 中的数据拆分选项的屏幕截图。

  16. 依次选择“下一步”、“创建”。

  17. 从列表中选择训练作业 ID。 此时会显示一个面板,详细说明了此作业的训练进度、作业状态和其他详细信息。

Note

  • 只有成功完成的训练作业才能生成模型。
  • 训练可能需要几分钟到几小时的时间,具体取决于言语计数。
  • 一次只能运行一个训练作业。 在当前运行的作业完成之前,您不能在同一项目中启动其他训练作业。

取消训练作业

处理完自定义模型后,可以删除部署和模型。 如果需要,还可以删除上传到服务的训练和验证文件:

  • 若要删除自定义模型,请在左侧导航窗格中选择 “我的资产 ”→ “模型 + 终结点”。 选择要从“ 模型部署 ”选项卡中删除的自定义模型,然后选择“ 删除”。

  • 若要删除为训练上传的训练和验证文件,请在左侧导航窗格中选择 “数据 + 索引”。 选择要删除的文件,然后选择“ 删除”。

    Foundry 中“我的资产”部分的屏幕截图。

后续步骤

使用 模型评估指标查看模型的性能。