部署本地模型
使用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:
4. 完成基本的Ollama设置
在弹出窗口中,完成 Ollama 的基本设置:
- 确保您的模型名称和类型与步骤1(使用 Docker 部署 Ollama)中拉取的一致。例如, (
llama3.2
和chat
) 或 (bge-m3
和embedding
)。 - 在Ollama基础URL中输入在步骤2找到的 URL 后跟
/v1
,即http://host.docker.internal:11434/v1
、http://localhost:11434/v1
或http://${IP_OF_OLLAMA_MACHINE}:11434/v1
。 - 可选:如果您的模型包含图像到文本的模型,请在**支持视觉功能?**下切换开关。
不正确的基础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部署本地模型,例如 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:
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
- 激活
llm-cpp
Conda环境并初始化Ollama:
- Linux
- Windows
conda activate llm-cpp
init-ollama
在Miniforge提示符中以管理员权限运行这些命令:
conda activate llm-cpp
init-ollama.bat
-
如果安装的
ipex-llm[cpp]
需要对Ollama二进制文件进行升级, 请删除旧的二进制文件并使用init-ollama
(Linux)或init-ollama.bat
(Windows)重新初始化Ollama。在您的当前目录中会生成一个指向Ollama的符号链接,您可以按照标准的Ollama命令使用该可执行文件。
2.3 启动Ollama服务
-
设置环境变量
OLLAMA_NUM_GPU
为999
以确保您的模型的所有层都在Intel GPU上运行;否则,某些层可能会默认使用CPU。 -
在具有Linux操作系统(内核6.2)的Intel Arc™ A系列图形卡上实现最佳性能,请在启动Ollama服务之前设置以下环境变量:
export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
-
启动Ollama服务:
- Linux
- Windows
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
在Miniforge Prompt中运行以下命令:
set OLLAMA_NUM_GPU=999
set no_proxy=localhost,127.0.0.1
set ZES_ENABLE_SYSMAN=1
set 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模型
- Linux
- Windows
./ollama run qwen2:latest
ollama run qwen2:latest
4. 配置RAGflow
为了在RAGFlow中启用加速的Ollama,您必须完成以下配置。步骤与“使用Ollama部署本地模型”部分中的相同:
使用jina部署本地模型
要使用jina部署本地模型,例如gpt2: