训练基于Transformer的国际象棋模型以模仿人类下棋(包括思考时间)[P]

Reddit r/MachineLearning 模型

摘要

训练了基于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/),但所有前端代码也在仓库中,如果您想自行托管的话。
查看原文

相似文章

Otter:一种具有时间感知和历史条件的人类国际象棋AI

arXiv cs.AI

Otter是一个1530万参数的人类国际象棋AI,通过在马亚2的基础上增加对棋局历史和时间压力的条件化移动预测,以更少的参数实现了比Maia 2更高的准确性。它在来自Lichess对局的61亿个局面位置上训练,表明将国际象棋视为一种具有时间感知的序列活动可以改善对人类对弈的预测。

Transformer学习Mestre-Nagao启发式方法

arXiv cs.LG

本文训练了一个两层Transformer编码器,利用Frobenius迹将有理椭圆曲线按秩分类,准确率超过99%。机械可解释性揭示该模型学习了Mestre-Nagao启发式方法,并将注意力集中在素数位置上,表明Transformer能够学习数论算法。

Transformer线性表示高度结构化的世界模型

arXiv cs.LG

本文证明,在数独求解轨迹上训练的Transformer构建了由领域约束组织的结构化世界模型,并识别出一个稀疏、单语义的电路,负责裸单决策规则。该工作为Transformer在组合任务上的推理提供了完全可解释的算法描述。

@maxrumpf: 人类是低上限

X AI KOLs Timeline

Max Rumpf 认为,在训练先进AI模型时,人类反馈正变得过时,他引用了国际象棋、数学和搜索等例子。他主张使用自我对弈和合成数据等无需人类的方法,而Will Depue的一条引用推文则呼吁建立与计算规模相平行的大规模数据基础设施。