转换为Alpaca数据集和Json格式用于模型训练和微调
之前得到了csv格式的数据集,而模型训练和微调需要用到json格式,于是进行转换。下面是代码:
import pandas as pd
import json
# 读取CSV文件
data = pd.read_csv('cleaned_translated_train.csv')
# 转换数据为JSON格式,每一行变成一个字典
json_data = [
{
"instruction": row["question"],
"input": "",
"output": row["answer"]
}
for index, row in data.iterrows()
]
# 将JSON数据保存到文件
with open('data_for_training.json', 'w', encoding='utf-8') as json_file:
json.dump(json_data, json_file, ensure_ascii=False, indent=4)
- 读取CSV文件:使用Pandas读取
cleaned_translated_train.csv
文件。 - 构建JSON格式数据:对于数据框中的每一行,创建一个字典,其中
instruction
键对应问题列的内容,input
键为空字符串,output
键对应答案列的内容。 - 保存JSON数据:将构建的JSON数据列表保存到名为
data_for_training.json
的文件中,使用json.dump
进行序列化,保持格式化输出以提高可读性。
多个处理好的Json文件进行拼接,用于最后的Lora微调和Rag向量化
import json
import os
# 所有JSON文件都存放在一个名为 'json_files' 的目录中
directory_path = 'json_files'
all_data = []
# 遍历目录中的每个文件
for filename in os.listdir(directory_path):
if filename.endswith('.json'):
file_path = os.path.join(directory_path, filename)
# 打开并读取JSON文件
with open(file_path, 'r', encoding='utf-8') as file:
data = json.load(file)
all_data.append(data) # 将读取的数据添加到列表中
# 将合并后的数据保存到一个新的JSON文件中
with open('combined_data.json', 'w', encoding='utf-8') as output_file:
json.dump(all_data, output_file, ensure_ascii=False, indent=4)
- 导入所需的库:使用
json
进行数据的序列化和反序列化,使用os
来处理文件和目录路径。 - 设置文件目录:所有的JSON文件都放在名为
json_files
的目录中。 - 读取JSON文件
- 使用
os.listdir()
遍历指定目录中的所有文件。 - 检查文件扩展名是否为
.json
,确保只处理JSON文件。 - 对于每个JSON文件,打开并使用
json.load()
读取内容,然后将这些内容添加到all_data
列表中。
- 使用
- 写入合并后的JSON数据
- 所有文件的数据被存储在
all_data
列表中,该列表包含了从每个文件读取的数据。 - 使用
json.dump()
将这个列表写入一个名为combined_data.json
的新文件中,设置ensure_ascii=False
来支持非ASCII字符,indent=4
提供了格式化的输出,使得JSON文件易于阅读。
- 所有文件的数据被存储在