|
毫不夸张地讲,你的大模型微调效果好不好关键在于数据集质量如何。而微调工具或者微调参数只是其次。那么如何将公司内部的私有数据制作成大模型微调用的数据集呢?我给大家总结了6大步。 第一阶段:规划与准备(最重要的阶段)在开始任何技术工作之前,必须明确目标和规则。 1)明确训练目标: 任务类型:你想训练模型完成什么任务? 知识问答:基于文档内容回答问题。 文本摘要:自动生成文档摘要。 内容分类:将文档归入特定类别。 对话系统:打造一个内部知识助手。 代码生成:如果是代码库,用于代码补全或解释。
目标决定了后续所有处理方式。例如,做摘要需要“文档-摘要”对,做问答需要“问题-答案”对。 2)确定数据范围与来源: 来源: confluence, Notion, SharePoint, Google Docs, 代码库 (Git), CRM,客服工单,内部Wiki,PDF报告等。 范围:不是所有文档都适合。确定哪些部门、哪个时间段、哪些类型的文档需要纳入。避免使用过时的、敏感的或低质量的文档。 3)处理安全和隐私问题: 第二阶段:数据收集与整理1)批量导出数据: 使用各种工具提供的API(如Confluence API, Google Drive API)或以权限方式(如数据库导出、CSV)批量获取原始文档。 保存时最好保留元数据,如创建日期、作者、文档类型、URL等,这些信息后续可能用于筛选或增强数据。 2)统一格式: 将不同格式的文件(.docx,.pdf,.ppt,.html,.txt)转换为纯文本格式。 工具推荐: PDF:使用PyMuPDF,pdfplumber, 或商业工具Adobe Acrobat。 DOCX:使用python-docx库。 PPTX:使用python-pptx库(注意主要提取文本框内容)。 HTML:使用BeautifulSoup库去除标签。
转换后,文本中会包含大量无用元素(页眉、页脚、页码、代码块),这是正常的,下一步清洗会处理。 第三阶段:数据清洗与预处理这是最耗时但至关重要的一步,直接决定数据集质量。 1)清理噪音: 删除无关文本:页眉页脚、页码、法律免责声明、重复内容。 清理多余的换行符、空格、乱码( ,UTF-8错误字符)。 处理表格和图像:表格可以提取为结构化文本(如Markdown表格)。图像中的文本需要使用OCR提取,但需评估其价值与成本。
2)分段: 3)脱敏: 使用正则表达式匹配模式(如邮箱、电话号码)。 使用预训练模型(如spaCy的 NER 模型)来识别实体(人名、地名、组织名)。 将识别出的敏感信息替换为无意义的占位符,如[PHONE],[NAME],[EMAIL]。
4)去重: 第四阶段:数据格式化与标注根据第一阶段的目标,将纯文本结构化为模型可训练的格式。 1)格式选择: 2)数据构造方法: 第五阶段:质量保证与数据集构建1)抽样与人工评估: 2)构建数据集文件: 3)划分数据集: 将数据随机打乱后,划分为: 第六阶段:安全、维护与迭代1)安全存储:将最终数据集存储在安全的、有访问权限控制的位置。 2)版本控制:对数据集进行版本管理(如使用DVC或git-lfs),记录每次变化的说明。 3)持续迭代:随着公司内部文档的更新,定期重复此流程,扩增和更新数据集,以使模型保持最新。 |