探検
麻雀AI研究 mjxビルド
2024/10/06(日) 02:20:12.65ID:0LGLgONj
有識者募集
2024/10/06(日) 02:22:54.89ID:0LGLgONj
山岡さんのdlmahjongとかの話も募集
3焼き鳥名無しさん
2024/10/06(日) 02:23:16.08ID:0LGLgONj みんなもそろそろ開発者になろうや
2024/11/23(土) 06:24:25.87ID:YjMNalQw
岡山エアコンラーメンマン
2025/02/27(木) 20:31:26.67ID:B75AO5iI
🍌
2025/05/09(金) 06:46:42.32ID:6Pl23S38
サンライズ瀬戸
2025/07/16(水) 22:18:07.73ID:509tJJhl
非ディープラーニングの麻雀 AI に興味ある人いる?
まったり麻雀 とか mjai-manue とか Akochan とか
最近だと電脳麻将の majiang-ai とかが有名かな?
まったり麻雀 とか mjai-manue とか Akochan とか
最近だと電脳麻将の majiang-ai とかが有名かな?
9焼き鳥名無しさん
2025/07/31(木) 15:07:40.73ID:ZzxQRVjl10焼き鳥名無しさん
2025/07/31(木) 18:29:39.77ID:ptyYoBx7 ブリンカー着用
11焼き鳥名無しさん
2025/08/01(金) 19:50:11.98ID:JmmoHB6a >>9
いまよく知られてる DL 系の麻雀 AI はどれもプレトレーニング用の牌譜が要るのがネックだね
Mortal は Mjai の mjson 形式、
Kanachan は雀魂の牌譜再生時の通信を傍受したバイナリデータ、
その他 OSS のプロジェクトは天鳳の mjlog 形式が多いかな
ネト麻の牌譜を使わないなら Akochan 同士の対戦で mjson の牌譜を作るのがいいんかね
でも Akochan は鳳凰卓の牌譜で統計データを作って参照してるから純粋じゃない?
山岡さんの dlmahjong は 0 から牌譜生成してるのが興味深いけど開発止まってるね
いまよく知られてる DL 系の麻雀 AI はどれもプレトレーニング用の牌譜が要るのがネックだね
Mortal は Mjai の mjson 形式、
Kanachan は雀魂の牌譜再生時の通信を傍受したバイナリデータ、
その他 OSS のプロジェクトは天鳳の mjlog 形式が多いかな
ネト麻の牌譜を使わないなら Akochan 同士の対戦で mjson の牌譜を作るのがいいんかね
でも Akochan は鳳凰卓の牌譜で統計データを作って参照してるから純粋じゃない?
山岡さんの dlmahjong は 0 から牌譜生成してるのが興味深いけど開発止まってるね
12焼き鳥名無しさん
2025/08/01(金) 19:59:24.90ID:JmmoHB6a >>9
mjai-manue は結構コードが少なくて勉強にはいいと思う
あと麻雀 AI 対戦サーバーのデファクトスタンダードである Mjai の作者による AI という記念碑的な意味もある
ちなみに Go 言語に移植した mjai-manue-go ってプロジェクトが最近できた
こっちは内部構造が整理されててさらにコードが読みやすくなってる
majiang-ai は作者がブログとか X でたびたび発信してるから参考になるかも
ただ個人的には結構検証が浅い気がするので結果は鵜呑みにできないかも
mjai-manue は結構コードが少なくて勉強にはいいと思う
あと麻雀 AI 対戦サーバーのデファクトスタンダードである Mjai の作者による AI という記念碑的な意味もある
ちなみに Go 言語に移植した mjai-manue-go ってプロジェクトが最近できた
こっちは内部構造が整理されててさらにコードが読みやすくなってる
majiang-ai は作者がブログとか X でたびたび発信してるから参考になるかも
ただ個人的には結構検証が浅い気がするので結果は鵜呑みにできないかも
13焼き鳥名無しさん
2025/08/01(金) 20:01:00.75ID:aw0qNILC >>11
牌譜生成の点でdlmahjongはだいぶ期待してたんだけどあれモデルの性能を可視化する段階までもいけてないからね、
現状実質なにもやってないようなもんなんだよな
開発止めてて悲しいよ
mortalたちは教師ありだし強化学習はないようなものだしね
akochanのアルゴリズムは知らなかったな
どちらにせよ自己対局で牌譜残すようにするにはそこそこ労力が必要そうだな
mjaiをローカルで立ち上げて学習するのが環境的には早いと思ったけどそうなるとrubyで1からAI書かないといけない
mjxはopen ai gymの閉鎖でもう動かなくなったと見ていいのかね
あれが一番手っ取り早いと思ってたんだが
牌譜生成の点でdlmahjongはだいぶ期待してたんだけどあれモデルの性能を可視化する段階までもいけてないからね、
現状実質なにもやってないようなもんなんだよな
開発止めてて悲しいよ
mortalたちは教師ありだし強化学習はないようなものだしね
akochanのアルゴリズムは知らなかったな
どちらにせよ自己対局で牌譜残すようにするにはそこそこ労力が必要そうだな
mjaiをローカルで立ち上げて学習するのが環境的には早いと思ったけどそうなるとrubyで1からAI書かないといけない
mjxはopen ai gymの閉鎖でもう動かなくなったと見ていいのかね
あれが一番手っ取り早いと思ってたんだが
14焼き鳥名無しさん
2025/08/01(金) 20:04:48.56ID:aw0qNILC やっぱりmjaiでmjai-manueがすぐ実装できる点は評価するべきか
mjai-manueは少しバカにしてたけれどもAIと環境がサーバーを通してなにやり取りしてるかとか確認するためには有用なのかな
mjai-manueは少しバカにしてたけれどもAIと環境がサーバーを通してなにやり取りしてるかとか確認するためには有用なのかな
15焼き鳥名無しさん
2025/08/01(金) 20:08:51.94ID:JmmoHB6a >>13
Mortal は強化学習やってるよ
Suphx と同じで牌譜から大まかな打ち方をプレトレーニングした後自己対戦で強化学習してる
Akochan は論文出てる (自分は難しすぎて読めてない……)
https://arxiv.org/abs/1904.07491
Mortal は強化学習やってるよ
Suphx と同じで牌譜から大まかな打ち方をプレトレーニングした後自己対戦で強化学習してる
Akochan は論文出てる (自分は難しすぎて読めてない……)
https://arxiv.org/abs/1904.07491
17焼き鳥名無しさん
2025/08/01(金) 20:19:18.63ID:JmmoHB6a >>13
誤解させたならごめん
Akochan には作成済みの設定ファイルが付属してるから実行はすぐにできる
むしろ付属以外のデータを使ってる人はほとんどいないと思う
Akochan はビルドがめんどくさいけど、
最近 Docker 内でビルドする akochan-docker ってリポジトリができたからそれを使えばすぐ試せるよ
ちなみに mjai-manue も牌譜から統計データと決定木を作成して参照してる
誤解させたならごめん
Akochan には作成済みの設定ファイルが付属してるから実行はすぐにできる
むしろ付属以外のデータを使ってる人はほとんどいないと思う
Akochan はビルドがめんどくさいけど、
最近 Docker 内でビルドする akochan-docker ってリポジトリができたからそれを使えばすぐ試せるよ
ちなみに mjai-manue も牌譜から統計データと決定木を作成して参照してる
18焼き鳥名無しさん
2025/08/01(金) 22:53:47.82ID:EdYVqH65 >>17
全部ありがとう
週明けまた色々やってみる
akochanこう思うと全然触ってないのかもしれない
akochanとmortalをローカルでビルドするのを目先の目標にするよ
またアンカー飛ばすかもしれないがそのときはまたよろしくお願いします
全部ありがとう
週明けまた色々やってみる
akochanこう思うと全然触ってないのかもしれない
akochanとmortalをローカルでビルドするのを目先の目標にするよ
またアンカー飛ばすかもしれないがそのときはまたよろしくお願いします
19焼き鳥名無しさん
2025/08/02(土) 05:57:49.47ID:yu6uLi16 >>18
頑張ってね
上でも言ったけど Akochan は以下のリポジトリを見ればビルドに最低限何が必要かわかるよ
ローカルでビルドするなら patch.sh の 3 つめの変更 (localhost から Docker コンテナ外に接続先を変える) だけ不要だね
https://github.com/Apricot-S/akochan-docker
Mortal はドキュメント通りにビルドするだけだね
https://mortal.ekyu.moe/user/build.html
頑張ってね
上でも言ったけど Akochan は以下のリポジトリを見ればビルドに最低限何が必要かわかるよ
ローカルでビルドするなら patch.sh の 3 つめの変更 (localhost から Docker コンテナ外に接続先を変える) だけ不要だね
https://github.com/Apricot-S/akochan-docker
Mortal はドキュメント通りにビルドするだけだね
https://mortal.ekyu.moe/user/build.html
20焼き鳥名無しさん
2025/08/04(月) 15:42:28.68ID:zlPiYrP4 >>19
mortalそのページに載ってるのは最後までできたんだけど,そのあとのトレーニングができないんだよね
https://github.com/Equim-chan/Mortal/discussions/57
ここ参考にすると,天鳳牌譜をmjai形式にしたあとにGzipしたjson.gzをデータセットにして,train.pyを実行したらmortal.pthができるのかね
ついでにmortalのdockerについてなんだけど,
https://mortal.ekyu.moe/user/docker.html
の「Prepare a trained model」で「snapshot mortal1-b40c192-t22040618」を使ってるみたいなんだけど,これなんのことかわかる??
今日はまだakochanに手つけれなかった;;
でもそのサイト参考にしたらビルドと実行もできそうだね!ありがとう!
mortalそのページに載ってるのは最後までできたんだけど,そのあとのトレーニングができないんだよね
https://github.com/Equim-chan/Mortal/discussions/57
ここ参考にすると,天鳳牌譜をmjai形式にしたあとにGzipしたjson.gzをデータセットにして,train.pyを実行したらmortal.pthができるのかね
ついでにmortalのdockerについてなんだけど,
https://mortal.ekyu.moe/user/docker.html
の「Prepare a trained model」で「snapshot mortal1-b40c192-t22040618」を使ってるみたいなんだけど,これなんのことかわかる??
今日はまだakochanに手つけれなかった;;
でもそのサイト参考にしたらビルドと実行もできそうだね!ありがとう!
21焼き鳥名無しさん
2025/08/04(月) 19:43:34.31ID:4Wq1Zs7u >>20
モデル名についてはあくまで推測だけど
mortal1-b40c192-t22040618 は
mortal1
Mortal v1 (鳳凰卓の牌譜を使ったモデル)
b40c192
Mortal/mortal/config.toml の
[resnet]
conv_channels = 192
num_blocks = 40
t22040618
2022年04月06日18時 (UTC? CST?)
例では Mortal v1を使って説明してるってことだね
モデル名についてはあくまで推測だけど
mortal1-b40c192-t22040618 は
mortal1
Mortal v1 (鳳凰卓の牌譜を使ったモデル)
b40c192
Mortal/mortal/config.toml の
[resnet]
conv_channels = 192
num_blocks = 40
t22040618
2022年04月06日18時 (UTC? CST?)
例では Mortal v1を使って説明してるってことだね
22焼き鳥名無しさん
2025/08/04(月) 19:59:00.73ID:4Wq1Zs7u >>20
ごめん 自分は Mortal を動かしたことがないから確実なことは言えないけど
train.py より先に train_grp.py が必要っぽい
train.py での報酬計算に GRP (Global Reward Prediction) モデルを使ってるみたい
DeepWiki に聞くと色々詳しく解説してくれるよ
https://deepwiki.com/Equim-chan/Mortal
ごめん 自分は Mortal を動かしたことがないから確実なことは言えないけど
train.py より先に train_grp.py が必要っぽい
train.py での報酬計算に GRP (Global Reward Prediction) モデルを使ってるみたい
DeepWiki に聞くと色々詳しく解説してくれるよ
https://deepwiki.com/Equim-chan/Mortal
23焼き鳥名無しさん
2025/08/04(月) 20:50:58.50ID:4Wq1Zs7u24焼き鳥名無しさん
2025/08/06(水) 14:52:19.06ID:dWMrSHtl25焼き鳥名無しさん
2025/08/06(水) 19:27:32.79ID:GATkyhzd >>24
自分は使ってないけど、
このプロジェクトを使えばローカルの mjlog から mjson に変換できるっぽい?
https://github.com/fstqwq/mjlog2mjai
あと Mjai もコマンドラインオプションを見ると mjlog から mjson への変換機能があるみたい
https://github.com/gimite/mjai/blob/master/lib/mjai/mjai_command.rb#L55-L70
自分は使ってないけど、
このプロジェクトを使えばローカルの mjlog から mjson に変換できるっぽい?
https://github.com/fstqwq/mjlog2mjai
あと Mjai もコマンドラインオプションを見ると mjlog から mjson への変換機能があるみたい
https://github.com/gimite/mjai/blob/master/lib/mjai/mjai_command.rb#L55-L70
26焼き鳥名無しさん
2025/08/06(水) 22:28:20.41ID:iuTZybAd >>26
そういえば Mortal や Akochan を使って何をする予定?
Mortal モデルを作って RiichiLab に提出する?
それとも 自作 AI 開発のための勉強?
このスレ今は二人しかいないっぽいけど、もっと人が増えたら RPA を組み合わせて天鳳個室・雀魂友人戦で遊ぶとかできたら楽しそうだね
そういえば Mortal や Akochan を使って何をする予定?
Mortal モデルを作って RiichiLab に提出する?
それとも 自作 AI 開発のための勉強?
このスレ今は二人しかいないっぽいけど、もっと人が増えたら RPA を組み合わせて天鳳個室・雀魂友人戦で遊ぶとかできたら楽しそうだね
28焼き鳥名無しさん
2025/08/20(水) 13:53:33.93ID:OUjDgBfe >>27
ちょうどその話をしようと思ってたんだけど、
強化学習のAIを自作して、動作確認(学習して打牌選択の変化)をしたのち、最終的に天鳳に導入することが目的なんだ
0から作ることはさすがにできないから、どのAIをいじれば自作しやすいか模索してるのが今!
どれやれば一番手っ取り早いかな😭
ほかの人たちも対戦環境整えたものの人集まらなくて頓挫したとかブログ見かけるしやりたいところだね
天鳳に繋げるのってwiresharkとかしか見かけなかったんだけどRPAってのでできるの?!
ちょうどその話をしようと思ってたんだけど、
強化学習のAIを自作して、動作確認(学習して打牌選択の変化)をしたのち、最終的に天鳳に導入することが目的なんだ
0から作ることはさすがにできないから、どのAIをいじれば自作しやすいか模索してるのが今!
どれやれば一番手っ取り早いかな😭
ほかの人たちも対戦環境整えたものの人集まらなくて頓挫したとかブログ見かけるしやりたいところだね
天鳳に繋げるのってwiresharkとかしか見かけなかったんだけどRPAってのでできるの?!
29焼き鳥名無しさん
2025/08/20(水) 14:02:25.96ID:OUjDgBfe RPA調べてみたけど便利そうだね
どのツール使えばいいかは迷っちゃいそうだけど
どのツール使えばいいかは迷っちゃいそうだけど
30焼き鳥名無しさん
2025/08/20(水) 21:21:36.98ID:Qj0itpLE >>28
なら Mortal がいいかな
麻雀 AI のフレームワークの中でもかなり設計がキレイだと思う
バッチ推論対応でシミュレーションも高速だし
天鳳は通信を直接送る方式の bot が多い気がする
雀魂は Playwright とか PyAutoGUI で RPA するのが主流かな
天鳳に投入するなら個室か一般卓だね
上級卓以降は公認アカウントが必要だけど、研究機関でも断られてるみたいだから個人ではまずムリっぽい
http://blog.tenhou.net/article/190000489.html
対戦環境ってだけなら RiichiLab はそこそこ参加者がいるね
https://mjai.app/
なら Mortal がいいかな
麻雀 AI のフレームワークの中でもかなり設計がキレイだと思う
バッチ推論対応でシミュレーションも高速だし
天鳳は通信を直接送る方式の bot が多い気がする
雀魂は Playwright とか PyAutoGUI で RPA するのが主流かな
天鳳に投入するなら個室か一般卓だね
上級卓以降は公認アカウントが必要だけど、研究機関でも断られてるみたいだから個人ではまずムリっぽい
http://blog.tenhou.net/article/190000489.html
対戦環境ってだけなら RiichiLab はそこそこ参加者がいるね
https://mjai.app/
31焼き鳥名無しさん
2025/08/20(水) 22:29:24.34ID:XN7ebqC0 >>30
ありがとう
お陰で迷わずmortalに集中できそうだ
やっぱり天鳳の方式だとめんどくさいのかな
対人成績確認したいだけだから一般卓だけでも動作できればいいんだけども
天鳳しか考えてなかったけどMortalやるってなったら天鳳に拘らなくて雀魂でもいいね
RPAも使ってみたいし
リーチラボ実はクソザコ登録してあるんだけど週1なのがちょっとネックかなって
あと、公開されてるの登録しただけで書き方あんまわかんなかった
これzipに重みとかも詰めたら強化学習AIも登録できるってことだよね?
戦績も牌譜屋とかと比べると評価指標が少ないしね
ありがとう
お陰で迷わずmortalに集中できそうだ
やっぱり天鳳の方式だとめんどくさいのかな
対人成績確認したいだけだから一般卓だけでも動作できればいいんだけども
天鳳しか考えてなかったけどMortalやるってなったら天鳳に拘らなくて雀魂でもいいね
RPAも使ってみたいし
リーチラボ実はクソザコ登録してあるんだけど週1なのがちょっとネックかなって
あと、公開されてるの登録しただけで書き方あんまわかんなかった
これzipに重みとかも詰めたら強化学習AIも登録できるってことだよね?
戦績も牌譜屋とかと比べると評価指標が少ないしね
>>31
がんばってね
注意点として雀魂は天鳳と違って一応外部ツールは全部アウトだね
自分は調査・デバッグのために友人戦で100戦以上 Playwright で自動操作しても BAN されてないから、友人戦でこっそり遊ぶ分には見逃してくれると思うけど
段位戦は銅の間でも即 BAN されると思う
RiichiLab については重みも zip に入れたら OK 、むしろほとんどの参加者はそうしてると思う
圧縮後に 1 GB の制限があるけど BERT_{BASE} くらいのサイズでも大丈夫みたい
がんばってね
注意点として雀魂は天鳳と違って一応外部ツールは全部アウトだね
自分は調査・デバッグのために友人戦で100戦以上 Playwright で自動操作しても BAN されてないから、友人戦でこっそり遊ぶ分には見逃してくれると思うけど
段位戦は銅の間でも即 BAN されると思う
RiichiLab については重みも zip に入れたら OK 、むしろほとんどの参加者はそうしてると思う
圧縮後に 1 GB の制限があるけど BERT_{BASE} くらいのサイズでも大丈夫みたい
33焼き鳥名無しさん
2025/08/21(木) 02:17:30.67ID:rVsK5MrV >>32
その雀魂とRiichiLabのAIはMortalベースで作ったやつ??
その雀魂とRiichiLabのAIはMortalベースで作ったやつ??
>>33
一般的な話なら Mortal ベースのもそうじゃないのもある
Mortal を使った RPA ならたとえば shinkuan/Akagi がある
自分のことなら
RPA は動作確認用にターミナルから入力するものとツモ切り bot しか使ってない
RiichiLab に提出してるのはモンテカルロベースの AI だから重みファイルはない
シングルバイナリを bot.py から実行してパイプしてる
一般的な話なら Mortal ベースのもそうじゃないのもある
Mortal を使った RPA ならたとえば shinkuan/Akagi がある
自分のことなら
RPA は動作確認用にターミナルから入力するものとツモ切り bot しか使ってない
RiichiLab に提出してるのはモンテカルロベースの AI だから重みファイルはない
シングルバイナリを bot.py から実行してパイプしてる
35焼き鳥名無しさん
2025/08/22(金) 15:49:16.63ID:jk7rRqef >>34
モンテカルロ組めるのですらすごいわ
Akagiがmortal.pth公開してくれてるからそれ使ってmortal動かそうとしたらだめだった
やっぱり自前でmjai形式のデータセット用意して、trainしないとか
mjai-reviewer使うにしてもあれ1個1個やらないといけないのかな?
train用だとかなり要るだろうし効率的なやり方しらない?
モンテカルロ組めるのですらすごいわ
Akagiがmortal.pth公開してくれてるからそれ使ってmortal動かそうとしたらだめだった
やっぱり自前でmjai形式のデータセット用意して、trainしないとか
mjai-reviewer使うにしてもあれ1個1個やらないといけないのかな?
train用だとかなり要るだろうし効率的なやり方しらない?
レスを投稿する
ニュース
- 【訃報】ゴルフ界のレジェンド ジャンボ尾崎さん死去 78歳 男子国内ツアーで最多94勝 S状結腸がんで [ぐれ★]
- 高市政権、続く高支持率 積極財政や対中強硬姿勢評価か 「なぜこんなに高いのか」政権内に困惑も [ぐれ★]
- 【📱】PCだけじゃなかった… スマホも「世界的メモリ不足」で値上がりへ 26年はスペックダウンも頻発か [ぐれ★]
- 【ふるさと納税】「おいしい肉や果物の代わりに失った」行政サービス。東京都では“累計1兆1593億円”が流出 [ぐれ★]
- 真冬に“エアコン”がなく孤独な死…生活保護受給者40代シングルマザーの悲劇が行政に問いかける“教訓” ★4 [ぐれ★]
- 【兵庫】「すごい挑発ですね」と記者怒り…斎藤知事 年内最後の会見でも批判噴出、“逃げ回答”繰り返し場内では怒号も [ぐれ★]
- 【正論】石破「政治家は本音と建前あるけど。やっぱり建前って大事。みんなが本音を言ったら、めちゃくちゃになる」 [979264442]
- 被爆者団体「核保有、絶対許さない!」普通の日本人「気持ちはわかるが反日敵国から身を守るには核保有しかない😤!」 [441660812]
- 【悲報】維新の国会議員が「北方領土は、戦争をしないとどうしようもなくないか」「戦争をしないと取り返せない」などと発言 [455031798]
- 【悲報】松本人志さん、ガチで行方不明WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 【訃報】ジャンボ尾崎さん死去、78歳 [256556981]
- 【悲報】X「一条工務店でだけは家建てるな」→ガチで糞だと話題にwwwwwwwwwwwwwwwwwwww [802034645]
