我从与 Shogi AI 互动中获得的收获:在 Floodgate 夺得第一名的路径与我的 Distilled Models 方法

发布: (2026年3月14日 GMT+8 09:18)
7 分钟阅读
原文: Dev.to

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 成为一个理想的实验平台,拥有严格的胜负反馈循环。

整体架构:三层混合

构建的系统遵循三层架构:

  1. Phase 1 – Book (Opening Database)

    • 通过 Python 字典查找立即落子。
    • 无需启动 C++ 引擎,GPU/CPU 负载为零。
  2. Phase 2 – MCTS + DL Model

    • 使用 TensorRT 对大型 40‑block ResNet 进行推理。
    • 量化后可适配 RTX 5090 的 32 GB 显存。
  3. 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 作为编码伙伴。对于 dlshogiYaneuraOu 等小众专业工具,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)
0 浏览
Back to Blog

相关文章

阅读更多 »