前言

维度

传统知识库

具有AI的知识库

数据存储方式

结构化数据为主(表格、文档),依赖手动分类和标签

支持非结构化数据(文本、图片、音视频),利用嵌入技术(Embedding)自动编码为向量存储

检索机制

基于关键词匹配或固定规则(如SQL查询)

支持语义搜索,通过向量相似度匹配理解用户意图(如“性价比高的手机”≈“低价高性能手机”)

交互方式

用户需输入精确关键词,返回静态结果

支持自然语言对话(如提问“如何解决打印机卡纸?”),生成动态答案或分步骤指导

知识更新

依赖人工录入和定期维护,更新滞后

支持自动学习新数据(如爬取最新行业报告),部分系统可结合RAG(检索增强生成)实时整合外部知识

推理能力

无自主推理能力,仅提供已有信息

通过LLM(大语言模型)进行逻辑推理、总结归纳(如分析故障原因并推荐解决方案)

应用场景

企业文档管理、FAQ库等静态场景

智能客服、个性化推荐、自动化报告生成等动态场景

相比传统的知识库,AI知识库具有更高的智能化程度。它不仅能够理解用户的查询意图,还能根据用户的历史行为和偏好进行个性化推荐。此外,AI大模型知识库还具备知识推理、问答生成等高级功能,能够为用户提供更加智能、个性化的知识服务。这使得AI大模型知识库在教育、医疗、金融、客服等多个领域具有广泛的应用前景。

云端AI知识库可能涉及敏感数据泄露风险,因此企业更倾向本地化部署以保障数据安全。为帮助用户实现这一目标,本教程将基于Windows系统,通过Ollama(本地模型管理) + DeepSeek(开源中文模型) + AnythingLLM(私有知识库框架) 的组合方案,逐步演示如何构建安全可控的本地AI知识库。​​

简介

Ollama(本地模型管理)

Ollama 是一个开源的本地大语言模型运行框架。

基本概念

  • 核心功能:Ollama 专注于在本地机器上便捷部署和运行大型语言模型(LLM),支持多种操作系统,包括 macOS、Windows、Linux 以及通过 Docker 容器运行。

  • 主要特点:它提供对模型量化的支持,可以显著降低显存要求,使得在普通家用计算机上运行大型模型成为可能。

主要特点

  • 多种预训练语言模型支持:Ollama 提供了多种开箱即用的预训练模型,包括常见的 GPT、BERT 等大型语言模型,用户可以轻松加载并使用这些模型进行文本生成、情感分析、问答等任务。

  • 易于集成和使用:Ollama 提供了命令行工具(CLI)和 Python SDK,简化了与其他项目和服务的集成,开发者无需担心复杂的依赖或配置,可以快速将 Ollama 集成到现有的应用中。

  • 本地部署与离线使用:Ollama 允许开发者在本地计算环境中运行模型,这意味着可以脱离对外部服务器的依赖,保证数据隐私,并且对于高并发的请求,离线部署能提供更低的延迟和更高的可控性。

  • 支持模型微调与自定义:用户不仅可以使用 Ollama 提供的预训练模型,还可以在此基础上进行模型微调,根据自己的特定需求,开发者可以使用自己收集的数据对模型进行再训练,从而优化模型的性能和准确度。

  • 性能优化:Ollama 关注性能,提供了高效的推理机制,支持批量处理,能够有效管理内存和计算资源,这让它在处理大规模数据时依然保持高效。

  • 跨平台支持:Ollama 支持在多个操作系统上运行,包括 Windows、macOS 和 Linux,这样无论是开发者在本地环境调试,还是企业在生产环境部署,都能得到一致的体验。

  • 开放源码与社区支持:Ollama 是一个开源项目,这意味着开发者可以查看源代码,进行修改和优化,也可以参与到项目的贡献中,此外,Ollama 有一个活跃的社区,开发者可以从中获取帮助并与其他人交流经验。

功能

  • 本地模型管理:Ollama 支持从官方模型库或自定义模型库拉取预训练模型,并在本地保存和加载,它支持各种流行的模型格式(如 ONNX、PyTorch、TensorFlow)。

  • 高效推理:通过 GPU/CPU 的加速,Ollama 提供高效的模型推理,适合本地化应用或需要控制数据隐私的场景。

  • 多种接口访问:Ollama 支持命令行(CLI)、HTTP 接口访问推理服务,并通过 OpenAI 客户端实现更广泛的集成。

  • 环境变量配置:通过灵活的环境变量,用户可以自定义推理设备(GPU/CPU)、缓存路径、并发数、日志级别等。


DeepSeek(开源中文模型)

DeepSeek 是一款开源的大语言模型。

核心优势

  • 智能化:DeepSeek 能够理解复杂的问题,并提供精准的解决方案。它通过深度学习和自然语言处理技术,能够理解用户的需求并提供个性化的建议。

  • 多功能性:DeepSeek 在多个领域都有广泛的应用,包括学习、工作和生活。它可以用作学习助手、编程助手、写作助手、生活助手和翻译助手等,满足用户在不同场景下的需求。

  • 易用性:DeepSeek 通过自然语言交互,用户无需学习复杂的操作即可与模型进行对话。这种交互方式使得用户能够轻松地获取所需的信息和服务。

  • 低成本:DeepSeek 的训练和推理成本较低,打破了传统 N 卡垄断,降低了大模型的使用门槛。这使得更多的企业和个人能够使用高性能的 AI 服务。

  • 高效率:DeepSeek 在推理能力和响应速度上表现出色,能够快速处理复杂的查询和任务,提供准确的答案和解决方案。

  • 开源生态:DeepSeek 采用了开源策略,吸引了大量开发者和研究人员的参与,推动了 AI 技术的发展和应用。

技术特点

  • 深度学习:DeepSeek 通过大量的数据训练,学会了如何理解和处理复杂的问题,提供个性化的建议和解决方案。

  • 自然语言处理(NLP):DeepSeek 能够理解人类的语言,无论是中文、英文还是其他语言,支持自然方式的对话。

  • 知识图谱:DeepSeek 存储了大量的结构化知识,能够快速找到相关信息,提供精准的答案。

  • 混合专家模型(MoE):DeepSeek 采用了 MoE 框架,通过训练多个专家模型,并根据输入数据的特征动态选择最合适的专家模型进行处理,从而实现对复杂任务的高效处理。

  • 多头潜在注意力机制(MLA):DeepSeek 的 MLA 技术显著降低了模型推理成本,通过减少对 KV 矩阵的重复计算,提高了模型的运行效率。

  • 大规模强化学习:DeepSeek 通过大规模强化学习技术,增强了模型的推理能力和泛化能力,能够在多个领域中表现出色。


AnythingLLM(私有知识库框架)

AnythingLLM 是一个全栈应用程序,允许用户使用商业现成的 LLM(大语言模型)或流行的开源 LLM 以及向量数据库解决方案,构建一个无需妥协的本地 ChatGPT。用户可以通过它与提供给它的任何文档进行智能交流,新颖的设计使得用户能够选择想要使用的 LLM 或向量数据库,并支持多用户管理和权限设置。

主要特点

  • 多用户支持和权限管理:允许多个用户同时使用,并可设置不同的权限。

  • 支持多种文档类型:包括 PDF、TXT、DOCX 等。

  • 简易的文档管理界面:通过用户界面管理向量数据库中的文档。

  • 两种聊天模式:对话模式保留之前的问题和回答,查询模式则是简单的针对文档的问答。

  • 聊天中的引用标注:链接到原始文档源和文本。

  • 简单的技术栈:便于快速迭代。

  • 100% 云部署就绪:适合云部署。

  • “自带 LLM”模式:可以选择使用商业或开源的 LLM。

  • 高效的成本节约措施:对于大型文档,只需嵌入一次,比其他文档聊天机器人解决方案节省 90% 的成本。

  • 完整的开发者 API:支持自定义集成。

功能

  • 自定义 AI 代理:用户可以根据需求创建自己的 AI 代理,使应用更具个性化。

  • 支持多模态:不仅支持闭源 LLM,还兼容开源 LLM,拓展了应用的灵活性。

  • 工作区内的代理:支持在工作区内浏览网页、运行代码等操作。

  • 自定义可嵌入聊天小部件:可以嵌入到用户的网站。

部署

  1. 前往 Ollama 官方网站(https://ollama.com/download)下载安装包。

  2. 直接通过安装包安装Ollama会直接安装在C盘,如果需要自定义安装路径,需要通过命令行指定安装路径,启动安装程序,点击 Install 后,Ollama 就会安装到指定的目录了。

    OllamaSetup.exe /DIR=E:\MySoftware\Ollama

  3. 打开一个新的命令行,输入ollama​回车执行,如果返回以下内容,则表示安装成功。

    在浏览器中输入127.0.0.1:11434​,显示Ollama is running​表示Ollama已经成功运行。

  4. 更改模型存储位置。大模型资源包默认下载到 C 盘,可以手动创建大模型存储目录,然后在用户账户中设置环境变量OLLAMA_MODELS​,将其设置为希望存储模型的路径。

    需要重启Ollama才能生效!

  5. 拉取模型到本地。在命令行输入ollama pull deepseek-r1:32b​。

    根据本机配置和业务需求进行选择模型参数。

    Models

    Configuration

    Command

    DeepSeek-R1-1.5B

    CPU :最低 4 核,推荐 Intel/AMD 多核处理器。
    内存 :8GB +。
    硬盘 :3GB + 存储空间,模型文件约 1.5-2GB。
    显卡 :非必需,纯 CPU 推理即可,若 GPU 加速可选 4GB + 显存,如 GTX 1650。

    ollama pull deepseek-r1:1.5b

    DeepSeek-R1-7B

    CPU :8 核以上,推荐现代多核 CPU。
    内存 :16GB +。
    硬盘 :8GB +,模型文件约 4-5GB。
    显卡 :推荐 8GB + 显存,如 RTX 3070/4060。

    ollama pull deepseek-r1:7b

    DeepSeek-R1-8B

    CPU :8 核以上,推荐现代多核 CPU。
    内存 :16GB +。
    硬盘 :8GB +,模型文件约 4-5GB。
    显卡 :推荐 8GB + 显存,如 RTX 3070/4060。

    ollama pull deepseek-r1:8b

    DeepSeek-R1-14B

    CPU :12 核以上。
    内存 :32GB +。
    硬盘 :15GB +。
    显卡 :16GB + 显存,如 RTX 4090 或 A5000。

    ollama pull deepseek-r1:14b

    DeepSeek-R1-32B

    CPU :16 核以上,如 AMD Ryzen 9 或 Intel i9。
    内存 :64GB +。
    硬盘 :30GB +。
    显卡 :24GB + 显存,如 A100 40GB 或双卡 RTX 3090。

    ollama pull deepseek-r1:32b

    DeepSeek-R1-70B

    CPU :32 核以上,服务器级 CPU。
    内存 :128GB +。
    硬盘 :70GB +。
    显卡 :多卡并行,如 2x A100 80GB 或 4x RTX 4090。

    ollama pull deepseek-r1:70b

    DeepSeek-R1-671B

    CPU :64 核以上,服务器集群。
    内存 :512GB +。
    硬盘 :300GB +。
    显卡 :多节点分布式训练,如 8x A100/H100。

    ollama pull deepseek-r1:671b

    等待模型拉取到本地。

  6. 拉取嵌入模型nomic-embed-text​

    ollama pull nomic-embed-text

  7. 前往 AnythingLLM 官方网站(https://anythingllm.com/desktop)下载安装包。

  8. 配置LLM首选项。平台选择Ollama​,模型选择我们刚拉取的模型deepseek-r1:32b​,其他保持默认,然后点击“Save changes”进行保存。

  9. 配置嵌入模型。平台选择Ollama​,模型选择nomic-embed-text:latest​,其他的保持默认,然后点击“Save changes”进行保存。

  10. 如果对英文不友好,可以在 Customization 中将 Display Language 设置成Chinese​。

使用

  1. 创建工作区。给工作区设置一个名称,然后保存。

  2. 上传知识库文件。点击工作区名称旁边的上传图标,进入文件上传管理。

  3. 选择知识库文件上传。

  4. 将知识库文件移动到当前工作区。

  5. 保存并嵌入知识库文件。

  6. 在工作区中与大模型进行对话。

总结

在使用 DeepSeek-R1 模型的过程中,我发现当参数在 32B 及以下时,模型在处理复杂推理任务时的表现似乎不太理想,感觉有些力不从心。具体来说,它会出现中英文混合输出的情况,这在一定程度上影响了结果的准确性和可读性。

另外,就 AnythingLLM 框架而言,其检索能力也存在一些不足之处。有时候我提出的问题,明明在知识库中是存在相关知识的,但系统却提示没有找到相关知识,这说明框架的检索功能还有待进一步优化和提升,以便能更精准地定位和提供知识库中的有效信息。