ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

训练你自己的麻将AI:Akagi内置机器人行为克隆训练实战教程

训练你自己的麻将AI:Akagi内置机器人行为克隆训练实战教程 训练你自己的麻将AIAkagi内置机器人行为克隆训练实战教程【免费下载链接】Akagi支持雀魂、天鳳、麻雀一番街、天月麻將能夠使用自定義的AI模型實時分析對局並給出建議內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Amatsuki, with the ability to use custom AI models to analyze games in real time and provide suggestions. Comes with Mortal AI as a built-in example.项目地址: https://gitcode.com/gh_mirrors/ak/Akagi想拥有一个真正属于自己的麻将AI吗本教程将带你完成一次完整的麻将AI训练实战利用开源麻将助手 Akagi 内置的机器人行为克隆训练管线从零训练一个能实时分析雀魂、天鳳等平台对局、并给出出牌建议的自定义AI模型。全程只需要一台带 GPU 的电脑和几万份牌谱即使你不懂复杂的强化学习也能在几十分钟内跑通数据 → 训练 → 部署的完整流程。上图是 Akagi 的实战界面右侧的 Bot 状态面板会实时显示AI模型的推荐动作你可以在真实对局中直观检验自己训练出的麻将AI水平。什么是行为克隆给新手的通俗解释行为克隆Behavior Cloning是训练麻将AI最直观的方法本质就是模仿学习收集大量人类高手的牌谱比如天鳳牌谱让AI看到局面后学习高手在这个局面下实际做出的选择反复训练直到AI面对类似局面时能给出接近高手的决策它不需要环境交互、不需要奖励函数只需要数据 监督学习非常适合作为麻将AI训练的入门路线。Akagi 内置的机器人正是用这种方法训练出来的你完全可以在其基础上训练自定义AI模型。Akagi 内置机器人是怎么来的Akagi 内置了一个纯 Rust 实现的神经网络机器人内建 Mortal AI 作为示例它的训练管线非常清晰分为四步提取用 Rust 读取 mjai 格式的.json.gz牌谱回放对局生成(观测, 动作, 合法动作掩码)训练样本训练用 Python PyTorch 在 GPU 上训练一个小型 CNN1D ResNet导出把权重折叠后导出为.safetensors文件部署Rust 端用 candle 直接加载权重实时推理整个流程的完整说明见native_bot/train/README.md训练脚本在native_bot/train/train.py。有意思的是除了一分钟左右的 GPU 训练其余环节全是纯 RustPython 只负责离线拟合权重。实战第1步准备麻将牌谱数据集麻将AI训练的第一步是准备数据。Akagi 的提取器读取的是mjai 格式的.json.gz牌谱文件天鳳牌谱是经典来源mjai 是日麻AI通用的协议格式。数据目录建议按玩家人数分开存放dataset/ ├── p4/ # 四人麻将牌谱天鳳四麻 └── p3/ # 三人麻将牌谱三麻四人麻将建议准备 4 万局以上可提取约 600 万条训练样本三人麻将同样 4 万局可提取约 400 万条样本牌谱越多训练出的麻将AI越接近人类高手水平。注意Akagi 会自动跳过损坏或格式异常的牌谱文件不必手动清洗。实战第2步用 Rust 快速提取训练样本拿到牌谱后使用 Akagi 自带的提取器native_bot/src/bin/extract.rs一键提取训练样本cd native_bot cargo build --release --no-default-features --features extract --bin extract # 四人麻将前4万局上限600万样本 ./target/release/extract dataset/p4 4 out/p4 40000 6000000 # 三人麻将前4万局上限400万样本 ./target/release/extract dataset/p3 3 out/p3 40000 4000000提取器会通过 riichienv-core 引擎逐局回放牌谱为每一步决策生成样本。输出目录中会出现.obs/.act/.msk三类分片文件外加一个描述形状的meta.json。几个值得知道的细节牌谱中的弃牌动作占比约 77%–81%提取器还会为每个本可鸣牌却选择过牌的座位合成 pass 样本保证数据均衡三人麻将额外包含约 6% 的北kita动作样本提取是多线程的rayon几百万条样本只需几秒钟实战第3步在 GPU 上训练你的麻将AI模型样本就绪后就可以开始真正的麻将AI训练了。创建带 CUDA 版 PyTorch 的虚拟环境然后运行native_bot/train/train.py# 安装依赖 pip install torch numpy safetensors # 四人麻将训练 python train.py --data out/p4 --out ../weights/akagi4p.safetensors \ --epochs 10 --batch 2048 --lr 1.5e-3 # 三人麻将训练 python train.py --data out/p3 --out ../weights/akagi3p.safetensors \ --epochs 10 --batch 2048 --lr 1.5e-3模型的架构是一个1D ResNet卷积层宽度 64、3 个残差块、全连接层 256使用带掩码的交叉熵损失只学习合法动作。训练完成后脚本会把 BatchNorm折叠进前面的卷积层导出的模型是纯 Conv1d LinearRust 端无需额外的 BN 算子。参考性能RTX 4070 Ti、4万局、10 epoch模式验证集 Top-1 准确率参数量权重体积训练耗时四人麻将75.9%660,0502.6 MB约5分钟三人麻将77.8%539,3242.2 MB约3分钟也就是说一块主流显卡几分钟就能训练出一个可用等级的麻将AI这就是行为克隆路线的魅力所在。实战第4步验证 Rust 与 Python 数值一致性训练完成后建议先做一次一致性验证Rust 的 candle 推理结果必须与 PyTorch 保持一致否则部署后AI会精神分裂。Akagi 提供了专门的校验脚本native_bot/train/parity_check.pypython parity_check.py ../weights/akagi4p.safetensors 39 34 ../weights/parity_4p.json python parity_check.py ../weights/akagi3p.safetensors 37 27 ../weights/parity_3p.json cd .. cargo test --test parity # candle 与 PyTorch 最大差值 2e-3脚本会生成一个确定性的输入样本和参考 logits然后让 Rust 端读取并数值比对确保决策完全一致。这一步能帮你提前发现权重导出或加载中的问题非常值得养成习惯。实战第5步让 Akagi 用上你的自定义AI模型最后一步是部署。Akagi 的native_bot/src/defaults.rs使用include_bytes!把权重直接嵌入二进制pub const WEIGHTS_4P: [u8] include_bytes!(../weights/akagi4p.safetensors);所以流程非常简单把你训练好的权重覆盖到native_bot/weights/下重新编译 Akagi启动应用在 Bots 标签页确认内置机器人处于ready状态之后无论是雀魂、天鳳还是麻雀一番街对局你的自定义AI模型都会实时分析局面并给出推荐真正做到自己训练的AI陪自己打麻将。常见问题与注意事项训练后模型不生效权重与观测特征是强绑定的。如果你修改了native_bot/src/obs.rs中的特征编码必须重新提取样本并重新训练旧权重无法匹配新布局。修改模型结构需要同步哪里native_bot/src/model.rs中的CONV/BLOCKS/FC常量必须与native_bot/train/train.py保持一致safetensors 的键名conv_in、res.{i}.conv{1,2}、fc、head是两边约定的契约。想换更强的模型Akagi 支持接入云端推理服务内置模型作为自动降级兜底也支持以子进程方式运行任意 mjai 协议的外部机器人参考mjai_bot/example/bot.py就能快速上手写一个规则型机器人。结语通过本次麻将AI训练实战你已经掌握了从牌谱到可运行麻将AI的完整链路数据提取 → GPU训练 → 一致性验证 → 嵌入部署。整个过程无需复杂的强化学习知识一台带 GPU 的电脑就能在几分钟内训练出自己的自定义AI模型并在 Akagi 中实时检验它的实战水平。想开始动手先获取项目源码然后从native_bot/train/README.md和native_bot/train/train.py入手祝你早日训练出属于自己的赤木茂【免费下载链接】Akagi支持雀魂、天鳳、麻雀一番街、天月麻將能夠使用自定義的AI模型實時分析對局並給出建議內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Amatsuki, with the ability to use custom AI models to analyze games in real time and provide suggestions. Comes with Mortal AI as a built-in example.项目地址: https://gitcode.com/gh_mirrors/ak/Akagi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表