我从与 Shogi AI 互动中获得的收获:在 Floodgate 夺得第一名的路径与我的 Distilled Models 方法
Source: Dev.to
请提供您希望翻译的正文内容,我会按照要求保留原始格式、Markdown 语法以及技术术语,仅将文本翻译成简体中文。谢谢!
引言
作为验证推理优化和模型处理的实际测试平台,我在2026年1月首次接触了一款开源将棋软件。
结果,我在 Floodgate(一个面向计算机将棋的在线将棋服务器)上通过进行超过200局对局,达到了1段(rank 1),评分超过4500。自2025年12月开始编程以来,这一成就在接触该开源软件后约两个月实现。
本文并非实现的操作指南,而是从一名 LLM/RAG 研究者的视角,讨论通过将棋 AI 所学到的经验以及如何将其应用于 LLM 研究。
为什么是象棋 AI?
- 在大语言模型(LLM)研究中,推理优化和模型选择等挑战很常见,但评估可能模糊——“答案是否好?”往往涉及主观性。
- 将棋 AI 提供明确的胜负和评分,使得能够立即通过数值验证策略的有效性。
- CUDA/TensorRT 构建和批处理优化等技能在 LLM 与将棋 AI 之间是共享的,这使得将棋 AI 成为一个理想的实验平台,拥有严格的胜负反馈循环。
整体架构:三层混合
构建的系统遵循三层架构:
Phase 1 – Book (Opening Database)
- 通过 Python 字典查找立即落子。
- 无需启动 C++ 引擎,GPU/CPU 负载为零。
Phase 2 – MCTS + DL Model
- 使用 TensorRT 对大型 40‑block ResNet 进行推理。
- 量化后可适配 RTX 5090 的 32 GB 显存。
Phase 3 – α‑β + NNUE
- 通过 CPU 搜索进行快速局面评估。
- 能够在残局中读取并判断胜负。
Python 包装器负责相位切换和协议通信,根据局面特征选择引擎。此种“通过整体架构而非单一模型取胜”的思路类似于 RAG 系统的组合(search → ranking → generation 多阶段流水线)。
OSS修改:削减的价值
我分叉了两个开源引擎(DL 和 NNUE),并在源码层面去除了不必要的功能。
- DL engine – 移除了多 GPU 支持、多个后端分支以及各种 mate 搜索例程,以专注于 RTX 5090 × TensorRT。USI 选项从 63 项减少到 43 项(‑32 %)。
- NNUE engine – 削减了测试指令、开局生成指令以及与学习相关的代码,使二进制文件从 916 KB 缩小到 514 KB(降低 44 %)。
这种“削减”工作直接适用于 LLM 操作。与其通过 LoRA 或微调向蒸馏模型添加功能,不如通过提示来减少不必要的分支并控制行为——这是一种与文章 An Era Without LoRA or FT: How to Approach Distilled Models 所倡导的策略相一致的做法。
实时开局库重写:受 RAG 启发的方法
- 在 Python 端管理约 7 百万局面开局库数据库。
- 加速了开局库的加载。
- 实现了比赛期间的实时重写:在一次失利后,识别早期分支点,并修改开局库以在下一局中选择不同的走法。随着比赛的累积,开局库会持续优化。
这种“从经验更新数据库并在后续推理中体现”的循环类似于 RAG 中的反馈回路,类似于通过对话日志提升搜索结果质量。
LLM 利用与局限
在开发过程中,我使用 Claude Opus 作为编码伙伴。对于 dlshogi 和 YaneuraOu 等小众专业工具,LLM 幻觉现象经常出现。盲目相信自信生成的代码可能导致错误的修改,这些修改不仅会失败,还会降低棋力。
关键教训: LLM 是翻译工具,而非推理工具。应使用专用引擎(例如,象棋搜索引擎、领域特定逻辑)进行计算,并利用 LLM 对输入/输出进行自然语言翻译。这与 RAG 设计原则相一致:“不要给 LLM 知识,而是基于从外部来源获取的事实生成答案。”
结论:研究是循环的
在整理了两个月将棋 AI 开发的洞见后:
- 对蒸馏模型进行额外学习无效,甚至导致过拟合 → 提示控制是正确的做法。
- 通过完整的架构而非单一模型获胜 → RAG 流水线设计理念。
- 从经验中更新数据库并在后续推理中体现 → RAG 反馈回路。
- 大语言模型是翻译工具,而非推理引擎 → 领域逻辑应交由专用引擎处理。
这段将棋 AI 的经验已反馈到大语言模型研究中,而大语言模型研究的洞见也被应用到将棋 AI 的架构设计中。循环是跨领域探索的最大价值。我目前已回到本地大语言模型的研究(使用 NVIDIA 的 Nemotron 模型构建系统),待 GPU 空闲时将再次参与。过程非常愉快。
使用的硬件
- GPU: NVIDIA RTX 5090 (32 GB GDDR7)
- CPU: Intel Core Ultra 9 285K
- RAM: 64 GB
- OS: Linux (WSL2)