AB
AiBoss
Tutorials

MINIDORA 本地部署教程:不用神经网络与 Transformer 的 LLM 怎么跑起来

Tutorials

MINIDORA 本地部署教程:不用神经网络与 Transformer 的 LLM 怎么跑起来

MINIDORA 是一个不依赖神经网络与 Transformer 的语言处理系统,通过判断模块、外部资料检索与计算处理组合出回答,并保留可追溯的执行记录。本教程说明如何在 Windows、macOS 与 Linux 上准备 Python 3.11 以上环境、安装源码包、启动本地基本聊天,并用一个完整示例验证从输入到回答的链路。

MINIDORA 是一个不依赖神经网络、也不使用 Transformer 的语言处理系统。它把语言处理拆成几个可组合的部分:判断该做什么的调度机制、外部资料检索、计算处理,以及可以单独追加的专业能力模块。回答不是由一个大模型一次性生成,而是由这些部件按输入逐步选择、执行、汇总得出。适合两类读者:一是想在没有 GPU、没有云端 API 密钥的普通电脑上跑起一个可对话系统的人;二是想看清「输入到回答之间到底发生了什么」的人,因为 MINIDORA 会把选用的能力、引用的资料、执行的处理和采用结果的理由写进执行记录。

本教程只覆盖公开代码里的本地基本聊天模式。这个模式不需要 OpenAI API 密钥,也不需要 Google Cloud 配置,联网只用于按需抓取维基百科条目。文中涉及版本号、能力范围、评测数字等易变信息时,请以项目官网与仓库当前说明为准。

准备工作

环境要求

本地基本聊天对机器的要求很低,核心前置条件只有两项:

  • Python 3.11 或更高版本。低于这个版本无法安装。
  • 可用的 venv 模块。安装过程会创建独立的虚拟环境,避免污染系统 Python。
  • 源码包。从项目仓库下载 ZIP 并解压,后续所有命令都在包含 pyproject.toml 的那个目录里执行。

不需要 GPU,不需要模型权重下载,不需要任何云端账号。首次安装时会额外下载日文解析库与词典,因此第一次安装需要网络,并且耗时比后续操作长。

确认目录位置

解压后的文件夹里应当能直接看到 pyproject.toml。如果它藏在下一层子目录里,先进入那一层再打开终端。判断方法很简单:在终端里列出当前目录内容,能看到这个文件就说明位置正确。后续的创建环境、安装、启动三条命令都必须在同一目录执行,换目录会导致找不到包。

关于联网

本地基本聊天在需要资料时会去抓取日文与英文维基百科的条目,这一步需要互联网连接。计算类问题、纯对话类问题不依赖网络。如果所在网络访问维基百科受限,涉及资料检索的问题会走「资料不足」的分支,而不是编造答案——这是设计上的行为,不是故障。

操作步骤

第一步:创建虚拟环境

Windows 的 PowerShell 中执行:

python -m venv .venv

macOS 与 Linux 中执行:

python3 -m venv .venv

这一步会在当前目录生成 .venv 文件夹,里面是一套独立的 Python 解释器与包目录。之后所有安装与启动都通过这套解释器进行,不使用系统全局的 python。

第二步:安装 MINIDORA

Windows PowerShell:

.\\.venv\\Scripts\\python.exe -m pip install -e .

macOS 与 Linux:

.venv/bin/python -m pip install -e .

-e 表示以可编辑模式安装当前目录的包,这样源码改动会直接生效,不必反复重装。首次执行会拉取依赖,其中包括日文解析库与词典,体积较大,请留出时间与磁盘空间。安装完成后不需要再重复这一步。

第三步:启动基本聊天

Windows PowerShell:

.\\.venv\\Scripts\\python.exe -m minidora.製品版 --HDS --基本チャット --serve

macOS 与 Linux:

.venv/bin/python -m minidora.製品版 --HDS --基本チャット --serve

这条命令启动的是 HDS 集成的基本聊天服务。--serve 表示以服务方式运行并对外提供网页界面。启动期间终端必须保持打开,关闭终端或按 Ctrl+C 都会停止服务。启动日志里会给出本地访问地址,按日志提示在浏览器中打开即可。

第四步:在浏览器中验证

打开聊天页面后,先发一个最简单的计算题:

8*9

如果返回 72,说明输入接收、处理调度、结果回传、页面渲染这条链路是通的。这一步比直接问知识类问题更适合做首次验证,因为它不依赖网络抓取,排除了外部因素。

第五步:停止与再次启动

停止服务:在运行服务的终端里按 Ctrl+C。再次使用时,只需重新打开同一目录的终端,执行第三步的启动命令即可,不需要重新创建环境或重新安装。

一个完整示例

下面从零走一遍,假设源码已解压到某个目录,终端已进入该目录。

1. 建环境

python3 -m venv .venv

2. 安装

.venv/bin/python -m pip install -e .

等待依赖与词典下载完成,命令返回提示符即表示成功。

3. 启动

.venv/bin/python -m minidora.製品版 --HDS --基本チャット --serve

终端保持运行,记下日志中给出的本地地址。

4. 验证计算链路

在聊天框发送 8*9,应得到 72。这一步确认调度机制能识别出「这是计算任务」并调用计算处理,而不是把算式当成普通文本。

5. 验证资料检索链路

发送一个需要外部资料的问题,例如询问某个概念是什么。系统会按需抓取维基百科条目,并基于抓到的正文作答。此时可以留意回答是否附带了所引用的资料信息——执行记录里会写明用了哪一条资料。

6. 验证上下文复用

在上一条回答之后,紧接着发送一条格式类指令,例如要求把刚才的内容改成引用格式。系统应当直接复用已经抓取到的资料与已有结果来改写输出,而不是重新检索一遍。这一行为体现了「保持状态」的设计:会话延续时,已获得的信息会被继续使用。

7. 观察执行记录

回顾这一轮对话的执行记录,应当能对应上四类信息:选用了哪个能力、引用了哪份资料、执行了什么处理及其结果、以及采用该结果或选择保留的理由。如果某个问题因为条件不足没有作答,记录里会写明缺少什么条件,而不是给一个含糊的答复。

8. 结束

按 Ctrl+C 停止服务。下次重复第 3 步即可。

注意事项

关于「不用神经网络」的含义

这个说法指的是回答生成的中核本身由非神经网络结构实现,并不是把请求转发给某个外部大模型再返回结果。理解这一点很重要:它决定了系统的能力边界——它擅长的是可拆解、可检索、可计算、可验证的任务,而不是开放式长文创作。

评测数字的适用范围

公开材料中给出的 GPQA Diamond 成绩为 198 题中答对 80 题、正确率 40.40%,另有不含专业能力模块时为 29 题、14.65%。需要清楚两点:其一,这些数字对应的配置包含专业能力模块,与本地基本聊天的配置并不相同,不能把本地基本聊天的表现直接等同于该成绩;其二,与 GPT-4 在 GPQA 原论文中报告的约 39% 相比,题目范围与执行条件不同,不构成同条件对比。任何评测数字都会随版本变化,请以项目当前公布的信息为准。

能力模块与中核的关系

公开材料提到,在加入科学领域专业能力模块后,同一执行下正确数从 29 增至 80,原有正确项没有变成错误项,且中核未重新训练、未更换或扩大。这说明能力扩展走的是「追加模块并由调度机制按需调用」的路线。对使用者的实际含义是:新增能力不需要重训中核,但新增模块本身需要按其说明单独准备。

确定性与可复现

系统按「相同输入、相同内部状态、相同参照数据、相同执行条件则走相同处理路径」设计,并记录全过程。因此排查问题时,优先比对执行记录中的条件是否一致,而不是反复重问期待不同结果。若两次结果不同,通常意味着输入、状态或抓取到的资料发生了变化。

常见坑

  • 在错误目录执行命令:安装与启动都要求当前目录含 pyproject.toml,否则会报找不到包。
  • 用系统 Python 直接启动:跳过虚拟环境会导致依赖缺失或版本冲突,务必使用 .venv 内的解释器。
  • 关闭终端导致服务中断:服务依附于前台终端进程,需要长期运行时请保持终端开启。
  • 首次安装误判为卡死:日文解析库与词典下载耗时较长,属正常现象。
  • 断网时提问知识类问题:会得到资料不足的保留结果,这是预期行为,不是程序错误。
  • 把本地基本聊天当成完整产品:公开材料说明会话功能仍在开发中,本地基本聊天只是其中一种启动模式,其他模式请参考项目当前文档。

版本与信息时效

Python 版本下限、可用启动模式、能力模块清单、评测成绩等都可能随版本更新而变化。部署前请核对项目当前发布的说明,不要以本文或任何二手描述作为最终依据。