国科网

2025-06-06 13:14:22  星期五
立足国科融媒,服务先进科技
大模型系列—解读RAG

点赞

0
发布时间:2024年02月05日 浏览量:450次 所属栏目:人工智能 发布者:田佳恬

RAG 是2023年最流行的基于 LLM 的应用系统架构。有许多产品几乎完全建立在 RAG 之上,覆盖了结合网络搜索引擎和 LLM 的问答服务,到成千上万个数据聊天的应用程序。很多人将RAG和Agent 作为大模型应用的两种主流架构,但什么是RAG呢?RAG又涉及了哪些具体的技术呢?

1. 什么是RAG

RAG即检索增强生成,为 LLM 提供了从某些数据源检索到的信息,并基于此修正生成的答案。RAG 基本上是 Search + LLM 提示,可以通过大模型回答查询,并将搜索算法所找到的信息作为大模型的上下文。查询和检索到的上下文都会被注入到发送到 LLM 的提示语中。

嵌入式搜索引擎可以通过 Faiss 来实现,向量搜索领域成为了RAG的一个助力。像pinecone 这样的向量数据库可以构建开源搜索索引,为输入文本增加了额外的存储空间,还增加了一些其他工具。关于向量数据库,可以参考解读向量数据库。

面向RAG的开发框架,对于基于 LLM 的流水线和应用程序,有两个最著名的开源工具—— LangChain 和 LlamaIndex,分别是在2022年10月和11月创建的,随着 ChatGPT 爆发,也在2023年获得了大量采用。LlamaIndex 和 LangChain 都是令人惊叹的开源项目,它们的发展速度非常快。

图片图片

2. 基础的 RAG 技术

RAG 系统的起点一般是一个文本文档的语料库,简单看起来是这样的: 把文本分割成块,然后把这些分块嵌入到向量与transformer编码器模型,把所有这些向量建立索引,最后创建一个 LLM 提示语,告诉模型回答用户的查询,给出在搜索步骤中找到的上下文。在运行时,我们用相同的编码器模型完成用户查询的向量化,然后执行这个查询向量的索引搜索,找到top-k 的结果,从数据库中检索到相应的文本块,并提供给 LLM 提示语Prompt作为上下文。

图片图片

在OpenAI 平台上,提示词Prompt可以是这样的:

def question_answering(context, query):
    prompt = f""" my query text...                
                """

    response = get_completion(instruction, prompt, model="gpt-3.5-turbo")
    answer = response.choices[0].message["content"]
    return answer

分享说明:转发分享请注明出处。

    相关图讯
    网站简介  |   联系我们  |   广告服务  |   监督电话
    本网站由国科网运营维护 国科网讯(北京)技术有限公司版权所有  咨询电话:010-88516927
    地址:北京市海淀区阜石路甲69号院1号楼1层一单元114
    ICP备案号:京ICP备15066964号-8   违法和不良信息举报电话:010-67196565
    12300电信用户申诉受理中心   网络违法犯罪举报网站   中国互联网举报中心   12321网络不良与垃圾信息举报中心   12318全国文化市场举报网站
    代理域名注册服务机构:阿里巴巴云计算(北京)有限公司