曲突徙薪(きょくとつししん)第7号
そもそもGPTとは?
ChatGPTは「生成AI」などと言われることがありますが、単語に分解すると次のようになります。
Chat(おしゃべりする)
Generative(生成のための)
Pre-trained(事前に学習された)
Transformer(トランスフォーマー???)
Pre-Trained Transformer(PT)は、特定のAIのアルゴリズム(計算手法)をあらわす用語です。Pre-trainedは日本語で「事前訓練」「事前学習」などと訳されているのをしばしば目にしますが、Transformerについては特定の日本語をあてはめずに、そのまま「トランスフォーマー」と表現されることが多いようです。これは特に日本人にとって、GPTの具体的なイメージを思い浮かべるうえで大きな障壁になっているように見えます。いずれにしてもChatGPTの実体が「事前学習されたトランスフォーマー」であることがわかったところで、この仕組みを理解するためには、「事前学習」と「トランスフォーマー」のそれぞれの中身を詳しく知る必要があります。
トランスフォーマーとは?
今回はトランスフォーマーについて取り上げます。一般向けの説明として英語版のWikipediaを参考にすると、以下のような記載があります(和訳は筆者)。
トランスフォーマーは、最近発見された自己注意メカニズムを使用したディープラーニングモデルである。このモデルは、バイトペアエンコーディング(筆者注:単語を数値計算の対象とするために符号化する処理手法の一つ)によって解析されたすべてのトークンを同時に処理し、後続のレイヤーでそれらの間の注意重みを計算する。これは、Google Brainの研究チームによって2017年に最初に発表された。 (参考:https://en.wikipedia.org/wiki/Transformer_(machine_learning_model)) |
直感的な理解とは程遠い説明という印象が拭えません。トランスフォーマーにそれらしい日本語訳がない理由もこのあたりにありそうです。とはいえこの中にもヒントがあり、それが、2017年にGoogle Brain社のAshish Vaswani氏らが発表した論文"Attention Is All You Need"(以下「アテンション論文)です。以降では、この論文の説明をもとにトランスフォーマーの中身を読み解いていきます。アテンション論文が最初に公表したトランスフォーマーは、文字列を入力情報としておおむね次のような処理をおこなっています。
入力情報(文字列) | →前処理(数値化) | |
→本処理(文脈情報の付与) | ||
→後処理(数値化) | →出現確率 |
トランスフォーマーでは、入力された情報を数値化してさまざまな計算処理をおこないますが、最終的には「ソフトマックス関数」という関数によって確率を出力しています。したがって、途中の処理をすべて省いて考えるとトランスフォーマーは、入力された文字列に対して、候補となるすべての単語の出現確率を計算して、そのうち最も確率の高い単語を返すアルゴリズム(計算手法)、と言い換えることができます。トランスフォーマーの役割を理解する上での第一歩は、これが結局は「確率」を計算するアルゴリズムである、という点に尽きます。
トランスフォーマーによる確率推定の例 入力情報: むかしむかしあるところにおじいさんと 該当確率: 家(1%) おばあさん(25%) 孫(10%) 犬(12%)… → 出力結果: おばあさん 入力情報: むかしむかしあるところにおじいさんとおばあさん 該当確率: と(15%) の(10%) が(20%) 達(1%)… → 出力結果: が |
このことがわかるとトランスフォーマーの役割は、たとえば次のようなイメージでとらえることができます。トランスフォーマーに対して、入力情報として「むかしむかしあるところにおじいさんと」という文字列を与えると、トランスフォーマーは「家」「おばあさん」「孫」「犬」といったあらゆる候補の単語について、その文脈の中での出現確率を計算して、確率が最も高い「おばあさん」を出力結果として返します。そして次は「むかしむかしあるところにおじいさんとおばあさん」を入力情報として、やはり出現確率が最も高い「が」を返す、これを繰り返すことで文章を作り出します。
ディスカッション
コメント一覧
まだ、コメントがありません