首页 > 其他分享 >如何有效地评估待用于微调的样本质量

如何有效地评估待用于微调的样本质量

时间:2024-04-30 15:24:43浏览次数:17  
标签:微调 模型 样本 指令 文本 数据 评估

一、什么是大模型指令微调(instruction tuning)

大模型指令微调(Instruction Tuning)是一种针对大型预训练语言模型的微调技术,其核心目的是增强模型理解和执行特定指令的能力,使模型能够根据用户提供的自然语言指令准确、恰当地生成相应的输出或执行相关任务。指令微调特别关注于提升模型在遵循指令方面的一致性和准确性,从而拓宽模型在各种应用场景中的泛化能力和实用性。

在进行指令微调的时候,会将Instruction(指令) 以及对应的answer拼接成文本(在拼接过程中一般会加入【USER】、【BOT】等角色,同时会加入开始、结束的special token,这样可以转换成一个chat式任务)。

如翻译任务:

instruction:【USER】:将下列内容翻译成英语:{待翻译文本}
answer:【BOT】:{翻译结果}
拼接后的文本:<bos_token>【USER】:将下列内容翻译成英语:{待翻译文本}<special token>【BOT】:{翻译结果} <eos_token>

将拼接文本采用预训练任务的方式进行自回归预测,和预训练的区别在于loss的计算,同样使用Cross-Entropy作为loss,在指令微调的时候只会计算answer部分,Instruction部分通过设置ignore_index隐掉。在上面的案例中,我们只会计算“【BOT】:” 之后的loss。

 

二、指令微调的数据工程的评估方法

对大模型进行指令微调时,样本的精髓在于其质量而非数量,少量但精良的样本往往胜过大批中低品质的样本,实现同样甚至更优的微调效果。

通常情况下,仅需约一万份样本便足以达成理想的微调成果。这一理念在Meta发布的《LIMA: Less Is More for Alignment》论文中得到了有力阐述,该文献强调了在指令微调过程中,高品质微调数据的决定性作用。据此,我们应当将重心放在提升样本质量的打磨上,而非单纯追求数量的增长。

然而,这种策略引出了一系列新的问题:

  • 如何有效地评估待用于微调的样本质量?
  • 在建立和评估微调样本质量的过程中需要关注哪几个核心维度?
指标类别 指标名称 指标含义
样本多样性(Sample Diversity) 指令多样性 考察样本中指令的覆盖范围是否广泛,是否包含了各类任务类型、不同难度级别以及多样化的指令结构和表达方式,确保模型在微调后能应对多种复杂情境。
内容多样性 检查样本中提供的文本内容是否涵盖了不同主题、文体、长度以及语境,以避免模型在特定领域或文本类型上过拟合,确保其具备良好的泛化能力。

 

答案质量(Answer Quality) 准确性(Accuracy) 评估答案是否准确无误地响应了给定指令和内容,是否忠实反映了任务要求,且不包含事实性错误、逻辑矛盾或语义模糊。
完备性(Completeness) 考察答案是否全面覆盖了指令所要求的所有任务点,尤其对于多步骤或复合任务,答案应完整体现所有必要的操作结果。
简洁性与清晰度(Conciseness & Clarity) 衡量答案是否言简意赅、表达清晰,避免冗余信息或含糊表述,确保模型在微调后生成的输出易于理解和使用。
一致性(Consistency) 内部一致性 检查同一指令对不同内容的处理结果是否保持一致,即模型在相似情境下应给出相似的答案。
外部一致性 对比样本答案与已知的知识库、专家判断或公认的基准结果,确保答案符合领域共识和常识。
难度适配(Difficulty Calibration) 难易程度分布 分析样本集中简单、中等、复杂任务的比例,确保微调数据集包含不同难度级别的样本,有助于模型逐步提升处理复杂指令的能力。
噪声控制(Noise Reduction) 标签错误检查 识别并剔除标注错误或不一致的样本,确保答案与指令、内容间的映射关系正确无误。
数据清洗 去除重复样本、无关内容或低质量文本,提升数据集的整体纯净度。

评估微调样本质量属于一项涉及多方面考量的综合性工作,旨在确保用于指令微调的数据既能有效驱动模型学习指令理解与执行的核心技能,又能促进模型在实际应用中展现卓越的性能和广泛的适应性。

通过严谨的质量评估与持续优化,可以最大限度地利用有限的高质量样本资源,实现大模型指令微调的高效与精准。

 

二、指令微调的数据工程的原则技巧

以下列举若干在进行领域数据SFT的策略与技巧:

策略类别 可操作策略 策略含义
精心构筑领域数据集 定向采集 确保数据集富含领域特有情境、术语、规范标准及业务流程中典型的对话实例。
均衡分布

注意各类子任务、场景类别及问题难度在数据集中的均匀分布,防止模型在微调时对任何部分过度学习或忽视。 

高标准标注

邀请领域专家进行数据标注,确保标签的精确无误,特别是在处理复杂或专业性强的任务时。

数据增强与跨域迁移 数据扩充 运用合成、变换、拼接等手段丰富数据多样性,模拟真实场景中的变体,如文本替换、句法变化、噪声插入等,提升模型抗干扰能力。
跨域借鉴 若存在关联领域的预训练或微调数据,可适度引入作为补充,利用领域间共性加速模型学习进程。
微调方案定制 分层次微调 面对复杂业务场景,可先进行宏观层面的领域适应,随后针对具体子任务进行精细化微调,逐步提升模型的专业化水准。
多任务融合 结合多个相关任务的数据集进行联合微调,运用多任务学习机制增强模型对领域整体认知能力。
动态优化 依据模型在验证集上的表现适时调整学习率、正则化力度、早停规则等超参数,确保微调过程既不陷入过拟合也不至于欠拟合。
应用轻量级微调技术 Adapter插件 在模型内部植入可学习的Adapter模块,仅更新这些模块参数以适应新领域,保持主模型参数不动,节省存储与计算资源。
LoRA(低秩适应) 通过向模型参数添加低秩矩阵进行修正,约束参数更新规模,维持原模型架构的同时实现高效微调。
Prompt调优 仅对提示(Prompt)进行微调,利用精心构造的提示引导模型生成与特定领域紧密相关的输出,无需改动模型主体结构。
持续监控与迭代 性能监控 定期评估模型在实际业务场景下的表现,及时发现并解决潜在问题。
在线学习 结合实际用户交互数据进行实时或定期在线微调,持续优化模型性能。
反馈循环 建立用户反馈机制,收集用户对模型输出的意见,用于指导后续模型改进。

参考链接:

https://zhuanlan.zhihu.com/p/682604566
https://mp.weixin.qq.com/s/7sOrKUlK7XyqItPa_DoI_g

 

 

标签:微调,模型,样本,指令,文本,数据,评估
From: https://www.cnblogs.com/LittleHann/p/18168060

相关文章

  • 启发式评估(Heuristic Evaluation)--转载 [2011.12.13 sina blog]
    启发式评估(HeuristicEvaluation) -[一架好书--读书学习的收获]2008年08月07日分类: 一架好书--读书学习的收获  版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://buyantang.blogbus.com/logs/27286224.htmlUsabilityInspectionMethods,Edit......
  • 使用这 7 个绩效评估模板简化您的员工评估
    绩效评估受到了不好的评价;员工发现它们压力很大,而管理者则发现它们很耗时。但随着绩效管理成为2024年人力资源的首要任务,也许是时候重新思考了。绩效评估模板可以帮助减轻评估过程的麻烦。通过为管理者提供一种简单、标准化的方法来评估团队的绩效,模板可以使绩效评估过程变得不......
  • 启发式评估(heuristic evaluation)方法介绍--转[2011.12.23 sina blog]
    启发式评估(heuristicevaluation)方法介绍(2008-09-0911:56:52)转载▼标签:it分类: 2互联网产品设计什么是启发式评估?启发式评估法就是使用一套简单、通用、有启发性的可用性原则来进行的可用性评估。即几个评审人员根据一些通用的可用性原则和自己的经验来发现......
  • 如何准确的估计llm推理和微调的内存消耗
    Command-R+,Mixtral-8x22b和Llama370b都在最近的几周内发布了,这些模型是巨大的。它们都有超过700亿个参数:Command-R+:104B参数Mixtral-8x22b:具有141B参数的混合专家(MoE)模型Llama370b:70.6B参数你能在电脑上微调和运行这些模型吗?在本文中,我将介绍如何计算这些模型用......
  • 实验16-使用GAN生成手写数字样本
    版本python3.7tensorflow版本为tensorflow-gpu版本2.6运行结果: 代码:from__future__importprint_function,divisionfromkeras.datasetsimportmnistfromkeras.layersimportInput,Dense,Reshape,Flatten,Dropoutfromkeras.layersimportBatchNormalizatio......
  • LLM学习(5)——系统评估与优化
    5.1如何评估LLM应用5.1.1验证评估的一般思路通过不断寻找BadCase并进行针对性优化,将这些案例逐步加入验证集,形成一个具有一定样本数量的验证集。针对这种验证集,逐个进行评估变得不切实际,需要一种自动评估方法来对整体性能进行评估。验证迭代是构建以LLM为核心的应用程序的......
  • 渗透测试(Penetration Testing)是一项针对企业或组织的信息系统安全性的重要评估手段
    渗透测试(PenetrationTesting)是一项针对企业或组织的信息系统安全性的重要评估手段。它模拟黑客的攻击行为,通过利用各种攻击技术和策略,试图非法访问、窃取或破坏目标系统的数据,从而发现系统中可能存在的安全漏洞。渗透测试不仅可以帮助企业识别潜在的安全风险,还能为企业提供关于......
  • Qwen1.5微调
    ​引子由于工作上需要,一直在用Qwen做大模型推理,有个再训练的需求,特此琢磨下Qwen的训练。OK,我们开始吧。一、安装环境查看显卡驱动版本根据官网推荐OK,docker在手,天下我有。dockerpullqwenllm/qwen:cu117dockerrun-it--rm--gpus=all-v/mnt/code/LLM_Service/:/work......
  • 使用ORPO微调Llama 3
    ORPO是一种新的微调技术,它将传统的监督微调和偏好对齐阶段结合到一个过程中。减少了训练所需的计算资源和时间。论文的实证结果表明,ORPO在各种模型大小和基准上都优于其他对齐方法,所以这次我们就来使用最新的Llama3来测试下ORPO的效果。我们将使用ORPO和TRL库对新的Llama38b......
  • LightDB兼容扫描 - 事前SQL兼容迁移评估工具24.1支持MySQL --> TDSQL-PostgreSQL兼容
    兼容扫描工具下载地址:事前SQL兼容迁移评估工具使用说明:LightDB-事前SQL兼容迁移评估工具使用手册本次24.1版本新增了对MySQL迁移到TDSQL-pg的兼容性扫描。工具的具体使用方法请阅读使用说明文档,针对本次更新,涉及配置项targetDataBase改为MySQL-to-TDSQL-PostgreSQL。以下是......