行业落地分享:阿里云搜索RAG应用实践
最近这一两周看到不少互联网公司都已经开始秋招提前批了。
不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。
最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解惑答疑,分享技术面试中的那些弯弯绕绕。
《大模型面试宝典》(2024版) 正式发布!
喜欢本文记得收藏、关注、点赞。更多实战和面试交流,文末加入我们
技术交流
在人工智能领域,垂直领域的挑战不断催生新的技术解决方案。RAG是一种结合检索和生成的深度学习模型,它通过检索大量相关文档,然后基于这些文档生成回答,从而提高回答的准确性和相关性。
然而,直接使用大型预训练模型来应对这些挑战并非没有问题。
-
模型通常依赖于海量的通用知识库和语料,这些资源的质量参差不齐,且可能存在安全风险。
-
在知识问答场景中,大模型可能会遇到幻觉问题,即生成看似合理但实际错误的答案。
-
模型的知识受限,难以完全覆盖特定领域的专业知识,同时其生成过程的不可解释性也引发了合规问题。
为了解决这些问题,许多企业开始转向利用自身的知识库。企业内部的文档、业务数据和经营数据是宝贵的资源,它们提供了更准确、更安全的知识来源。通过将这些内部数据与RAG模型相结合,企业可以生成更符合自身需求和标准的高质量回答。
RAG 技术方案
Retrieval-Augmented Generation(RAG)是一种先进的人工智能技术,它通过将检索结果与大型语言模型(LLM)结合,引导模型生成更加精准和可靠的答案。RAG的核心在于其能够实时更新知识库,而无需对模型进行重新训练,这大大提升了知识获取的时效性和灵活性。
RAG的三大优势
-
实时更新知识库:RAG能够动态地从最新的数据源中获取信息,确保知识库的持续更新,而无需进行耗时的模型重训练。
-
可追溯的答案来源:与传统的黑盒模型不同,RAG生成的答案可以追溯到其知识库中的原始来源,提高了答案的可解释性和可追踪性。
-
减少幻觉问题:由于RAG生成的答案基于结构化和验证过的知识库,因此相较于完全依赖模型内部知识的情况,它更不容易产生幻觉问题。
RAG关键点解析
高准确度场景
在某些关键场景中,如医疗咨询或法律服务,对答案的准确度要求极高,几乎需要达到“100%准确”。为此,RAG技术需要做到:
-
准确解析不同格式文档:无论是PDF、Word还是其他格式,RAG都应能够准确解析文档内容。
-
准确召回问题相关结果:RAG应能迅速从知识库中检索并召回与问题紧密相关的信息。
-
低幻觉率的大模型总结:生成的答案应基于可靠的数据源,减少错误信息的产生。
实时答案生成
在快节奏的查询环境中,用户期望在1到3秒内获得答案。这要求RAG技术具备:
-
高性能召回问题相关结果:快速从大量数据中检索出最相关的信息。
-
高性能大模型推理生成:模型需要在极短的时间内完成对信息的推理和生成过程。
训练与推理成本
RAG技术的一个主要成本是GPU资源的消耗,特别是在训练和推理阶段。为了降低成本,需要:
-
低成本训练方法:探索更经济的训练策略,以减少对GPU资源的依赖。
-
大模型推理加速:优化模型结构和算法,提高推理速度,降低成本。
隐私与安全性
在处理用户数据时,RAG技术必须严格遵守隐私和安全性的要求:
-
过滤敏感话题:确保模型在生成内容时能够识别并过滤掉敏感话题。
-
遵守相关法律法规:在不同地区运营时,需遵循当地的数据保护法规。
-
可控的大模型生成:通过设置合理的约束条件,控制模型生成的内容,避免违规风险。
RAG效果优化
数据解析和提取
-
表格信息提取:能够识别和解析文档中的表格数据,将其转换为结构化信息,便于模型理解和利用。
-
图表理解:对图表中的图形、趋势和数据点进行分析,提取关键信息,帮助模型理解图表所传达的内容。
-
文档结构分析:识别文档中的结构元素,如标题、段落、列表等,为文本切片和信息检索提供基础。
文本切片
文本切片是将文档分割成更小的、易于处理和检索的部分。以下是几种不同的切片方法:
-
层次切片:根据文档的层次结构进行切片,例如将一级标题和其下的段落作为一个切片单元。
-
多粒度切片:结合不同粒度的信息,如将一级标题、二级标题和相关段落组合在一起,以提供更丰富的上下文。
-
细切片:进一步细化切片,可能包括单个句子或短语,以捕获更具体的信息。
多语言向量化模型方法
Query理解
NL2SQL
混合检索
Rerank
大模型微调和评测
RAG性能优化- VectorStore CPU图算法
在RAG中,VectorStore扮演着关键角色,它用于存储和检索向量化的数据。HNSW是一种用于高效近似最近邻搜索的图算法。它构建了一个分层的图结构,每一层都具有不同的搜索精度和效率。
RAG性能优化- 大模型推理加速
RAG成本优化-方法选择
RAG成本优化-客户专属模型
RAG典型场景
多模态RAG
相关文章:

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

【SQL】温度比较
目录 题目 分析 代码 题目 表: Weather ------------------------ | Column Name | Type | ------------------------ | id | int | | recordDate | date | | temperature | int | ------------------------ id 是该表具有唯…...
Istio 项目会往用户的 Pod 里注入 Envoy 容器,用来代理 Pod 的进出流量,这是什么设计模式?
Istio 项目会往用户的 Pod 里注入 Envoy 容器,用来代理 Pod 的进出流量,这是什么设计模式? A. 装饰器 B. sidecar C. 工厂模式 D. 单例 选择B Sidecar模式是一种设计模式,它将应用程序的一部分功能作为单独的进程实现ÿ…...
(24)(24.1) FPV和仿真的机载OSD(三)
文章目录 前言 5 呼号面板 6 用户可编程警告 7 使用SITL测试OSD 8 OSD面板列表 前言 此面板允许在机载 OSD 屏幕上显示业余无线电呼号(或任何其他单个字符串)。它将从 SD 卡根目录下名为“callsign.txt”的文件中读取字符串。 5 呼号面板 此面板允…...

测试开发岗面试总结
某基金管理公司线下测试开发面试题总结。 测开题目如下 可以尝试自己先写,写完之后再去看参考解法哦 ~ 1、编写一段代码,把 list 的数平方(语言不限) ListA [1, 3, 5, 7, 9, 11] 2、使用 Python 语言编写一个日志装饰器 3、进程、线程、协程有什么…...
编程-设计模式 7:桥接模式
设计模式 7:桥接模式 定义与目的 定义:桥接模式将抽象部分与它的实现部分分离,使得它们都可以独立地变化。目的:该模式的主要目的是解耦一个类的抽象部分与其实现部分,使得这两部分可以独立地发展和变化。 实现示例…...
C语言----结构体
结构体 结构体的含义 自定义的数据类型 它是由很多的数据组合成的一个整体,结构型数据 其中的每一个数据,都是结构体的成员 书写的位置: 函数的里面:局部位置,只能再本函数中使用 函数的外面:全局位置,在所有的函数中都可以…...

基于HKELM混合核极限学习机多输出回归预测 (多输入多输出) Matlab代码
基于HKELM混合核极限学习机多输出回归预测(多输入多输出)Matlab代码 每个输出都有以下线性拟合图等四张图!!!具体看图,独家图像!!! 程序已经调试好,替换数据集根据输出个数修改out…...

经纬恒润荣获小米汽车优秀质量奖!
小米SU7上市已超百天,在品质经过客户严选的同时,产量与交付量屡创新高,6-7月连续两个月交付量均超过10000台。为奖励对小米汽车质量和交付做出卓越贡献的合作伙伴团队及个人,小米向质量表现突出的供应商授予了优秀质量奖。经纬恒润…...

Linux 软件编程学习第十一天
1.管道: 进程间通信最简单的形式 2.信号: 内核层和用户层通信的一种方式 1.信号类型: 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 1…...
hive udtf 函数:输入一个字符串,将这个字符串按照特殊的逻辑处理之后,输出4个字段
这里要继承GenericUDTF 这个抽象类,直接上代码: package com.xxx.hive.udf; import org.apache.commons.lang.StringUtils; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDFArgumentException; import …...

【实现100个unity特效之16】unity2022之前或者之后版本实现全屏shader graph的不同方式 —— 适用于人物受伤红屏或者一些其他状态效果
最终效果 文章目录 最终效果前言unity2022版本 Fullscreen shader graph首先,请注意你的Inity版本,是不是2022.2以上,并且项目是URP项且基本配置 修改shader graph边缘效果动起来优化科幻风制作一些变量最终效果最终节点图代码控制 2022之前版…...

比特币使用ord蚀刻符文---简单笔记
说明 毕竟符文热度过了,今年四月份做的笔记分享出来 蚀刻符文需要先同步完区块数据,和index文件,不然蚀刻会失败,在testnet和signet网络也一样。 创建钱包(会输出助记词): ord --bitcoin-da…...

大数据-74 Kafka 高级特性 稳定性 - 控制器、可靠性 副本复制、失效副本、副本滞后 多图一篇详解
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
c# 什么是扩展方法
官方解释 扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种静态方法,但可以像扩展类型上的实例方法一样进行调用。 对于用 C#、F# 和 Visual Basic 编写的客户端代码&#x…...
全屏组件封装(react18+antd)
基于reactts封装的公用全屏组件 1、封装组件 在components下面构建FullScreenButton文件: FullScreenButton/index.tsx import React, { useState, useCallback, useEffect } from "react"; import { FullscreenOutlined, FullscreenExitOutlined } fr…...

wordpress全局自适应网址导航整站打包源码,含主题和数据库
wordpress全局自适应网址导航整站打包源码,含主题和数据库。直接恢复就可以使用了。 这个是自适应的布局设计,体验还不错。用网址导航是可以的。 代码免费下载:百度网盘...

PyTorch深度学习框架
最近放假在超星总部河北燕郊园区实习,本来是搞前后端开发岗位的,然后带我的副总老大哥比较关照我,了解我的情况后得知我大三选的方向是大数据,于是建议我学学python、Hadoop,Hadoop我看了一下内容比较多,而…...
Python和AI库NumPy(二):数组创建与操作
目录 1. 数组创建 1.1 基本数组创建 1.2 使用内置函数创建数组 1.3 特殊数组的创建 2. 数组的基本操作 2.1 数组属性 2.2 数组索引和切片 2.3 数组的形状操作 2.4 数组拼接与分割 3. 数组的数学操作 3.1 基本算术操作 3.2 广播机制 3.3 线性代数运算 4. 高级数组…...

GD32 SPI驱动代码
1.0 软件驱动NOR FLASH MOSI:主机发送,从机接收 MISO:主机接收,从机发送 CS:表示的是片选信号 2.0 宏定义各个引脚 // 片选 #define SET_SPI_NSS() gpio_bit_set(GPIOE,GPIO_PIN_2) #define CLR_SPI_NSS() gpio_…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...