AutoTrain 文档

理解列映射

您正在查看 主分支 版本,需要从源代码安装. 如果您想使用常规的 pip 安装,请查看最新的稳定版本(v0.8.24)。
Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验

开始使用

理解列映射

列映射是 AutoTrain 中至关重要的设置过程,它让系统了解数据集内不同列的角色。无论是表格数据集、文本分类数据还是其他类型,精确的列映射都能确保 AutoTrain 正确处理每个数据集元素。

列映射的工作原理

AutoTrain 无法自行了解数据集内列的含义。AutoTrain 需要清楚了解每个列在数据集中的作用,才能有效地训练模型。这可以通过用户界面中的简单映射系统来管理,该系统用字典表示。以下是一个典型的示例

{"text": "text", "label": "target"}

在这个示例中,数据集中的 text 列对应于 AutoTrain 用于处理的文本数据,target 列被视为用于训练的标签。

但不要混淆!AutoTrain 有一种方式来理解数据集内每个列的含义。如果您的数据已采用 AutoTrain 格式,您无需更改列映射。否则,您可以轻松地将数据集内列映射到正确的 AutoTrain 格式。

在 UI 中,您将看到列映射作为一个字典

{"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"}

如果您的数据集包含列:textlabel,则无需更改列映射。

让我们来看看每个任务的列映射

LLM

注意:对于所有 LLM 任务,如果文本列没有格式化,即包含聊天格式的样本(字典或 json),则应使用 chat_template 参数。在 LLM 参数部分了解更多信息。

SFT / 通用训练器

{"text": "text"}

text: 数据集中包含文本数据的列。

奖励训练器

{"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: 数据集中包含目标变量的列。

词语分类

{"text": "tokens", "label": "tags"}

text: 数据集中包含词语的列。这些词语必须是字符串列表。

label: 数据集中包含标签的列。这些标签必须是字符串列表。

对于词语分类,如果使用的是 CSV,请确保列是字符串化的列表。

表格分类与回归

{"id": "id", "label": ["target"]}

id: 数据集中包含每行唯一标识符的列。

label: 数据集中包含目标变量的列。这应该是一个字符串列表。

对于单个目标列,您可以传递一个包含单个元素的列表。

对于多个目标列,例如多标签分类任务,您可以传递一个包含多个元素的列表。

DreamBooth LoRA

Dreambooth 不需要列映射。

图像分类

对于图像分类,列映射应如下所示

{"image": "image_column", "label": "label_column"}

仅当使用来自 Hugging Face Hub 的数据集时,图像分类才需要列映射。对于上传的数据集,请保持列映射不变。

句子转换器

对于所有句子转换器任务,都需要将列映射到 sentence1_columnsentence2_columnsentence3_columntarget_column 列。并非所有列都需要映射到所有句子转换器的训练器。

配对:

{"sentence1_column": "anchor", "sentence2_column": "positive"}

配对类别:

{"sentence1_column": "premise", "sentence2_column": "hypothesis", "target_column": "label"}

配对分数:

{"sentence1_column": "sentence1", "sentence2_column": "sentence2", "target_column": "score"}

三元组:

{"sentence1_column": "anchor", "sentence2_column": "positive", "sentence3_column": "negative"}

{"sentence1_column": "query", "sentence2_column": "answer"}

抽取式问答

对于抽取式问答,列映射应如下所示

{"text": "context", "question": "question", "answer": "answers"}

其中answer是包含键textanswer_start的字典。

确保映射准确

为了确保您的模型正确训练

  • 验证列名:仔细检查映射字典中使用的名称是否准确反映了您数据集中使用的名称。

  • 格式正确:特别是在令牌分类中,确保您的数据格式符合预期(例如,字符串列表)。

  • 更新新数据集的映射:每个新数据集可能需要根据其结构和手头的任务进行独特的映射。

通过遵循这些准则并使用提供的示例作为模板,您可以有效地指导 AutoTrain 如何解释和处理您的数据以进行各种机器学习任务。此过程对于从您的模型训练工作中获得最佳结果至关重要。

< > 在 GitHub 上更新