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 格式。

在用户界面中,您会看到列映射以字典形式呈现:

{"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 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.