- 发行说明
- 在开始之前
- 入门指南
- 项目
- 数据集
- ML 包
- 管道
- ML 技能
- ML 日志
- AI Center 中的 Document Understanding
- 许可
- 如何
- 基本故障排除指南
AI Center 用户指南
英语文本分类
操作系统包 > 语言分析 > 英语文本分类
这是一个通用、可重新训练的模型,适用于英语分类。此 ML 包必须重新训练,如果在未事先进行训练的情况下部署此包,部署将失败,并显示错误,指明模型未经过训练。
此模型是用于语言分类的深度学习架构。它基于 RoBERTa,是一种用于预训练自然语言处理系统的自监督方法。在服务时和训练时都可以使用 GPU。GPU 可使速度提高约 5 到 10 倍。此模型由 Facebook AI 研究院开放源代码。
包含预测类名称以及有关该类预测的关联置信度(0 到 1)的 JSON。
示例:
{
"class": "Positive",
"confidence": 0.9422031841278076
}
{
"class": "Positive",
"confidence": 0.9422031841278076
}
管道
此包支持所有三种类型的管道(完整训练、训练和评估)。
对于大多数用例,不需要指定任何参数,模型将使用高级技术来查找高性能模型。在第一次训练之后的后续训练中,模型将使用增量学习(即,在训练运行结束后将使用先前训练的版本)。
读取多个文件
默认情况下,此模型将读取提供的目录中带有 .csv 和 .json 扩展名(递归)的所有文件。
CSV 文件格式:
每个 CSV 文件预计会有任意数量的列,但模型只会使用两列。这两列由参数 input_column(如果未设置,将默认为“input”)和 target_column(如果未设置,将默认为“target”)指定。
例如,单个 CSV 文件可能如下所示:
input,target
I like this movie,positive
I hated the acting,negative
input,target
I like this movie,positive
I hated the acting,negative
在上面的示例文件中,可以触发任何类型的管道,而无需添加任何额外参数。在以下示例中,需要显式指定列:
review,sentiment
I like this movie,positive
I hated the acting,negative
review,sentiment
I like this movie,positive
I hated the acting,negative
系统会跳过任何不具有由 input_column 和 target_column 指定的列的文件。此外,可以通过设置 csv_delimiter 参数来设置用于解析文件的分隔符。例如,如果您的文件实际上是用制表符分隔的,请使用扩展名 .csv 保存该文件,并将 csv_delimiter 参数设置为** **
JSON 文件格式:
每个 json 文件可以是单个数据点,也可以是数据点列表。也就是说,每个 JSON 文件可以使用以下两种格式之一:一个 json 文件中包含单个数据点:
{
"input": "I like this movie",
"target": "positive"
}
{
"input": "I like this movie",
"target": "positive"
}
一个 json 文件中包含多个数据点:
[
{
"input": "I like this movie",
"target": "positive"
},
{
"input": "I hated the acting",
"target": "negative"
}
]
[
{
"input": "I like this movie",
"target": "positive"
},
{
"input": "I hated the acting",
"target": "negative"
}
]
对于 csv 文件,如果设置了 input_column 和 target_column 参数,格式会将“input”替换为 input_column,并将“target”替换为 target_column。
所有有效文件(符合上述格式的所有 csv 文件和 json 文件)将合并在一起。
读取单个文件
在某些情况下,使用单个文件可能会很有用(即使目录中有很多文件也如此)。在这种情况下,可以使用参数 csv_name。如果设置此设置,管道将仅读取该文件。设置此参数后,将启用另外两个附加参数:
- csv_start_index - 使用户可以指定要开始读取的行。
- csv_end_index - 使用户可以指定要结束读取的行。
例如,您可能有一个包含 2 万行的大文件,但您可能希望快速查看对一部分数据的训练运行效果如何。在这种情况下,您可以指定文件名,并将 csv_end_index 设置为远远小于 20000 的值。
- input_column:更改此值以匹配数据集输入列的名称(默认为“input”)
- target_column:更改此值以匹配数据集输入列的名称(默认为“target”)
- evaluation_metric:设置此值,以更改评估函数返回并在用户界面中显示的指标。此参数可以设置为以下值之一:“accuracy”(默认值)、“auroc”(ROC 曲线下的面积)、“precision”、“recall”、“matthews correlation”(马修斯相关系数)和“fscore”。
- csv_name:如果要指定从数据集中读取唯一的 csv 文件,请使用此变量。
- csv_start_index:用于指定要开始读取的行。与 csv_name 结合使用。
- csv_end_index:用于指定要结束读取的行。与 csv_name 结合使用。
训练函数将生成以下三个工件:
- train.csv - 用于训练模型的数据保存在此文件中,用于监管和追踪。
- validation.csv - 用于验证模型的数据。
learning-rate-finder.png
- 大多数用户都不需要担心这一点。高级用户可能会觉得这很有帮助(请参阅高级部分)。 - train-report.pdf - 包含此运行的摘要信息的报告。第一部分包含用户指定的所有参数。第二部分包含有关数据的统计信息(用于训练和验证的数据点数量以及每个文件的校验和)。最后一部分包含两个图表:
- 损失图 – 此图以时期数的函数绘制训练损失和验证损失。输出 ML 包版本将始终是验证损失最小的版本(而不是上一个时期的模型)。
- 指标图 – 此图绘制在每个时期结束时根据验证集计算的指标数量。
评估函数会生成两个工件:
- evaluation.csv - 用于评估模型的数据。
- evaluation-report.pdf - 包含此运行的摘要信息的报告。第一部分包含用户指定的所有参数。第二部分包含有关数据的统计信息(用于评估的数据点数量以及文件校验和)。第三部分包含该评估的统计信息(对于多类,指标将进行加权)。最后一部分包含混淆矩阵的图表,以及准确度、精度、召回率和支持率的按类计算及其平均值。
Paper
RoBERTa:Yinhan Liu 和 Myle Ott 等人发表的《A Robustly Optimized BERT Pretraining Approach》(一种鲁棒优化的 BERT 预训练方法)