Lazy loaded image
🖥️使用本地模型构建 RAG 应用| 🦜️🔗 LangChain
Words 3006Read Time 8 min
2024-12-31
2024-12-31
type
status
date
slug
summary
tags
category
icon
password
comment
Status
 
本地运行开源模型具有数据隐私和安全、灵活性和定制化、成本低等优势,使得像PrivateGPTllama.cppGPT4Allllamafile等开源模型十分流行,所以本地运行大型语言模型(LLMs)的变得很重要。
LangChain 整合了 许多可以本地执行的开源模型
请查看这里,了解如何为这些大型语言模型(LLMs)设置本地运行环境。
例如,这里展示了如何在本地(例如,你的笔记本电脑)使用本地嵌入和本地大型语言模型来运行GPT4AllLLaMA2

文档加载

安装依赖
加载切分文档,我们使用一篇agent博客为例
下载 GPT4All 嵌入模型到本地
测试相似性搜索与我们的本地嵌入模型是否能正常工作。

模型

LLaMA2

注意:新版本的 llama-cpp-python 使用GGUF模型文件(见此处)。
如果您已有现成的GGML模型,请参见此处了解如何转换为GGUF模型的说明
或者可以在 huggingface 上下载一个已转换为GGUF的模型。
如果要在Apple 机器上启用GPU,请按照此处的步骤使用支持Metal的Python绑定。
确保conda正在使用正确的虚拟环境
确认启用
根据 llama.cpp docs 设置模型参数
注意,这些表明Metal已正确启用

GPT4All

下载  GPT4All 的二进制模型
GPT4All 上的模型可以直接在浏览器上选择下载模型。
然后,指定您下载的路径。
例如:
/Users/rlm/Desktop/Code/gpt4all/models/nous-hermes-13b.ggmlv3.q4_0.bin

llamafile

运行本地大型语言模型(LLM)的最简单方法之一是使用lammafile
  1. HuggingFace 上下载lammafile文件;
  1. 授权文件可执行
  1. 执行文件
lamma文件将模型权重和特别编译lamma.cpp版本捆绑到一个单一文件中,这个文件可以在大多数计算机上运行,无需任何额外的依赖。它们还带有嵌入式推理服务器,提供了与模型交互的API
这是一个简单的bash脚本,展示了所有3个设置步骤:
在运行上述设置步骤之后,可以通过LangChain与模型进行交互:

在langchain链中使用

我们尝试通过传入检索到的文档和一个简单的提示词,构建一个模型创建摘要链。
它使用提供的输入格式化提示模板,并将格式化后的字符串传递给GPT4All、Llama-V2或其他大型语言模型(LLM)。

问答

我们还可以使用LangChain提示词中心来存储和获取特定于模型的提示。
让我们尝试使用一个默认的RAG提示
现在,让我们尝试使用一个特别为LLaMA设计的提示词,这个提示词包括特殊标记

添加检索问答

上面的代码需要手动输入文档,我们尝试根据用户问题自动从向量存储中检索它们。
This will use a QA default prompt (shown here) and will retrieve from the vectorDB.
使用langchain提供的默认提示词,并将从向量数据库中检索信息。
 
官网链接:
上一篇
让大模型更加精确可控地调用工具 | 🦜️🔗 LangChain
下一篇
构建一个基于图数据库的问答应用 | 🦜️🔗 LangChain