数据设计:通过微调来优化SLM(小模型)的性能

2024-05-03 03:52

本文主要是介绍数据设计:通过微调来优化SLM(小模型)的性能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址:data-design-for-fine-tuning-to-improve-small-language-model-behaviour

2024 年 4 月 17 日

通过使用创造性的数据格式来微调数据,教授小语言模型进行自我纠正和推理。通过提示删除和部分答案屏蔽。

小语言模型通常缺乏自我意识,并且往往对其生成的响应表现出更大的信心。采用提示擦除和部分答案屏蔽 (PAM) 方法可显着提高 SLM 响应的质量

介绍

似乎在最近的过去,当谈到语言模型(LLM 和 SLM)时,焦点一直集中在数据交付部分。换句话说,如何在推理时将专有数据引入语言模型。

数据传输过程可以分为两种主要方法:梯度方法和非梯度方法。非梯度方法因其透明而不是像梯度/微调方法那样不透明而受到广泛关注。

到目前为止,最流行的非梯度数据传输方法是 RAG 及其所有变体。

我发现有趣的是,一些微调/梯度方法的主要目的并不是将企业或领域特定数据注入语言模型。而是通过微调数据的结构、特定任务来改变模型的行为并教授模型。这些任务包括推理和自我纠正等功能。

数据设计

重点从数据交付转向数据设计,其中数据格式的设计方式是为模型赋予特定的行为能力

推理

微软研究院训练 Orca-2 的主要重点是创建一个擅长推理的开源小语言模型 (SLM) 。这是通过分解问题并逐步解决它来实现的,这增加了可观察性和可解释性。

为了实现这一目标,必须创建细致入微的培训数据,向LLMs提出复杂的提示,其设计目的是引出策略推理模式,从而产生更准确的结果。

此外,在训练阶段,较小的模型会接受任务以及LLMs的后续输出。LLMs的输出数据定义了LLMs如何解决问题。

但这里有一个问题,原始提示不会显示给 SLM。这种“即时擦除”方法是一种将 Orca-2 变成谨慎推理机的技术,因为它不仅学习如何执行特定的推理步骤,还学习如何在更高层次上制定如何完成特定任务的策略。

LLMs不是天真地模仿强大的LLMs,而是被用作行为的储存库,从中为当前任务的方法做出明智的选择。

自我修正

最近的一项研究通过提出一种称为部分答案屏蔽(PAM)的方法,提出了构建自校正训练数据的管道,旨在通过微调使模型具有内在的自校正能力。

部分答案屏蔽的目标是指示语言模型进行自我纠正。

答案屏蔽

本研究通过在两项任务中使用参数大小从 60 亿到 130 亿不等的语言模型进行实验。

该研究引入了一种增强小语言模型自我纠正能力的方法,提出了内在自我纠正(ISC),这是一种依赖两种基本能力的机制:自我验证自我修改

在微调阶段,该过程引入部分答案屏蔽(PAM),为模型注入自我验证功能。

结果首次证明,即使是只有 60 亿个参数的小型语言模型,在响应生成过程中也具有固有的自我校正能力,与地面事实的依赖无关。

所提出的内在自我纠正努力将自我纠正作为一种固有模式嵌入到语言模型中。它需要一个自主且自发的自我修正过程,与现有的即时工程方法不同。

为了使小语言模型具有自纠错能力,设计了一种用于构建自纠错数据的管道并建立了可普遍应用于生成自纠错任务的数据的数据格式。

综上所述

这两项研究提出了一种方法,即创建细致入微的训练数据,为小语言模型 (SLM) 灌输特定的推理和自我纠正技能。

微调通常与向模型添加知识、增强模型的知识相关。然而,这种特定的数据设计方法侧重于微调,以增强语言模型的功能和行为,而不是添加用于检索的知识。

我很确定,一定会有更多设计训练数据以更新模型行为的创造性方法的例子。

这篇关于数据设计:通过微调来优化SLM(小模型)的性能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/955780

相关文章

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入