什么是RAG

RAG概述

RAG,全称为Retrieval-Augmented Generation(检索增强生成),是一种结合了信息检索和文本生成的人工智能技术。简单来说,RAG通过从大量文档或数据库中查找相关信息,并基于这些信息来生成更准确、更有针对性的回答或内容。

为什么需要RAG?

在传统的文本生成模型中,比如一些大型语言模型,它们虽然能够生成流畅的文本,但有时候会因为训练数据有限或者记忆能力不足而产生错误的信息。而RAG通过引入外部知识源(如互联网上的文章、书籍等)作为补充资料,在生成答案之前先进行相关资料的检索,从而提高了输出内容的质量与准确性。就像作为人类的我们,解答一个问题的时候,是仅通过大脑的知识来解答,还是通过翻阅外部资料结合我们大脑储备的知识来解答,往往是后者可以提高我们解答的质量和准确性。

RAG的工作流程

1.输入问题:用户向系统提出一个问题。

2.检索阶段:系统根据问题去搜索其内部或外部的知识库,找到与问题最相关的几个文档片段。

3.融合生成:将检索到的相关文档与原始问题一起送入一个强大的文本生成模型中,该模型利用这些上下文信息来推理生成最终的答案。

4.输出结果:返回给用户一个经过优化处理后的答案。

RAG的优势与局限

核心优势:

  • 动态知识整合:知识库更新后即时生效(如当天新增政策次日可用)。

  • 可解释性增强:答案可标注出处(如显示引用《XX省xx规划》第X条)。

  • 冷启动友好:仅需结构化知识库即可实现80%基础场景覆盖。

关键局限:

  • 检索瓶颈:多跳推理场景(如"某企业是否符合疫情后纾困政策")准确率可能低于60%。

  • 延迟问题:复杂查询时多轮检索可能导致响应超2秒(某些场景可能要求<1.5秒)。

  • 知识孤岛:无统一标准格式的非结构化数据(如长篇的手写会议纪要)处理能力有限。


什么是Distillation


Distillation概述

Distillation(模型蒸馏)是一种模型压缩技术,旨在将复杂大模型(或多个模型的集成)的知识转移到一个更小、更简单的模型中。后者通常被称为学生模型,而前者被称为教师模型。Hinton在2014年的NIPS会议上提出了知识蒸馏的概念,其主要优势在于降低部署成本。

为什么这个过程被称为“蒸馏”而不是“知识转移”呢?因为在使用大模型时,可以调整一个名为Temperature(温度)的参数。该参数越大,模型每次的输出的差异性就越大,更容易产生新颖的结果。在知识蒸馏的训练过程中,通过增加温度参数,使教师模型在各个类别上的输出概率值变得平缓,从而迫使学生模型仔细辨别这些类别间的细微差异,进而更好地学习。因此,可以说这一过程是通过升温来提取精华,传授知识,类似于化学中的蒸馏过程,故得名“蒸馏”。如果感兴趣,可以拜读一下深度学习教父——杰弗里·埃弗里斯特·辛顿(Geoffrey Everest Hinton)在2015年发表的这篇论文《Distilling the Knowledge in a Neural Network》,地址:https://arxiv.org/pdf/1503.02531,下面是论文中关于蒸馏的说明:

翻译过来就是:

我们更通用的解决方案称为“蒸馏”,其方法是提高最终softmax的温度,直到复杂模型产生一组平缓的目标概率分布。随后,在训练小模型时,我们也使用这个较高的温度,以便让小模型能够匹配这些平缓的目标。

Distillation的优势与局限

核心优势:

●效率与成本:

蒸馏后的小模型推理速度提升3-10倍,硬件成本降低80%以上(如从2块 RTX A6000降级为1块RTX 3090部署)。

●领域适配性:通过政府专有数据(如历年政策文件、地方规章)微调,特定任务准确率可提升15-30%。

●隐私可控性:完全本地化部署,避免第三方API数据泄露风险。

关键局限:

●数据依赖:需数万~数十万条高质量标注数据(如标注政策条款关联性)。

●维护成本:法规更新后需重新蒸馏,年均成本可能较高。

●泛化能力:过度适配历史数据可能导致新政策响应滞后。

Distillation模型的刚需场景

以下3条全部满足,则你或许应该考虑Distillation,而不是单纯在RAG上进行投入。

1.(数据敏感性较高 or 与互联网隔离)

2.(不能承受14B及以上开源大模型需要的硬件成本or数据非常特殊,开源大模型本身学习的较少)

3.(对响应有低延迟要求 or 多跳推理场景占比大)

注:所谓多跳推理场景是指需要推理多层,借助跨领域知识才能准确回复的场景。例如,判断一个企业是否符合疫情纾困政策,需要:

1.理解企业的经营状况

2.了解相关政策的具体要求

3.分析企业各项指标与政策条件的匹配度

4.考虑政策实施的时间节点

5.评估其他可能影响资格的因素

在这种场景下,虽然RAG可以提供相关信息支持,但由于需要多层次的推理和判断,单纯依赖检索可能难以给出准确的结论。相比之下,经过专门训练的知识蒸馏模型可能会表现得更好,因为它可以在训练过程中学习到这种复杂的推理模式。

总结一下,RAG大部分场景是需要的,Distillation技术建议了解和实操一下,至于要不要投入更多,则取决你面对的刚需场景。

本篇就这么多内容啦,感谢阅读

你的推荐转发是我持续的创作动力!O(∩_∩)O~

DeepSeek普照的阳光下,继续RAG还是Distillation?的更多相关文章

  1. app电池续航上&&下--Android自动化测试学习历程

    章节:自动化基础篇——电池续航自动化测试上&&下 主要讲解内容及笔记: 一.影响手机电量的因素和理论: 下面是一个表格:当今主流手机显示屏技术.机型与功耗对照表:   技术  类型   ...

  2. [转帖]cocos2d-x 3.0rc开发指南:Windows下Android环境搭建

    原文请看:http://blog.csdn.net/linzhengqun/article/details/21663341 鲜红字体请注意:文中红色字体乃是本文博主阳光下的蒲公英添加.红色字体部分造 ...

  3. 《小白的CFD之旅》招募写手

    <小白的CFD之旅>系列招募写手. 由于工作繁忙,<小白的CFD之旅>系列更新缓慢,现招募志愿者写手.这是一个分享平台,欢迎各位愿意分享自己CFD学习经历的朋友们. <小 ...

  4. (转)完全用GNU/Linux工作 by 王珢

    完全用GNU/Linux工作 王珢      (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾 ...

  5. OC-@property、self及类的本质

    让代码书写更加简便 --1-- 设置器和访问器 1.1 setter 1.2 getter --2-- 类的本质 2.1 类类型的对象 2.2 类的本质 2.3 如何获取类对象 2.4 类对象的使用 ...

  6. Thymeleaf+Spring整合

    前言 这个教程介绍了Thymeleaf与Spring框架的集成,特别是SpringMvc框架. 注意Thymeleaf支持同Spring框架的3.和4.版本的集成,但是这两个版本的支持是封装在thym ...

  7. B 最熟悉的陌生人 (纪念当年就读的梅州市江南高级中学)

    最熟悉的陌生人 作者:张慧桥 枪与玫瑰 我看了一下聊天室的名单,哈哈哈,我不禁喜出望外:蝶恋花那丫头片子挂在线上呢,真是天助我也.初时的担心一扫而光,我精神抖擞地喝下一大口咖啡,猛抽了三口烟,现在的我 ...

  8. [综]隐马尔可夫模型Hidden Markov Model (HMM)

    http://www.zhihu.com/question/20962240 Yang Eninala杜克大学 生物化学博士 线性代数 收录于 编辑推荐 •2216 人赞同 ×××××11月22日已更 ...

  9. Direct3D学习笔记 - 浅析HDR Lighting Sample

    一.HDR简介 HDR(High Dynamic Range,高动态范围)是一种图像后处理技术,是一种表达超过了显示器所能表现的亮度范围的图像映射技术.高动态范围技术能够很好地再现现实生活中丰富的亮度 ...

  10. SQL Server 2012 数据库笔记

    慕课网 首页 实战 路径 猿问 手记     Python 手记 \ SQL Server 2012 数据库笔记 SQL Server 2012 数据库笔记 2016-10-25 16:29:33 1 ...

随机推荐

  1. SharpZipLib打.tar.gz压缩包

    .tar.gz是linux上常见的压缩格式,linux默认支持这种压缩格式,所以我们经常见到在linux系统上的.tar.gz包. 这里我们说一下怎么用SharpZipLib来打一个.tar.gz的压 ...

  2. R机器学习:朴素贝叶斯算法的理解与实操

    最近又看了很多贝叶斯算法的一些文章,好多的文章对这个算法解释起来会放一大堆公式,对代数不好的人来说真的很头疼.本文尝试着用大白话写写这个算法,再做个例子,帮助大家理解和运用. Naive Bayes ...

  3. Dapr-2: 世界是分布式的

    第 2 章 世界是分布的 只需要问任何达人:现代的.分布式的系统已经到来,单体应用已经过时. 但是,不仅是达人,渐进的 IT 领袖,企业架构师,以及精明的开发者,在探寻和评估现代分布式应用的时候,也在 ...

  4. Qt开源作品39-日志输出增强版V2022

    一.前言 之前已经开源过基础版本,近期根据客户需求和自己的项目需求,提炼出通用需求部分,对整个日志重定向输出类重新规划和重写代码. 用Qt这个一站式超大型GUI超市做开发已经十二年了,陆陆续续开发过至 ...

  5. FluentAssertions:C#单元测试断言库,让测试代码更加直观、易读!

    推荐一个C#开源库,用于单元测试中的断言,它提供了一系列的扩展方法,使得单元测试的断言看起来更加自然流畅. 01 项目简介 FluentAssertions 是一个基于 .NET 的断言库,它提供了一 ...

  6. 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.5版已发布

    关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持UDP .TCP .WebSocket 三种协议,支持iOS.A ...

  7. 不为人知的网络编程(十二):彻底搞懂TCP协议层的KeepAlive保活机制

    文中引用了参考资料中的部分内容,本文参考资料详见文末"参考资料"一节,感谢资料分享者. 1.引言 对于IM开发者而言,网络保活这件事再熟悉不过了,比如这是我最近一篇有关网络保活话题 ...

  8. 在 Vercel 部署随机图 API

    在本文中,将详细介绍如何在 Vercel 平台上部署一个具有分类功能的随机图片 API.通过这个 API,用户可以根据不同的分类获取随机图片链接,并且还可以从所有分类中随机获取一张图片. 项目结构 首 ...

  9. biancheng-socket编程

    http://c.biancheng.net/socket/ 网络编程就是编写程序使两台联网的计算机相互交换数据.这就是全部内容了吗?是的!网络编程要比想象中的简单许多.那么,这两台计算机之间用什么传 ...

  10. Netty-快速入门

    ---------------------------------------------------- netty是什么? Netty is an asynchronous event-driven ...