>>20
ちなみに Mortal v3.1 では
mortal3-b24c512-t22122709
となってた
麻雀AI研究 mjxビルド
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用だとかなり要るだろうし効率的なやり方しらない?
紹介しといてなんだけど、Akagi は有料で接続権を売ってるモデルの評価に雀魂王座の間を使ってるからあまり使いたくない……
38焼き鳥名無しさん
2025/08/27(水) 23:00:16.49ID:0cqC6hj/ >>37
akagiはちょっと黒いよね
自前のデータセットがxml形式で使えなかったから
新しくこんなの使ってsuphxのデータ全部集めてみた
https://github.com/MahjongRepository/phoenix-logs
suphxだけでもデータ抽出めっちゃ時間かかるわ
全部やろうかと思ってたけどとりあえず2019年だけでやってみる
mortalのトレーニング始められたらまた連絡するよ!
akagiはちょっと黒いよね
自前のデータセットがxml形式で使えなかったから
新しくこんなの使ってsuphxのデータ全部集めてみた
https://github.com/MahjongRepository/phoenix-logs
suphxだけでもデータ抽出めっちゃ時間かかるわ
全部やろうかと思ってたけどとりあえず2019年だけでやってみる
mortalのトレーニング始められたらまた連絡するよ!
3903
2025/08/29(金) 01:07:45.25ID:oWtn88Fd xml形式のmjlogを変換するコード書いたことあるから貼っとく
mjai使っているから多分正しく変換できるはず。。。(あんまり確認してないけど)
時間があったら使ってみてー
https://github.com/h11r03/mjlog-xml-to-mjai-json-
mjai使っているから多分正しく変換できるはず。。。(あんまり確認してないけど)
時間があったら使ってみてー
https://github.com/h11r03/mjlog-xml-to-mjai-json-
40焼き鳥名無しさん
2025/08/29(金) 21:34:58.82ID:E9hW9WB641焼き鳥名無しさん
2025/08/30(土) 12:02:54.14ID:h7esdUVI ちょっと相談なんだけど
mjai を Node.js とか Go に移植する需要ってあると思う?
それとも今は mjx の mjx_mjai_translater とか Mortal/libriichi の AkochanAgent みたいにシミュレーターにトランスレーターをかませば十分で
TCP/IP 通信のサーバーの需要自体がない?
mjai を Node.js とか Go に移植する需要ってあると思う?
それとも今は mjx の mjx_mjai_translater とか Mortal/libriichi の AkochanAgent みたいにシミュレーターにトランスレーターをかませば十分で
TCP/IP 通信のサーバーの需要自体がない?
42焼き鳥名無しさん
2025/09/01(月) 15:55:32.86ID:F1y2xxwf >>39,40
それも使ってみたんだけどうまくいかなかった;;
https://crates.io/crates/mjlog2json/0.1.2
https://github.com/h11r03/mjlog-xml-to-mjai-json-
https://github.com/MahjongRepository/phoenix-logs
どれでやっても
https://github.com/Equim-chan/mjai-reviewer?tab=readme-ov-file
が機能しない
データセットは
https://qiita.com/neuzen-ryuki/items/48fa468fa0b1c502ed1e
https://tenhou.net/sc/raw/
これどっちもで試してみたんだけどなあ
それも使ってみたんだけどうまくいかなかった;;
https://crates.io/crates/mjlog2json/0.1.2
https://github.com/h11r03/mjlog-xml-to-mjai-json-
https://github.com/MahjongRepository/phoenix-logs
どれでやっても
https://github.com/Equim-chan/mjai-reviewer?tab=readme-ov-file
が機能しない
データセットは
https://qiita.com/neuzen-ryuki/items/48fa468fa0b1c502ed1e
https://tenhou.net/sc/raw/
これどっちもで試してみたんだけどなあ
43焼き鳥名無しさん
2025/09/01(月) 16:04:23.41ID:F1y2xxwf >>41
あんまどれがどういうメリットあるのか知識ないからわからないけど,
mjaiみたいなTCP/IP 通信のサーバーが他にもあったら使い勝手は良いと思うな
Node.jsは電脳麻雀との差別化が難しい気がするけど,一緒に使いやすくなると考えたらむしろ良いのかもしれない
とはいえ,開発の実用段階に行けてる人からしたらトランスレーター使うだけで良いのかもしれないね
mjxもmortalも大規模プロジェクトだし
mjxってビルド壊れる以前にインストールしてる人しか使えないと思ってたんだけど今も使えるの?
あんまどれがどういうメリットあるのか知識ないからわからないけど,
mjaiみたいなTCP/IP 通信のサーバーが他にもあったら使い勝手は良いと思うな
Node.jsは電脳麻雀との差別化が難しい気がするけど,一緒に使いやすくなると考えたらむしろ良いのかもしれない
とはいえ,開発の実用段階に行けてる人からしたらトランスレーター使うだけで良いのかもしれないね
mjxもmortalも大規模プロジェクトだし
mjxってビルド壊れる以前にインストールしてる人しか使えないと思ってたんだけど今も使えるの?
>>42
mjai-reviewer を使おうとしてたのか
あれは mjlog や mjson じゃなくて 天鳳牌譜エディタ形式の json を入力するみたい
少なくとも README の用例と src/main.rs を軽く見た限りはそうだと思う
mjai-reviewer を使おうとしてたのか
あれは mjlog や mjson じゃなくて 天鳳牌譜エディタ形式の json を入力するみたい
少なくとも README の用例と src/main.rs を軽く見た限りはそうだと思う
45焼き鳥名無しさん
2025/09/03(水) 23:20:56.77ID:QUky5oVZ >>43
ごめん mjx も TCP/IP 通信だった
gRPC を使ってるから mjai の JSON-RPC より速いってことみたい
通信の無駄を減らすなら Mortal や Kanachan みたいに同じプロセス内で処理を完結させるのが良いと思ってたけど、
AI クライアントを別マシンやコンテナに分離できる方がいいのかな?
クライアント間で使用する環境の競合 (ライブラリのバージョン違いとか) が発生しないとかのメリットが大きい?
自分も麻雀対戦シミュレーターを作ってみたいけど Mortal 方式にするか mjx 方式にするか悩むね
ごめん mjx も TCP/IP 通信だった
gRPC を使ってるから mjai の JSON-RPC より速いってことみたい
通信の無駄を減らすなら Mortal や Kanachan みたいに同じプロセス内で処理を完結させるのが良いと思ってたけど、
AI クライアントを別マシンやコンテナに分離できる方がいいのかな?
クライアント間で使用する環境の競合 (ライブラリのバージョン違いとか) が発生しないとかのメリットが大きい?
自分も麻雀対戦シミュレーターを作ってみたいけど Mortal 方式にするか mjx 方式にするか悩むね
46焼き鳥名無しさん
2025/09/04(木) 16:25:21.39ID:Odu/Sve147焼き鳥名無しさん
2025/09/04(木) 17:24:07.81ID:0wFxBCIG mortalとakochanの違いってなんなんだろうか
akochanすぐビルドできて好きになっちゃうよ
deepwikiでみてみたら性能比較とか戦術変更とか結構研究用機能ついてていいね
akochanすぐビルドできて好きになっちゃうよ
deepwikiでみてみたら性能比較とか戦術変更とか結構研究用機能ついてていいね
>>46
認識合ってるか気になるからいくつか確認
1. 天鳳の log.gz の中にある HTML には観戦用の URL が複数入ってる
2. 観戦用の URL を一部変更すると mjlog のダウンロードができる
3. mjlog は拡張子が違うだけで中身は xml だから変換は不要 (強いて言うならファイル名の拡張子を変えるだけ)
ここまで認識合ってる?
phoenix-logs は log.gz からの牌譜 URL (log IDs) の抽出から mjlog (log content) のダウンロードまでサポートしてる
注意点としては
牌譜ダウンロードのセッション数がデフォルトだと 3 になってるから、最新の規約に合わせて(README に貼ってある X のポストを参照のこと) -t 1 を必ず指定すること
認識合ってるか気になるからいくつか確認
1. 天鳳の log.gz の中にある HTML には観戦用の URL が複数入ってる
2. 観戦用の URL を一部変更すると mjlog のダウンロードができる
3. mjlog は拡張子が違うだけで中身は xml だから変換は不要 (強いて言うならファイル名の拡張子を変えるだけ)
ここまで認識合ってる?
phoenix-logs は log.gz からの牌譜 URL (log IDs) の抽出から mjlog (log content) のダウンロードまでサポートしてる
注意点としては
牌譜ダウンロードのセッション数がデフォルトだと 3 になってるから、最新の規約に合わせて(README に貼ってある X のポストを参照のこと) -t 1 を必ず指定すること
>>47
作者も思想も全く違う
むしろ同じなのは Mjai クライアントって点だけかも
Akochan は四人麻雀向けに補正した一人麻雀のゲーム木を探索してる
だから (あくまで近似だけど) 和了率や放銃率が出せる
Mortal はいわゆるディープでポンに近い
局面を丸ごとニューラルネットワークに入力して直接行動の価値を返す
ただしシャンテン数とか一人麻雀計算機の計算結果とかも追加で入力してる
計算は速いけど行動の価値 (Q 値) しか出ない
作者も思想も全く違う
むしろ同じなのは Mjai クライアントって点だけかも
Akochan は四人麻雀向けに補正した一人麻雀のゲーム木を探索してる
だから (あくまで近似だけど) 和了率や放銃率が出せる
Mortal はいわゆるディープでポンに近い
局面を丸ごとニューラルネットワークに入力して直接行動の価値を返す
ただしシャンテン数とか一人麻雀計算機の計算結果とかも追加で入力してる
計算は速いけど行動の価値 (Q 値) しか出ない
50焼き鳥名無しさん
2025/09/10(水) 19:42:14.46ID:kLykDnhy ごめん,全く理解が足りてなかった
mjlogとxmlは同じなのか
>>48でいうところの1から間違ってるのかも
自分が持ってるやつ(天鳳から拾ったlog.gzを解凍した.log)添付するよ.
https://imgur.com/a/C6rBaFt
Qiitaとかでダウンロードリンク先探してるけど,.zipでも.log.gzでも中身はURL無し.logしか見つからない.数年前と管理変わったのかな?
とはいえ,
https://github.com/MahjongRepository/phoenix-logs
の一番下の
Validate that downloaded logs can be parsed
実行してみても2009年の牌譜全部正常だったんだ
phoenix-logsから牌譜ダウンロードしたら,圧縮されて読めないmjlogが取得されるんだけど,
それを解凍したxmlがこれ.本来の天鳳xmlと変わっちゃってるのかな?
https://89.gigafile.nu/1219-dba67739ba8635f4098b9cf2c37c728ea
このxmlを「phoenix-logs-master mjlog2json」で,jsonにしようとしたら,lobbyのタグがないって言われた
拡張子.mjlogにしても変わらなかった
>>49
助かる
akochanゲーム木なのか
動作いい感じだったからmortalじゃなくてもいいかと思ったけど,深層学習したいしやっぱりmortal頑張るしかないか
Q値しか出せないってのも改善ポイントとしてちょうどいい気するし
mjlogとxmlは同じなのか
>>48でいうところの1から間違ってるのかも
自分が持ってるやつ(天鳳から拾ったlog.gzを解凍した.log)添付するよ.
https://imgur.com/a/C6rBaFt
Qiitaとかでダウンロードリンク先探してるけど,.zipでも.log.gzでも中身はURL無し.logしか見つからない.数年前と管理変わったのかな?
とはいえ,
https://github.com/MahjongRepository/phoenix-logs
の一番下の
Validate that downloaded logs can be parsed
実行してみても2009年の牌譜全部正常だったんだ
phoenix-logsから牌譜ダウンロードしたら,圧縮されて読めないmjlogが取得されるんだけど,
それを解凍したxmlがこれ.本来の天鳳xmlと変わっちゃってるのかな?
https://89.gigafile.nu/1219-dba67739ba8635f4098b9cf2c37c728ea
このxmlを「phoenix-logs-master mjlog2json」で,jsonにしようとしたら,lobbyのタグがないって言われた
拡張子.mjlogにしても変わらなかった
>>49
助かる
akochanゲーム木なのか
動作いい感じだったからmortalじゃなくてもいいかと思ったけど,深層学習したいしやっぱりmortal頑張るしかないか
Q値しか出せないってのも改善ポイントとしてちょうどいい気するし
51焼き鳥名無しさん
2025/09/10(水) 19:46:22.87ID:QjtmsNrC 書きながら文足したりしたから
読みづらくて申し訳ない
読みづらくて申し訳ない
52焼き鳥名無しさん
2025/09/10(水) 21:34:22.94ID:HyEJtneI >>50
もしかして個室の牌譜をダウンロードしようとしてる?
天鳳のサイトを確認したら
> ※sca=個室 / scb=段位戦 / scc=鳳凰卓(牌譜あり) / scd=雀荘戦 / sce=技能戦+琥珀卓(牌譜あり)
って書いてある
nodocchi のリストから推測すると
おそらくログに牌譜 ID がついてるのは鳳凰卓と一部の牌譜 (天鳳位, AI, 飛びが発生した) だけ
あとごめん
phoenix-logs は SQLite の DB に牌譜を保存する (.db) んだけど、そこから圧縮してない xml を出力する機能が見当たらない
フォークしてエクスポート機能を追加したものがあるから、そっちを使えば展開された xml が出てくる
https://github.com/ChitoKim/phoenix-logs?tab=readme-ov-file#output-raw-mjlogxml-game-logs-into-text-files
自分はこのフォークをさらに三麻とか東風もエクスポートできるように改造して使ってたから
オリジナルにはエクスポート機能がないのを忘れてた
lobby 属性の件だけど、まったり麻雀の人のブログを見た感じ昔は lobby 属性がなかったっぽい?
http://kmo2.cocolog-nifty.com/prog/2008/05/post_14b1.html
変換スクリプトでもそんなに重要なポイントじゃないと思うから
Go 要素に適当な loddy (段位戦なら "0") を追記しちゃえばいいかも (未検証)
というかその牌譜はどうなってるんだろう?
type は四鳳南喰赤だけど段位や rate は初期値で性別がロボット 名前も EXAMPLE
と思ったらサンプルファイルらしい 除外すればいいと思う
https://kyphd.github.io/renow-docs/renow/mjlog/
> 2009/02/01 のファイルはサンプルのようなので除外している。
もしかして個室の牌譜をダウンロードしようとしてる?
天鳳のサイトを確認したら
> ※sca=個室 / scb=段位戦 / scc=鳳凰卓(牌譜あり) / scd=雀荘戦 / sce=技能戦+琥珀卓(牌譜あり)
って書いてある
nodocchi のリストから推測すると
おそらくログに牌譜 ID がついてるのは鳳凰卓と一部の牌譜 (天鳳位, AI, 飛びが発生した) だけ
あとごめん
phoenix-logs は SQLite の DB に牌譜を保存する (.db) んだけど、そこから圧縮してない xml を出力する機能が見当たらない
フォークしてエクスポート機能を追加したものがあるから、そっちを使えば展開された xml が出てくる
https://github.com/ChitoKim/phoenix-logs?tab=readme-ov-file#output-raw-mjlogxml-game-logs-into-text-files
自分はこのフォークをさらに三麻とか東風もエクスポートできるように改造して使ってたから
オリジナルにはエクスポート機能がないのを忘れてた
lobby 属性の件だけど、まったり麻雀の人のブログを見た感じ昔は lobby 属性がなかったっぽい?
http://kmo2.cocolog-nifty.com/prog/2008/05/post_14b1.html
変換スクリプトでもそんなに重要なポイントじゃないと思うから
Go 要素に適当な loddy (段位戦なら "0") を追記しちゃえばいいかも (未検証)
というかその牌譜はどうなってるんだろう?
type は四鳳南喰赤だけど段位や rate は初期値で性別がロボット 名前も EXAMPLE
と思ったらサンプルファイルらしい 除外すればいいと思う
https://kyphd.github.io/renow-docs/renow/mjlog/
> 2009/02/01 のファイルはサンプルのようなので除外している。
53焼き鳥名無しさん
2025/09/10(水) 21:59:48.30ID:HyEJtneI Mortal の改造の話ならポリシーベースに改造した Mortal の話が興味深い
https://github.com/Equim-chan/Mortal/discussions/91
フォーク版の方の Discussions の内容を見ると企業から研究資金が出てたっぽい?
ラボで使ってた独自のコードはリポジトリには含まれてないらしい
https://github.com/Equim-chan/Mortal/discussions/91
フォーク版の方の Discussions の内容を見ると企業から研究資金が出てたっぽい?
ラボで使ってた独自のコードはリポジトリには含まれてないらしい
54焼き鳥名無しさん
2025/09/17(水) 15:29:46.88ID:Wd4cqur555焼き鳥名無しさん
2025/09/17(水) 16:00:57.89ID:Wd4cqur5 2009のデータでphoenix-logs フォーク使ってみたら「This DB has 58162 games in total」って出たんだけど
https://kyphd.github.io/renow-docs/renow/mjlog/
の四麻の2009は58160だから最初の2つがサンプルっぽいね,取り除いた.
実行したら理解が追いついたよ.ありがとう.
中身見たけど,xmlコードの前に牌譜ID挟んでくるんだね.試しに天鳳で開いたけどほんとにサンプルだったわ.他のはちゃんと開けた.
この2009.xmlはこのあとどうすればいいんだろう
mjai-reviewerでjsonにできない気がするんだけども
https://kyphd.github.io/renow-docs/renow/mjlog/
の四麻の2009は58160だから最初の2つがサンプルっぽいね,取り除いた.
実行したら理解が追いついたよ.ありがとう.
中身見たけど,xmlコードの前に牌譜ID挟んでくるんだね.試しに天鳳で開いたけどほんとにサンプルだったわ.他のはちゃんと開けた.
この2009.xmlはこのあとどうすればいいんだろう
mjai-reviewerでjsonにできない気がするんだけども
56焼き鳥名無しさん
2025/09/17(水) 18:31:43.34ID:YeRNVIxT >>55
mjai-reviewer で使ってるのはおそらく天鳳牌譜ビューア/エディタ形式の json だから変換が必要だね
調べたら変換ツールを自作してる人がいた
https://crates.io/crates/mjlog2json
xml から変換しなくても対局 ID を使って天鳳公式の json ダウンロード用の URL にアクセスしてもいいけど、
以前天鳳公式 X アカウントでそっちは CGI に負担がかかるとかポストしてたから前述のツールを使った方がいいかも
ところで何のために mjai-reviewer を使おうとしてる?
Mortal への入力は mjson 形式が必要だけども
トレーニングしたモデルの評価とか?
mjai-reviewer で使ってるのはおそらく天鳳牌譜ビューア/エディタ形式の json だから変換が必要だね
調べたら変換ツールを自作してる人がいた
https://crates.io/crates/mjlog2json
xml から変換しなくても対局 ID を使って天鳳公式の json ダウンロード用の URL にアクセスしてもいいけど、
以前天鳳公式 X アカウントでそっちは CGI に負担がかかるとかポストしてたから前述のツールを使った方がいいかも
ところで何のために mjai-reviewer を使おうとしてる?
Mortal への入力は mjson 形式が必要だけども
トレーニングしたモデルの評価とか?
57焼き鳥名無しさん
2025/09/17(水) 18:40:56.22ID:YeRNVIxT phoenix-logs を読んでたら内部の設計とかスクリプトの使い方とか色々気になるから
機能はほぼそのままに 1 から書き直したツールを作ろうと思う
できれば time.sleep() とかである程度ダウンロード速度を調整したいけど、
天鳳公式にレートリミットを問い合わせるのってアリだと思う?
藪蛇かな?
機能はほぼそのままに 1 から書き直したツールを作ろうと思う
できれば time.sleep() とかである程度ダウンロード速度を調整したいけど、
天鳳公式にレートリミットを問い合わせるのってアリだと思う?
藪蛇かな?
58焼き鳥名無しさん
2025/09/21(日) 20:24:25.06ID:wyqEm1q5 天鳳の牌譜について勘違いしてたことを訂正しとく
* API 経由で牌譜が取得できるのは
* 鳳凰卓
* 役満和了発生(四麻のみ、全部の卓を含む)
* 公認 AI (一部の牌譜は取得できない、条件不明)
* 天鳳位の全牌譜は mjlog を圧縮した zip をサイトからダウンロードできる
飛びがある牌譜が公開されるのかと思っていたけど、役満があると誰かが飛ぶことが多いだけだった
* API 経由で牌譜が取得できるのは
* 鳳凰卓
* 役満和了発生(四麻のみ、全部の卓を含む)
* 公認 AI (一部の牌譜は取得できない、条件不明)
* 天鳳位の全牌譜は mjlog を圧縮した zip をサイトからダウンロードできる
飛びがある牌譜が公開されるのかと思っていたけど、役満があると誰かが飛ぶことが多いだけだった
59焼き鳥名無しさん
2025/09/21(日) 20:26:39.02ID:wyqEm1q560焼き鳥名無しさん
2025/09/22(月) 09:23:32.33ID:a6uPzlMg >>56
たしかに牌譜ID取得できたならxmlにこだわらなくてもいいね
mjlog2jsonなんだけど,これ牌譜IDがあると読み込んでくれないんだ
>>50 ではlobbyが無いってこれに言われたんだよね
一回--stripで個別にしてから牌譜ID消してやってみるけどたぶんまたlobby無いって言われそう
mortalってmjsonか
jsonと勘違いしてた.mjsonの場合だとどう作るの?
>>57
1から書き直せるならすごい助かる
天鳳ダウンロード速度うるさいし問い合わせるに越したことはないかもね
https://x.com/tsuno_s/status/1804487739657580636
これ見るに1セッションならなんでもいいのかもしれないけど
たしかに牌譜ID取得できたならxmlにこだわらなくてもいいね
mjlog2jsonなんだけど,これ牌譜IDがあると読み込んでくれないんだ
>>50 ではlobbyが無いってこれに言われたんだよね
一回--stripで個別にしてから牌譜ID消してやってみるけどたぶんまたlobby無いって言われそう
mortalってmjsonか
jsonと勘違いしてた.mjsonの場合だとどう作るの?
>>57
1から書き直せるならすごい助かる
天鳳ダウンロード速度うるさいし問い合わせるに越したことはないかもね
https://x.com/tsuno_s/status/1804487739657580636
これ見るに1セッションならなんでもいいのかもしれないけど
621 ◆Q0YRMrCAIo
2025/09/22(月) 11:43:01.76ID:0yT6RsXj >>61
教授からそんなことしてないでルールベースでいいから1から自分でAIと環境とプロトコル作れって言われたんだがそこまでやってることおかしいかね
基礎の知識が必要なのはごもっともだけども機械学習入ったらさすがに自分で作れんしなって思うんやが
進捗報告で言われたことやってないと見放す言われたからしばらくmortalの話薄くなりそうで申し訳ない
せっかく付き合ってくれてたのに
愚痴きかせるはめになってしまったのも申し訳ない😭
とりあえずmjai.appに乗っけれるAI1から作ろうかな
教授からそんなことしてないでルールベースでいいから1から自分でAIと環境とプロトコル作れって言われたんだがそこまでやってることおかしいかね
基礎の知識が必要なのはごもっともだけども機械学習入ったらさすがに自分で作れんしなって思うんやが
進捗報告で言われたことやってないと見放す言われたからしばらくmortalの話薄くなりそうで申し訳ない
せっかく付き合ってくれてたのに
愚痴きかせるはめになってしまったのも申し訳ない😭
とりあえずmjai.appに乗っけれるAI1から作ろうかな
>>62
学生さんでしたか
分野はやっぱり機械学習?
麻雀の環境・エージェントに関してはコーナーケースとかバグ取りが超大変だから自力実装はオススメできない
貴重な研究時間を浪費するのは勿体ない
環境に関しては
mjx は最新の Python とかだとビルドできないらしいから、Mortal とかの既存実装を使った方がいいと思う
それか山岡忠夫さんの cmajiang を使うのもいいかも
他には Kanachan v2ブランチの src/simulation は Kanachan の AI にべったりした実装だけど検討する価値はありそう
雀魂段位戦の牌譜を 2 億局使って動作検証済みらしい
自分は専門家じゃないから AI についてはなんとも言えないけど、Mortal の特徴量設計は参考になると思う
あと山岡忠夫さんがブログで麻雀 AI の設計についても書いてたはず
学生さんでしたか
分野はやっぱり機械学習?
麻雀の環境・エージェントに関してはコーナーケースとかバグ取りが超大変だから自力実装はオススメできない
貴重な研究時間を浪費するのは勿体ない
環境に関しては
mjx は最新の Python とかだとビルドできないらしいから、Mortal とかの既存実装を使った方がいいと思う
それか山岡忠夫さんの cmajiang を使うのもいいかも
他には Kanachan v2ブランチの src/simulation は Kanachan の AI にべったりした実装だけど検討する価値はありそう
雀魂段位戦の牌譜を 2 億局使って動作検証済みらしい
自分は専門家じゃないから AI についてはなんとも言えないけど、Mortal の特徴量設計は参考になると思う
あと山岡忠夫さんがブログで麻雀 AI の設計についても書いてたはず
>>62
オレオレプロトコルを作っても既存の AI (manue とか Akochan) と比較するときに結局 mjai プロトコルへの変換が必要になるから、最初から mjai プロトコルに対応した実装を持ってきた方がいいと思う
あと研究なら各作者に相談してみるとかはどう?
たとえば mjai.app 作者の smly (小嵜 耕平) さんは機械学習の専門家だし
オレオレプロトコルを作っても既存の AI (manue とか Akochan) と比較するときに結局 mjai プロトコルへの変換が必要になるから、最初から mjai プロトコルに対応した実装を持ってきた方がいいと思う
あと研究なら各作者に相談してみるとかはどう?
たとえば mjai.app 作者の smly (小嵜 耕平) さんは機械学習の専門家だし
>>62
ルールベースの AI でいいなら電脳麻将もいいかもね
環境・エージェント・プロトコル全部揃ってるし AI 同士の自動対戦ツールもついてる
ただ、Node.js だから実行速度が遅いのは実験に影響するかも
ルールベースの AI でいいなら電脳麻将もいいかもね
環境・エージェント・プロトコル全部揃ってるし AI 同士の自動対戦ツールもついてる
ただ、Node.js だから実行速度が遅いのは実験に影響するかも
66焼き鳥名無しさん
2025/09/22(月) 14:42:34.78ID:9RpjStku 訂正: Kanachan の雀魂牌譜での動作検証は 1 億局だった
https://x.com/Cryolite/status/1648651785274556417
https://x.com/Cryolite/status/1648651785274556417
671 ◆Q0YRMrCAIo
2025/09/22(月) 14:45:25.97ID:VuiZRCwA >>63
機械学習専攻にしてます
もっというと強化学習メインです
やっぱりmortalとかから発展させるほうがいいよね
従わないなら見放すとか言ってきたけどどういうものか伝えて説得する方向のほうが良いかな
cmajiang使ってはいたけど中身は見てないや
あれかなりすごそうだよね
Kanachanは初見だ
ありがとう、コード覗いてくるよ
>>64
やっぱりそうだよね
自分のやつなんて限界あるし発展性のあるmjaiに繋げるべき
なんとなく作者さんたちに連絡取るの避けてたけどもう1年近く研究しててこれだからさすがに連絡取るべきか
>>65
たしかにルールベースなら電脳麻雀でいいじゃんか
前に電脳麻雀触ってたときはルールベースで学習できないから意味ないなで蹴ったのに方向性わからなくなってくる
機械学習専攻にしてます
もっというと強化学習メインです
やっぱりmortalとかから発展させるほうがいいよね
従わないなら見放すとか言ってきたけどどういうものか伝えて説得する方向のほうが良いかな
cmajiang使ってはいたけど中身は見てないや
あれかなりすごそうだよね
Kanachanは初見だ
ありがとう、コード覗いてくるよ
>>64
やっぱりそうだよね
自分のやつなんて限界あるし発展性のあるmjaiに繋げるべき
なんとなく作者さんたちに連絡取るの避けてたけどもう1年近く研究しててこれだからさすがに連絡取るべきか
>>65
たしかにルールベースなら電脳麻雀でいいじゃんか
前に電脳麻雀触ってたときはルールベースで学習できないから意味ないなで蹴ったのに方向性わからなくなってくる
68焼き鳥名無しさん
2025/09/22(月) 18:32:33.81ID:9RpjStku 強化学習メインとはすごい
自分は機械学習については全く素人だから色々聞いてみたいことがある
麻雀の強化学習の方法なんだけど、SAC-Discrete って有効だと思う?
Mortal や Kanachan は TD 系を使ってるけども
麻雀って究極的にはポーカー AI みたいに確率的に行動選択した方がいいと考えてて、
・モデルフリー
・オフポリシー
・確率的な方策が出力される
・離散空間用の方式
で調べたら SAC-Discrete が出てきたんだけど
自分は機械学習については全く素人だから色々聞いてみたいことがある
麻雀の強化学習の方法なんだけど、SAC-Discrete って有効だと思う?
Mortal や Kanachan は TD 系を使ってるけども
麻雀って究極的にはポーカー AI みたいに確率的に行動選択した方がいいと考えてて、
・モデルフリー
・オフポリシー
・確率的な方策が出力される
・離散空間用の方式
で調べたら SAC-Discrete が出てきたんだけど
69焼き鳥名無しさん
2025/09/25(木) 19:39:54.67ID:m9ykZYTJ phoenix-logs の書き直しが validate 以外完成したので公開した
牌譜の XML への出力機能も追加してある
あと、ログの自動ダウンロードの規約もある程度ツール側で守るようにした
良かったら使ってみて
https://github.com/Apricot-S/houou-logs
validate 実装後に公開するか少し悩んだけど、たぶんほとんどの人には不要だと思うから後から実装することにした
牌譜の XML への出力機能も追加してある
あと、ログの自動ダウンロードの規約もある程度ツール側で守るようにした
良かったら使ってみて
https://github.com/Apricot-S/houou-logs
validate 実装後に公開するか少し悩んだけど、たぶんほとんどの人には不要だと思うから後から実装することにした
70焼き鳥名無しさん
2025/10/02(木) 14:26:03.21ID:LLbMe59u >>68
見るのだいぶ遅くなってしまって申し訳ない.
SAC-Discreteって聞いたことないんだけど,調べてみた感じ要はPPOみたいな方策系のアルゴリズムってことだよね.
自分としては,
・モデルフリー
・オフポリシー
に関しては完全に同意
・確率的な方策が出力される
・離散空間用の方式
はしっかり理解できてないけど,方策に沿って学習を進められるってことならそれがいいと思ってる.
見るのだいぶ遅くなってしまって申し訳ない.
SAC-Discreteって聞いたことないんだけど,調べてみた感じ要はPPOみたいな方策系のアルゴリズムってことだよね.
自分としては,
・モデルフリー
・オフポリシー
に関しては完全に同意
・確率的な方策が出力される
・離散空間用の方式
はしっかり理解できてないけど,方策に沿って学習を進められるってことならそれがいいと思ってる.
71焼き鳥名無しさん
2025/10/02(木) 15:29:04.97ID:zjVtPQyR72焼き鳥名無しさん
2025/10/02(木) 15:30:42.18ID:zjVtPQyR それと,mjxビルドできたよ
https://github.com/mjx-project/mjx/issues/1016
ここの通りにやったら最新ではないもののビルドできた.
まだそれ以上いじってないんだけども
https://github.com/mjx-project/mjx/issues/1016
ここの通りにやったら最新ではないもののビルドできた.
まだそれ以上いじってないんだけども
73焼き鳥名無しさん
2025/10/10(金) 22:28:08.98ID:16T+Yvmh 膝の上に座れ!
74焼き鳥名無しさん
2025/10/16(木) 07:26:03.30ID:u7r6lAD8 天鳳鳳凰卓の 2015 年 ~ 2024 年の牌譜を Mjai の mjson 形式 (gzip 圧縮済み) に変換したデータセットが公開されてた
データセットのライセンスは CC BY 4.0 になってる
https://github.com/NikkeTryHard/tenhou-to-mjai
データセットのライセンスは CC BY 4.0 になってる
https://github.com/NikkeTryHard/tenhou-to-mjai
75焼き鳥名無しさん
2025/10/16(木) 07:45:40.59ID:u7r6lAD877焼き鳥名無しさん
2025/11/24(月) 09:15:07.51ID:T9tT6HtC 最強ほそみんさん
78焼き鳥名無しさん
2025/12/11(木) 15:58:38.24ID:ATehQhaY >>75
ご無沙汰しております。
指導教員と色々ありまして、研究テーマを変えることにしました
強化学習は諦めてモンテカルロのパラメータいじってシュミレーションしてみようと思います
またお世話になりそうです
ご無沙汰しております。
指導教員と色々ありまして、研究テーマを変えることにしました
強化学習は諦めてモンテカルロのパラメータいじってシュミレーションしてみようと思います
またお世話になりそうです
80焼き鳥名無しさん
2025/12/18(木) 07:31:41.06ID:kylxfGPf ぬるぽ
レスを投稿する
