AutoTrain 文档
理解列映射
并获得增强的文档体验
开始使用
理解列映射
列映射是 AutoTrain 中一个关键的设置过程,它告诉系统数据集中不同列的角色。无论是表格数据集、文本分类数据还是其他类型的数据,都需要精确的列映射来确保 AutoTrain 正确处理每个数据集元素。
列映射的工作原理
AutoTrain 无法知道您数据集中的列代表什么。为了有效地训练模型,AutoTrain 需要清楚地了解数据集中每一列的功能。这通过用户界面中一个简单的映射系统来管理,以字典形式表示。这是一个典型的例子:
{"text": "text", "label": "target"}
在这个例子中,您数据集中的 `text` 列对应于 AutoTrain 用于处理的文本数据,而 `target` 列则被视为训练的标签。
不过别搞混了!AutoTrain 有办法理解您数据集中的每一列代表什么。如果您的数据已经是 AutoTrain 格式,则无需更改列映射。如果不是,您可以轻松地将数据集中的列映射到正确的 AutoTrain 格式。
在用户界面中,您会看到列映射以字典形式呈现:
{"text": "text", "label": "target"}
在这里,您数据集中的 `text` 列被映射到 AutoTrain 的 `text` 列,而您数据集中的 `target` 列被映射到 AutoTrain 的 `label` 列。
假设您正在训练一个文本分类模型,并且您的数据集有以下列:
full_text, target_sentiment
"this movie is great", positive
"this movie is bad", negative
您可以将这些列按如下方式映射到 AutoTrain 格式:
{"text": "full_text", "label": "target_sentiment"}
如果您的数据集包含 `text` 和 `label` 列,则无需更改列映射。
让我们看一下每个任务的列映射。
LLM
注意:对于所有 LLM 任务,如果文本列未格式化,即包含聊天格式(字典或 JSON)的样本,则应使用 `chat_template` 参数。更多信息请参阅 LLM 参数部分。
SFT / 通用训练器
{"text": "text"}
`text`: 数据集中包含文本数据的列。
奖励模型训练器 (Reward Trainer)
{"text": "text", "rejected_text": "rejected_text"}
`text`: 数据集中包含文本数据的列。
`rejected_text`: 数据集中包含被拒绝文本数据的列。
DPO / ORPO 训练器
{"prompt": "prompt", "text": "text", "rejected_text": "rejected_text"}
`prompt`: 数据集中包含提示数据的列。
`text`: 数据集中包含文本数据的列。
`rejected_text`: 数据集中包含被拒绝文本数据的列。
文本分类、回归及 Seq2Seq
对于文本分类和回归,列映射应如下所示:
{"text": "dataset_text_column", "label": "dataset_target_column"}
`text`: 数据集中包含文本数据的列。
`label`: 数据集中包含目标变量的列。
词元分类 (Token Classification)
{"text": "tokens", "label": "tags"}
`text`: 数据集中包含词元的列。这些词元必须是字符串列表。
`label`: 数据集中包含标签的列。这些标签必须是字符串列表。
对于词元分类,如果您使用 CSV 文件,请确保这些列是字符串化的列表。
表格分类与回归
{"id": "id", "label": ["target"]}
`id`: 数据集中包含每行唯一标识符的列。
`label`: 数据集中包含目标变量的列。这应该是一个字符串列表。
对于单个目标列,您可以传递一个只包含一个元素的列表。
对于多个目标列,例如多标签分类任务,您可以传递一个包含多个元素的列表。
图像分类
对于图像分类,列映射应如下所示:
{"image": "image_column", "label": "label_column"}
仅当您使用 Hugging Face Hub 的数据集时,图像分类才需要列映射。对于上传的数据集,请保持列映射不变。
Sentence Transformers
对于所有 Sentence Transformers 任务,需要将列映射到 `sentence1_column`、`sentence2_column`、`sentence3_column` 和 `target_column`。并非所有 Sentence Transformers 的训练器都需要映射所有这些列。
pair :
{"sentence1_column": "anchor", "sentence2_column": "positive"}
pair_class :
{"sentence1_column": "premise", "sentence2_column": "hypothesis", "target_column": "label"}
pair_score :
{"sentence1_column": "sentence1", "sentence2_column": "sentence2", "target_column": "score"}
triplet :
{"sentence1_column": "anchor", "sentence2_column": "positive", "sentence3_column": "negative"}
qa :
{"sentence1_column": "query", "sentence2_column": "answer"}
抽取式问答
对于抽取式问答,列映射应如下所示:
{"text": "context", "question": "question", "answer": "answers"}
其中 `answer` 是一个包含 `text` 和 `answer_start` 键的字典。
确保精确映射
为确保您的模型正确训练:
验证列名:仔细检查映射字典中使用的名称是否与您数据集中的名称完全一致。
格式适当:尤其是在词元分类中,确保您的数据格式符合预期(例如,字符串列表)。
为新数据集更新映射:每个新数据集可能需要根据其结构和当前任务进行独特的映射。
通过遵循这些指南并使用提供的示例作为模板,您可以有效地指示 AutoTrain 如何解释和处理您的数据以完成各种机器学习任务。这个过程对于在模型训练中取得最佳结果至关重要。
< > 在 GitHub 上更新