LLaMA-Factory数据生成:从零构建高质量微调数据集
LLaMA-Factory数据生成从零构建高质量微调数据集【免费下载链接】LlamaFactoryUnified Efficient Fine-Tuning of 100 LLMs VLMs (ACL 2024)项目地址: https://gitcode.com/GitHub_Trending/ll/LlamaFactory在大语言模型LLM微调过程中高质量数据集是决定模型性能的关键因素。LLaMA-Factory作为一款功能全面的微调框架不仅支持多种训练方式还提供了灵活的数据生成与处理工具。本文将详细介绍如何利用LLaMA-Factory构建自定义微调数据集帮助普通用户快速掌握数据合成的核心方法。数据生成的核心痛点与解决方案你是否遇到过这些问题公开数据集与业务场景不匹配标注数据成本高、周期长多模态数据文本图像/音频处理困难LLaMA-Factory通过模块化设计解决了这些痛点其数据模块支持从模板定义、格式转换到多模态融合的全流程处理。核心代码位于src/llamafactory/data/包含模板引擎、数据格式化工具和多模态插件。基础数据模板设计模板文件结构LLaMA-Factory使用JSON格式定义数据集模板指定数据字段、格式和处理规则。典型配置如data/dataset_info.json所示包含以下关键部分{ alpaca_zh_demo: { file_name: alpaca_zh_demo.json, formatting: sharegpt, columns: { messages: conversations } }, mllm_demo: { file_name: mllm_demo.json, formatting: sharegpt, columns: { messages: messages, images: images } } }常用模板类型基础问答模板适用于简单指令微调如alpaca_zh_demo.json包含instruction指令、input输入、output输出三要素{ instruction: 识别并解释给定列表中的两个科学理论, input: 细胞理论和日心说, output: 细胞理论是生物科学的基础理论... }多轮对话模板采用ShareGPT格式支持上下文连贯的对话数据如{ conversations: [ {role: user, content: 推荐一部科幻电影}, {role: assistant, content: 《星际穿越》...}, {role: user, content: 为什么推荐这部}, {role: assistant, content: 因为它结合了科学准确性和人文思考...} ] }多模态模板支持图像、音频等附加信息如mllm_demo.json包含images字段关联视觉数据。数据合成实战三步构建自定义数据集步骤1准备原始数据根据模板要求整理原始数据支持以下来源本地文件JSON/JSONL格式文本文件网络数据集通过Hugging Face Hub加载需配置dataset_info.json中的hf_hub_url动态生成使用脚本生成合成数据如examples/train_lora/llama3_lora_sft.sh演示了数据预处理流程步骤2格式转换与清洗使用LLaMA-Factory的数据格式化工具将原始数据转换为模型可接受的格式# 数据格式化核心逻辑简化版 from src.llamafactory.data.formatter import StringFormatter # 定义用户消息模板 formatter StringFormatter(slots[{{content}}]) # 应用模板 formatted_data formatter.apply(content用户输入内容)关键处理包括字段映射通过columns配置将原始字段映射到标准字段如prompt→instruction文本清洗去除特殊字符、统一格式多模态处理通过mm_plugin.py解析图像/音频路径步骤3质量控制与验证数据抽样检查随机抽取样本验证格式正确性如# 查看数据集前10条记录 head -n 10 data/alpaca_zh_demo.json重复数据检测使用工具去除重复样本长度过滤通过src/llamafactory/data/data_utils.py限制文本长度避免超长输入高级数据增强技术思维链CoT数据生成通过模板自动为问题添加推理过程提升模型推理能力。核心代码在src/llamafactory/data/template.py的ReasoningTemplate类# 添加思维链标记 def add_thought(self, content: str ) - str: return f{self.thought_words[0]}{self.thought_words[1]} content效果示例用户问题34 增强后 思考我需要计算3加4的结果3加4等于7/思考 7多模态数据融合LLaMA-Factory支持文本图像/音频的多模态数据训练配置示例{ messages: [{role: user, content: 描述这张图片}], images: [data/mllm_demo_data/1.jpg] }图像解析由mm_plugin.py处理自动将图像路径转换为模型可识别的格式。数据集使用流程1. 配置数据集路径在训练配置文件如examples/train_lora/llama3_lora_sft.yaml中指定数据集data_args: dataset: alpaca_zh_demo dataset_dir: data2. 启动数据预处理通过命令行启动数据预处理流程python src/train.py \ --stage sft \ --model_name_or_path meta-llama/Llama-2-7b-hf \ --dataset alpaca_zh_demo \ --output_dir ./output/llama3_lora_sft3. 监控数据处理进度预处理日志会显示数据加载、格式化和过滤情况关键指标包括总样本数有效样本比例平均序列长度数据生成工具链LLaMA-Factory提供完整的辅助工具链位于scripts/目录数据统计stat_utils/length_cdf.py生成文本长度分布格式转换convert_ckpt/llamafy_qwen.py支持不同模型格式转换质量评估eval_bleu_rouge.py计算文本生成质量指标最佳实践与常见问题数据集构建 checklist使用清晰的指令-响应对结构确保输出内容准确、无事实错误控制单条样本长度在512-2048 tokens平衡不同类型任务的样本比例常见问题解决数据格式错误检查JSON格式是否合法推荐使用JSONLint验证多模态数据加载失败确认图像路径正确支持相对路径如data/mllm_demo_data/1.jpg训练时数据溢出在配置文件中设置max_seq_length限制输入长度总结与后续展望通过LLaMA-Factory的数据生成工具用户可以快速构建从简单问答到复杂多模态的各类微调数据集。关键步骤包括模板定义、数据转换和质量控制结合框架提供的工具链可显著降低数据准备门槛。下一步行动建议尝试修改alpaca_zh_demo.json创建自定义指令集使用examples/train_lora/llama3_lora_sft.yaml进行小批量训练验证探索多模态数据生成参考mllm_demo.json添加图像描述数据掌握数据生成技巧后你可以针对特定场景如客服对话、代码生成定制高质量数据集充分发挥LLM的微调潜力。更多高级功能请参考官方文档README_zh.md。【免费下载链接】LlamaFactoryUnified Efficient Fine-Tuning of 100 LLMs VLMs (ACL 2024)项目地址: https://gitcode.com/GitHub_Trending/ll/LlamaFactory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻