跳到主要内容

部署本地模型

使用Ollama、Xinference或其他框架部署和运行本地模型。


RAGFlow支持通过Ollama、Xinference、IPEX-LLM或Jina在本地部署模型。如果您有已在其本地部署的模型可供利用,或者希望启用GPU或CUDA以加速推理,请可以将Ollama或Xinference绑定到RAGFlow,并将其用作与您的本地模型交互的本地“服务器”。

RAGFlow无缝集成Ollama和Xinference,无需进一步配置环境。您可以使用它们在RAGFlow中部署两种类型的本地模型:聊天模型和嵌入模型。

注意

本用户指南不涵盖Ollama或Xinference的安装和配置细节;重点在于RAGFlow内部的配置设置。对于最新信息,请参阅Ollama或Xinference的官方站点。

使用Ollama部署本地模型

Ollama 允许您运行已在其本地部署的大规模开源语言模型。它将模型权重、配置和数据捆绑到一个由Modelfile定义的包中,并优化设置和配置,包括GPU使用。

备注
  • 有关下载Ollama的信息,请参阅此处
  • 对于支持模型及其变体的完整列表,请参见 Ollama 模型库

1. 使用Docker部署 Ollama

Ollama 可以从二进制文件安装,或使用Docker 部署。以下是使用 Docker 进行部署的说明:

$ sudo docker run --name ollama -p 11434:11434 ollama/ollama
> time=2024-12-02T02:20:21.360Z level=INFO source=routes.go:1248 msg="Listening on [::]:11434 (version 0.4.6)"
> time=2024-12-02T02:20:21.360Z level=INFO source=common.go:49 msg="Dynamic LLM libraries" runners="[cpu cpu_avx cpu_avx2 cuda_v11 cuda_v12]"

确保 Ollama 监听所有 IP 地址:

$ sudo ss -tunlp | grep 11434
> tcp LISTEN 0 4096 0.0.0.0:11434 0.0.0.0:* users:(("docker-proxy",pid=794507,fd=4))
> tcp LISTEN 0 4096 [::]:11434 [::]:* users:(("docker-proxy",pid=794513,fd=4))

按需拉取模型。我们建议您从 llama3.2(一个3B聊天模型)和 bge-m3(一个567M嵌入模型)开始:

$ sudo docker exec ollama ollama pull llama3.2
> pulling dde5aa3fc5ff... 100% ▕████████████████▏ 2.0 GB
> success
$ sudo docker exec ollama ollama pull bge-m3                 
> pulling daec91ffb5dd... 100% ▕████████████████▏ 1.2 GB
> success

2. 查找 Ollama URL 并确保其可访问

  • 如果 RAGFlow 在 Docker 中运行,localhost 被映射到RAGFlow的Docker容器中的 host.docker.internal。如果Ollama在同一主机机器上运行,则正确的URL为 http://host.docker.internal:11434/ 并且您应该检查从RAGFlow容器内部访问Ollama的状态:
$ sudo docker exec -it ragflow-server bash
$ curl http://host.docker.internal:11434/
> Ollama is running
  • 如果 RAGFlow 从源代码启动,而 Ollama 在同一主机机器上运行,则检查Ollama是否可以从RAGFlow的主机机器访问:
$ curl http://localhost:11434/
> Ollama is running
  • 如果 RAGFlow 和 Ollama 运行在不同的机器上,请检查从 RAGFlow 的主机机器访问 Ollama 是否可访问:
$ curl http://${IP_OF_OLLAMA_MACHINE}:11434/
> Ollama is running

3. 添加Ollama

在RAGFlow中,点击页面右上角的logo > 模型提供商 并将Ollama添加到RAGFlow:

add ollama

4. 完成基本的Ollama设置

在弹出窗口中,完成 Ollama 的基本设置:

  1. 确保您的模型名称和类型与步骤1(使用 Docker 部署 Ollama)中拉取的一致。例如, (llama3.2chat) 或 (bge-m3embedding)。
  2. 在Ollama基础URL中输入在步骤2找到的 URL 后跟 /v1,即 http://host.docker.internal:11434/v1http://localhost:11434/v1http://${IP_OF_OLLAMA_MACHINE}:11434/v1
  3. 可选:如果您的模型包含图像到文本的模型,请在**支持视觉功能?**下切换开关。
警告

不正确的基础URL设置会导致以下错误:

Max retries exceeded with url: /api/chat (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xffff98b81ff0>: Failed to establish a new connection: [Errno 111] Connection refused'))

5. 更新系统模型设置

点击您的徽标 > 模型提供商 > 系统模型设置 来更新您的模型:

  • 您现在应该能够在“聊天模型”下拉列表中找到 llama3.2,并且在“嵌入式模型”下拉列表中找到 bge-m3
  • 如果您的本地模型是一个嵌入式模型,则应在其下的“嵌入式模型”部分找到它。

6. 更新聊天配置

根据需要,在 Chat Configuration(聊天设置) 中更新您的模型。

使用Xinference部署本地模型

Xorbits推理(Xinference)使您能够充分释放前沿AI模型的潜力。

备注
  • 有关安装Xinference Ollama的信息,请参阅 此处
  • 有关支持的模型完整列表,请查看 内置模型

要使用Xinference部署本地模型,例如 Mistral

1. 检查防火墙设置

确保您的主机机器的防火墙允许在端口9997上接受入站连接。

2. 启动Xinference实例

$ xinference-local --host 0.0.0.0 --port 9997

3. 启动本地模型

启动您的本地模型(Mistral),确保将 ${quantization} 替换为所选的量化方法:

$ xinference launch -u mistral --model-name mistral-v0.1 --size-in-billions 7 --model-format pytorch --quantization ${quantization}

4. 添加Xinference

在RAGFlow中,点击页面右上角的您的徽标 > 模型提供商 并将Xinference添加到RAGFlow:

add xinference

5. 完成基本Xinference设置

输入可访问的基础URL,例如 http://<您的xinference端点域名>:9997/v1

对于重排序模型,请使用 http://<您的xinference端点域名>:9997/v1/rerank 作为基础URL。

6. 更新系统模型设置

点击您的徽标 > 模型提供商 > 系统模型设置 来更新您的模型。

您现在应该能够在“聊天模型”下拉列表中找到 mistral

如果您的本地模型是一个嵌入式模型,您可以在 嵌入式模型 下找到它。

7. 更新聊天配置

根据需要在 Chat Configuration(聊天设置) 中更新您的聊天模型:

如果您的本地模型是一个嵌入式模型,请在知识库的配置页面上进行更新。

使用IPEX-LLM部署本地模型

IPEX-LLM 是一个用于在本地Intel CPU或GPU(包括集成GPU和独立GPU如Arc、Flex和Max)上以低延迟运行大语言模型的PyTorch库。它支持Linux和Windows系统上的Ollama。

要使用IPEX-LLM加速部署,例如 Qwen2

1. 检查防火墙设置

确保您的主机机器的防火墙允许在端口11434上接受入站连接。例如:

sudo ufw allow 11434/tcp

2. 使用IPEX-LLM启动Ollama服务

2.1 安装适用于Ollama的IPEX-LLM

注意

IPEX-LLM支持在Linux和Windows系统上的Ollama。

有关安装IPEX-LLM用于Ollama的详细信息,请参阅 使用Intel GPU运行llama.cpp与IPEX-LLM指南:

安装完成后,您应该已创建了一个例如 llm-cpp 的Conda环境用于使用IPEX-LLM运行Ollama命令。

2.2 初始化Ollama

  1. 激活 llm-cpp Conda环境并初始化Ollama:
conda activate llm-cpp
init-ollama
  1. 如果安装的 ipex-llm[cpp] 需要对Ollama二进制文件进行升级,请删除旧的二进制文件并使用 init-ollama(Linux)或 init-ollama.bat (Windows)重新初始化Ollama。

    在您的当前目录中会生成一个指向Ollama的符号链接,您可以按照标准的Ollama命令使用该可执行文件。

2.3 启动Ollama服务

  1. 设置环境变量OLLAMA_NUM_GPU999以确保您的模型的所有层都在Intel GPU上运行;否则,某些层可能会默认使用CPU。

  2. 在具有Linux操作系统(内核6.2)的Intel Arc™ A系列图形卡上实现最佳性能,请在启动Ollama服务之前设置以下环境变量:

    export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
  3. 启动Ollama服务:

export OLLAMA_NUM_GPU=999
export no_proxy=localhost,127.0.0.1
export ZES_ENABLE_SYSMAN=1
source /opt/intel/oneapi/setvars.sh
export SYCL_CACHE_PERSISTENT=1

./ollama serve
注意事项

为了使Ollama服务能够接受所有IP地址的连接,请使用OLLAMA_HOST=0.0.0.0 ./ollama serve而不是简单的./ollama serve

控制台将显示类似以下的消息:

3. 拉取并运行Ollama模型

3.1 拉取Ollama模型

在启动了Ollama服务之后,打开一个新的终端,并使用./ollama pull <model_name>(Linux)或 ollama.exe pull <model_name>(Windows)命令拉取您需要的模型。例如:qwen2:latest

3.2 运行Ollama模型

./ollama run qwen2:latest

4. 配置RAGflow

为了在RAGFlow中启用加速的Ollama,您必须完成以下配置。步骤与“使用Ollama部署本地模型”部分中的相同:

  1. 添加Ollama
  2. 完成基本的Ollama设置
  3. 更新系统模型设置
  4. 更新聊天配置

使用jina部署本地模型

要使用jina部署本地模型,例如gpt2

1. 检查防火墙设置

确保主机机器的防火墙允许在端口12345上的入站连接。

sudo ufw allow 12345/tcp

2. 安装jina包

pip install jina

3. 部署本地模型

步骤1:导航到rag/svr目录。

cd rag/svr

步骤2:运行jina_server.py,指定模型的名称或其本地路径:

python jina_server.py --model_name gpt2

脚本仅支持从Hugging Face下载的模型。