本文档适用于 IBM Watson® Knowledge Studio 上的 IBM Cloud®。 要查看 Knowledge Studio Marketplace 上 IBM 先前版本的文档,请单击此链接。
改进机器学习模型
确定模型遇到问题的区域后,请采取措施来提高其性能。
创建模型版本
创建机器学习模型后,可以生成快照来保留当前资源的备份版本,以便在您希望在未来的迭代中复原这些资源时使用。
关于本任务
F1 分数指示模型的质量。 如果模型性能结果良好,那么在更改任何资源之前,您可能希望存储该组件的版本。 如果所做的更改导致质量变差,那么可以还原为存储的版本。 还原为较旧版本时,会对所有注释任务进行归档,因为这些任务不再有效。
一个工作空间最多可以有 10 个版本。 如果达到该限制,请在创建新版本之前,先删除旧版本或不再需要的版本。
创建新版本时,将捕获以下资源:
- 类型系统
- 语料库
- 参考标准
- 机器学习模型
- 机器学习模型评估结果
将排除以下资源:
- 注释任务,因为这些任务根据设计是时间性的,仅用于确定参考标准
- 字典,因为字典可能很大,并且各种类型的字典通过不同的方式进行管理
过程
要创建和复原机器学习模型版本,请执行以下操作:
-
以 Knowledge Studio 管理员或项目经理身份登录,然后选择工作空间。
-
选择机器学习模型 > 性能。 这将显示有关当前版本(标注为 V1.0)的性能统计信息。
-
要创建当前版本的快照,请单击机器学习模型 > 版本,然后单击生成快照。 V1.0 中的资源会冻结,新版本(标注为 1.1)将成为当前版本。 对于您创建的每个新版本,次版本号会依次递增,例如,1.0 变为 1.1,然后变为 1.2。
-
根据需要修改工作空间资源,然后重新训练并重新评估模型。
-
如果您对性能结果感到满意,并且希望在未来进行更改之前存储新版本,请创建另一个版本。 根据需要继续修改资源并重新训练模型,为要保留的每个迭代创建一个新版本。
-
如果性能结果变差,并且您希望在进行任何进一步测试之前还原为先前版本,请执行以下操作:
- 打开资产 > 字典页面,然后下载要在复原的模型中复用的任何字典。
- 单击机器学习模型 > 版本,然后单击要复原的版本的提升。 升级的版本会成为当前版本,并且版本号会更改为 2.0。 升级版本时,主版本号会递增,而次版本号会变为 0,例如,1.1 将变为 2.0。
- 打开字典页面,并上传已下载的字典。
- 如果新版本的测试需要对参考标准进行更改,请打开机器学习模型 > 注释页面。 单击注释任务选项卡,然后创建新的注释任务。
修改类型系统而不丢失人工注释
训练模型时,可能需要根据性能统计信息进行修改。 但是,通常您会希望类型系统在开始大规模注释任务之前尽可能接近最终状态。 如果在人工注释者开始工作后更改类型系统,那么他们必须重新访问自己已注释的文档。 他们必须评估类型系统更改的适用性。
关于本任务
此过程会将当前类型系统、参考标准编辑器键盘快捷键和颜色设置传播到任务中的所有文档集。
过程
要修改类型系统而不丢失人工注释者完成的工作,请执行以下操作:
-
更改类型系统。 例如,可以添加或除去实体类型或关系类型。
-
决定是否要将更改传播到现有人工注释任务。
-
打开机器学习模型 > 注释页面,然后单击注释任务选项卡。 打开要更新的每个任务,然后单击应用类型系统更新。
如果从类型系统中除去了实体类型或关系类型,那么文档中所有出现这些类型的地方都会以灰色突出显示。 机器学习模型会忽略这些无效类型。 但这些无效类型不会妨碍您提交和核准文档集。
-
向人工注释者提供有关类型系统中所更改内容的详细信息。
-
要求人工注释者更新其文档以反映出类型系统中的更改。 例如,如果添加了新的实体类型或关系类型,那么他们必须复查其文档,并相应地对文档进行注释。
注: 如果任务包含已完成的文档,那么人工注释者无法更改这些文档以评估类型系统更改,直到这些文档恢复为可编辑状态为止。 要变为可编辑状态,请要求人工注释者提交文档集,以便您可以拒绝这些文档集。
文档集管理
在正确的时间使用正确的数据集来测试和训练模型。
创建机器学习模型时,必须将添加到系统中的文档分配给以下系统级别的数据集:
-
训练集
一组文档,已通过预注释或由人工注释者进行注释,用于训练模型。 训练集的目标是教会机器学习模型什么是正确的注释,其中包括通过未注释的文本来教模型。
-
测试集
一组已注释的文档,用于测试已训练的模型。 对测试集运行测试后,请对结果执行诊断用途的详细错误分析。 周密的分析可帮助您找到当前模型中可以解决的薄弱环节。
-
盲区集
一组已注释的文档,保留并用于在执行测试和改进的多次迭代后定期测试系统。 为了防止准确性受到污染(例如,仅基于已知文档中的注释进行更改),盲区数据应该是在创建模型时参与的用户先前未查看过的数据。 报告的结果应该仅来自对盲区数据运行的测试。 在对盲区集运行测试后,请仅查看最高级别的分数,如总体提及项和关系 F1 分数。 您并不需要了解过多的性能相关详细信息,否则可能会影响您选择对模型进行的改进。
Knowledge Studio 的目标是支持大型团队协作构建模型。 因此,它假定生成模型的团队包含一组人工注释者以及构建和测试模型并对其进行改进的一个人或一组人。 由于此假定,应用程序会配置为将单个文档集内的文档按比例平均分配分组成测试集、训练集和盲区集。 但是,如果团队并未分离(例如,如果执行人工注释的人员还将详细复查模型测试结果),那么您可能需要改为将文档分配给这些集,以更明确地分隔每个集内使用的文档。
为什么需要盲区集?
由于您是使用测试数据来详细评估准确性,因此在一段时间后您会逐渐了解文档及其特性。 例如,您开始了解文档中的哪些实体类型、关系类型和文本类型被机器学习模型理解得最好,而哪些则理解得没那么好。 这些信息非常重要,因为这可帮助您专注于进行正确的改进,例如优化类型系统,补充训练数据来填补空白或添加字典。 由于测试文档习惯以迭代方式来改进模型,因此会开始间接影响模型训练。 所以文档的“盲区”集才如此重要。
如何控制分配给集的文档?
创建机器学习模型时,必须指定要分配给训练,测试或盲集的集合中文档的比率。 Knowledge Studio 会自动将比率 70/23/7 应用于用于构建机器学习模型的文档集。 您可以更改这些值。
- 要将由人工注释的集添加到训练集,请指定 100/0/0 分解比率。
- 使用集进行训练后,可以将其用于测试。 要将某个文档集仅用于测试,请指定 0/100/0 分解比率。
- 仅将从未用于训练或测试的文档集添加到盲区集。 为此,请为文档集指定 0/0/100 分解比率。
计划在经过若干次迭代后停止使用盲区集。 盲区集使用得越多,该集的“盲区”就越少。 此规律同样适用于测试数据。 您可以不废弃这些集,而改为将其迁移用于新用途。 请遵循以下迁移流程:
blind --> test --> train
随着这些集的迁移,您可以将新的未查看文档集添加为盲区数据,也可以添加为测试数据。 但是,请确保保留用于评估各模型版本准确性的方法。 建立基线的一种方法是对新文档集运行模型的较早版本。 此运行的结果将作为比较基础,与基于相同集运行更新的模型的结果进行比较。