基于 Ollama 和 Cherry Studio 的本地嵌入模型与知识库的搭建

在追求高效与智能的今天,本地化部署嵌入模型,结合在线推理服务,成为了构建知识库的新范式。这种方案既能保障数据隐私,又能充分利用云端强大的推理能力。本文将带你探索如何使用 Ollama 和 Cherry Studio,搭建一个“本地嵌入 + 在线推理”的知识库,释放 AI 的潜力!

💡 知识库与嵌入模型:构建智能应用的基础

在开始实践之前,让我们再次回顾知识库和嵌入模型这两个核心概念,它们是构建智能应用的关键组成部分。

📚 什么是知识库?

知识库是存储和组织知识的场所。它可以是各种形式的数据集合,例如文档、网页、数据库记录等。在 AI 应用中,知识库主要用于:

  • 数据存储与管理: 集中管理结构化和非结构化数据,方便访问和更新。
  • 信息检索与问答: 支持 AI 系统从海量数据中快速检索相关信息,并回答用户提出的问题。
  • 驱动智能应用: 作为智能客服、智能助手、语义搜索等应用的数据基础和知识来源。

知识库是你知识的容器,为 AI 提供了学习和应用的素材。

🧠 什么是嵌入模型?

嵌入模型是一种将文本等数据转换为向量表示的 AI 模型。这些向量能够捕捉数据的语义信息,使得计算机可以理解和比较不同数据之间的语义相似性。

在知识库应用中,嵌入模型扮演着桥梁的角色:

  1. 语义向量化: 将知识库中的文本内容转换为高维向量,将语义信息编码到向量空间中。
  2. 语义相似度计算: 通过计算向量之间的距离,衡量文本在语义上的相似程度。
  3. 语义检索支持: 将用户query也转换为向量,在知识库的向量空间中快速找到语义最相关的知识片段,实现高效的语义检索。

嵌入模型让文本“可计算”,使得基于语义的知识检索和问答成为可能。

🏆 MTEB Leaderboard:选择最佳嵌入模型

在选择嵌入模型时,性能至关重要。MTEB (Massive Text Embedding Benchmark) 提供了一个权威的排行榜,用于评估各种文本嵌入模型的性能。

访问 MTEB Leaderboard:https://huggingface.co/spaces/mteb/leaderboard

你可以在 MTEB Leaderboard 上根据自己的需求(例如,语言、领域、任务类型)筛选和比较不同的嵌入模型,选择最适合你的知识库应用的模型。

如何利用 MTEB Leaderboard 选择模型?

  1. 确定你的需求: 你的知识库主要处理什么语言的文本? 关注特定领域吗? 例如,如果你处理中文通用领域的文本,可以重点关注中文通用领域的榜单。
  2. 查看榜单排名: MTEB 榜单会列出各种模型的性能指标,例如检索、分类、聚类等任务的得分。 选择在你的关注任务上得分较高的模型。
  3. 考虑模型大小和速度: 性能高的模型通常也更大,推理速度可能较慢。 根据你的资源限制和性能需求,选择一个平衡的模型。
  4. 关注多语言能力 (如果需要): 如果你的知识库包含多种语言,需要选择多语言嵌入模型,并查看其在多语言榜单上的表现。

MTEB Leaderboard 是你选择高性能嵌入模型的有力工具,务必善加利用。

⚔️ 三种方案对比:本地 vs 在线推理,权衡利弊

构建知识库应用,数据处理和推理环节可以在本地或在线进行。 让我们重新审视三种方案,并重点关注 “本地数据 + 本地嵌入 + 在线推理” 方案:

方案 数据存储 嵌入模型 推理模型 (用于问答等) 优势 劣势 适用场景
方案一:本地数据 + 本地嵌入 + 本地推理 本地 本地 本地 🚀 完全本地化,数据隐私性极高,离线可用,响应速度快(本地推理延迟低) ⚙️ 资源消耗高(本地计算资源压力大),模型选择和部署相对复杂,本地模型性能可能受限 对数据安全和隐私要求极其高,必须离线使用,对响应速度要求极高的场景,例如极端敏感的企业内部知识库、特定安全环境
方案二:本地数据 + 本地嵌入 + 在线推理 本地 本地 在线 兼顾隐私、性能与成本,本地嵌入保护数据敏感性,在线推理利用云端算力,模型选择丰富,性价比高 🔗 依赖网络连接进行推理,嵌入向量可能需要上传到在线推理服务(取决于具体服务和实现),存在一定延迟 (网络传输和在线推理延迟) 对隐私有较高要求,希望利用云端强大模型能力,追求性能和成本平衡的场景,例如企业内部知识库、需要一定智能水平的应用
方案三:本地数据 + 在线嵌入 + 在线推理 本地 在线 在线 🌈 部署最简单,完全依赖在线服务,无需本地部署任何模型,快速上手 🔒 数据隐私风险较高,所有数据都需要上传到在线服务进行处理,依赖网络连接,长期使用成本可能较高(取决于在线服务计费模式) 对隐私要求不高,追求快速部署和使用,预算充足,需要快速验证想法的场景,例如公开信息检索、原型开发

总结:

  • 方案二 “本地数据 + 本地嵌入 + 在线推理” 是本文推荐的方案,它在隐私、性能和成本之间取得了较好的平衡,适合大多数知识库应用场景。 本地嵌入保障数据安全,在线推理利用云端算力,可以获得更好的模型效果和更低的本地资源消耗。
  • 如果你对数据隐私有极致要求,且有足够的本地计算资源,方案一依然是可选方案。
  • 方案三适合快速原型验证或对隐私不敏感的场景。

🛠️ Ollama 安装与模型准备

Ollama 是本地运行大语言模型的利器。我们需要用 Ollama 加载嵌入模型,为 Cherry Studio 提供本地嵌入能力。

💻 安装 Ollama

macOS:

使用 Homebrew (推荐):

1
brew install ollama

或从官网下载安装包:https://ollama.com/download

Linux:

使用 Ollama 提供的安装脚本:

1
curl -fsSL https://ollama.com/install.sh | sh

Windows:

从官网下载安装包进行安装:https://ollama.com/download

安装验证:

安装后,终端运行 ollama --version 验证安装是否成功。

📦 Ollama 模型:GGUF 格式与 ModelScope

Ollama 必须加载 GGUF (GGML Unified Format) 格式的模型。 GGUF 是一种针对 CPU 推理优化的模型格式,Ollama 基于 GGUF 实现了高效的本地模型运行。

1. 寻找 GGUF 模型:

  • ModelScope 搜索 GGUF 模型: 访问 ModelScope (魔搭社区) https://modelscope.cn/models ,搜索你需要的嵌入模型,并特别关注模型描述或标签中是否包含 “GGUF” 或 “GGML” 字样。 一些组织,例如 Embedding-GGUF 专门提供 GGUF 格式的模型。

  • Hugging Face GGUF 模型仓库: Hugging Face 上也有很多用户上传了 GGUF 格式的模型,可以搜索例如 “GGUF embedding” 等关键词。

2. 从 ModelScope 拉取 GGUF 模型 (示例):

以 MTEB 多模态榜单第一的模型 gte-Qwen2-7B-instruct-GGUF 为例 (来自 ModelScope Embedding-GGUF 组织):

1
ollama pull modelscope.cn/Embedding-GGUF/gte-Qwen2-7B-instruct-GGUF

执行命令后,Ollama 会下载并安装该 GGUF 模型。

3. GGUF 模型转换 (如果需要):

如果 ModelScope 或其他地方没有你需要的 GGUF 格式模型,你可以尝试将 Hugging Face 上的模型转换为 GGUF 格式。

  • 使用 Hugging Face Space 进行转换: ggml-org 组织提供了一个 Hugging Face Space 工具,可以进行模型格式转换:https://huggingface.co/spaces/ggml-org/gguf-my-repo

    按照 Space 的说明,上传你的模型文件,选择 GGUF 转换,等待转换完成并下载 GGUF 模型文件。 注意:模型转换可能需要一定的技术知识和计算资源。

请优先选择直接提供 GGUF 格式的模型,例如 ModelScope Embedding-GGUF 组织提供的模型。 这样可以省去模型转换的麻烦。

🍒 Cherry Studio 使用:连接 Ollama 构建知识库

Cherry Studio 是一个强大的本地 AI 应用管理工具,可以与 Ollama 无缝集成,帮助你构建基于本地嵌入模型的知识库。

⚙️ 安装 Cherry Studio

访问 Cherry Studio GitHub Release 页面下载安装包:https://github.com/CherryHQ/cherry-studio/releases

根据你的操作系统下载并安装 Cherry Studio。

🔗 连接 Ollama

  1. 启动 Ollama: 确保 Ollama 服务已运行 (ollama serve)。
  2. 启动 Cherry Studio: 打开 Cherry Studio 应用。
  3. 进入设置: 在 Cherry Studio 中找到 “设置” (Settings) 菜单。
  4. 配置 Ollama 连接: 在 “模型服务” 或 “Model Provider” 中,选择 “Ollama”。通常 Cherry Studio 会自动检测 Ollama。 如果需要手动配置,请填写 Ollama API 地址 (默认 http://localhost:11434).
  5. 模型列表: 连接成功后,在 “管理” 中,Cherry Studio 会显示 Ollama 中已加载的模型,包括我们之前拉取的 gte-Qwen2-7B-instruct-GGUF 模型。

📚 构建知识库 (本地嵌入 + 在线推理)

注意: Cherry Studio 本身可能不直接提供在线推理功能。 你需要结合第三方在线推理服务或 API,例如 OpenAI API, Azure OpenAI Service, 或其他云平台的推理 API。 Cherry Studio 主要负责本地数据管理、本地嵌入向量化,以及与在线推理服务的集成 (具体集成方式取决于 Cherry Studio 的功能和插件)。

以下步骤假设 Cherry Studio 具备与在线推理服务集成的能力 (你需要查阅 Cherry Studio 的文档或插件市场,了解具体的集成方式):

  1. 创建知识库项目: 在 Cherry Studio 中创建新的知识库项目。

  2. 项目配置: 填写项目信息,选择嵌入模型: 选择你通过 Ollama 加载的 gte-Qwen2-7B-instruct-GGUF 模型。

  3. 导入数据: 导入你的知识库数据 (文档、文件夹等)。

  4. 本地向量化: Cherry Studio 使用你选择的本地嵌入模型 (gte-Qwen2-7B-instruct-GGUF) 将知识库数据向量化,生成本地向量索引。

  5. 配置在线推理服务: 在 Cherry Studio 中配置你选择的在线推理服务 (例如 OpenAI API)。 这通常需要填写 API 密钥、API Endpoint 等信息。

  6. 知识检索与问答 (在线推理): 在 Cherry Studio 的知识库界面,输入你的问题进行检索或问答。

    • 检索流程: Cherry Studio 将你的问题也使用本地嵌入模型向量化,然后在本地向量索引中检索最相似的知识片段。
    • 问答流程: Cherry Studio 将检索到的相关知识片段和你的问题一起发送到配置的在线推理服务 API。 在线推理服务利用其强大的语言模型进行推理,并返回答案。

请务必查阅 Cherry Studio 的官方文档和插件市场,了解其具体的在线推理集成能力,以及如何配置和使用在线推理服务。 不同的工具和平台,集成方式可能有所不同。

恭喜你! 你已经搭建了一个 “本地嵌入 + 在线推理” 的知识库。 本地嵌入保证了数据处理的隐私性,在线推理则利用云端算力提供了强大的问答能力。 继续探索,优化你的知识库应用吧!

本作品 [页面标题] 创作,采用 CC BY-NC-SA 4.0