LLM大模型在融合通信产品中的应用实践

news2024/11/18 15:33:16

前言

LLM 问题

幻觉:在没有答案的情况下提供虚假信息。

过时:当用户需要特定的当前响应时,提供过时或通用的信息。

来源:从非权威来源创建响应。由于术语混淆,不同的培训来源使用相同的术语来谈论不同的事情,因此会产生不准确的响应。

RAG 是解决其中一些挑战的一种方法。它会重定向 LLM,从权威的、预先确定的知识来源中检索相关信息。组织可以更好地控制生成的文本输出,并且用户可以深入了解 LLM 如何生成响应。

在这里插入图片描述

RAG 范式

RAG(Retrieval Augmented Generation)有三个核心组成部分:检索、增强和生成。其整个流程主要可以分为以下五个基本步骤:

知识文档的准备: 这是构建RAG系统的首要步骤,涉及将各种格式的知识源(如Word文档、TXT文件、PDF文件、图片、视频等)通过文档加载器或多模态模型(如OCR技术)转换为纯文本数据。此外,还需要执行文档切片,将长篇文档分割成多个文本块,以提高信息检索的准确性和效率。

嵌入模型: 嵌入模型(Embedding Model)的任务是将文本转换为向量形式。这一步骤通过计算文本的向量表示,使得能够通过向量之间的差异来识别语义上相似的句子。例如,Word2Vec、BERT和GPT等模型都可用于生成文本的向量表示。

向量数据库: 向量数据库专门设计用于存储和检索向量数据。所有通过嵌入模型生成的向量都会被存储在这样的数据库中,优化了处理和存储大规模向量数据的效率。

查询检索: 用户的问题首先被输入到嵌入模型进行向量化处理,然后在向量数据库中搜索与该问题向量语义上相似的知识文本或历史对话记录并返回。

生成回答: 最后,结合用户提问和检索到的信息,构建出一个提示模版(Prompt Template),输入到大型语言模型(Large Language Model, LLM)中,由模型生成准确的回答。

这个流程是RAG系统的基础,但文章中也提到了多个环节有着极大的优化空间,包括数据清洗、分块处理、元数据、多级索引、索引/查询算法、查询转换、检索参数、高级检索策略、重排模型、提示词和大语言模型等方面。这些优化策略可以帮助提高RAG系统的性能和可用性。

RAG vs 微调

优化技术的差异:RAG类似于为模型提供教科书,使其能够根据特定查询检索信息。适用于模型需要回答特定查询或处理特定信息检索任务的场景。微调则类似于让学生通过广泛学习来内化知识,适用于模型需要复制特定结构、风格或格式的情况。

适用场景:

RAG:适用于需要回答具体查询或特定信息检索任务的场景。

微调:适用于强调基础模型中的现有知识,修改或定制模型输出,为模型提供复杂指令的场景。

互补性:RAG和微调不是相互排斥的,而是可以相互补充,从不同层面增强模型的能力。在某些情况下,结合这两种技术可以实现最佳的模型性能。

原始RAG、高级RAG和模块化RAG

在这里插入图片描述

原始RAG(Naive RAG)

原始RAG是最早的研究范式,主要包括以下几个步骤:

建立索引: 这一过程通常在离线状态下进行,包括数据清理、提取,将不同文件格式(如PDF、HTML、Word、Markdown等)转换为纯文本,然后进行文本分块,并创建索引。

检索: 使用相同的编码模型将用户输入转换为向量,计算问题嵌入和文档块嵌入之间的相似度,选择相似度最高的前K个文档块作为当前问题的增强上下文信息。

生成: 将给定的问题和相关文档合并为新的提示,然后由大型语言模型基于提供的信息回答问题。如果有历史对话信息,也可以合并到提示中,用于多轮对话。

原始RAG面临的挑战

检索质量问题: 包括低精度(检索集中不所有块都与查询相关,导致可能的幻觉和断层问题)和低召回率(无法检索到所有相关块,阻止LLM获取足够的上下文来合成答案)等。

响应生成质量问题: 包括幻觉(模型编造不存在于上下文中的答案)、不相关性(模型生成的答案未能解决查询问题)以及有害或偏见性回应等。

增强过程的挑战:包括有效整合检索段落的上下文与当前生成任务、冗余和重复(多个检索段落包含相似信息导致内容重复)、确定多个检索段落对生成任务的重要性或相关性、处理不同写作风格或语气的差异以确保输出一致性等。

高级RAG (Advanced RAG)

高级RAG针对原始RAG的不足之处进行了有针对性的改进。这些改进涉及检索生成的质量、索引的优化、检索过程的优化等多个方面。

预检索过程

优化数据索引: 提高索引内容的质量,包括增加索引数据的细粒度、优化索引结构、添加元数据、对齐优化和混合检索等五个主要策略。

嵌入和索引: 涉及通过语言模型将文本编码为向量的过程,包括微调嵌入和动态嵌入。

微调嵌入: 提高检索内容与查询之间的相关性。

动态嵌入: 基于单词出现的上下文动态调整嵌入。

检索过程优化

重新排序(ReRank): 对检索到的信息进行重新排序,将最相关的信息放置在提示的边缘。

提示压缩: 通过压缩不相关的上下文、突出关键段落和减少总体上下文长度来提高RAG性能。

高级RAG 特点

高级RAG通过先进的索引方法、更精细的检索策略和有效的后处理方法来优化RAG的性能。

它采用不同的检索技术组合,适应不同的查询类型和信息需求,确保一致地检索到最相关和上下文丰富的信息。

高级RAG还包括对嵌入模型的微调,以提高检索内容的相关性,并使用动态嵌入技术以更好地处理上下文变化。

RAG 管道优化

在“RAG管道优化”这一部分中,论文讨论了针对检索过程的优化,旨在提高RAG系统的效率和信息质量。这些研究主要集中在智能组合各种搜索技术、优化检索步骤、引入认知回溯的概念、灵活应用多样化的查询策略,以及利用嵌入相似性。这些努力共同追求在RAG检索中实现效率和上下文信息丰富度之间的平衡。

RAG检索过程的优化方法:

探索混合搜索: 通过智能融合关键字搜索、语义搜索和向量搜索等技术,RAG系统可以利用每种方法的优势,适应不同类型的查询和信息需求,确保一致地检索到最相关和上下文丰富的信息。

递归检索和查询引擎: 实施递归检索和复杂查询引擎是优化RAG系统检索的另一种强有力的方法。递归检索意味着在初始检索阶段获取较小的文档块以捕获关键语义含义,然后在后续阶段向语言模型提供更多上下文信息的较大块。这种两步检索方法有助于在效率和富有上下文的响应之间找到平衡。

StepBack-prompt: 将StepBack-prompt方法集成到RAG过程中,鼓励大型语言模型从特定实例中退后,参与对背后的一般概念或原则的推理。实验结果表明,在各种具有挑战性的、推理密集的任务中,结合后向提示的运用能显著提高性能,显示出其在RAG中的自然适应性。

子查询: 可以在不同场景中采用各种查询策略,包括使用LlamaIndex等框架提供的查询引擎,运用树查询、向量查询,或使用最基本的块序列查询。

HyDE: 这种方法基于假设,即生成的答案在嵌入空间中可能比直接查询更接近。使用大型语言模型,HyDE针对查询生成一个假设的文档(答案),嵌入该文档,并利用这种嵌入来检索与假设文档类似的真实文档。与基于查询的嵌入相似性不同,这种方法强调从答案到答案的嵌入相似性。然而,这种方法可能并不总是能够产生有利的结果,特别是在语言模型不熟悉讨论主题的情况下,可能导致生成更多错误实例。

模块化RAG

模块化RAG结构打破了传统的原始RAG框架(索引、检索和生成),提供了更大的多样性和整个过程的灵活性。它整合了各种方法来扩展功能模块,例如在相似性检索中加入搜索模块,以及在检索器中应用微调方法。此外,特定问题的出现促使重构的RAG模块和迭代方法的出现。模块化RAG范式正成为RAG领域的主流,允许采用序列化管道或跨多个模块的端到端训练方法。

新模块

搜索模块: 与原始/高级RAG中的查询和语料库之间的相似性检索不同,搜索模块针对特定场景,将直接搜索引入过程中,使用由LLM生成的代码、查询语言(如SQL、Cypher)或其他自定义工具。

记忆模块: 利用LLM自身的记忆能力来指导检索。原则是找到与当前输入最相似的记忆。例如,Self-mem迭代地使用一个检索增强生成器来创建一个无限的记忆池,结合“原始问题”和“对偶问题”。

额外生成模块: 在检索到的内容中,冗余和噪声是常见问题。额外生成模块利用LLM生成所需的上下文,而不是直接从数据源检索。

任务适应模块:专注于转换RAG以适应各种下游任务。例如,UPRISE自动从预构建的数据池中检索给定零样本任务输入的提示,增强跨任务和模型的通用性。

对齐模块: 查询和文本之间的对齐一直是影响RAG有效性的关键问题。在模块化RAG时代,研究人员发现,在检索器中添加一个可训练的Adapter模块可以有效缓解对齐问题。

验证模块: 在现实世界场景中,不能总保证检索到的信息是可靠的。检索到不相关的数据可能导致LLM出现幻觉。因此,在检索文档后可以引入额外的验证模块,以评估检索到的文档与查询之间的相关性,增强RAG的鲁棒性。

场景

RAG技术可以在以下一些常见的自然语言处理任务中发挥作用:

问答系统 (QA Systems)

RAG可以用于构建强大的问答系统,能够回答用户提出的各种问题。它能够通过检索大规模文档集合来提供准确的答案,无需针对每个问题进行特定训练。

文档生成和自动摘要 (Document Automatic Generation and Summarization)

RAG可用于自动生成文章段落、文档或自动摘要,基于检索的知识来填充文本,使得生成的内容更具信息价值。

智能助手和虚拟代理 (Intelligent Assistants and Virtual Agents)

RAG可以用于构建智能助手或虚拟代理,结合聊天记录回答用户的问题、提供信息和执行任务,无需进行特定任务微调。

信息检索 (Information Retrieval)

RAG可以改进信息检索系统,使其更准确深刻。用户可以提出更具体的查询,不再局限于关键词匹配。

知识图谱填充 (Knowledge Graph Population)

RAG可以用于填充知识图谱中的实体关系,通过检索文档来识别和添加新的知识点。

优势

明晰了RAG的应用范围后,可能会产生疑问:为什么这些场景需要使用RAG,而不是进行微调或者通过其他方法来实现呢?接下来,我们进一步了解RAG的优势。

RAG的具体优势:

准确性提高: RAG通过与外部知识相关联的答案来提高准确性,减少语言模型中的幻觉问题,使生成的响应更准确、可靠。

保持信息的时效性和准确性:与传统只依赖训练数据的语言模型相比,RAG可以识别最新信息,保持响应的时效性和准确性。

透明度: RAG通过引用来源提高答案的透明度,增加用户对模型输出的信任。

定制化能力: RAG可以通过索引相关文本语料库来定制不同领域的模型,为特定领域提供知识支持。

安全性和隐私管理: RAG在数据库中内置了角色和安全控制,可以更好地控制数据使用。

可扩展性: RAG能够处理大规模数据集而无需更新所有参数和创建训练集,使其在经济上更有效率。

结果的可信度: RAG从最新数据中选择确定性结果,而微调模型在处理动态数据时可能出现幻觉和不准确性,缺乏透明度和可信度。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享)👈

在这里插入图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解
  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望
阶段3:AI大模型应用架构实践
  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景
学习计划:
  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的所有 ⚡️ 大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

全套 《LLM大模型入门+进阶学习资源包↓↓↓ 获取~

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享)👈
在这里插入图片描述

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

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

相关文章

【Gin】智慧架构的巧妙砌筑:Gin框架中控制反转与依赖注入模式的精华解析与应用实战(下)

【Gin】智慧架构的巧妙砌筑:Gin框架中控制反转与依赖注入模式的精华解析与应用实战(下) 大家好 我是寸铁👊 【Gin】智慧架构的巧妙砌筑:Gin框架中控制反转与依赖注入模式的精华解析与应用实战(下)✨ 喜欢的小伙伴可以点点关注 💝 …

Meta 发布 Llama3.1,一站教你如何推理、微调、部署大模型

最近这一两周看到不少互联网公司都已经开始秋招提前批了。不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解…

古文:诸葛亮《前出师表》

前出师表 师:军队。 表:就是“奏表”,又称“表文”,是臣属给君王的上书。古代给君王的上书,有各种名称,不同的名称与上书内容有关。刘勰《文心雕龙章表》云:“章以谢恩,奏以按劾&a…

高速板开源项目学习(二)

一定要找一个高速板写的详细的等长规范: 看的出来,这位小哥也是卡着嘉立创最小免费钻孔大小来打孔的: 这里的天线,他做了禁止铺铜和走线处理,模拟信号在这里容易遇到干扰,这样是正确的,值得去学…

解决使用selenium-wire访问链接地址不安全的问题

pip安装selenium-wire 描述:这里用的是python3.12.2 selenium-wire5.1.0 pip3.12 install selenium-wire pip3.12 install blinker1.7 pip3.12 install setuptools 运行以下命令来获取证书 python -m seleniumwire extractcert 安装浏览器ssl证书 Windows上给…

【JavaScript】延迟加载 js 脚本

defer 属性:在 HTML 中通过设置 script 标签的 defer 属性来实现脚本的延迟加载,即脚本的下载与 HTML 的解析不会阻塞彼此,脚本会在 HTML 解析完成后才执⾏。async 属性:在 HTML 中通过设置 script 标签的 async 属性来实现脚本的…

深入理解 Java NIO:ByteBuffer和MappedByteBuffer的特性与使用

目录 前言 ByteBuffer是什么 重要特点 分配缓冲区 读写模式切换 操作文本数据 操作基本数据类型 案例解析-循环输出数据 MappedByteBuffer是什么 MappedByteBuffer 的工作机制 刷盘时机 总结 前言 在深入学习 RocketMQ 这款高性能消息队列框架的源码时&#xff0c…

免费【2024】springboot 畅游游戏销售平台

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

EchoMimicV2,Audio Driven加速模型,推理速度大幅提升

EchoMimic更新啦,我24号刚出的一篇,到了25号官方就更新了新的加速模型。 着实没赶上官方更新的速度...... 那本次我主要讲下更新了什么内容,如何修改使用acc加速模型。 另外还准备了v2版本的整合包!大家可以体验下! 更…

ProxmoxPVE虚拟化平台--安装PVE虚拟机

Proxmox 虚拟机 Proxmox是一个基于Debian Linux和KVM的虚拟化平台,‌它提供了虚拟化的环境,‌允许用户在同一台物理机上运行多个虚拟机。‌Proxmox虚拟环境(‌PVE)‌是一个开源项目,‌由Proxmox Server Solutions Gmb…

从与原始的Transformer architecture比较来理解GPT

从与原始的Transformer architecture比较来理解GPT flyfish 一、Transformer architecture 先说名词 不同的文献和资料中有不同的名字,其实是一样的意思 1 编码器-解码器多头注意力机制(Encoder-Decoder Multi-Head Attention Mechanism) …

CI/CD:Job failed: execution took longer than 1h0m0s seconds

简介:当在CI/CD配置运行Gitlab-runner流水线中,一般默认情况下,Job的执行时间默认为1小时,如果超出1小时,任务会中断。 历史攻略: 定时任务:Jenkins 容器化CICDLocust性能压测 容器化CICDSo…

我的NAS是怎么连接Amazon Web Services S3的

作为IT爱好者,很多家庭都配备了Network Attached Storage(NAS),用于存储和管理大量数据。一个常见的挑战是如何实现异地备份,以确保数据的安全性和可恢复性。以下是一些解决方案和工具,可以帮助用户有效地管…

使用 Docker Compose 部署 RabbitMQ 的一些经验与踩坑记录

前言 RabbitMQ 是一个功能强大的开源消息队列系统,它实现了高效的消息通信和异步处理。 本文主要介绍其基于 Docker-Compose 的部署安装和一些使用的经验。 特点 成熟,稳定消息持久化灵活的消息路由高性能,高可用性,可扩展性高支…

操作系统:进程1

一.进程 1.什么是进程 一个进程创建,他会生成几块: 代码段:进程执行的程序代码数据段:全局变量,静态变量,在进程生命周期中是动态可变的堆:动态分配的内存区域,malloc、calloc、real…

Ubuntu安装mysql,并使用IDEA连接mysql

一、安装Mysql 1.更新源 sudo apt-get update2.安装Mysql apt-get install mysql-server3.检查是否安装成功 mysql --version4.启动和关闭mysql的命令如下: #启动 sudo service mysql start #关闭 sudo service mysql stop #重启 sudo service mysql restart5.查看mysql运行…

JavaDS —— 二叉搜索树、哈希表、Map 与 Set

前言 我们将学习 Map 与 Set 这两个接口下的 TreeMap 与 TreeSet ,HashMap 与 HashSet ,在学习这四个类使用之前,我们需要先学习 二叉搜索树与 哈希表的知识。 二叉搜索树 在学习二叉树的时候,我们就已经了解过二叉搜索树的概念…

ctfshow-web入门-php特性(web142-web146)

目录 1、web142 2、web143 3、web144 4、web145 5、web146 1、web142 要求 v1 是数字,之后将 v1乘以 0x36d(即16进制的869)五次,然后将结果转换为整数并赋值给变量 $d,使用 sleep 函数使程序休眠 $d 秒&#xff0c…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 项目排期安排(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

CentOS7 yum报错Cannot find a valid baseurl for repo

问题 Loaded plugins: fastestmirror Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infravag error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown…