FLModel/flm
# FLM 学习卡
一、一句话定位
FLM 是一个“冻结大模型 + 果蝇全脑连接组适配器”的本地推理项目:用 27.8 万参数的可训练读出头,从 16.7 万节点、2558 万有向边的固定蝇脑图中提取状态,微调 12 亿参数的 LFM 模型的下一个 token 概率,而语言能力完全来自基座模型。
二、核心技术/架构亮点
1. 冻结-适配器范式:仅训练 278,528 参数的读出头,基座模型权重完全固定,训练高效、避免灾难性遗忘。
2. 生物连接图作为计算图:每个 token 驱动 `x = tanh(W @ (0.6x + 0.4 * input))`,W 是生物解剖接触计数(传入归一化),图结构和边权在训练中不动。
3. 有界残差校正:读出层输出 bounded correction 直接加到语言模型 logits,不改变基座内部表示。
4. 可选的 C 内核加速:提供编译脚本加速图特征提取,备选 SciPy 路径同样实现递归,兼容无编译器环境。
5. 完整本地链路:无需 API、服务器,全部在 macOS/Linux 上自包含运行,依赖明确、校验 SHA-256。
三、适用场景与目标用户
- 神经科学交叉研究:探索生物神经回路(如果蝇全脑)与大规模语言模型交互的可行性。
- 生物启发式 AI 实验:测试固定拓扑(而非训练图)对模型输出的影响。
- 离线/隐私研究:需要完全本地化、无外部依赖的微调与聊天环境。
- 目标用户:对连接组学、生物计算、模型微调感兴趣的 AI/神经科学研究者。
四、可动手动作
1. 克隆与安装:`git clone` → `python3.12 -m venv .venv` → `pip install -r requirements.txt`。
2. 下载与预处理:运行 `python scripts/download.py`(获得连接组与语料)→ `python scripts/prepare_graph.py`(构建图结构)。
3. 编译加速(可选):`python scripts/build_graph_kernel.py`(需 C 编译器),否则自动走 SciPy 路径。
4. 训练适配器:`python scripts/train_conversation.py`(输出到 `runs/` 目录,可指定 `--device cpu`)。
5. 聊天与评估:`python scripts/chat.py` 交互对话;`python -m unittest discover -s tests` 检查核心逻辑。
*借鉴思路*:替换图数据为其他生物网络(如小鼠皮层),复用“冻结大模型 + 固定图适配器”框架。
五、学习优先级:P1(排期)
理由:项目开源、实现完整,但论文明确指出直接输入控制而非生物图表现略好,未证明蝇脑拓扑优势。技术新颖性高,适合作为中期探索(而非本周紧急动手),安排下一周期实验验证其可复现性及迁移价值。⌂