企业级大模型的护城河:RAG + 微调

news2024/9/21 4:30:55

围绕LLM的炒作是前所未有的,但这是有道理的,生成式 AI 有潜力改变我们所知道的社会。

在很多方面,LLM将使数据工程师变得更有价值——这令人兴奋!

不过,向老板展示数据发现工具或文本到 SQL 生成器的炫酷演示是一回事,而将其与公司的专有数据(甚至更重要的客户数据)一起使用则是另一回事。

很多时候,公司急于构建人工智能应用程序,却对其实验的财务和组织影响缺乏远见。 这不是他们的错——高管和董事会应该为围绕这项(以及大多数)新技术的“快点走”心态承担责任。 (还记得 NFT 吗?)。

为了让人工智能(尤其是生成式人工智能)取得成功,我们需要退后一步,记住任何软件如何为企业做好准备。 为了实现这一目标,我们可以从其他行业获取线索,了解企业的准备情况,并将这些原则应用于生成式人工智能。

在我看来,企业就绪的生成式AI必须:

  • 安全和私密:你的AI应用程序必须确保数据安全、私密且合规,并具有适当的访问控制。 思考:AI的 SecOps。
  • 可扩展:你的AI应用程序必须易于部署、使用和升级,并且具有成本效益。 如果一个数据应用程序需要几个月的时间来部署、使用起来很乏味,并且在不引入一百万个其他问题的情况下不可能升级,那么您就不会购买或构建该数据应用程序。 我们不应该以任何不同的方式对待人工智能应用。
  • 值得信赖:你的AI应用程序应该足够可靠和一致。 我很难找到一位 CTO 愿意将自己的职业生涯押在购买或构建一款生成不可靠代码或生成随意且具有误导性的见解的产品上。

考虑到这些护栏,我们是时候开始给予生成式人工智能应有的努力了。 但这并不那么容易……

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包

1、企业AI为何难以实现?

简而言之,用于扩展、保护和操作 LLM 应用程序的底层基础设施尚不存在。

与大多数应用程序不同,人工智能在很大程度上是一个黑匣子。 我们“知道”我们要输入什么(原始的,通常是非结构化数据),我们“知道”我们要输出什么,但我们不知道它是如何到达那里的。 这很难扩展、安全和操作。

以 GPT-4 为例。 虽然 GPT-4 在某些任务(例如参加 SAT 和 AP 微积分 AB 考试)方面击败了 GPT 3.5,但它的一些输出充满了幻觉或缺乏充分完成这些任务所需的背景。 幻觉是由多种因素引起的,从嵌入不良到知识切断,并且经常影响公开或开放的LLM根据从互联网上抓取的信息进行培训而生成的响应质量,这些信息占大多数模型的比例。

为了减少幻觉,更重要的是,为了回答有意义的业务问题,公司需要用自己的专有数据来增强LLM,其中包括必要的业务背景。 例如,如果客户要求航空公司聊天机器人取消机票,该模型将需要访问有关客户的信息、有关他们过去的交易、有关取消政策和潜在的其他信息。 所有这些目前都存在于数据库和数据仓库中。

如果没有这种背景,人工智能只能根据公共信息进行推理,这些公共信息通常发布在互联网上,并且最初是在这些公共信息上进行训练的。 难题就在这里——公开专有的企业数据并将其整合到业务工作流程或客户体验中几乎总是需要坚实的安全性、可扩展性和可靠性。

2、实现企业级 AI 的两条途径:RAG 和微调

当谈到让人工智能企业做好准备时,最关键的部分出现在LLM开发过程的最后:检索增强生成(RAG)和微调。

RAG 将实时数据库集成到LLM的回复生成过程中,确保输出最新且真实。 另一方面,微调在目标数据集上训练模型以改善特定领域的响应。

然而,值得注意的是,RAG 和微调并不是相互排斥的方法,应该根据您的特定需求和用例来利用(通常是同时使用)。

3、何时使用 RAG

RAG 是一个框架,它通过让模型在尝试回答提示时访问数据库来提高 LLM 输出的质量。 该数据库是一个经过精心策划且值得信赖的潜在专有数据主体,允许模型将最新且可靠的信息纳入其响应和推理中。 这种方法最适合需要额外上下文信息的人工智能应用程序,例如客户支持响应(如我们的航班取消示例)或公司企业通信平台中的语义搜索。

RAG 应用程序旨在在生成响应之前从知识源检索相关信息,这使得它们非常适合查询结构化和非结构化数据源,例如矢量数据库和特征存储。 通过检索信息以提高法学硕士在输出生成时的准确性和可靠性,RAG 在减少幻觉和降低培训成本方面也非常有效。 RAG 还为团队提供了一定程度的透明度,因为您知道输入模型以生成新响应的数据来源。

关于 RAG 架构需要注意的一件事是,它们的性能在很大程度上取决于您构建有效数据管道的能力,使企业数据可用于 AI 模型。

4、何时使用微调

微调是在较小的、特定于任务和标记的数据集上训练现有LLM,并根据新数据调整模型参数和嵌入的过程。 微调依赖于预先策划的数据集,这些数据集不仅告知信息检索,还告知您要为其生成输出的领域的细微差别和术语。

根据我们的经验,微调最适合特定领域的情况,例如以利基语气或风格响应详细提示,即法律简报或客户支持票。 它还非常适合克服信息偏见和其他限制,例如语言重复或不一致。 过去一年的多项研究表明,经过微调的模型的性能显着优于 GPT-3 的现成版本和其他公开可用的模型。 事实证明,对于许多用例来说,经过微调的小型模型可以胜过大型通用模型,这使得微调在某些情况下成为提高成本效率的可行途径。

与 RAG 不同,微调通常需要更少的数据,但代价是更多的时间和计算资源。 此外,微调的操作就像一个黑匣子; 由于模型内化了新的数据集,因此确定新反应背后的推理变得具有挑战性,而幻觉仍然是一个有意义的问题。

微调 - 与 RAG 架构一样 - 需要构建有效的数据管道,使(标记的!)企业数据可用于微调过程。 这绝非易事。

5、为什么 RAG 可能对您的团队有意义

重要的是要记住,RAG 和微调不是相互排斥的方法,具有不同的优点和缺点,并且可以一起使用。 然而,对于绝大多数用例,RAG 在交付企业生成式 AI 应用程序时可能最有意义。

原因如下:

  • RAG 安全和隐私更易于管理:与 AI 模型不同,数据库具有内置角色和安全性,并且由于标准访问控制,谁看到什么是很容易理解的。 此外,通过访问安全且私密的专有数据语料库,您可以更好地控制使用哪些数据。 通过微调,训练集中包含的任何数据都会向应用程序的所有用户公开,而没有明显的方法来管理谁看到什么。 在许多实际场景中,尤其是在涉及客户数据时,没有这种控制是不行的。
  • RAG 更具可扩展性:RAG 比微调更便宜,因为后者涉及更新大型模型的所有参数,需要大量的计算能力。 此外,RAG 不需要标记和制作训练集,这是一个人力密集型的过程,可能需要数周甚至数月的时间才能完善每个模型。
  • RAG 可带来更值得信赖的结果。 简而言之,RAG 可以更好地处理动态数据,从最新数据的精选数据集中生成确定性结果。 由于微调在很大程度上就像一个黑匣子,因此很难查明模型如何生成特定结果,从而降低了信任和透明度。 通过微调,幻觉和不准确是可能的,甚至很可能,因为您依赖模型的权重以有损方式对业务信息进行编码。

在我看来,企业级人工智能将主要依赖于 RAG,并在更细致或特定领域的用例中进行微调。 对于绝大多数应用程序来说,微调对于利基场景来说是一个不错的选择,一旦行业能够降低大规模运行人工智能所需的成本和资源,微调就会更频繁地发挥作用。

然而,无论您使用哪一种,您的人工智能应用程序开发都需要通过某些数据存储(无论是 Snowflake、Databricks、像 Pinecone 这样的独立矢量数据库还是其他完全不同的东西)为这些模型提供公司数据的管道。 归根结底,如果在内部流程中使用生成式人工智能从非结构化数据中提取分析和洞察,它将被用于数据管道。

6、RAG 需要数据的可观察性

在 2010 年代初,机器学习被吹捧为一种神奇的算法,如果你给它的特征赋予完美的权重,它就会在命令下创造奇迹。 然而,通常提高机器学习性能的是对高质量功能的投资,特别是数据质量。

同样,为了让企业人工智能发挥作用,您需要关注生成模型所依赖的数据的质量和可靠性——可能是通过 RAG 架构。

由于 RAG 依赖于动态的、有时是最新的数据,因此需要数据可观察性来满足其企业就绪的期望。 数据可能因多种原因而损坏,例如格式错误的第三方数据、错误的转换代码或失败的 Airflow 作业。 事实总是如此。

数据可观察性使团队能够在整个数据生态系统中大规模监控、警报、分类和解决数据或管道问题。 多年来,它一直是现代数据堆栈的必备层。 随着 RAG 重要性的提高和人工智能的成熟,可观察性将成为LLM发展的关键合作伙伴。

RAG 和企业人工智能发挥作用的唯一方法是您可以信任数据。 为了实现这一目标,团队需要一种可扩展的自动化方法来确保数据的可靠性,以及一种企业级方法来识别根本原因并快速解决问题——在问题影响到他们所服务的LLM之前。

7、那么,事实上的LLM栈是什么?

就在我们说话的时候,人工智能工具的基础设施和技术路线图正在开发中,每天都有新的初创公司涌现来解决各种问题,行业巨头也声称他们也在应对这些挑战。 当谈到将企业数据整合到人工智能中时,我看到了这场竞赛中的三匹马。

第一匹马:矢量数据库。 Pinecone、Weaviate 和其他公司正在作为支持 RAG 架构的必备数据库平台而闻名。 虽然这些技术显示出很大的前景,但它们确实需要启动堆栈的新部分并创建工作流程以从安全性、可扩展性和可靠性的角度支持它。

第二匹马:由 OpenAI 或 Anthropic 等第三方 LLM 开发人员构建的模型的托管版本。 目前,由于易于使用,大多数团队通过 API 与这些崭露头角的人工智能领导者一起获得生成式人工智能修复。 插入 OpenAI API 并在几分钟内利用尖端模型? 如果您需要模型生成代码或根据公共信息解决众所周知的非特定提示,那么这种方法开箱即用,效果很好。 如果您确实希望将专有信息合并到这些模型中,则可以使用这些平台提供的内置微调或 RAG 功能。

最后,第三匹马:现代数据栈。 Snowflake 和 Databricks 已经宣布,他们正在将矢量数据库嵌入到他们的平台以及其他工具中,以帮助将这些平台上已经存储和处理的数据合并到法学硕士中。 这对许多人来说很有意义,并且允许负责人工智能计划的数据团队利用他们已经使用的工具。 既然基础已经到位,为什么还要重新发明轮子呢? 更不用说能够轻松地将传统关系数据与矢量数据连接起来的可能性……与另外两匹马一样,这种方法也有一些缺点:Snowflake Cortex、Lakehouse AI 和其他 MDS + AI 产品才刚刚起步,需要一些前期准备 投资将矢量搜索和模型训练纳入您现有的工作流程。 为了更深入地了解这种方法,我鼓励您查看 Meltano 的相关文章,了解为什么最好的法学硕士堆栈可能就在您面前。

无论我们选择什么马,有价值的业务问题都无法通过基于互联网数据训练的模型来回答。 它需要有公司内部的背景。 通过以安全、可扩展和可信的方式提供此上下文,我们可以实现企业级人工智能。

8、企业AI的未来就在您的管道中

为了让人工智能发挥这种潜力,数据和人工智能团队需要以应有的勤奋对待LLM增强,并将安全性、可扩展性和可靠性作为首要考虑因素。 无论您的用例需要 RAG 还是微调(或两者兼而有之),您都需要确保数据栈基础到位,以保持低成本、性能一致和高可靠性。

数据需要安全且私密; LLM部署需要具有可扩展性; 并且您的结果需要值得信赖。 通过可观察性保持数据质量的稳定脉动对于这些需求至关重要。

从孤立的 X 演示到企业级人工智能的演变中最好的部分是什么? 在拥有和推动生成式 AI 投资的投资回报率方面,RAG 为数据工程师提供了最佳席位。

我已准备好迎接企业级人工智能。 你呢?


原文链接:企业级LLM的护城河 - BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1421918.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解密数据清洗,SQL中的数据分析

大家好,数据库表中的数据经常会很杂乱。数据可能包含缺失值、重复记录、异常值、不一致的数据输入等,在使用SQL进行分析之前清洗数据是非常重要的。 当学习SQL时,可以随意地创建数据库表,更改它们,根据需要更新和删除…

云原生 k8s 可能使用到的端口整理【不定期更新】

k8s 因为涉及到的组件太多了,所以端口有很多,这里整理了日常所接触的接口,后续有新的再更新。 如果是通过公网 IP 进行安装的时候需要根据实际情况有选择的进行放开;一般只有云厂商会提供公网 IP 访问,自建的话不建议 …

GrayLog踩坑历险记

背景 GrayLog作为ELK的替代产品,是新生代的日志采集框架。在一个采集节点日志的需求中,因为节点很多,产生的日志也很多,因此尝试了使用GrayLog进行日志的采集。下面记录一下使用GrayLog中遇到的坑和解决方案。 一、部署与启动 …

基于YOLOv8的船舶目标检测系统(Python源码+Pyqt6界面+数据集)

博主简介 AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8优化创新,轻松涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制造,工业项目落地经验丰富; …

鸿蒙南向开发——GN快速入门指南

运行GN(Generate Ninja) 运行gn,你只需从命令行运行gn,对于大型项目,GN是与源码一起的。 对于Chromium和基于Chromium的项目,有一个在depot_tools中的脚本,它需要加入到你的PATH环境变量中。该脚本将在包含当前目录的…

空间数据分析和空间统计工具库PySAL入门

空间数据分析是指利用地理信息系统(GIS)技术和空间统计学等方法,对空间数据进行处理、分析和可视化,以揭示数据之间的空间关系和趋势性,为决策者提供有效的空间决策支持。空间数据分析已经被广泛运用在城市规划、交通管理、环境保护、农业种植…

主从数据库MySQL服务重启步骤与注意事项

主从数据库MySQL服务重启步骤与注意事项 实验环境: 172.20.26.34 (主应用服务器) 172.20.26.26 (备应用服务器) 172.20.26.37 (主库服务器) 172.20.26.38 (从库服务器&…

Spring Boot 中使用 Spring MVC基础

Spring MVC基础 一、控制器 controller1.定制控制器的方法(1)接收请求(2)接收请求参数(3)返回值 二、模型 Modle三、视图 View四、总结 Spring MVC 是非常著名的 Web 应用框架,现在的大多数 Web…

无需 Root 卸载手机预装软件,精简过的老年机又行了

基础准备 准备目标手机、USB 数据线、以及一台电脑。手机 USB 连接电脑,开发者选项中打开 USB 调试。(开发者选项默认隐藏,需要在关于手机中多次点击版本号才能调出)。 安装手机驱动,下载安装 ADB 工具包。 开始操作…

Excel得到JSON串

很多时候业务都需要做一种从Excel读取或者导入数据的功能,这在cs程序比较简单,在BS程序上如果封装不好的话那么写起来还是很费劲的,这次封装Excel读取操作。 先看使用 对,你没有看错,就是这么简单。 封装 基础设计…

TensorFlow2实战-系列教程11:RNN文本分类3

🧡💛💚TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 6、构建训练数据 所有的输入样本必须都是相同shape(文本长度,…

Prometheus基于pod部署

1、kube-api的自动发现:Prometheus的容器化部署(生产中都是pod部署) 2、部署export (1)创建目录 (2)创建命名空间 (3)部署node-export ①9100端口被占用,停…

useEffect的第二个参数

目录 1、第一个参数: 2、第二个参数: 2.1 不传值:无限循环 2.2 空数组作为依赖:执行一次 2.3 基本类型作为依赖:无限循环 2.4 引用类型 2.4.1 数组作为依赖:无限循环 2.4.2 函数作为依赖&#…

添加了gateway之后远程调用失败

前端提示500,后端提示[400 ] during [GET] to [http://userservice/user/1] 原因是这个,因为在请求地址写了两个参数,实际上只传了一个参数 解决方案:加上(required false)并重启所有相关服务

Redis(十)SpringBoot集成Redis

文章目录 连接单机mvnYMLController.javaRedisConfig.java 连接集群YML问题复现 RedisTemplate方式 连接单机 mvn <!--Redis--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</art…

Qt应用开发(安卓篇)——调用ioctl、socket等C函数

一、前言 在 Qt for Android 中没办法像在嵌入式linux中一样直接使用 ioctl 等底层函数&#xff0c;这是因为因为 Android 平台的安全性和权限限制。 在 Android 中&#xff0c;访问设备硬件和系统资源需要特定的权限&#xff0c;并且需要通过 Android 系统提供的 API 来进行。…

Java链表(2)

&#x1f435;本篇文章将对双向链表进行讲解&#xff0c;模拟实现双向链表的常用方法 一、什么是双向链表 双向链表在指针域上相较于单链表&#xff0c;每一个节点多了一个指向前驱节点的引用prev以及多了指向最后一个节点的引用last&#xff1a; 二、双向链表的模拟实现 首先…

深度学习:机器智能的革命性突破与未来挑战

深度学习&#xff1a;机器智能的革命性突破与未来挑战 深度学习是人工智能领域的一个重要分支&#xff0c;它利用神经网络模拟人类大脑的学习过程&#xff0c;通过大量数据训练模型&#xff0c;使其能够自动提取特征、识别模式、进行分类和预测等任务。近年来&#xff0c;深度学…

忍不了,客户让我在一个接口里兼容多种业务逻辑

分享是最有效的学习方式。 博客&#xff1a;https://blog.ktdaddy.com/ 老猫的设计模式专栏已经偷偷发车了。 不甘愿做crud boy&#xff1f;看了好几遍的设计模式还记不住&#xff1f;那就不要刻意记了&#xff0c;跟上老猫的步伐&#xff0c;在一个个有趣的职场故事中领悟设计…

一文掌握SpringBoot注解之@Component 知识文集(8)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…