当前位置: 首页 > news >正文

Azure OpenAI检索增强微调:使用 GPT-4o 对 GPT-4o mini 进行微调,以适应特定领域的应用

定制是关键! 

 

生成式人工智能对企业最有影响力的应用之一是创建自然语言界面,这些界面经过定制,可以使用特定领域和用例数据来提供更好、更准确的响应。这意味着回答有关特定领域的问题,例如银行、法律和医疗领域。  

我们经常谈论实现这一目标的两种方法: 

 

  1. 检索增强生成 (RAG):将这些文档存储在向量数据库中,并在查询时根据它们与问题的语义相似性检索文档,然后将它们用作 LLM 的上下文。
  2. 监督微调 (SFT):根据代表特定领域知识的一组提示和响应来训练现有的基础模型。 
     

虽然大多数尝试使用 RAG 的组织都希望利用其内部知识库来扩展 LLM 的知识,但许多组织如果不进行重大优化就无法实现预期结果。同样,整理足够大且高质量的数据集以进行微调也是一项挑战。这两种方法都有局限性:微调将模型限制在其训练数据中,使其容易受到近似和幻觉的影响,而 RAG 为模型奠定了基础,但仅根据文档与查询的语义接近度来检索文档——这可能不相关,并且可能导致推理不充分的答案。 

 

参考链接:
微软 Azure OpenAI 试用申请

RAFT 来救援! 

博客文章缩略图 1,标题为“检索增强微调:使用 GPT-4o 对 GPT-4o mini 进行微调,以适应特定领域的应用”

 

我们可以结合使用 RAG微调,而不是只选择其中一种!将 RAG 视为一场开卷考试:模型查找相关文档来生成答案。微调就像一场闭卷考试:模型依赖于预先训练的知识。就像在考试中一样,最好的结果来自于学习和随手记笔记。 

 
检索感知微调 (RAFT) 是一种强大的技术,可用于为特定领域的开放式设置(例如域内 RAG)准备微调数据。它改变了语言模型的格局,结合了 RAG 和微调的最佳部分。RAFT 通过提高模型理解和使用特定领域知识的能力,帮助模型针对特定领域进行量身定制。它是 RAG 和特定领域的 SFT 之间的最佳结合点。 

 

它是如何工作的? 

 

RAFT 分为三个步骤:  

  1. 准备数据集来教模型如何回答有关您的领域的问题。
  2. 使用准备好的数据集对模型进行微调  
  3. 评估新的、定制的、领域适应模型的质量 

RAFT 的关键在于训练数据生成,其中每个数据点都包含一个问题 (Q)、一组文档 (Dk) 和一个思路链式答案 (A)。文档分为包含答案的 Oracle 文档 (Do) 和不包含答案的干扰文档 (Di)。微调教会模型区分这些文档,从而生成一个自定义模型,该模型的表现优于仅使用 RAG 或微调的原始模型。我们使用 GPT-4o 生成训练数据并微调 GPT-4o mini,从而根据您的用例量身定制经济高效、速度更快的模型。这种称为蒸馏的技术使用 GPT-4o 作为教师模型,使用 4o-mini 作为学生模型。 
 
 
 
 
 

在本博客的下一部分中,我们将开始实践。如果您想自己跟进,或查看参考代码,请查看https://aka.ms/aoai-raft-workshop。我们将为银行用例创建一个领域适配模型,该模型能够回答有关银行在线工具和账户的问题。  

 

笔记本 1- 生成 RAFT 训练数据 

 

首先收集特定领域的文档;在我们的示例中,这些是银行文档的 PDF。为了生成我们的训练数据,我们将 PDFS 转换为 markdown 文本格式。该文档为 PDF 格式,包含许多表格和图表,我们将使用 GPT-4o 将页面内容转换为 markdown。我们使用 Azure OpenAI GPT 4o 将所有这些信息提取到 Markdown 文件中,以用于下游处理。然后,我们使用 GPT-4o(我们的教师模型)生成合成的“问题-文档-答案”三元组,包括“黄金文档”(高度相关)和“干扰项”(误导)的示例。这将确保模型学会区分相关信息和不相关信息。RAFT利用思维链 (CoT) 过程,通过集成 CoT RAFT 过程提高了模型提取信息和执行逻辑推理的能力。这种方法有助于防止过度拟合并增强训练鲁棒性,使其对于需要详细和结构化思维的任务特别有效 

 
然后,我们将这些数据格式化以进行微调,将其分为训练集、验证集和测试集。验证集用于训练,测试集用于最后测量性能。 

 

笔记本2-RAFT微调  

 

现在是时候教我们的学生了!准备好训练和验证数据后,下一步是将这些数据上传到 Azure OpenAI 并创建微调作业。这非常简单:在 AI Studio 中,选择您的模型、上传您的训练和验证数据以及设置您的训练参数只需点击几下即可。我们将选择 4o-mini 作为我们的学生模型进行训练。 在实验室中,我们将向您展示如何使用 SDK 上传和触发微调作业。UI 使其成为一种简单的实验方式,而 SDK 方法是生产化和启用 llmops 策略以在生产中部署的首选方式。

 

博客文章缩略图 2,标题为“检索增强微调:使用 GPT-4o 对 GPT-4o mini 进行微调,以适应特定领域的应用”

 

一旦微调作业开始运行,我们就可以监控其进度,并在完成后在 Azure OpenAI Studio 中分析微调后的模型。最后,我们使用微调后的模型创建一个新的部署,准备用于我们的专业领域任务。 

 

笔记本 3 - 我们的 RAFT 模型真的比基础模型更好吗?让我们检查一下! 

 

您可以首先查看 AI Studio 返回的内置指标,显示损失和准确度。我们希望看到准确度提高,而损失下降: 

博客文章缩略图 3,标题为“检索增强微调:使用 GPT-4o 对 GPT-4o mini 进行微调,以适应特定领域的应用”

 

但是,我们可以做更多的事情来衡量模型的质量。还记得我们一开始的测试数据集吗?这就是我们准备它的原因! 

 

虽然有很多评估选项,包括 AI Studio 评估,但在我们的示例中,我们使用开源库 RAGAS,它使用答案相关性、忠实度、答案相似性和答案正确性等指标来评估 RAG 管道。这些指标要么依靠 LLM 作为评判者,要么依靠嵌入模型来评估生成答案的质量和准确性。 

 

 

 

缩略图 4 标题为 gpt4o-mini vs gpt4o-mini-raft

gpt4o-mini 与 gpt4o-mini-raft 对比

我们可以通过调整训练参数和/或生成额外的训练数据来进一步改善模型指标。  

 

相关文章:

Azure OpenAI检索增强微调:使用 GPT-4o 对 GPT-4o mini 进行微调,以适应特定领域的应用

定制是关键! 生成式人工智能对企业最有影响力的应用之一是创建自然语言界面,这些界面经过定制,可以使用特定领域和用例数据来提供更好、更准确的响应。这意味着回答有关特定领域的问题,例如银行、法律和医疗领域。 我们经常谈…...

ISP Pipeline

系列文章目录 文章目录 系列文章目录前言一、RAW域二、RGB域三、YUV域总结 前言 一、RAW域 黑电平校正(BLC)数字增益调整(DGain)自动白平衡(AWB)局部色调映射(LTM)坏点修复&#xf…...

< IDE编程环境配置>

IDE编程环境配置 LIB,DLL区别 我们在写项目时会链接(调用)第3方库,或者比如在vs的解决方案solution创建项目project时,不仅可以开发可执行程序exe(可单独运行)(windows/控制台 应用…...

Golang | Leetcode Golang题解之第448题找到所有数组中消失的数字

题目&#xff1a; 题解&#xff1a; func findDisappearedNumbers(nums []int) (ans []int) {n : len(nums)for _, v : range nums {v (v - 1) % nnums[v] n}for i, v : range nums {if v < n {ans append(ans, i1)}}return }...

【Spring Boot 入门三】Spring Boot与数据库集成 - 构建数据驱动的应用

一、引言 在之前的文章中&#xff0c;我们已经对Spring Boot有了初步的认识&#xff0c;了解了如何构建第一个Spring Boot应用&#xff0c;以及如何通过配置文件来掌控应用的设置。这些知识为我们进一步探索Spring Boot与数据库的集成奠定了坚实的基础。 数据库是现代应用的核…...

Web 服务器与动态脚本语言通信的接口协议有哪些

Web 服务器与动态脚本语言通信的接口协议主要有以下几种&#xff1a; 一、FastCGI&#xff08;Fast Common Gateway Interface&#xff09; 特点&#xff1a;使用持久进程处理请求&#xff0c;减少了进程启动和关闭的开销&#xff0c;提高了性能和可扩展性。多个请求可由同一个…...

ESXI识别服务器磁盘,虚拟机显示无效

ESXI识别服务器磁盘&#xff0c;虚拟机显示无效 系统意外断电识别不到磁盘的情况下可以管理-》硬件-》搜索磁盘名称&#xff0c;选择切换直通&#xff0c;则虚拟机正常。...

【C++】 vector 迭代器失效问题

【C】 vector 迭代器失效问题 一. 迭代器失效问题分析二. 对于vector可能会导致其迭代器失效的操作有&#xff1a;1. 会引起其底层空间改变的操作&#xff0c;都有可能是迭代器失效2. 指定位置元素的删除操作--erase3. Linux下&#xff0c;g编译器对迭代器失效的检测并不是非常…...

【Spring基础3】- Spring的入门程序

目录 3-1 Spring的下载3-2 Spring的 jar 包3-3 第一个 Spring程序第一步&#xff1a;添加spring context的依赖&#xff0c;pom.xml配置如下第二步&#xff1a;添加junit依赖第三步&#xff1a;定义bean&#xff1a;User第四步&#xff1a;编写spring的配置文件&#xff1a;bea…...

golang学习笔记22-面向对象(四):接口【重要】

本节也是GO核心部分&#xff0c;很重要。 注&#xff1a;由于导包语句已经在19讲&#xff08;笔记19&#xff1a;面向对象的引入&#xff09;展示过了&#xff0c;所以这里就不展示了。 一、定义与实现 (1)接口中可以定义一组方法&#xff0c;但不需要实现&#xff0c;不需要…...

SpringBoot技术栈:打造下一代网上租赁系统

第2章 关键技术简介 2.1 Java技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xf…...

Vue-Lecture1-Notes

渐进式框架 Vue 被称为“渐进式框架”&#xff0c;是因为它允许开发者根据项目的需求逐步引入和使用其功能&#xff0c;而不需要一次性使用整个框架。简单来说&#xff0c;Vue 提供了从简单到复杂的功能层次&#xff0c;可以灵活选择使用。 按需使用&#xff1a;Vue 的核心功能…...

网上租赁系统开发:SpringBoot实践与应用

第2章 关键技术简介 2.1 Java技术 Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中&#xff0c;Java的身影无处不在&#xff0c;并且拥有旺盛的生命力。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xf…...

User-Agent在WebMagic爬虫中的重要性

对于需要从网站上抓取数据的开发者来说&#xff0c;WebMagic是一个强大的工具。它是一个简单灵活的Java爬虫框架&#xff0c;用于抓取网页数据。在爬虫技术中&#xff0c;User-Agent&#xff08;用户代理&#xff09;是一个关键的HTTP请求头&#xff0c;它告诉服务器关于客户端…...

如何解决 Docker 下载 mcr.microsoft.com 镜像慢的办法

一、介绍 MCR(Miscrosoft Container Registry) 加速器&#xff0c;助你在中国大陆急速下载 netcore 相关的 docker 镜像。二、解决办法。     1、如何使用       至少三种方法进行加速&#xff1a;         使用 docker-mcr &#xff08;推荐&#xff09;  …...

网络编程,端口号,网络字节序,udp

前面一篇我们讲了网络的基础&#xff0c;网络协议栈是什么样的&#xff0c;数据如何流动传输的&#xff1b;接下来这篇&#xff0c;我们将进行实践操作&#xff0c;真正的让数据跨网络进行传输&#xff1b; 1.网络编程储备知识 1.1 初步认识网络编程 首先我们需要知道我们的…...

Android入门

下载Android studio&#xff0c;创建第一个项目 模板可以选择empty views Activity 在这个界面可以修改&#xff0c;使用语言&#xff0c;项目名字&#xff0c;存储路径以及适用版本 完成后&#xff0c;得到一个最初始的Android 项目&#xff0c;红色标记的两个文件&#xf…...

二叉树深搜专题篇

目录 计算布尔二叉树的值 求根节点到叶节点数字之和 二叉树剪枝 验证二叉搜索树 二叉搜索树中第K小的元素 二叉树的所有路径 计算布尔二叉树的值 题目 思路 这道题其实是比较简单的&#xff0c;对二叉树来一次后序遍历即可&#xff0c;当遇到叶子结点直接返回叶子节点中…...

堆【数据结构C语言版】【 详解】

目录-笔记整理 一、思考二、堆概念与性质三、堆的构建、删除、添加1. 构建2. 删除3. 添加 四、复杂度分析4.1 时间复杂度4.2 空间复杂度 五、总结 一、思考 设计一种数据结构&#xff0c;来存放整数&#xff0c;要求三个接口&#xff1a; 1&#xff09;获取序列中的最值&#…...

初识React

在最新写需求的时候&#xff0c;我遇到了一个需求&#xff0c;这个需求改后端改的不算多&#xff0c;而且也比较简单&#xff0c;但是在改前端的时候&#xff0c;很复杂。因为我们这个项目用的是React做前端的&#xff0c;而我对于前端知识没有了解&#xff0c;所以理解很多代码…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

大数据治理的常见方式

大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法&#xff0c;以下是几种常见的治理方式&#xff1a; 1. 数据质量管理 核心方法&#xff1a; 数据校验&#xff1a;建立数据校验规则&#xff08;格式、范围、一致性等&#xff09;数据清洗&…...