使用LLaMA-Factory进行诗词数据集预训练

1.数据集准备

在魔搭社区下载开源的中国诗词数据集

git clone https://www.modelscope.cn/datasets/modelscope/chinese-poetry-collection.git

数据预览

该数据集仅有一列,且为csv格式,目前LLaMA-Factory微调仅支持alpaca格式和sharegpt格式,参考示例数据集中的c4_demo.json格式,因此首先对数据做预处理,代码如下:

import json

import pandas as pd


def csv_to_json(input_csv_path, output_json_path):
    # 读取CSV文件
    df = pd.read_csv(input_csv_path)

    # 将DataFrame转换为包含字典的列表,每个字典只有一个键'text'
    json_list = [{'text': row['text1']} for index, row in df.iterrows()]

    # 写入JSON文件
    with open(output_json_path, 'w', encoding='utf-8') as json_file:
        json.dump(json_list, json_file, ensure_ascii=False, indent=4)


# 设置输入CSV路径和输出JSON路径
input_csv_path = ''  # 替换为你的CSV文件路径
output_json_path = ''  # 替换为你想要保存的JSON文件路径

# 调用函数进行转换
csv_to_json(input_csv_path, output_json_path)

 转换后格式如下:

上传到LLaMA-Factory/data文件夹后进行数据注册,打开dataset_info.json,添加内容:

2.训练

启动LLaMA-Factory可视化界面后,选择参数如下:

然后开始训练即可

3.推理

<think>首先,用户的问题是关于LLaMA-Factory训练时数据集选取路径的方法。这意味着用户想知道在LLaMA-Factory框架中,如何指定或选择数据集的路径进行训练。 回顾之前的引用: - 引用[1]讨论了LLaMA-Factory的数据准备与处理,包括数据格式规范、预处理等。 - 引用[2]提到LLaMA准备了一些测试微调数据,存放在LLaMA安装目录的/data/目录中,并建议自定义数据集时在dataset_info.json文件中添加定义。 - 引用[3]是关于LLaMA-Factory参数的解答。 - 引用[4]和[5]是关于LLaMA-Factory的入门指南和基本使用流程。 特别是引用[2]直接相关:"如果要自定义数据集,需要在 dataset_info.json 文件中添加对数据集及其内容的定义"。 用户的问题焦点是"数据集选取路径的方法",所以我需要解释如何设置数据集的路径。 根据引用[2],关键点是在dataset_info.json文件中定义数据集。路径可能是在这个文件中指定的。 在LLaMA-Factory中,数据集的选取通常通过配置文件来处理。dataset_info.json文件包含了所有数据集的元数据和路径信息。 具体步骤: 1. **准备数据集**:数据集需要放置在特定目录下,比如/data/目录。 2. **更新dataset_info.json**:在这个文件中添加新数据集的条目,指定名称、路径、类型等。 3. **在训练命令中指定数据集名称**:启动训练时,用户可以通过命令行参数指定要使用数据集名称。 引用[3]提到"关键参数",可能包括指定数据集的参数。 常见的命令行参数可能包括: - `--dataset` 或类似参数来指定数据集名称。 - 路径可能在配置文件或dataset_info.json中定义。 在LLaMA-Factory的文档或实践中,训练命令可能如下: ```bash python src/train_bash.py --model_name_or_path path_to_model --dataset my_custom_dataset --output_dir path_to_output ``` 这里的`--dataset`参数指定了在dataset_info.json中定义的数据集名称。 路径的指定是在dataset_info.json中完成的。例如: 在dataset_info.json中: ```json { "my_custom_dataset": { "path": "/path/to/my/dataset", "file_name": "data.json" } } ``` 用户需要确保路径正确。 总结回答结构: 1. **介绍基本概念**:解释LLaMA-Factory数据集选取的方法。 2. **详细步骤**:分步说明如何设置路径。 - 步骤1: 准备数据集文件,放在一个目录下。 - 步骤2: 编辑dataset_info.json文件,添加数据集定义,包括路径。 - 步骤3: 在训练命令中使用--dataset参数指定数据集名称。 3. **示例**:提供一个简单的示例命令和配置文件片段。 4. **引用相关引用**:自然地融入引用,比如引用[2]中提到dataset_info.json。 5. **生成相关问题**:结尾生成几个相关问题,如用户指令所示。 确保回答真实可靠:基于引用和一般知识。引用[2]是最直接的来源。 最后,系统指令要求: - 所有行内数学表达式用$...$,但这里可能不需要数学表达式。 - 独立公式用$$...$$,但这里可能不需要。 - LaTeX语法正确:如果没有数学内容,可以忽略。 - 使用中文回答。 - 生成相关问题:在末尾添加§§相关问题§§部分。 - 引用标识:在引用的段落末尾添加,如[^2]。 用户指令说:"回答中引用的段落末尾自然地添加引用标识",所以要自然地添加。 回答结构: - 开头直接回答问题。 - 主体解释方法。 - 结尾生成相关问题。 完整回答: 首先回答问题:在LLaMA-Factory中,数据集选取路径的方法主要通过编辑dataset_info.json文件来实现,并在训练命令中指定数据集名称。 然后详细说明步骤。 </think>### LLaMA-Factory训练时数据集选取路径的方法 在LLaMA-Factory框架中进行训练时,数据集选取路径的方法主要通过配置文件(如`dataset_info.json`)和命令行参数协同实现。核心思路是:自定义数据集时,必须在配置文件中定义数据集名称和对应路径,然后在训练命令中指定该名称。这种方式确保了数据集的灵活管理和高效加载。以下是详细的分步说明,基于引用内容和最佳实践总结。 #### 1. **数据集路径的核心配置:`dataset_info.json`文件** - **文件作用**:`dataset_info.json` 是LLaMA-Factory的关键配置文件,它存储了所有可用数据集的元数据,包括路径、格式和预处理信息。引用[2]明确指出:“如果要自定义数据集,需要在 dataset_info.json 文件中添加对数据集及其内容的定义”[^2]。 - **路径指定方法**: - 编辑`dataset_info.json`文件(通常位于LLaMA安装目录的`/data/`下)。 - 添加新条目,定义自定义数据集的名称、路径和文件详情。路径可以是绝对路径或相对路径(相对于项目根目录)。 - 示例配置片段: ```json { "my_custom_dataset": { // 自定义数据集名称 "path": "/path/to/your/dataset", // 数据集存放路径 "file_name": "train_data.json", // 数据文件名 "format": "json" // 数据格式(如json、csv、txt等) } } ``` - 路径规范: - 确保路径指向包含训练数据的目录。 - 如果数据文件存放在默认目录(如`/data/`),路径可直接写为相对路径(例如`"path": "data/my_dataset"`)。 - **验证配置**:编辑后,运行测试命令(如`python scripts/check_dataset.py`)验证路径是否正确,避免因路径错误导致训练失败。 #### 2. **在训练命令中指定数据集** - **命令参数**:启动训练时,使用`--dataset`参数指定在`dataset_info.json`中定义的数据集名称。训练脚本会自动根据配置加载对应的路径数据。 - 示例训练命令: ```bash python src/train_bash.py \ --model_name_or_path path/to/pretrained_model \ --dataset my_custom_dataset # 指定数据集名称 --output_dir path/to/output ``` - 关键参数解读: - `--dataset`:必须与`dataset_info.json`中的定义名称一致。 - `--model_name_or_path`:指定预训练模型的路径(与数据集无关)。 - `--output_dir`:设置输出目录。 - 引用[3]强调了参数的重要性:“现对关键的几个参数进行分析”,`--dataset`是核心参数之一[^3]。 - **多数据集支持**:若要使用多个数据集,可在配置文件中定义多个条目,并在命令中用逗号分隔名称(例如`--dataset dataset1,dataset2`)。 #### 3. **完整操作流程** 以下是数据集选取路径的最佳实践步骤: 1. **准备数据集文件**: -数据集文件(如JSON、CSV格式)存放于指定目录(例如`/data/my_dataset/`)。 - 确保数据格式符合LLaMA-Factory规范(引用[1]详细描述了数据预处理流程,包括清洗、增强等[^1])。 2. **编辑`dataset_info.json`**: - 打开文件(路径通常为`LLaMA-Factory/data/dataset_info.json`)。 - 添加自定义数据集条目,明确设置`path`字段。 3. **运行训练命令**: - 在命令行中指定数据集名称(通过`--dataset`参数)。 - 示例完整命令: ```bash python src/train_bash.py \ --model_name_or_path huggyllama/llama-7b \ --dataset my_custom_dataset \ --output_dir outputs \ --per_device_train_batch_size 4 ``` 4. **验证与调试**: - 训练启动后,日志会显示加载的数据集路径(例如“Loading dataset from /path/to/your/dataset”),确认路径正确。 - 若出错,检查路径权限或文件格式(引用[2]建议参考测试数据集格式[^2])。 #### 4. **注意事项** - **路径统一性**:在分布式训练中,确保所有节点都能访问路径(建议使用共享存储如NFS)。 - **默认数据集**:LLaMA-Factory预置了一些测试数据集(存放于`/data/`目录),可直接通过名称引用(如`--dataset alpaca`),无需额外配置路径[^2]。 - **性能优化**:引用[4]指出“LLaMA-Factory可选参数非常多”,路径设置不当可能影响训练效率,建议使用相对路径简化部署[^4]。 通过以上方法,您可以高效地管理数据集路径,确保模型训练顺利进行。引用[5]提到LLaMA-Factory作为“大模型微调利器”,其灵活的配置机制是优势之一[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值