LangChain 携手 NVIDIA:RAG加速新篇章

大约在一年半前,OpenAI 推出了 ChatGPT,标志着生成式 AI 时代的开启。自此,这一领域经历了迅猛的发展,并被各行各业广泛采纳。企业在将注意力从 LLM 应用的原型制作转向实际生产时,往往更倾向于选择自主托管的解决方案,而非依赖第三方模型服务。鉴于许多人在这一转变过程中遇到困难,LangChain 对于能够整合全新的 NVIDIA NIM 推理微服务感到无比振奋。

NVIDIA NIM 是什么?

在这里插入图片描述

NVIDIA NIM 是一系列用户友好的微服务,它们旨在加速企业内部生成式 AI 的部署进程。这种多功能的运行环境支持包括开源社区模型、NVIDIA AI 基础模型以及自定义 AI 模型在内的广泛 AI 模型。开发者可以利用行业标准的 API,仅需数行代码即可快速构建出企业级的 AI 应用。NIM 基于 NVIDIA Triton Inference Server、NVIDIA TensorRT、NVIDIA TensorRT-LLLLM 等强大的推理引擎,以及 PyTorch 等技术构建,旨在提供无缝的 AI 推理体验,确保您可以自信地在任何环境中部署 AI 应用。无论是在本地服务器还是云端环境中,NIM 都是实现大规模、高性能生成式 AI 推理的最佳选择。

为什么 LangChain 对 NVIDIA NIM 充满期待?

img

我们对 NVIDIA NIM 充满期待的原因有几个。

首先,最引人注目的是它的自托管特性。这意味着您向基于 NVIDIA 的模型发送的任何数据都将保留在您的服务器上,不会外传。对于那些经常需要处理敏感信息的 RAG 应用来说,这一点尤其重要。

其次,NIM 提供了一系列预构建的容器,这让您可以轻松选择并使用最新的生成式 AI 模型,而无需进行复杂的配置。

img

最后,NIM 的可扩展性。在个人电脑上本地运行模型是一回事,但要将其作为服务部署,并且保持与专业服务提供商相同的稳定性和可用性,则是另一回事。幸运的是,NIM 已经为您解决了这一挑战。

如何开始使用 NVIDIA NIM?

img

开始使用 NIM 非常简单。在 NVIDIA API 目录中,开发者可以轻松访问多种 AI 模型,用于构建和部署生成式 AI 应用。NIM 是 NVIDIA AI Enterprise 的一部分,这是一个全面的、基于云的软件平台,旨在简化生产级 AI 应用的开发和部署流程。您可以通过 这篇博客 获取如何开始使用的详细指南。

如何将 NVIDIA NIM 与 LangChain 结合使用?

最后,让我们来谈谈如何将 NIM 与 LangChain 结合使用。我们新增了一个支持 NIM 的集成包。要开始使用这个集成,您需要先安装我们专门为 NIM 设计的集成包:

python

复制代码pip install langchain_nvidia_ai_endpoints

安装完成后,您就可以导入所需的模型了:

python

复制代码from langchain_nvidia_ai_endpoints import NVIDIAEmbeddings, ChatNVIDIA

集成示例

接下来,我们将通过一个示例来展示如何构建应用程序。如果您更喜欢通过视频学习,您可以在 这里 观看视频教程。

我们将利用 LangSmith 文档的一部分来构建一个 RAG 应用。为了增加趣味性,我们将采用一种高级检索方法:假设文档嵌入(HyDE)。HyDE 的设计理念是,搜索查询可能与我们要检索的文档不在同一个嵌入空间中。为了解决这个问题,我们可以利用 LLM 生成一个假设文档,然后检索与该假设文档相似的文档。

首先,我们需要安装一些额外的包:

python

复制代码pip install langchain-community langchain-text-splitters faiss-cpu

然后,我们将加载 LangSmith 文档作为我们 RAG 应用的数据源:

python复制代码from langchain_community.document_loaders import WebBaseLoader
loader = WebBaseLoader("https://docs.smith.langchain.com/user_guide") 

docs = loader.load()

在对文档进行索引之前,我们需要初始化嵌入模型:

python复制代码from langchain_nvidia_ai_endpoints import NVIDIAEmbeddings
embeddings = NVIDIAEmbeddings()

接下来,我们可以使用 FAISS 向量存储来执行索引操作:

python复制代码from langchain_community.vectorstores import FAISS
from langchain_text_splitters import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
documents = text_splitter.split_documents(docs)
vector = FAISS.from_documents(documents, embeddings)
retriever = vector.as_retriever()

然后,我们可以初始化 LLM:

python复制代码from langchain_core.prompts import ChatPromptTemplate
from langchain_nvidia_ai_endpoints import ChatNVIDIA
from langchain_core.output_parsers import StrOutputParser

model = ChatNVIDIA(model="mistral_7b")

现在,我们将创建一个假设文档生成器。这个生成器由一个提示模板、LLM 和一个简单的输出解析器组成:

python复制代码hyde_template = """Even if you do not know the full answer, generate a one-paragraph hypothetical answer to the below question:

{question}"""
hyde_prompt = ChatPromptTemplate.from_template(hyde_template)
hyde_query_transformer = hyde_prompt | model | StrOutputParser()

接着,我们将创建一个新的链,用于生成假设文档:

python复制代码from langchain_core.runnables import chain

@chain
def hyde_retriever(question):
    hypothetical_document = hyde_query_transformer.invoke({"question": question})
    return retriever.invoke(hypothetical_document)

然后,我们将创建一个链,用于根据检索到的文档和问题生成最终答案:

python复制代码template = """Answer the question based only on the following context:
{context}

Question: {question}
"""
prompt = ChatPromptTemplate.from_template(template)
answer_chain = prompt | model | StrOutputParser()

最后,我们将创建一个最终的链,结合假设文档检索器和答案生成链,以产生最终的输出:

python复制代码@chain
def final_chain(question):
    documents = hyde_retriever.invoke(question)
    for s in answer_chain.stream({"question": question, "context": documents}):
        yield s

请注意,我们通过生成令牌来实现最终链的流式输出。现在,让我们来测试一下这个链:

python复制代码for s in final_chain.stream("how can langsmith help with testing"):
    print(s, end="")

通过这种方式,LangChain 利用 NVIDIA NIM 为 RAG 应用带来了 GPU 加速的 LLM 推理能力,大大提升了处理敏感数据的安全性,同时简化了从原型到生产的转变过程。

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

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

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

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

一、全套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%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值