麻雀AI研究 mjxビルド (68レス)
麻雀AI研究 mjxビルド http://egg.5ch.net/test/read.cgi/mj/1728148812/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: 焼き鳥名無しさん [sage] 2024/10/06(日) 02:20:12.65 ID:0LGLgONj 有識者募集 http://egg.5ch.net/test/read.cgi/mj/1728148812/1
39: 03 [] 2025/08/29(金) 01:07:45.25 ID:oWtn88Fd xml形式のmjlogを変換するコード書いたことあるから貼っとく mjai使っているから多分正しく変換できるはず。。。(あんまり確認してないけど) 時間があったら使ってみてー https://github.com/h11r03/mjlog-xml-to-mjai-json- http://egg.5ch.net/test/read.cgi/mj/1728148812/39
40: 焼き鳥名無しさん [sage] 2025/08/29(金) 21:34:58.82 ID:E9hW9WB6 >>39 README の解説がめちゃくちゃ丁寧でありがたい あと mjai は最新の Ruby だと問題あるのを初めて知った http://egg.5ch.net/test/read.cgi/mj/1728148812/40
41: 焼き鳥名無しさん [sage] 2025/08/30(土) 12:02:54.14 ID:h7esdUVI ちょっと相談なんだけど mjai を Node.js とか Go に移植する需要ってあると思う? それとも今は mjx の mjx_mjai_translater とか Mortal/libriichi の AkochanAgent みたいにシミュレーターにトランスレーターをかませば十分で TCP/IP 通信のサーバーの需要自体がない? http://egg.5ch.net/test/read.cgi/mj/1728148812/41
42: 焼き鳥名無しさん [] 2025/09/01(月) 15:55:32.86 ID: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/ これどっちもで試してみたんだけどなあ http://egg.5ch.net/test/read.cgi/mj/1728148812/42
43: 焼き鳥名無しさん [] 2025/09/01(月) 16:04:23.41 ID:F1y2xxwf >>41 あんまどれがどういうメリットあるのか知識ないからわからないけど, mjaiみたいなTCP/IP 通信のサーバーが他にもあったら使い勝手は良いと思うな Node.jsは電脳麻雀との差別化が難しい気がするけど,一緒に使いやすくなると考えたらむしろ良いのかもしれない とはいえ,開発の実用段階に行けてる人からしたらトランスレーター使うだけで良いのかもしれないね mjxもmortalも大規模プロジェクトだし mjxってビルド壊れる以前にインストールしてる人しか使えないと思ってたんだけど今も使えるの? http://egg.5ch.net/test/read.cgi/mj/1728148812/43
44: 警備員[Lv.1][新芽] [sage] 2025/09/01(月) 20:12:59.41 ID:I/wadFgi >>42 mjai-reviewer を使おうとしてたのか あれは mjlog や mjson じゃなくて 天鳳牌譜エディタ形式の json を入力するみたい 少なくとも README の用例と src/main.rs を軽く見た限りはそうだと思う http://egg.5ch.net/test/read.cgi/mj/1728148812/44
45: 焼き鳥名無しさん [sage] 2025/09/03(水) 23:20:56.77 ID:QUky5oVZ >>43 ごめん mjx も TCP/IP 通信だった gRPC を使ってるから mjai の JSON-RPC より速いってことみたい 通信の無駄を減らすなら Mortal や Kanachan みたいに同じプロセス内で処理を完結させるのが良いと思ってたけど、 AI クライアントを別マシンやコンテナに分離できる方がいいのかな? クライアント間で使用する環境の競合 (ライブラリのバージョン違いとか) が発生しないとかのメリットが大きい? 自分も麻雀対戦シミュレーターを作ってみたいけど Mortal 方式にするか mjx 方式にするか悩むね http://egg.5ch.net/test/read.cgi/mj/1728148812/45
46: 焼き鳥名無しさん [] 2025/09/04(木) 16:25:21.39 ID:Odu/Sve1 >>44 天鳳から持ってこれるのが,log.gzってやつで log.gz→log→mjlog→xml→json→json.gz って行こうとしてるんだけど,どっかでタグとか欠けてるのかツールが悪いのかxmlで止まってる >>45 できるならもちろんmjxをなぞったほうがいいだろうけど,ビルド壊れてから全く触れてないから俺はmortalが現実的だと思ってるよ http://egg.5ch.net/test/read.cgi/mj/1728148812/46
47: 焼き鳥名無しさん [] 2025/09/04(木) 17:24:07.81 ID:0wFxBCIG mortalとakochanの違いってなんなんだろうか akochanすぐビルドできて好きになっちゃうよ deepwikiでみてみたら性能比較とか戦術変更とか結構研究用機能ついてていいね http://egg.5ch.net/test/read.cgi/mj/1728148812/47
48: 警備員[Lv.1][新芽] [sage] 2025/09/04(木) 18:50:01.45 ID:BZCy/nim >>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 を必ず指定すること http://egg.5ch.net/test/read.cgi/mj/1728148812/48
49: 警備員[Lv.2][新芽] [sage] 2025/09/04(木) 19:07:35.16 ID:BZCy/nim >>47 作者も思想も全く違う むしろ同じなのは Mjai クライアントって点だけかも Akochan は四人麻雀向けに補正した一人麻雀のゲーム木を探索してる だから (あくまで近似だけど) 和了率や放銃率が出せる Mortal はいわゆるディープでポンに近い 局面を丸ごとニューラルネットワークに入力して直接行動の価値を返す ただしシャンテン数とか一人麻雀計算機の計算結果とかも追加で入力してる 計算は速いけど行動の価値 (Q 値) しか出ない http://egg.5ch.net/test/read.cgi/mj/1728148812/49
50: 焼き鳥名無しさん [sage] 2025/09/10(水) 19:42:14.46 ID: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値しか出せないってのも改善ポイントとしてちょうどいい気するし http://egg.5ch.net/test/read.cgi/mj/1728148812/50
51: 焼き鳥名無しさん [] 2025/09/10(水) 19:46:22.87 ID:QjtmsNrC 書きながら文足したりしたから 読みづらくて申し訳ない http://egg.5ch.net/test/read.cgi/mj/1728148812/51
52: 焼き鳥名無しさん [sage] 2025/09/10(水) 21:34:22.94 ID: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 のファイルはサンプルのようなので除外している。 http://egg.5ch.net/test/read.cgi/mj/1728148812/52
53: 焼き鳥名無しさん [sage] 2025/09/10(水) 21:59:48.30 ID:HyEJtneI Mortal の改造の話ならポリシーベースに改造した Mortal の話が興味深い https://github.com/Equim-chan/Mortal/discussions/91 フォーク版の方の Discussions の内容を見ると企業から研究資金が出てたっぽい? ラボで使ってた独自のコードはリポジトリには含まれてないらしい http://egg.5ch.net/test/read.cgi/mj/1728148812/53
54: 焼き鳥名無しさん [] 2025/09/17(水) 15:29:46.88 ID:Wd4cqur5 >>52 phoenix-logsフォーク助かる!一応自己流でやってたけど懸念要素だったからありがたい. xmlにlobby=0追加したのもやってみたんだけど,動作しなかったんだよね. でもこれが近道だと思うから,やり方変えてやってみる 牌譜?サンプル混じっててもphoenix-logs だとスキップしてくれそうだからどうだろう log→db→xmlだから牌譜は確認出来なさそうなんだ >>53 今までポリシーベース触ってたから興味深い.しかも自分が触ったことあるPPOだ 重みは価値ベースのほうから持ってこないといけないみたいだね.今やってるのが成功したらこっちに移行したいな http://egg.5ch.net/test/read.cgi/mj/1728148812/54
55: 焼き鳥名無しさん [] 2025/09/17(水) 16:00:57.89 ID: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にできない気がするんだけども http://egg.5ch.net/test/read.cgi/mj/1728148812/55
56: 焼き鳥名無しさん [sage] 2025/09/17(水) 18:31:43.34 ID:YeRNVIxT >>55 mjai-reviewer で使ってるのはおそらく天鳳牌譜ビューア/エディタ形式の json だから変換が必要だね 調べたら変換ツールを自作してる人がいた https://crates.io/crates/mjlog2json xml から変換しなくても対局 ID を使って天鳳公式の json ダウンロード用の URL にアクセスしてもいいけど、 以前天鳳公式 X アカウントでそっちは CGI に負担がかかるとかポストしてたから前述のツールを使った方がいいかも ところで何のために mjai-reviewer を使おうとしてる? Mortal への入力は mjson 形式が必要だけども トレーニングしたモデルの評価とか? http://egg.5ch.net/test/read.cgi/mj/1728148812/56
57: 焼き鳥名無しさん [sage] 2025/09/17(水) 18:40:56.22 ID:YeRNVIxT phoenix-logs を読んでたら内部の設計とかスクリプトの使い方とか色々気になるから 機能はほぼそのままに 1 から書き直したツールを作ろうと思う できれば time.sleep() とかである程度ダウンロード速度を調整したいけど、 天鳳公式にレートリミットを問い合わせるのってアリだと思う? 藪蛇かな? http://egg.5ch.net/test/read.cgi/mj/1728148812/57
58: 焼き鳥名無しさん [sage] 2025/09/21(日) 20:24:25.06 ID:wyqEm1q5 天鳳の牌譜について勘違いしてたことを訂正しとく * API 経由で牌譜が取得できるのは * 鳳凰卓 * 役満和了発生(四麻のみ、全部の卓を含む) * 公認 AI (一部の牌譜は取得できない、条件不明) * 天鳳位の全牌譜は mjlog を圧縮した zip をサイトからダウンロードできる 飛びがある牌譜が公開されるのかと思っていたけど、役満があると誰かが飛ぶことが多いだけだった http://egg.5ch.net/test/read.cgi/mj/1728148812/58
59: 焼き鳥名無しさん [sage] 2025/09/21(日) 20:26:39.02 ID:wyqEm1q5 >>55 2009.xml だけど --strip オプションを指定して個別の xml に出力した方がいいと思う 一つのファイルにまとめた方が読み込み速度は速いけど、取り回しが悪くなると思う http://egg.5ch.net/test/read.cgi/mj/1728148812/59
60: 焼き鳥名無しさん [] 2025/09/22(月) 09:23:32.33 ID: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セッションならなんでもいいのかもしれないけど http://egg.5ch.net/test/read.cgi/mj/1728148812/60
61: 警備員[Lv.1][新芽] [sage] 2025/09/22(月) 10:19:20.24 ID:9RpjStku >>60 mjlog から mjson への変換は >>25 か >>39 のツールで変換できると思う http://egg.5ch.net/test/read.cgi/mj/1728148812/61
62: 1 ◆Q0YRMrCAIo [] 2025/09/22(月) 11:43:01.76 ID:0yT6RsXj >>61 教授からそんなことしてないでルールベースでいいから1から自分でAIと環境とプロトコル作れって言われたんだがそこまでやってることおかしいかね 基礎の知識が必要なのはごもっともだけども機械学習入ったらさすがに自分で作れんしなって思うんやが 進捗報告で言われたことやってないと見放す言われたからしばらくmortalの話薄くなりそうで申し訳ない せっかく付き合ってくれてたのに 愚痴きかせるはめになってしまったのも申し訳ない😭 とりあえずmjai.appに乗っけれるAI1から作ろうかな http://egg.5ch.net/test/read.cgi/mj/1728148812/62
63: 警備員[Lv.4][新芽] [sage] 2025/09/22(月) 12:40:22.31 ID:9RpjStku >>62 学生さんでしたか 分野はやっぱり機械学習? 麻雀の環境・エージェントに関してはコーナーケースとかバグ取りが超大変だから自力実装はオススメできない 貴重な研究時間を浪費するのは勿体ない 環境に関しては mjx は最新の Python とかだとビルドできないらしいから、Mortal とかの既存実装を使った方がいいと思う それか山岡忠夫さんの cmajiang を使うのもいいかも 他には Kanachan v2ブランチの src/simulation は Kanachan の AI にべったりした実装だけど検討する価値はありそう 雀魂段位戦の牌譜を 2 億局使って動作検証済みらしい 自分は専門家じゃないから AI についてはなんとも言えないけど、Mortal の特徴量設計は参考になると思う あと山岡忠夫さんがブログで麻雀 AI の設計についても書いてたはず http://egg.5ch.net/test/read.cgi/mj/1728148812/63
64: 警備員[Lv.4][新芽] [sage] 2025/09/22(月) 12:47:31.17 ID:9RpjStku >>62 オレオレプロトコルを作っても既存の AI (manue とか Akochan) と比較するときに結局 mjai プロトコルへの変換が必要になるから、最初から mjai プロトコルに対応した実装を持ってきた方がいいと思う あと研究なら各作者に相談してみるとかはどう? たとえば mjai.app 作者の smly (小嵜 耕平) さんは機械学習の専門家だし http://egg.5ch.net/test/read.cgi/mj/1728148812/64
65: 警備員[Lv.5][新芽] [sage] 2025/09/22(月) 13:14:37.02 ID:9RpjStku >>62 ルールベースの AI でいいなら電脳麻将もいいかもね 環境・エージェント・プロトコル全部揃ってるし AI 同士の自動対戦ツールもついてる ただ、Node.js だから実行速度が遅いのは実験に影響するかも http://egg.5ch.net/test/read.cgi/mj/1728148812/65
66: 焼き鳥名無しさん [sage] 2025/09/22(月) 14:42:34.78 ID:9RpjStku 訂正: Kanachan の雀魂牌譜での動作検証は 1 億局だった https://x.com/Cryolite/status/1648651785274556417 http://egg.5ch.net/test/read.cgi/mj/1728148812/66
67: 1 ◆Q0YRMrCAIo [] 2025/09/22(月) 14:45:25.97 ID:VuiZRCwA >>63 機械学習専攻にしてます もっというと強化学習メインです やっぱりmortalとかから発展させるほうがいいよね 従わないなら見放すとか言ってきたけどどういうものか伝えて説得する方向のほうが良いかな cmajiang使ってはいたけど中身は見てないや あれかなりすごそうだよね Kanachanは初見だ ありがとう、コード覗いてくるよ >>64 やっぱりそうだよね 自分のやつなんて限界あるし発展性のあるmjaiに繋げるべき なんとなく作者さんたちに連絡取るの避けてたけどもう1年近く研究しててこれだからさすがに連絡取るべきか >>65 たしかにルールベースなら電脳麻雀でいいじゃんか 前に電脳麻雀触ってたときはルールベースで学習できないから意味ないなで蹴ったのに方向性わからなくなってくる http://egg.5ch.net/test/read.cgi/mj/1728148812/67
68: 焼き鳥名無しさん [sage] 2025/09/22(月) 18:32:33.81 ID:9RpjStku 強化学習メインとはすごい 自分は機械学習については全く素人だから色々聞いてみたいことがある 麻雀の強化学習の方法なんだけど、SAC-Discrete って有効だと思う? Mortal や Kanachan は TD 系を使ってるけども 麻雀って究極的にはポーカー AI みたいに確率的に行動選択した方がいいと考えてて、 ・モデルフリー ・オフポリシー ・確率的な方策が出力される ・離散空間用の方式 で調べたら SAC-Discrete が出てきたんだけど http://egg.5ch.net/test/read.cgi/mj/1728148812/68
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.516s*