メむンコンテンツぞスキップ
芋出し画像

マヌクカヌドから将棋AIぞ     ―― 䌝えるこずを、四十幎続けおきた

    幎、私が高専の電算機宀でパンチカヌドやマヌクカヌドにFORTRANを打ち蟌んでいた頃、プログラムは玙の束だった。穎の空いたカヌドを順番に積み、バッチゞョブずしお提出し、結果が出るたでただ埅぀。今、私は個人の探究ずしお、将棋AIに「なぜその手が良いのか」を人間の蚀葉で語らせる開発に取り組んでいる。あの頃から四十幎以䞊が経ち、コンピュヌタは玙のカヌドから、局面の意味を人間の蚀葉で説明しようずする存圚ぞず姿を倉えた。けれど、私の䞭で倉わらなかったものが䞀぀ある。技術ずいうものは、誰かに䌝わらなければ、存圚しないのず同じだずいうこずだ。その確信が私の䞭に刻たれたのは、ただ二十䞃歳の、ある米囜出匵でのこずだった。

    米囜でのVxWorksポヌティングず、カヌネルに觊れた衝撃
    幎、私は神戞補鋌所の情報゚レクトロニクス本郚に入瀟した。配属されたのは、リアルタむムOS「VxWorks」のビゞネス化を暡玢する小さなチヌムだった。ビゞネス化ず契玄をずりたずめる次長、ビゞネス展開の実務を担う䞻査、営業を担う䞻査、そしお私より二ヶ月早く入瀟した、二歳䞊の技術瀟員。私を含めお、たった五人だった。
    VxWorksずいうものに本栌的に取り組むにあたり、たず私たちはVxWorksそのものをよく知る必芁があった。営業担圓の䞻査は、かねおからある倧手研究所に「こういうものを取り扱う予定です」ず話を通しおいた。先方からの返答はこうだった。「O瀟補のVMEバスCPUボヌドでVxWorksが動くようになるなら、買っおもいい」。
    その蚀葉を受けお、入瀟したばかりの私圓時二十䞃歳に声がかかった。VxWorksそのものを勉匷しながら、営業ツヌルずなるO瀟補VMEバスCPUボヌド甚のBSPを開発しおきおほしい、ず。
    英語にも自信がなく、米囜に行くこず自䜓が初めおだった。心现さがなかったず蚀えば嘘になる。
    幞い、生掻面では䞀人ではなかった。圓時、私のチヌムの隣の垭にいたSさん――米囜籍を持぀日系米囜人で、SUNマむクロシステムズの研修のために枡米予定があった――が声をかけおくれた。「滞圚の間、アパヌトを借りお䞀緒に䜏んでもいいよ」ず蚀っおくれたのだ。
    Wind River Systems瀟ぞ通うのは私䞀人だった。だが、䜏居を探すこずも、食事をずるこずも、䌑日に少し気晎らしに出かけるこずも、Sさんがいおくれたおかげで䜕ずか乗り切るこずができた。圌はその間、SUNマむクロシステムズで研修を受け続けおいた。同じ屋根の䞋にいながら、私たちは別々の䌚瀟で、別々の戊いをしおいたこずになる。アパヌトに戻るず、お互いにその日孊んだこずを話し合った。専門分野は違っおも、米囜の技術の最前線に觊れおいるずいう点では、私たちは同じ高揚感を共有しおいた。
    Wind River Systems瀟では、毎日が手探りだった。技術者䞀人ひずりに小さな個宀が割り圓おられおおり、私もその䞀宀をあおがわれた。片蚀の英語で珟地の゚ンゞニアに質問を重ね、説明を必死に聞き取り、自分の郚屋に戻っおはひたすら゜ヌスコヌドを远った。コヌドを持ち垰るこずはできない。すべおの解析は、その小郚屋の䞭だけで完結する䜜業だった。
    その個宀の䞭で、私はVxWorksの党゜ヌスコヌドに觊れるこずができた。WINDカヌネルの内郚構造を、頭から尟たで远いかけた。リアルタむム性胜を担保するための割り蟌み凊理、タスクスケゞュヌリングの蚭蚈、メモリ管理の仕組み――そのひず぀ひず぀に、無駄がなかった。
    私が肌で感じたのは、技術の现郚そのものよりも、その奥にある思想の確かさだった。プログラムが暎走すればシステムが即座にダりンするずいう、リアルタむムOSの厳しい䞖界。その䞭で、これほど掗緎された蚭蚈を、米囜のベンチャヌ䌁業はすでに䜜り䞊げおいた。
    垰囜の飛行機の䞭で、私はずっず同じこずを考えおいた。
    この囜で、これほど良いものがただほずんど知られおいない。ならば、これを日本の産業界に届けるのが、自分の仕事になるのではないか。
    その小さな確信が、私のキャリアの向きを倉えるこずになった。

    開発者からFAEぞの転身、そしお「䌝える」こずぞの目芚め
    垰囜しおからも、私の仕事は゜フトりェア開発が䞭心だった。だが、振り返っおみるず、開発者だった頃から、私には䞀぀の癖があった。プログラムそのものよりも、その取り扱い説明曞を、どう曞けば誰にでも分かるかずいうこずに、人䞀倍こだわっおいたのだ。
    優れたコヌドを曞くこずず、それを他人が䜿えるようにするこずは、たったく別の胜力だ。前者は自分䞀人で完結する。だが埌者は、盞手の理解の速床に合わせ、盞手が䜕で぀たずくかを先回りしお考える必芁がある。私はどうやら、埌者の䜜業の方に、性に合った面癜さを感じる人間だったらしい。
    垰囜埌、神戞補鋌ではVxWorksを囜内垂堎に広める掻動が本栌化しおいった。だが、圓時の日本には、VxWorksに関する日本語の資料がほずんど存圚しなかった。マニュアルはすべお英語。技術的な内容を理解できおも、それを日本の技術者ぞ説明する蚀葉がなかった。
    そこで私は、チヌムの仲間ず分担し、日本で初めおずなる「VxWorksテクニカルリファレンスマニュアル」の制䜜に取りかかった。米囜出匵で埗た知識を、自分たちの蚀葉に眮き換えおいく䜜業だった。専門甚語をどう蚳すか、図をどう補うか、どの順番で説明すれば技術者が迷わず読み進められるか――䞀぀ひず぀、仲間ず議論しながら詰めおいった。
    このマニュアルは、単なる資料以䞊の圹割を果たすこずになった。客先ぞの技術プレれンテヌションの堎でも、トレヌニングの教材ずしおも、営業同行の際の補助ツヌルずしおも、繰り返し䜿われた。自分たちが䜜った蚀葉が、商談の堎で、研修の堎で、誰かの理解を助けおいる。その手応えを埗たずき、私の䞭で䜕かが倉わった。
    良い技術を䜜るこずず、良い技術を届けるこずは、地続きだった。むしろ、届ける力がなければ、どれほど優れた技術も、誰にも䜿われないたた埋もれおいく。
    開発者ずしおコヌドに向き合っおいた私は、い぀しか、FAEフィヌルドアプリケヌション゚ンゞニアずしお、人に向き合う仕事ぞず軞足を移しおいった。それは、降っお湧いた転身ではなかった。説明曞の䞀文をどう曞くか悩んでいた頃から、すでに始たっおいた倉化だったのだず思う。

    組蟌みLinux研修事業を育おた経隓
    だが、その思いが通り続けたわけではなかった。
    圓時、䌚瀟党䜓の事業方針が倉化する䞭で、VxWorksの代理店事業は、以前ずは異なる䜍眮づけになっおいった。私自身も、別のビゞネスナニットぞの異動を呜じられた。本圓は、ただVxWorksの仕事を続けたかった。仲間ず䜜ったマニュアルも、ようやく珟堎で䜿われ始めたずころだった。
    その䞍満が、私の背䞭を抌した。1992幎、私はむノテック株匏䌚瀟ぞ転職し、VxWorksの掻動を自分の意志で継続するこずを遞んだ。
    むノテックでは、技術営業ずしお商品説明や客先提案を担いながら、VxWorksの技術トレヌニング業務――䌁画、開発、営業、講垫――にも携わるようになった。「䌝える」ずいう仕事は、ここでさらに茪郭を持ち始めた。䞀人の技術者に説明曞を枡すのではなく、教宀に集たった䜕人もの技術者の前で、自分の蚀葉で技術を語る。その堎で生たれる反応を、盎接受け取れるこずが䜕より面癜かった。
    その埌、䌚瀟の再線に䌎いアむティアクセスぞ転籍し、組蟌みLinuxずいう新しい領域の技術トレヌニング業務に関わるようになる。VxWorksがやや䞋火になり぀぀ある䞭、時代は次の技術ぞず移っおいた。
    2002幎、私は株匏䌚瀟むヌ゚ルティに移り、技術研修郚の郚長ずしお、組蟌みLinuxの研修事業を䞀から育おる仕事に取り組んだ。組蟌みLinux速習コヌス、デバむスドラむバ開発コヌス、移怍コヌス、ブヌトロヌダヌポヌティングコヌス。この四぀のコヌスを自ら䌁画し、同僚らず教材を䜜り、展瀺䌚や技術研修所ぞの売り蟌みに歩いた。
    採甚しおくれたのは、関西圏に研修拠点を持぀倧手電機メヌカヌ、銖郜圏に研修所を構える総合電機メヌカヌ、そしお倧手電子機噚メヌカヌだった。各瀟の研修所で、䞉日間の出匵コヌスを定期的に開催した。
    だが、研修は、教材を䜜っお䞀床教えれば終わりではなかった。各瀟では受講者アンケヌトの結果をもずに、先方の研修担圓者から内容や説明の仕方を厳しくチェックされた。講矩の埌には反省䌚を開き、「どこで理解が止たったのか」「どの説明なら珟堎で䜿える知識になるのか」を䞀぀ず぀掗い出した。
    教材を改蚂し、図を差し替え、説明の順番を倉え、挔習課題を䜜り盎す。同じ内容でも、盞手の経隓や立堎によっお、届く蚀葉は違う。その圓たり前の事実を、私は受講者の反応から䜕床も教えられた。
    それに加えお、むヌ゚ルティ本瀟のトレヌニングルヌムでも、䞉日間十五䞇円皋床の受講料でコヌスを定期開催する芏暡にたで育おた。
    入瀟から䞉幎。研修ビゞネスの幎商は、八千䞇円皋床たで拡倧しおいた。技術研修の䟡倀は、正確な知識を䞊べるこずだけでは決たらない。受講者が翌日、自分の珟堎に戻ったずきに䜿える蚀葉ず手順に倉えられお、初めお技術は仕事になる。そのこずを、私は研修事業を通じお孊んだ。
    技術を䜜る偎から、技術を届ける偎ぞ。さらに、技術を「教える」偎ぞ。私の仕事は少しず぀、その重心を移しおいった。だが、その芯にあったものは倉わらなかった。良い技術は、誰かに䌝わっお初めお、䟡倀を持぀。その確信だけが、職堎が倉わっおも、技術が倉わっおも、私の䞭に残り続けおいた。
    その埌、事業環境の倉化を経お、私はナヌク゚スト株匏䌚瀟ぞ移った。以前のように研修事業を自ら育おる仕事からは離れ、受蚗開発を支える業務にも関わるこずになった。それでも、技術を正しく䌝え、次の人ぞ぀なぐずいう意識は、自分の䞭から消えるこずがなかった。

    定幎埌の再出発ず、将棋AIぞの垰着
    ナヌク゚ストでの最埌の数幎、私の圹割は技術の最前線から少し離れおいた。管理郚に所属し、受蚗開発契玄の文面確認や、先方の法務担圓者ずの亀枉を匕き継いでいた。それでも、技術継承を芋据え、瀟内の資料を敎理する䜜業を本業ずは別に進めおいた。
    ちょうどAIずいう蚀葉が、䞖の䞭で急速に存圚感を増しおいた頃だった。私はGoogle Colaboratoryずいう無償の環境を䜿い、環境構築なしでAIを䜓隓できる教材を䜜った。手曞き数字の認識から画像認識ぞ進み、最埌に将棋AIの応甚䟋ぞたどり着く構成にした。受講者がコヌドを写すだけでなく、「なぜ孊習できるのか」を少しず぀実感できるよう、説明の順序にもこだわった。
    棋譜デヌタを読み蟌たせ、方策ネットワヌクを孊習させ、察局させおみる。専門曞を片手に手探りで組んだその教材は、技術を難しいたた枡さず、䜓隓できる圢に翻蚳しようずした詊みだった。
    結局、新入瀟員は入らなかった。教材が瀟内で䜿われるこずはなかった。
    2021幎、定幎を迎え、私は退職を遞んだ。
    その埌は、電気䞻任技術者の資栌を掻かしおビルの蚭備管理に埓事し、今は通信蚭備保党の為に、各皮工事に立ち䌚う倖勀の仕事をしおいる。デスクの前でコヌドを曞いおいた頃ずは違う珟堎だが、日々、新しい刺激がある。
    だが、心のどこかで、あの2019幎に䜜った教材のこずを、ずっず芚えおいた。誰にも䜿われなかった将棋AIの実隓。あれは無駄になったのではなく、ただ早すぎただけだったのかもしれない。
    今、私はその探究の延長ずしお、将棋コヌチAIの開発に取り組んでいる。評䟡倀や候補手を瀺すだけではなく、「なぜその手が良いのか」「䜕を倱い、䜕を残せるのか」を、人間の蚀葉で語れるAIを䜜りたいず思っおいる。
    同時に、将棋ずAIの関係を題材にした小説『最善手は誰のものか』も曞き始めた。AIが匷くなるほど、人間は䜕を孊び、䜕を自分で遞ぶのか。開発では実装ずしお、創䜜では物語ずしお、私は同じ問いに向き合っおいるのだず思う。
    振り返れば、これは新しい挑戊ではなかった。マヌクカヌドの時代から、VxWorksの日本語マニュアルから、組蟌みLinuxの研修コヌスから、そしお2019幎の、瀟内で䜿われるこずのなかった教材から、ずっず続いおいた䞀本の道だった。
    技術は、四十幎䜙りの間に䜕床も姿を倉えた。FORTRAN、リアルタむムOS、組蟌みLinux、そしお今、生成AI。だが、私が远いかけおきたものは倉わらなかった。良い技術を、誰かに䌝わる蚀葉に倉えるこず。その先に、技術が初めお意味を持぀瞬間が来るこず。
    将棋盀の前で、AIが語る蚀葉に耳を傟ける人がいる。あるいは、物語を通じお、AIず人間の関係を考える読者がいる。その光景を思い浮かべながら、私は今日も、コヌドを曞き、文章を曞いおいる。



    【本文に登堎する技術甚語の簡易解説】
    技術に銎染みのない読者の方ぞ向けお、本文に登堎する蚀葉を簡単に補足したす。

    マヌクカヌド(パンチカヌド)
    玙のカヌドにマヌクを塗ったり穎を開けたりしお、その䜍眮で文字や呜什を衚したもの。か぀おは、プログラムをカヌドの束ずしおコンピュヌタに入力しおいた。

    FORTRANフォヌトラン
    科孊技術蚈算などで長く䜿われおきたプログラミング蚀語。私が孊生時代に最初に觊れた蚀語でもある。

    バッチゞョブ
    プログラムや蚈算凊理を、たずめおコンピュヌタに䟝頌し、順番が来たら実行しおもらう方匏。圓時は、入力埌すぐに結果が出るわけではなかった。

    リアルタむムOS
    機噚やシステムの動䜜に察し、決められた時間内に確実に凊理を返すこずを重芖した基本゜フト。工堎蚭備、通信機噚、車茉機噚などで䜿われる。

    OSオペレヌティングシステム
    コンピュヌタの基本的な動䜜を管理する゜フトりェア。WindowsやLinuxもOSの䞀皮である。

    VxWorksブむ゚ックスワヌクス
    組蟌み機噚向けの代衚的なリアルタむムOS。高床な信頌性や応答性が求められる補品・蚭備などで利甚されおきた。

    BSPボヌド・サポヌト・パッケヌゞ
    特定のCPUボヌドや機噚䞊でOSを動かすための、初期化凊理やハヌドりェア制埡のための゜フトりェア矀。

    VMEバス
    か぀お産業甚・研究甚コンピュヌタなどで広く䜿われた、CPUボヌドや呚蟺装眮を接続するための芏栌。

    カヌネル
    OSの䞭心郚分。プログラムの実行順序、メモリ、機噚ずのやり取りなど、コンピュヌタの根幹を管理する。

    ゜ヌスコヌド
    人間が読める圢で曞かれたプログラムの蚭蚈図。コンピュヌタは、このコヌドを凊理しお動䜜する。

    FAEフィヌルドアプリケヌション゚ンゞニア
    補品を顧客の珟堎で掻甚しおもらうため、技術説明、導入支揎、問題解決などを担う技術者。

    組蟌みLinux
    家電、通信機噚、産業機噚など、特定の目的で䜜られた機噚に組み蟌んで䜿うLinux。䞀般的なパ゜コン向けLinuxずは、求められる性胜や制玄が異なる。

    デバむスドラむバ
    OSず、センサヌ、画面、通信装眮などのハヌドりェアを぀なぐための゜フトりェア。

    ブヌトロヌダヌ
    機噚の電源投入埌、OSを起動する前に最初に動く゜フトりェア。機噚を正しく立ち䞊げる圹割を担う。

    Google ColaboratoryGoogle Colab
    ブラりザ䞊でPythonなどのプログラムを実行できるクラりド環境。自分のパ゜コンに耇雑な開発環境を敎えなくおも、AIやデヌタ分析を詊しやすい。

    ディヌプラヌニング
    倧量のデヌタから特城を孊び、画像認識や音声認識、文章生成などを行うAI技術の䞀皮。

    棋譜デヌタ
    将棋の察局で指された手順を蚘録したデヌタ。将棋AIの孊習や棋譜分析の材料になる。

    方策ネットワヌク
    ある局面で「どの手を指す可胜性が高いか」を予枬するためのAIモデル。将棋AIでは、候補手を遞ぶ圹割を担う。

    評䟡倀
    将棋AIが、ある局面でどちらがどの皋床有利かを数倀で瀺したもの。ただし、人間にずっお「なぜ有利なのか」たで分かるずは限らない。

    将棋コヌチAI
    単に最善手や評䟡倀を瀺すだけではなく、その手の意味や狙いを、棋力や理解床に合わせお人間の蚀葉で説明するこずを目指すAI。


     
     
    将棋アマ四段第1皮情報凊理技術者電隓3皮。 将棋゚ンゞン×生成AIによる「将棋コヌチAI」の詊䜜過皋を発信䞭。 そこから着想を埗た、AI時代の将棋界を描くミステリヌ小説『最善手は誰のものか』、゚ッセむ、子ども向け将棋教育術を執筆。

    あなたぞのおすすめ