细粒度数据设计对于微调的重要性

news/2024/9/22 18:37:12/

原文地址:the-importance-of-granular-data-design-for-fine-tuning

利用数据设计来训练LLM,以充分利用上下文,同时解决“Lost-In-The-Middle”的挑战。

2024 年 5 月 2 日

介绍

对话设计师难道不是杰出的数据设计师吗?

请允许我详细阐述,我一直强调数据策略应当涵盖以下几个关键环节:数据的探索与发现、数据的设计与规划、数据的开发与处理,以及数据的最终交付与应用。

考虑到 RAG 和其他交付策略,数据交付已被广泛讨论。数据发现也得到了一定程度的解决,例如 XO 平台的意图发现。

来到数据设计……在本文中,我讨论了最近的三项研究,重点是教授语言模型(无论大小)的某些行为。虽然不一定要向模型灌输特定的世界知识,但可以改善模型的行为和能力。

这些能力可以包括自我纠正、推理能力、提高短期和长期的情境理解等等。

Taking A Step Back

大型语言模型研究发生了转变,重点转向以这种方式设计训练数据,以极大地提高特别是小型语言模型(SLM)的推理能力。

这种新方法不仅可以被描述为人工智能的数据优先方法,而且可以被描述为数据设计方法。

最近,人们非常重视语言模型(LLM 和 SLM 等)的数据交付方面。具体来说,焦点集中在如何在推理过程中将专有数据合并到语言模型中。

数据传输的过程可以分为两种主要方法:梯度和非梯度。与梯度和微调技术的不透明性质相比,非梯度方法因其透明性而引起了广泛关注。

在非梯度方法中,RAG是最广泛采用的数据交付方法,体现在各种迭代中。

有趣的是,某些微调和梯度技术的主要目的并不是将特定领域的数据注入语言模型。

相反,他们的主要目标是改变模型的行为,并通过微调数据的设计和结构来指导其执行特定任务。这些任务包含推理、自我纠正和更好地处理大上下文等功能。

用于微调数据的数据设计

最近有两项数据设计研究引人注目,第一项是微软研究院在训练名为 Orca-2 的小语言模型 (SLM) 时遵循的方法。

提示词擦除

Orca-2 是一种擅长推理的开源小语言模型 (SLM) 。这是通过分解问题并逐步解决它来实现的,这增加了可观察性和可解释性。

这种推理技能是在 SLM 的微调过程中通过精细细致的微调而发展起来的。

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

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

然而,训练数据的设计(更改)是为了隐藏或删除原始提示。因此,原始提示不会显示给 SLM。

这被称为提示词擦除的方法。它训练 Orca-2 成为一个谨慎的推理者,因为该模型不仅必须学习如何执行特定的推理步骤,还要在更高层次上制定如何完成特定任务的策略。

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

部分答案屏蔽 (PAM)

最近的一项研究通过提出一种称为部分答案屏蔽(PAM)的方法引入了设计和生成自校正训练数据的管道,目的是使模型能够通过微调进行内部自校正。

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

在微调过程中,我们提出部分答案屏蔽(PAM),使模型具有自我验证的能力。 ~来源

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

为了增强小语言模型的自我纠正能力,研究引入了内在自我纠正(ISC),它依赖于两个核心能力:自我验证和自我修改。

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

这标志着首次证明,即使是参数只有 60 亿个的小型语言模型,在响应生成过程中也具有固有的自我校正能力,无需依赖地面实况数据。

所提出的内在自我纠正旨在将自我纠正作为一种自然模式嵌入到语言模型中,涉及自主和自发的自我纠正机制,与现有的即时工程方法不同。

为了使小语言模型具有自校正功能,设计了一个管道来生成自校正数据并建立适用于自校正任务的通用数据格式。

针对大型上下文训练的训练数据设

简而言之

微软的研究人员和合作者设计了一种方法来克服lost-in-the-middle的问题。

当代大型语言模型(LLM)可以处理冗长的输入,但常常难以在长上下文中充分利用信息,这被称为“lost-in-the-middle”挑战。

Microsoft 研究人员和合作者提出了一种称为信息密集型 (IN2)训练的方法来解决此问题。

IN2训练使用合成的长上下文问答数据集,重点关注:

  1. 细粒度的信息感知
  2. 在短片段内
  3. 长上下文
  4. 并整合来自多个细分市场的信息。

该训练应用于 Mistral-7B,创建了 FILM-7B(FIL1-in-the-Middle)。

根据该研究,FILM-7B 在其 32K 上下文窗口中的不同位置、跨各种上下文样式和检索模式显示出强大的信息检索能力。

它还提高了现实世界长上下文任务(例如 NarrativeQA)的性能,同时保持短上下文任务的性能。


http://www.ppmy.cn/news/1450004.html

相关文章

本地大语言模型LLM的高效运行专家 | Ollama

Ollama简介 Ollama是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型,如Llama 2。Ollama极大地简化了在Docker容器内部署和管理LLM的过程&#xff0…

ssh远程访问windows系统下的jupyterlab

网上配置这一堆那一堆,特别乱,找了好久整理后发在这里 由于既想打游戏又想做深度学习,不舍得显卡性能白白消耗,这里尝试使用笔记本连接主机 OpenSSH 最初是为 Linux 系统开发的,现在也支持包括 Windows 和 macOS 在内…

解决Blender导出FBX文件到Unity坐标轴错误的问题

发现Blender的模型导入到Unity里面有问题,简单研究了下发现是坐标系不同,Unity使用的是左手坐标系,Blender使用的是右手坐标系 。 下面直接将如何解决 首先忽略Blender的右手坐标系以及Z轴朝上的事,依照unity坐标系情况修改模型物体的旋转,以Blender猴…

C语言--贪吃蛇小游戏

目录 一、Win32API介绍 1.1Win32API 1.2控制台程序 1.3控制台屏幕上的坐标COORD 1.4GetStdHandle 1.5GetConsoleCursorInfo 1.6 CONSOLE_CURSOR_INFO 1.7 SetConsoleCursorInfo 1.8SetConsoleCursorPosition 1.9GetAsyncKeyState 二、贪吃蛇游戏设计与分析 2.1地图 …

单片机编程实例400例大全(100-200)

今天继续分享单片机编程实例第100-200例。 今天的实例会比前面100复杂一些,我大概看了下,很多都具备实际产品的参考价值。 今天继续分享单片机编程实例第100-200例。 今天的实例会比前面100复杂一些,我大概看了下,很多都具备实际…

ubuntu neo4j 下载与配置(一)

neo4j 官方下载页面 https://neo4j.com/deployment-center/#community 进入页面之后,往下滑 咱们在下载neo4j时,官方可能要咱们填写一下个人信息,比如:姓名组织结构邮箱等: 咱们可以观察一下,ne4j的下载链…

【python】networkx包对图相关操作

NetworkX 是一个用于创建、操作和研究复杂网络的结构、动态和功能的 Python 包。它提供了丰富的数据结构和函数,便于处理图和网络。下面是 NetworkX 包的一些主要功能: 图的创建与操作: 支持多种类型的图(无向图、有向图、多重图、…

C语言——操作符保姆级教学(含整形提升及算数转换)

操作符 一.操作符的分类二.原码、反码、补码三.移位操作符1.左移操作符&#xff1a;<<2.右移操作符&#xff1a;>> 四.位操作符1.按位与—— &2.按位或—— |3.按位异或—— ^4.按位取反—— ~ 五.逗号表达式六.条件操作符七.操作符的属性&#xff1a;优先级、…