以下是一些加速 RAG 的好办法:
此外,LangChain 携手 NVIDIA 为 RAG 加速带来了新的篇章:
了解了组成部分后,接下来是如何让它们一起工作。我们此处要分享两个简单但强大的思路。第一个要点是确保LLM以正确的格式回应。如果只是在命令中指示LLM输出JSON格式,它可能并不总会遵守。因此,函数调用已经成为确保LLM严格输出特定格式的一个新方法,而且相对靠谱。我们推荐使用此方法来提升性能。你可以参考结构化输出文档,其中高层次的LangChain API展示了不同LLM如何调用工具和函数。另一个提升性能的方法是使用参考样例。尽管没有样例也能设置抽取问题,但我们发现实际操作中,将输入和对应输出的样例纳入其中通常大有裨益。有时候,这些样例比指示本身还更能有效指导LLM处理特定情况。在我们的提取用例文档中,你可以找到更多细节,助你从LLMs中提取更好的性能。
最后,让我们来谈谈如何将NIM与LangChain结合使用。我们新增了一个支持NIM的集成包。要开始使用这个集成,您需要先安装我们专门为NIM设计的集成包:安装完成后,您就可以导入所需的模型了:[heading2]集成示例[content]接下来,我们将通过一个示例来展示如何构建应用程序。如果您更喜欢通过视频学习,您可以在这里观看视频教程。我们将利用LangSmith文档的一部分来构建一个RAG应用。为了增加趣味性,我们将采用一种高级检索方法:假设文档嵌入(HyDE)。HyDE的设计理念是,搜索查询可能与我们要检索的文档不在同一个嵌入空间中。为了解决这个问题,我们可以利用LLM生成一个假设文档,然后检索与该假设文档相似的文档。首先,我们需要安装一些额外的包:然后,我们将加载LangSmith文档作为我们RAG应用的数据源:在对文档进行索引之前,我们需要初始化嵌入模型:接下来,我们可以使用FAISS向量存储来执行索引操作:然后,我们可以初始化LLM:现在,我们将创建一个假设文档生成器。这个生成器由一个提示模板、LLM和一个简单的输出解析器组成:接着,我们将创建一个新的链,用于生成假设文档:然后,我们将创建一个链,用于根据检索到的文档和问题生成最终答案:最后,我们将创建一个最终的链,结合假设文档检索器和答案生成链,以产生最终的输出:请注意,我们通过生成令牌来实现最终链的流式输出。现在,让我们来测试一下这个链:通过这种方式,LangChain利用NVIDIA NIM为RAG应用带来了GPU加速的LLM推理能力,大大提升了处理敏感数据的安全性,同时简化了从原型到生产的转变过程。
NVIDIA NIM是一系列用户友好的微服务,它们旨在加速企业内部生成式AI的部署进程。这种多功能的运行环境支持包括开源社区模型、NVIDIA AI基础模型以及自定义AI模型在内的广泛AI模型。开发者可以利用行业标准的API,仅需数行代码即可快速构建出企业级的AI应用。NIM基于NVIDIA Triton Inference Server、NVIDIA TensorRT、NVIDIA TensorRT-LLLLM等强大的推理引擎,以及PyTorch等技术构建,旨在提供无缝的AI推理体验,确保您可以自信地在任何环境中部署AI应用。无论是在本地服务器还是云端环境中,NIM都是实现大规模、高性能生成式AI推理的最佳选择。[heading2]为什么LangChain对NVIDIA NIM充满期待?[content]我们对NVIDIA NIM充满期待的原因有几个。首先,最引人注目的是它的自托管特性。这意味着您向基于NVIDIA的模型发送的任何数据都将保留在您的服务器上,不会外传。对于那些经常需要处理敏感信息的RAG应用来说,这一点尤其重要。其次,NIM提供了一系列预构建的容器,这让您可以轻松选择并使用最新的生成式AI模型,而无需进行复杂的配置。最后,NIM的可扩展性。在个人电脑上本地运行模型是一回事,但要将其作为服务部署,并且保持与专业服务提供商相同的稳定性和可用性,则是另一回事。幸运的是,NIM已经为您解决了这一挑战。[heading2]如何开始使用NVIDIA NIM?[content]开始使用NIM非常简单。在NVIDIA API目录中,开发者可以轻松访问多种AI模型,用于构建和部署生成式AI应用。NIM是NVIDIA AI Enterprise的一部分,这是一个全面的、基于云的软件平台,旨在简化生产级AI应用的开发和部署流程。您可以通过这篇博客获取如何开始使用的详细指南。