Pythonならitertoolsで簡単ですね。
# coding: utf-8 import string import itertools for i in itertools.product(string.ascii_lowercase+string.digits, repeat=13): print(i)
Pythonならitertoolsで簡単ですね。
# coding: utf-8 import string import itertools for i in itertools.product(string.ascii_lowercase+string.digits, repeat=13): print(i)
前回名人戦で毎日新聞のYoutubeチャンネルが評価値放送を始めた話をしました。
今後もA級順位戦を中心に行っていくそうです。
前回明かしていませんでしたが,この名人戦の評価値が好評で先行していた朝日新聞社のYoutubeに部分的にでもPVを上回ったと現地で聞きました。
という流れで,次に朝日新聞社の方から打診が参りました。
PVの時系列変化を見たのでしょうね。盤面だけより評価値あった方が良いようです。
ということで,白ビールを使いたいとのことでしたが,特に差をつけることもないのでどうぞと快諾しておきました。
また,6月11日に朝日アマ名人戦も生中継されて,白ビールの評価値が使われていました。千日手2回はすごかったですね。
まだまだ不慣れで手際が悪いこともあるのですが非公開で練習するよりどんどん生中継の本番で慣れていく感じはYoutubeの文化でしょうか?
我々の運営している電竜戦もそんな雰囲気です。
宣伝ですが,予選7月9日(土)ファイナル7月23日(土)で予定されている指定局面戦の指定局面を検討するイベントを来週末19日(日)夜に準備しています。
公募も検討もはじめての試みですので不手際はあると思いますしどうなるやら私もよく分かっていません。
もちろんYoutube中継します。
本記事は主催メディアの興行を阻害しないよう速報性を失ってから公開しています。
ーーー
2022年5月28・29日(土・日)倉敷市芸文館において第80期名人戦第5局が開催されました。
渡辺明名人3勝、斎藤慎太郎八段1勝と名人が勝てば防衛となる一局を名人先手番で迎え防衛が期待される場面です。
立会人は谷川浩司永世名人、副立会は村山慈明七段と稲葉陽八段です。
谷川永世名人襲位初仕事としてメディア取材がありました。
といいますのは私現場に居りました。
実は本局の直前に毎日新聞社より連絡がありましてライブ中継に白ビールを用いたいとの許諾打診を受け、快諾はもちろんですがもし可能ならとお手伝い名義で現場入りさせて頂きました。
さすがに対局前の慌ただしい時間帯は避けて伺ったのですが、丁度上記の永世名人襲位についての記者会見直前に会場入りし、そのまま立ち会わせて頂きました。大山名人記念館の和室での会見でしたが,緊張して汗だくになりますし慣れない正座で足痺れました。
その後は、毎日新聞社テーブル付近で関係者にお話しさせて頂きました。ShogiGUIの便利な使い方を伝授したり今後の改善点を提案したり,加えて業界の情報交換もじっくりできました。
昼食明けの対局開始時や封じ手場面にもカメラマンなどに交じり対局場で見学させて頂きました。ABEMAの中継等に映り込んだかもしれません。音声も拾っていたらすみません。
選手権で準優勝した二番絞りの説明と読み筋、封じ手予測などを自前PC持ち込みで提供できました。どこかの記事になるかもしれません。あまり二番絞りを知られていない感じでしたので話題にも上がらない可能性もあります。
封手後の動画は副立ち会いの稲葉八段と担当記者が大山名人記念館の和室で撮影,これも現場で見せて頂きました。
現場には2018年の世界選手権で取材頂いた朝日新聞の記者なども居り色々と立ち話もできました。永世名人はじめ多数の棋士とも立ち話をさせて頂けたのは貴重な経験でした。選手権に足を運ぶAIに詳しい棋士を基準に認識していたため一般的な棋士は本当にAIの知識がない(または関心がないフリをしている)のを感じました。菅井先生は「振り飛車を強くして下さい」とストレートな注文でしたが,「それはAIには縛りプレイなので」と面白くない返をしてすみませんでした。
floodgateの二番絞りが後手番限定ですが結構飛車振っているとお伝えすると見てみますと回答されたのでfloodgateはときおり観て頂けているようです。
朝日新聞と毎日新聞は現地から副立ち会いを交えてYoutube配信を行なっていましたが,ABEMAは現地スタッフはロケ班程度でスタジオの方に解説者やAI等のオペレータがいるようです。メディアも温度差や組織構造が違う感じですが対局室のカメラ映像は共用されており,動画班同志は仲良しな雰囲気です。
他にもメディア間で準備や機材の差や防衛間際になって飛び込んでくるNHKの強さなど色々と見せて頂きました。大組織も一枚岩でないところもちらほら見えましたが伏せておきます。
名人防衛の記者会見にも立ち合わせて頂きましたが,再度「防衛の勝因は新しく買ったパソコン」と強調されたのを記者はあまり拾わないのも違和感がありました。発言も許されたのですが,さすがに・・・ね。
終局後の報道関係者は今季ではなく来季のA級順位戦に関心を寄せている感じでした。(意味はわかりますね)
名古屋の対局場など多くの新しい企画が用意される模様です。(ご期待下さい)
タイトルはSDGsのことじゃないです。
将棋ソフト開発費です。
今のところ将棋界隈の開発は2017年に最初に参加した第5回電王トーナメントの賞金百万円をはじめ概ねそれで賄っています。5年平均三十万円近くになります。今年も賞金の対象でした。
出ていくお金もその範囲でPCを買ったり,大会当日クラウドを借りたりしています。
この界隈で異例の黒字勢と分類されます。
勝つために身銭をどの程度切るかという話題がありますが,将棋ソフト開発をする前も数年に一度PCを買い替える程度ですからこれを2倍3倍にしたところで上記の足しとして僅かな額です。
職場ではもう少しマシで毎年のようにPCを買い替えたりしますが,一般的に売られていないようなものを購入するほどの資金は今のところありません。具体的に言うとNVIDIAのA100ですね。HEROZには72台あるそうで羨ましい限りですね。
スレッドリッパー3990Xが欲しかった頃に小さなクラウドファンディングを試みましたが購入額には到底及びませんでした。個人でお持ちの方は凄いと思います。今年の年内にA100後継のH100が出るそうですが全く手が届く気がしません。
単年であればボーナス全額投入などは可能かと思われますが,おそらく他チーム比でそれほど優位に立つ要素にはなりません。どちらかと言うと個人的に反動が出て継続的な開発の弊害になります。分かりやすく言うと強いものができなかった場合心が折れやすくなります。これは外部資金投入すると更に高リスクです。
え~っと何の話かと言うと計画的に持続可能な開発と言うのは持続可能な資金源が前提でしか計画が出来ないのです。単年で予算があってもそれを長期計画に組み込むことは不可能ですので長期確保できるベース資金で開発計画を練るのが安全です。
短期の競争的資金ですか?あれは年単位でスケジュール変更があるような長期開発には織り込めません。
中長期で応援してあげるよって方がいらっしゃれば是非御連絡下さい。
直接大学の方へ私を指名して教育研究奨励寄附金を入れて頂いても構いません。
WCSC32こと第32回世界コンピュータ将棋選手権で「将棋の神様」云々との煽り文句があった。
もちろん神様というのは人間が創った概念である。
将棋の神様の定義は様々あるだろうが、指す人にとっては日ごろの努力を認めて棋力を上げてくれるとか祈りを捧げると詰み筋が見えるとかそういう観念になるのだろう。
ゲームAI分野では以前から二人零和有限確定完全情報ゲームに分類されるものは無限の探索時間と無限の探索能力をもってすれば双方が最善手を指した結論まで得られると分かっている。しかしながら、有限の時間で完全解析にたどり着けるゲームは現在どうぶつ将棋や6x6のオセロ程度である。
神様が全ての指し手を探索し終局まで探索するとして、他の神は居ないのかというと評価値の神というのが考えられる。任意の局面を正確に局面評価行うことができる神だ。
この神は候補手を指した先の局面評価も可能であるから、その評価が最大になる手を指すことで最善手を選ぶことができる。もちろん同評価のこともあるだろう。
ここまでは一般的なお話だが、5年前の私は時間の概念に重きを置いた。全着手ノータイム指しである。神様なら当然かもしれないが、通常はコンピュータで計算する以上時間を費やすことは必至である。そこで考えた実装がMulti Ponderと言う有力な候補手の応手を事前に探索しておく手法である。これにより、初参加で第28回世界コンピュータ将棋選手権を優勝することができた。今年選手権で準優勝と共にこの事案でCSA貢献賞を頂いた。今年優勝のdlshogiが同手法を実装して時間を削ってきたのには苦笑いしか出ない。
探索の神、評価の神、時間の神と三柱考えて、時間の神を奉ったのが2018年。
その後スクラッチで探索実装などを試みたのが2019年。無限の時間(とメモリ)があれば答えが出る。
究極の評価関数を志したのが2020年である。これが二番絞り。
主流の自己強化学習にこだわらず手段を選ばないことを銘打って製作開始したものであるが、一応世界トップクラスを自負している。
Kristallweizenであの衝撃である。一般配布するには危険な代物だろう。
もちろん、今回一手でも悪手があったということで完成度を上げる余地はある。
神様からは「まだ早い」とのお声を頂いたように思う。
えっと,今年は余裕が無くてツイートくらいしかしてませんでした。
4月に急に温かくなってから耳鳴りが止まらなくて酷いもんです。
事後になりますが,ざっくり書き下します。
一次予選は第三者視点で観戦と開発者Zoomでちょっとした交流をしておりました。
短時間でも同じ課題を持っている人と意見交換できるのは非常に役立ちます。
谷合プロの初参加が話題でしたね。もうちょっと具体的に説明して欲しかったですが研究発表が控えているなら無理なのは同業として理解します。
そういえばねね将棋がiPadで動くのも現地実機で見たかったですね。
二次予選です。
白ビールは一応私が開発に加わらないという条件で開発者から名義を抜いておりますが,基本的にMulti Ponderのクラスタ構成で私が運用しています。昨年発覚したバグだけ修正しております。具体的にはPondering中の探索結果を一部読み捨てながらプールしているのですがソートを忘れていたためにponderhit直後に応手を出す際の評価値が最も深い探索になってなかった点等です。ソート忘れですのでそーっと修正しておきました。他に持ち駒のソート忘れも発覚してましたのでこちらもそーっと。
結果は御覧の通り惜しい予選落ちでしたが,昨年と似た感じで松下さんが持ち込んだ定跡にちょっと難があった感じですね。差し替えるか迷いましたがワンオペで多数のクラウドインスタンスを監視してるだけで何となく気疲れしてそのままにしてしまいました。具体的には先手番で定跡抜けでマイナスの対局がふたつ,千日手ひとつですね。さすがに先手定跡のままで千日手はちょっと酷いです。
昨年予選一位で決勝に行ってましたので基本的には弱くないはずです。
二番絞りは私が一昨年から制作している深層学習モデルで,元は第1回電竜戦の予行のために作った突貫ネタエンジンでした。(割と多いパターンです)
そもそも将棋の深層学習についてはこのブログの2017年春と山岡さんの同時期を見て頂ければ分かりますがその辺から着手しています。AobaZeroで遊ぼうシリーズもありますが
二番絞りはとにかく対戦サーバの自動運転のテストが主眼なので適当に間に合わせで学習させたものでした。本格化したのはAobaZero教師データを加えてからです。
二次予選結果 - 48's diary ←昨年選手権
将棋の深層学習の歴史(私的集計2021秋) - 48's diary ←昨年電竜戦直前
第2回電竜戦本戦の感想 - 48's diary ←昨年電竜戦直後
で,昨年選手権ではリハーサルで使ったマシンが本番で使えずに二次予選で落ちました。電竜戦では予選一位,決勝四位とまずまずの成績と言えるでしょう。
それで今年の選手権で予選一位でした。
そうするとなんか妥当で順当な気がしますが,実際の開発者視点は異なります。
昨年モデルが実は結構自信がありました。ほぼ春のまま微修正で電竜戦に挑みましたので結果四位は満足ですがそこから何をすればいいのか分からない状況になっていました。
結局考えられる幾つかのパターンを試したのですが,それぞれを評価する方法がはっきりせず恐らく内輪でこれが一番いいのかな?ってものを本番に投入しました。
評価方法が分からないと言うのは多くの方が疑問だと思います。例えば第一回電竜戦の後,山岡さんに評価して頂きました。
GCT、dlshogi、二番絞りの比較 - TadaoYamaokaの開発日記
明白にGCT, dlshogi, 二番絞りの順になっています。しかしながら,電竜戦では二番絞りが遥かに劣るスペックの計算機でdlshogiに中盤から逆転で勝っています。二番絞りの方が弱いとは思っていませんし,うちで計測したのはもっと長時間戦をやっており明白に二番絞りの方が優勢です。
ということで,探索時間・深さで優劣は変わります。
それでは選手権用にどれを選ぶかと言う問題になりますが,選手権と同スペックの対局をすることは予算的に無理です。自社内にA100クラスタを持つHEROZさんが羨ましい点ですね。
結論こんなのです。
floodgateに流していたと言えば二番絞り,GTX1050Ti搭載の4年前のノートPCで高級スリッパの水匠に一発ずつ入れてます。 https://t.co/aaN4ONQ5aM
— 48@💙💛 (@bleu48) 2022年5月6日
低スペックでも格上に一発入れられるけど,高スペックでも完封できるわけではない。
floodgateで長時間放り込んで一番レートが高いのを使おう。っても以前のと比べて大差ないな。
まぁ,そんな感じでした。
ですので予選通過すれば万歳くらいの気分でしたので予選一位時点で望外の僥倖でスーパーラッキーマンでした。
A100マシンは大会でしか使ったことが無いので初手から先生よろしくお願いしますといった気分です。低スペックマシンで検証した定跡を使う気がしません。
決勝です。
もうほとんど言うことが無いくらいラッキー続きな印象でした。どこで負けても不思議はありません。
特筆するとすれば五回戦強敵のたぬきさん相手に後手番の20手目ですね。
定跡進行で19手目48銀と上がったところで二番絞りが1分58秒の長考に入り,結論は後手有利と判断し86歩と仕掛けました。
定跡ファイルを入れているとおそらくこの仕掛けは選手権棋譜にならなかったと思います。こういったものが見られるのが今回の設定の目標でした。
以後評価値は単調に後手へ拡大し勝利となりました。
手数は長いですが上図がうちの評価値グラフです。
決勝最終局は皆さん大喜びのウォーターフォールです。
皆さんが今一番見たいヤツです #wcsc32 pic.twitter.com/YyfharxoCa
— 48@💙💛 (@bleu48) 2022年5月5日
正直評価値が800超えたところで画面から目を離して,ドスパラポイントで年内発売が予想されているRTX4090に届くかどうかとかとか考えてました。今思うと完全にフラグです。
ただ,多くの方が二番絞りの優勝すると思ったんじゃないでしょうか。
実際多く検索にかけたようで過去の準優勝の比ではなくアクセス数が伸びておりました。
また,面白いことにYoutuberやブロガーの人が色々分析して下さってますが,このレベルの分析をできるマシンをお持ちではないので恐らく正確なところは分からないと思います。
とにかく,このスペックのマシンでもこんなことあるんだなってところですね。
しかもこれを最終戦で持って来るのはまさに劇的でした。
気分は力石にアッパーカットをもらった矢吹丈ですよ。でも彼も対戦出来たことにまず感謝したはずです。
考えてみると上場企業が自社サーバ全導入して参戦して下さるなんて素敵じゃないですか。モータースポーツに例えるとワークスチームが億の金で組織するところを私はプライベートチームでピットクルーひとりでレンタカーで戦ったわけです。
予選一位で決勝6戦無敗で最終局ですから,ポールポジションからファイナルラップまで先頭を走って,ワークスチームが相当焦ったはずですよ。それで十分,今回も出来は御の字です。
いやぁ,お疲れさまでした。CSAの皆様,開発者の皆様,HEROZの皆様ありがとうございました。そしてチームメイトにも感謝。
楽しい時間をありがとう、ニ番絞り。
— そーだい@初代ALF (@soudai1025) 2022年5月5日
サンキューGCP。
インスタンス、落とします。 pic.twitter.com/U2XtcDi0Pf
以前にメモリ換装機にRyzen 5 5625Uのマシンを仕入れた話をした。Zen3世代の非常に高コストパフォーマンスの良いマシンである。
毎度購入直後に負荷テストをするのであるが,モノはついでなのでfloodgateにやねうら王の7.10の128bitハッシュのやつを流しておいた。評価関数は相変わらずのKristallweizenである。くどいが現在でも全く遜色なく戦える。
で,Ryzen 5 5625Uは安くて速いお買い得CPUなのだがハイエンドには劣る部分がある。以前のRyzen 5 2500Uなども酷かったが高負荷時に熱でクロックが大幅に下がる。
今回16インチ機を仕入れたのはもしかしたら14インチ機より排熱ちょっと強いかもという淡い期待が少しあったからでもある。
今回の結果,5625Uは12スレッドの負荷で今回2.3GHz付近まで落ちた。6スレッドでは3GHzを若干下回るくらいで落ち着いていた。
で,以下のfloodgateレート(各60戦程度)である。
2.3GHzの12スレッドなら3GHzの6スレッドと大差ないって結論になる。つまり5625Uならコア数分のスレッドで運用した方が発熱も消費電力も少ないのでお勧めである。微差で12スレッドの方が強いとは思われるが本当に微差であろう。
そういえば,Alder LakeおよびM1のベンチマークでも遅いコアはあまり役に立たない仮説が出るような結果であった。
基本的に高クロックが欲しいアルゴリズムなんですね。
学術的には並列化効率が特別低いという表現でしょうか。
もちろん,高負荷時にクロックが落ちて来ないような設計のものは今回とは違います。