训练基于Transformer的国际象棋模型以模仿人类下棋(包括思考时间)[P]
摘要
训练了基于Transformer的国际象棋模型,覆盖从800到2500+的等级分区间,能预测着法、思考时间和结果。仅用9M参数即达到较高准确率,并包含一个新颖的思考时间预测组件。
我训练了一组基于Transformer的深度学习国际象棋模型,使其像人类一样下棋(灵感来源于MAIA和Grandmaster Chess Without Search)。每个100分的等级分区间(从约800到2500+)都有一个单独的模型。我首先在8xH100集群上从头训练了一个中等强度的模型,然后在本地5090 GPU上对其他等级分范围的模型进行了微调。总训练数据量接近一年的Lichess数据,约10亿局对局。每个等级分区间实际上包含3个模型:一个着法模型、一个思考时间模型和一个白胜/和棋/黑胜模型。尽管模型很小(仅900万参数!),着法模型的准确率优于MAIA-2,与MAIA-3大致持平(参见[此处](https://github.com/thomasj02/1e4_ai/blob/master/experiments/maia2_benchmark/RESULTS.md)的MAIA-2对比)。据我所知,这是唯一一次尝试在象棋中训练思考时间,因此我没有基准可以与之比较。可能是由于网络规模的原因,在高等级分下模型的表现并不尽如人意。它们能看到短战术模式,但无法进行深层次计算——也许更大的模型会有所帮助。着法和胜率模型考虑了玩家的等级分和时钟时间。例如,在极端时间压力下,即使对手较弱,强得多的玩家胜率也会更低。模型在时间压力下也会出现更多失误。数据流水线通过nanobind使用C++实现,然后使用Pytorch进行训练。这部分是我花费最多时间的地方。预先打乱数据集,然后在训练时顺序读取打乱的数据集,使得GPU利用率保持较高。否则,大量时间会花费在I/O上,而GPU则空闲。欢迎就等级分条件化、时钟模型或数据流水线提出问题。代码(包括训练代码和模型权重)位于[https://github.com/thomasj02/1e4_ai/](https://github.com/thomasj02/1e4_ai/)。演示位于[https://1e4.ai/](https://1e4.ai/),但所有前端代码也在仓库中,如果您想自行托管的话。
相似文章
Transformer学习Mestre-Nagao启发式方法
本文训练了一个两层Transformer编码器,利用Frobenius迹将有理椭圆曲线按秩分类,准确率超过99%。机械可解释性揭示该模型学习了Mestre-Nagao启发式方法,并将注意力集中在素数位置上,表明Transformer能够学习数论算法。
Transformer线性表示高度结构化的世界模型
本文证明,在数独求解轨迹上训练的Transformer构建了由领域约束组织的结构化世界模型,并识别出一个稀疏、单语义的电路,负责裸单决策规则。该工作为Transformer在组合任务上的推理提供了完全可解释的算法描述。
Transformer 数学探索器 [P]
这个交互式工具通过数据流图可视化 Transformer 模型的数学基础,涵盖了从 GPT-2 到 Qwen 3.6 的架构以及各种注意力机制。
@NFTCPS: 天天喊着搞AI,结果你连Transformer是个啥都说不清? 有个仓库够狠,从零手搓一个GPT,不调任何高级库。Attention、多头、前馈、Embedding、残差、Layer Norm,怎么拼起来的全摊给你看。而且不止模型,整条链…
一个GitHub开源项目,从零实现完整的GPT训练流程,包含数据预处理、预训练、SFT和RLHF后训练,全部基于原生PyTorch,适合想深入理解Transformer原理的开发者。
@viditchess:国际象棋引擎告诉你最佳走法。但特级大师也是人,他们并不总是按最优下法走。所以我构建了“Kibitz”:一个用……
构建了“Kibitz”,一个用于国际象棋直播的人类走法预测器,在RTX 5080上训练,并利用Hermes、Stripe和NVIDIA AI Nemotron将其运营自动化,作为一个业务参加黑客马拉松。