【LLM大模型】深入浅出 langchain RAG

概念

“RAG” 指的是 “Retrieval-Augmented Generation”,这是一个在自然语言处理和人工智能领域中的概念,特别是在生成型任务中(如文本生成、聊天机器人等)。

RAG 通过结合检索(Retrieval)和生成(Generation)两种技术,来提高模型的性能和输出的质量。具体来说,RAG 首先从一个大型的文档集合中检索出与输入查询相关的信息,然后将这些信息作为上下文输入到一个生成模型(如 GPT)中,以生成更准确、更丰富的回答或内容。

示例

python

from langchain_community.vectorstores import DocArrayInMemorySearch  
from langchain_core.output_parsers import StrOutputParser  
from langchain_core.prompts import ChatPromptTemplate  
from langchain_core.runnables import RunnableParallel, RunnablePassthrough  
from langchain_openai.chat_models import ChatOpenAI  
from langchain_openai.embeddings import OpenAIEmbeddings  
  
vectorstore = DocArrayInMemorySearch.from_texts(  
["harrison worked at kensho", "bears like to eat honey"],  
embedding=OpenAIEmbeddings(),  
)  
retriever = vectorstore.as_retriever()  
  
template = """Answer the question based only on the following context:  
{context}  
  
Question: {question}  
"""  
prompt = ChatPromptTemplate.from_template(template)  
model = ChatOpenAI()  
output_parser = StrOutputParser()  
  
setup_and_retrieval = RunnableParallel(  
{"context": retriever, "question": RunnablePassthrough()}  
)  
chain = setup_and_retrieval | prompt | model | output_parser  
  
chain.invoke("where did harrison work?")

观察上述 chain 的核心链条

chain = setup_and_retrieval | prompt | model | output_parser

我们多出来一个处理过程setup_and_retrieval, 观察上述代码这个过程又涉及几个额外的概念vectorstore, embedding, retriever, 后面会对这些概念进行一一拆解

先看下retriever, 不单单是可以使用上述方法, 可以使用直接 invoke 进行调用

python

retriever.invoke("where did harrison work?")

其实完整的链条就是

python

setup_and_retrieval = RunnableParallel(  
{"context": retriever, "question": RunnablePassthrough()}  
)  
chain = setup_and_retrieval | prompt | model | output_parser

用流程图具体表示的话就是:

在这里插入图片描述

到这里的话我们还有一些概念没有了解, 我们来倒叙讲解

Retriver

英文解释:

“retriever” 一词最早出现在17世纪。它由动词"retrieve"(取回)派生而来,最初指代专门训练用于捡拾打倒的游戏鸟类的狗。后来逐渐演变为特指这类品种的犬只。

检索器是一种接口,它根据非结构化的查询返回文档。它比矢量存储更通用。检索器不需要能够存储文档,只需能够返回(或检索)它们。矢量存储可以用作检索器的支撑,但还有其他类型的检索器。

检索器接受一个字符串查询作为输入,并将 Document 列表作为输出返回

用一个普适的例子来类比: 这个就相当于我们通过 retriver(寻回犬), 给他一些信号(字符串), 他能够帮我们取回想要的东西(文档)

再回到上述代码中, retiever 是如何生成的:

python

retriever = vectorstore.as_retriever() 

Vector Store

向量存储: Vector Store,或称向量数据库,是一种专门用于存储和检索向量数据的数据库。在人工智能和机器学习领域,尤其是在自然语言处理(NLP)和图像识别等应用中,数据通常会被转换成高维向量形式。

存储和检索非结构化数据的最常见方式之一是将其嵌入并存储结果向量,然后在查询时嵌入非结构化查询并检索与嵌入查询“最相似”的嵌入向量。向量存储库负责存储嵌入的数据并为您执行向量搜索。

用一个普适的例子来类比: 我们人对世界存在的概念都有自己的理解, 比如: 我现在说红色的大花袄, 我们脑海中就会出现相关的画面以及物品. 比如: 茂密的森林, 脑海中就会出现一篇森林的景象. 这里的红色的大花袄, 茂密的森林 对于向量数据库来说就是一组向量([0.01, 0.12,0.32]), 通过这组向量获取到的数据就是向量数据库查询出来的东西(也就是我们脑海中浮现的画面)

再回到代码中来看下

python

vectorstore = DocArrayInMemorySearch.from_texts(  
["harrison worked at kensho", "bears like to eat honey"],  
embedding=OpenAIEmbeddings(),  
) 

这里就是生成一个内存存储的向量数据库, 将一些字符串内容存储到向量数据库中. 那么 embedding 是什么呢?

Embedding

Embedding类是一个用于与文本嵌入模型交互的类。有许多嵌入模型提供商(OpenAI,Cohere,Hugging Face等)-这个类旨在为所有这些提供标准的接口。

Embedding创建了文本的向量表示。这很有用,因为这意味着我们可以在向量空间中考虑文本,并执行一些操作,例如语义搜索,在向量空间中寻找最相似的文本片段。

简单理解就是: 有个模型能将文本输入变成一组向量方便存储分析中, 当输入文本后, 也可以分析这些文本来找到相关的一些文本

如何系统的去学习AI大模型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大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值