AutoTrain 文档

理解列映射

您正在查看 main 版本,它需要从源代码安装。如果您想要常规 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 任务,如果文本列未格式化,即如果包含聊天格式的样本(dict 或 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:数据集中包含目标变量的列。

Token 分类

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

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

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

对于 token 分类,如果您正在使用 CSV,请确保列是字符串化列表。

表格数据分类和回归

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

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

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

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

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

图像分类

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

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

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

句子 Transformer

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

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 是一个字典,包含键 textanswer_start

确保准确的映射

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

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

  • 适当格式化:尤其是在 token 分类中,确保您的数据格式符合预期(例如,字符串列表)。

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

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

< > 在 GitHub 上更新