使用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.推理

### LLaMA-Factory 数据集介绍 LLaMA-Factory项目旨在提供一个全面的框架来处理大型语言模型(LLM),特别是基于Meta AI发布的Llama架构。为了支持这一目标,该项目配套了一个精心设计的数据集用于微调和评估这些模型。 #### 数据集结构 `dataset_info.json`文件定义了数据集中各个字段的具体含义[^4]: ```json { "数据集名称": { "file_name": "data.json", "columns": { "prompt": "instruction", "query": "input", "response": "output", "system": "system", "history": "history" } } } ``` 此配置说明了如何映射原始JSON文件中的键到标准列名,使得不同来源的数据可以被统一处理。 #### 预训练数据样本格式 预训练使用的文档集合遵循简单的列表形式,其中每个条目都是一个包含单个文本字符串的对象: ```json [ {"text": "document"}, {"text": "another document"} ] ``` 这种简洁的设计便于快速加载大量未标注语料库进行无监督学习任务。 ### 下载方法 要获取并设置好LLaMA-Factory所需的Python环境以及下载相应资源,可以通过以下命令创建特定版本的Conda虚拟环境[^2]: ```bash conda create --name llama_factory python=3.11 conda activate llama_factory ``` 接着按照官方仓库给出的指南克隆代码库,并执行必要的安装脚本以获得最新版依赖项和支持工具。 ### 使用方法 当准备就绪后,在实际应用过程中通常会涉及到读取、解析和迭代访问存储于本地磁盘上的`.jsonl`或其他兼容格式的实例记录。下面是一个简单例子展示怎样利用Pandas库高效地操作这类表格化资料: ```python import pandas as pd # 加载整个数据集为DataFrame对象 df = pd.read_json('path/to/data.json', lines=True) # 查看前几行内容概览 print(df.head()) # 访问具体列的内容, 如 'prompt' 或者其他自定义字段 prompts = df['instruction'].tolist() responses = df['output'].tolist() for p, r in zip(prompts[:5], responses[:5]): print(f"Prompt: {p}\nResponse: {r}") ``` 通过这种方式能够轻松实现对大规模对话型数据的有效管理和分析工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值