NVIDIA 大模型 RAG 分享笔记

这篇具有很好参考价值的文章主要介绍了NVIDIA 大模型 RAG 分享笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大语言模型在垂直领域落地的三个挑战:

  • 数据是有一定范围的。大量的数据在一定的时间内训练完成的。确定数据对于基础模型是有一定的范围的。对专业领域,垂直领域的应用场景来说,知识是不够全面的。是缺乏专业的知识的。
  • 数据有时间限制的。知识更新迭代快,给的回答可能过时
  • 幻觉

RAG 是一种解决的 pipeline.

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

什么是 RAG以及为什么能解决大预言模型所带来的的这三个问题

RAG对于大语言模型来说类比于开卷考试。

三个步骤

  • Retriveal
  • Augmentation: 增强的 prompt
    • 增强的上下文是有理有据的,减少幻觉
  • 参数化的知识,结合传入的数据,生成

技术

  • 非参数化的技术:数据库的部分
  • 预训练的参数化部分
    • 基础大语言模型的选择
    • 部署平台的选择,提升用户的体验

RAG 不是一项技术而是整体的 Pipeline

非参数化 :数据库部分

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

加载到数据库中

准备好数据,需要放进数据库中的数据类型
NVIDIA 大模型 RAG 分享笔记,大模型,笔记

  • Documents Loader

    • langchain 或其他工具提供的加载方式进行数据加载
    • 数据本身可能涉及到一些冗余重复的文字,比如统一的公司后缀:这是一个关于。。。之类的文档。。。声明之类,在放进数据库之前,应该统一进行清洗处理。
      NVIDIA 大模型 RAG 分享笔记,大模型,笔记
    • Chunk
      因为大语言模型对于输入的窗口是有一定的限制的,不能太大。这取决于基础模型在本身的训练过程中或者它的 attention 机制。那么我们在分 chunk 的时候可以有不同的选择。可以用固定大小的chunk,也可以用动态的,动态的是指用一些标志来作为一个分割,比如一个段落按回车符分或者一个完整的句子按句号分,就是尽可能划分为有意义的分块。
      针对纯文本,可以增加重叠部分。好处是有一个承上启下的作用,给到模型的时候会附带逻辑。
      NVIDIA 大模型 RAG 分享笔记,大模型,笔记
  • Embedding Model

    • 一般是一个 encoder model.
    • 可能需要加prompt,才能达到比较好的检索效果
      NVIDIA 大模型 RAG 分享笔记,大模型,笔记
  • Vector Database

    • 是否支持分布式部署
    • 是否支持需要的索引方式等
      NVIDIA 大模型 RAG 分享笔记,大模型,笔记

检索阶段

应用上线之后,真的来了问题,需要把问题转换成向量,去向量空间里面去做一个近似性搜索,找到相关文档进行返回。

  • Database Search
    • precision:检出的文档是否是问题相关的上下文
    • recall: 和问题相关的文档是否全部检出,只返回一两个可能无法提升rag整体效果
      所以如何提高 similarity search 返回整体的精度也是非常重要的一点。
      NVIDIA 大模型 RAG 分享笔记,大模型,笔记
      如何采用技术来提升相似性的精确度和准确度。

一个好的向量数据会把含义相近的上下文放在一起,区分单纯的关键词匹配。
索引一般采用的是 ANN 算法。

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

提升检索效率的技术

分为检索前、检索中、检索后三个阶段,看可以采用的技术。
NVIDIA 大模型 RAG 分享笔记,大模型,笔记

检索前:对query做处理

use query routing

借助 LLM 的能力,可以理解成有一个小小的 LLM agent,拿到用户的问题之后,会去看问题属于哪一类。
比如会在数据库中建立两类索引,一类是和总结相关的,另外的索引就是常规的明细介绍。如果发现问题是和总结相关的,小agent就应该说你应该去 summay index 里面去做检索。
NVIDIA 大模型 RAG 分享笔记,大模型,笔记

Query transformations

借助 LLM 的技术,对 query 做一个转换

  • 重写问题。问题问得不好,LLM 重写一个问题再去向量数据库中检索
  • HyDE, 先不用 RAG 这样的增强方式,就让这个问题直接到大语言模型产生一个答案。然后把问题和答案同时送到向量数据库中去做检索
  • 将复杂问题做拆解,拆解之后再进行检索
Sentence-window retrieval & Auto-merge retriveal

chunk 如果太大, 向量表示可能隐藏掉相关文本的语义。
使用从小到大的技术。

  • 使用小的chunk 去生成 embedding vector。
    但是因为chunk比较小,给到大语言模型的上下文是不足够的,让后就使用 “大”(to big)
    • Sentence-window retrieval : 把每个句子都去生成一个多维向量,检索的时候是精确检索到了句子,为了提高上下文的丰富性,可以把前5个句子,后5个句子同时送到大语言模型中做一个上下文的增强。
    • Auto-merge retriveal:采用树型的存储结构,比如知道一个段落产生了这个 vector, 知道段落属于哪个小节,属于哪章节。检索完小的段落之后,可以找到它的父节点,可以把小节的内容,更丰富的内容送进大模型中去做生成。这样就能够保证检索的精度,同时保证上下文够丰富,能够生成符合我们预期的内容。
      NVIDIA 大模型 RAG 分享笔记,大模型,笔记

检索中

hybrid: 混合的检索方式 keyword+embedddings.
把 keyword 加到 query 里面,做一个精确的检索?具体做法?
NVIDIA 大模型 RAG 分享笔记,大模型,笔记

检索后

Re-ranker

这个是比较重要的,也是建议刚开始建立原型的话也可以去采用的一个技术.

相似性搜索后,和相关不是百分百对应的。检索出来的上下文不一定是相关的。可以再用一个另外一个小型的模型,输入是用户的问题以及检索出来的文档,去看问题和文档的相关性。
再去做一个排序,做一个二级检索。二级检索的时候就要对前面的检索进行一定的调整。(应该只是对第一轮检索做了一个相关性过滤)
第一轮,检索100个或30个,re-ranker 后用 top5, 放进大语言模型做生成
NVIDIA 大模型 RAG 分享笔记,大模型,笔记

Meta-data filtering

存储时可以把作者存入
检索时可以增加作者这个元数据去做二次过滤,去提升检索效果

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

Prompt Compression

大语言模型有 window 限制, 找到的 chunk,尽管用了一些方法,但是还是存在一些噪声,和query不太相关,但是却不太能把它删除。
再借助另一个语言模型,把增强型的prompt再进行一个压缩,把有用的信息增强,把不相关的信息减弱。

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

总结

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

参数化的部分:模型的选择和部署

NVIDIA 大模型 RAG 分享笔记,大模型,笔记
模型:适合场景的模型,比如代码类,问答类会有对应的模型
部署:低延迟、高吞吐率。是否支撑换模型。

评价

在产品阶段不是一蹴而就,需要多次迭代。需要看实践是否满足需求。如何评价整个 RAG 流程的工作效率是非常重要的一环。

  • RAGAS ragas (RAG Assessment)
  • truelens
  • standford ARES

不同的评估标准的指标都不一样,对标准的计算公式也不太一样,难度也不同,按需选择。
NVIDIA 大模型 RAG 分享笔记,大模型,笔记

NVIDIA 提供的 RAG 端到端解决方案

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

embedding model

nvidia text qa embedding model
NVIDIA 大模型 RAG 分享笔记,大模型,笔记

RAPIDS RAFT 加强的index

提升检索速度
GPU 加速的 ANN 索引
NVIDIA 大模型 RAG 分享笔记,大模型,笔记
NVIDIA 大模型 RAG 分享笔记,大模型,笔记

大语言基础模型

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

部署框架 TensorRT-LLM

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

NeMo Guardrails

为输出提供围栏?具体没说,已经开源,可以查看文档。
已经开源,可以查看文档

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

Evaluating RAG Pipeline

RAGAS: Evaluation framework for your Retrieval Augmented Generation (RAG) pipelines

RAG Pipeline Samples in NVIDIA

NVIDIA/GenerativeAIExamples

借助于RAG-Copilot 如何提升工作效率

Example: ChipNemo
一个借助于RAG制造芯片的例子。里面是结合了RAG和微调两种技术。
Custom tokenizers| Domain-adaptive continued pretraining |
Supervised fine-tuning (SFT) with domain-specific instructions | domain-adapted retrieval models.

RAG 技术和微调技术的比较

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

高级 RAG

NVIDIA 大模型 RAG 分享笔记,大模型,笔记

NVIDIA 的加持

NVIDIA 大模型 RAG 分享笔记,大模型,笔记文章来源地址https://www.toymoban.com/news/detail-804805.html

到了这里,关于NVIDIA 大模型 RAG 分享笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • llama-index调用qwen大模型实现RAG

    llama-index在实现RAG方案的时候多是用的llama等英文大模型,对于国内的诸多模型案例较少,本次将使用qwen大模型实现llama-index的RAG方案。 llamaindex需要预装很多包,这里先把我成功的案例里面的pip包配置发出来,在requirements.txt里面。       llamaindex实现RAG中很关键的一环就是知

    2024年04月09日
    浏览(41)
  • 大型语言模型RAG(检索增强生成):检索技术的应用与挑战

    检索增强生成(RAG)系统通过结合传统的语言模型生成能力和结构化数据检索,为复杂的问题提供精确的答案。本文深入探讨了RAG系统中检索技术的工作原理、实现方式以及面临的挑战,并对未来的发展方向提出了展望。 随着大型预训练语言模型(LLMs)如GPT-3和BERT的出现,

    2024年03月14日
    浏览(40)
  • Elasticsearch:RAG vs Fine-tunning (大语言模型微调)

    如果你对 RAG 还不是很熟悉的话,请阅读之前的文章 “Elasticsearch:什么是检索增强生成 - RAG?”。你可以阅读文章 “Elasticsearch:在你的数据上训练大型语言模型 (LLM)” 来了解更多关于如何训练你的模型。在今天的文章中,我们来讲述 RAG 及 大语言模型的优缺点。这篇文章旨

    2024年02月04日
    浏览(50)
  • AI大模型低成本快速定制秘诀:RAG和向量数据库

      当今人工智能领域,最受关注的毋庸置疑是大模型。然而,高昂的训练成本、漫长的训练时间等都成为了制约大多数企业入局大模型的关键瓶颈。   这种背景下,向量数据库凭借其独特的优势,成为解决低成本快速定制大模型问题的关键所在。   向量数据库是一种

    2024年02月05日
    浏览(43)
  • AI大模型低成本快速定制法宝:RAG和向量数据库

      当今人工智能领域,最受关注的毋庸置疑是大模型。然而,高昂的训练成本、漫长的训练时间等都成为了制约大多数企业入局大模型的关键瓶颈。   这种背景下,向量数据库凭借其独特的优势,成为解决低成本快速定制大模型问题的关键所在。   向量数据库是一种

    2024年02月05日
    浏览(39)
  • AI大模型的制作:RAG和向量数据库,分别是什么?

    目录 一、什么是 AI 大模型 二、RAG 三、向量数据库 四、如何制作一个好的 AI 大模型 AI大模型是指具有大规模参数和复杂结构的人工智能模型。传统的机器学习模型通常有限的参数量,而AI大模型则通过增加参数量和层数来提升模型的表达能力和性能。这种模型通常使用深度

    2024年02月05日
    浏览(45)
  • 【高级RAG技巧】在大模型知识库问答中增强文档分割与表格提取

    文档分割是一项具有挑战性的任务,它是任何知识库问答系统的基础。高质量的文档分割结果对于显著提升问答效果至关重要,但是目前大多数开源库的处理能力有限。 这些开源的库或者方法缺点大致可以罗列如下: 只能处理文本,无法提取表格中的内容 缺乏有效的分割策

    2024年04月22日
    浏览(36)
  • [NLP] 使用Llama.cpp和LangChain在CPU上使用大模型-RAG

    下面是构建这个应用程序时将使用的软件工具: 1.Llama-cpp-python  下载llama-cpp, llama-cpp-python [NLP] Llama2模型运行在Mac机器-CSDN博客 2、LangChain LangChain是一个提供了一组广泛的集成和数据连接器,允许我们链接和编排不同的模块。可以常见聊天机器人、数据分析和文档问答等应用。

    2024年02月04日
    浏览(46)
  • 大模型 LLM RAG在 Text2SQL 上的应用实践

    1. 前言 在上篇文章中「LLM Agent在Text2SQL应用上的实践」介绍了基于AI Agent来优化LLM的Text2SQL转换效果的实践,除此之外我们还可以使用RAG(Retrieval-Augmented Generation)来优化大模型应用的效果。 本文将从以下4个方面探讨通过RAG来优化LLM的Text2SQL转换效果。 1. RAG概述 2. 基于LangC

    2024年02月02日
    浏览(37)
  • 【AI大模型应用开发】【RAG评估】1. 通俗易懂:深度理解RAGAS评估方法的原理与应用

    大家好,我是同学小张,日常分享AI知识和实战案例 欢迎 点赞 + 关注 👏, 持续学习 , 持续干货输出 。 +v: jasper_8017 一起交流💬,一起进步💪。 微信公众号也可搜【同学小张】 🙏 本站文章一览: 上篇文章【AI大模型应用开发】【RAG评估】0. 综述:一文了解RAG评估方法、

    2024年04月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包