PyCon JP 2021 カンファレンスレポート

1日目:「将棋×Python」がもたらしたものとこれから

この記事を読むのに必要な時間:およそ 2.5 分

PyCon JPとは

PyCon JPは,日本国内外のPythonユーザーが一堂に会し,互いに交流を深め,知識を分け合い,新たな可能性を見つけられる場所として毎年開催される国際カンファレンスです。「PyCon JP 2021」は2021年10月15日〜16日と2日間のカンファレンスとして開催されました。

昨年の「PyCon JP 2020」は新型コロナウイルス感染症(COVID-19)の影響でオンライン開催のみでしたが,⁠PyCon JP 2021」では感染状況を考慮して,初日(10月15日)はオンサイト会場(ベルサール神田)とオンラインのハイブリッド,2日目(10月16日)はオンラインのみでの開催となりました。

初日のハイブリッド開催は初の試みでしたが,オンサイト会場には30名近くの参加者が来場し久しぶりにリアルカンファレンスならではの熱気を感じていただきました。また,両日ともにオンライン会場に多数の参加者の方が訪れてくださり,大盛況のうちにPyCon JP 2021は幕を閉じました。

1回めの今回は,15日に行われたカンファレンスの中から注目セッションと感想について運営スタッフがレポートします。

オンサイト会場の模様

オンサイト会場の模様

基調講演「将棋とPythonの素敵な出会い」―谷合廣紀氏

(吉田健太)

1日目のキーノートセッションには谷合廣紀氏が登壇しました。谷合氏はプロの棋士であると同時にPythonistaであり,『Pythonで理解する統計解析の基礎』という書籍も執筆されています。

基調講演の模様

基調講演の模様

発表ではまず「棋士とAIの関係」について語られました。⁠チェスは人工知能のショウジョウバエ」と言われており,日本では将棋を題材に進化しています。近年では電王戦のように,棋士とAIが戦うといったイベントも開かれました。結果,AIが事実上プロ棋士に勝利し,今後棋士としての仕事はあるのかという心配もありましたが,現在ではライブ放送で棋譜を予想し勝率をリアルタイムに計測するなど,AIの評価を参考にして棋士の研究パートナーとして共存しています。

谷合氏は将棋AIとして大きく2つに分かれていると説明します。

αβ法系
  • これまでの主流でCPUを活用し読みの速度が高速
  • 探索局面を大量に生やすことで評価精度を上げている
DL系
  • ここ数年で発展が目覚ましく,GPUを活用する関係でマシンパワーが必要
  • 方策ネットワークを使用しゲーム木を探索していく

このうちαβ法はC++などで高速化しているのに対して,DL系はモデル部分はCNNを用いているためPythonで書くことができます。DL系では盤面全体を9×9×Cとしており,王,金,銀など周囲1マスしか移動できない駒の場合は良いが,飛,角,香等の⁠飛び駒⁠と呼ばれる2マス以上移動できる駒の場合は3×3Convの範囲外になってしまい全体としての特徴を掴みづらいという弱点が存在します。これに対して谷合氏は,Transformerを用いれば特徴量を単層として捉えるのでは?という疑問を持っていました。

先駆者は少なかったため自分で作ってみようということで,谷合氏はBERT-MCTSというBERTとMCTSを組み合わせたAIを新たに作成されました。実際に将棋に造詣があるYouTuberと対戦した動画も公開されています。BERT(Bidirectional Encoder Representations from Transformers)はGoogleが開発した自然言語処理モデルです。探索部分は盤面を文字列として変換し,チェスや将棋などで用いられることが多いMCTS(Monte Carlo tree search)を使用しています。

BERTに代表される自然言語処理モデルは事前学習が大事だと一般的に言われており,BERTではMaskedLanguageModelという大規模事前学習を可能にする手法が使用されています。教師データなしで事前学習が可能ということを期待し,実際にBERT-MCTSにも取り入れたものの,現在将棋AIの世界では強い棋士の棋譜や強いAIの棋譜など良質な教師データがたくさんあります。今回はこの事前学習はそこまでメリットを感じないと説明しつつ,教師データが少ない場合では有用であるとも述べていました。

YouTubeで使用したBERT-MCTSは2,3日で作成できたと言い,短時間で作成できた要因として,書き慣れたPythonであること,Pythonには機械学習に対応したライブラリが豊富であることを挙げています。

他にも,将棋にAttention層を使うことで盤面において上級者がどこに注力しているかの可視化を行ったり,棋譜から特徴量を抽出して可視化した際に「棋風」というものが存在した話など,ここでは書ききれないコアな話をエンジニア・棋士の両側面からお話しいただきました。

棋譜から特徴量を抽出して可視化したグラフ

棋譜から特徴量を抽出して可視化したグラフ

最後にまとめとして「棋士×エンジニア」という自身の経験から,将棋界とITを知っているからこそ解決できる問題が認識でき,それを自分で作れるということが一番の強みとし,今後は今回のようなPyCon JPでの発表をはじめ,⁠棋士×何か」という将棋界以外のものが増えてくるのではないかと予想しました。

そして将棋とITの今後に関しては,将棋自体はAIが超えてはいるものの,まだまだ手動で行う作業も多く,さまざまな改善の余地があることや,DL系の台頭によりそれまでC++でしか書けなかった将棋AIがPythonで書けるようになったことで敷居が下がり,他の機械学習モデルをPythonで勉強していたエンジニアも参入しやすくなったとまとめています。

より詳細な使用ライブラリや棋風とは何か気になった方はこちらから動画アーカイブや発表資料をご覧ください。

著者プロフィール

吉田健太(よしだけんた)

PyConJPには2018年からスタッフとして参加。2019年までは会場NOCを主に担当していた。株式会社エブリーに所属。SREとして主にインフラ領域の整備に従事している。

Twitter:@yoshiken_tut


高倉佑輔(たかくらゆうすけ)

株式会社サザビーリーグの特例子会社,株式会社サザビーリーグHRにて,グループ内のシステム開発,とりわけバックエンド系システムを担当しているエンジニア。

PyCon JP 2021においてトーク,オンライン会場を担当。PyCon JPには2017年からスタッフ参加しているが,実は業務では主にC#を使用しており,まだPythonを使ったことがなかったりする。

プライベートではAnshitsuという写真の色調を調整するためのコマンドラインアプリを開発中。多趣味で,文章系の創作や写真,プログラミングなどさまざまなことに興味を持つ雑食系。

GitHub:huideyeren
Twitter:@huideyeren
Facebook:高倉 佑輔(ヨーシャ)
Blog:恢徳堂のヨーシャさんのブログ


nikkie(にっきー)

2019年よりPyCon JPスタッフ活動を始め,2021年は座長としてがんばりました。

株式会社ユーザベース所属のデータサイエンティスト。自然言語処理の研究開発に従事している。PyCon JPスタッフの他に,毎月開かれる「みんなのPython勉強会」のスタッフもしている。

Pythonが好き❤な上に怠惰なので,退屈と感じた作業はPythonにやってもらっている。それをPyConなどの場でアウトプットしている。また,アニメも好き🤗で,解放された現在は『アイの歌声を聴かせて』という作品をPythonの力を借りて応援している。

Twitter:@ftnext


神田佳積(かんだかづみ)

グッズ及びTalk進行を担当。今回初めてPyCon JPにスタッフとして参加。

普段は福岡のシステム会社にて受託開発及び常駐での開発に従事。Pythonは現職になって触れ始める。

他にもJAWS-UG 横浜支部の運営スタッフでもある。

Twitter:@kazumiks

バックナンバー

PyCon JP 2021 カンファレンスレポート