生成AI


ChatGPTの簡単な解説

 人工知能の一種、ChatGPTは、質問を入力すると人間か作成したと思えるような回答を出力します。ここでは、極々簡単にその仕組みを解説します。各箇所の詳しい説明は順次追加する予定です。
 ChatGPTの内部では、ある時点までの文章を取り込んで、それを表す「埋め込みベクトル」を生成しています。(ニューラルネットワークは、基本的に数値を取り扱います。従って、ニューラルネットワークで文章を取り扱うには、文字を数値に変換することが必要です。単に数値を各文字に割り当てるだけでなく、文字で表す「もの」の特性をベクトルで表現し、特性が近いものは、似たようなベクトルで表現できるようにします。この表現法を「埋め込み」といいます。)次に、入力した文章に続きそうな「単語」を求めます(トークンといい、単語より広い概念で、句読点なども含みます、以後「単語」ではなく「トークン」を使用します)。まず、5万語前後のトークン候補について各トークンが次のトークンとして出現する確率を表す数値のリストをニューラルネットワークで計算します(参考:この5万は英語でよく使われるトークンの数とほぼ同じです。このトークンの内、完全な単語は約3000です)。そして、基本的には最も確率の高いトークンを、次に続くトークンとして出力します。ただし、それだけでは単調な文章になるので、確率の低い単語もランダムに入れます。
 言い換えると、今までに出てきている文章に対応するトークン列を入力として取得し、次にそれを表す「埋め込みベクトル」を計算します(ここでは、単語ではなく、文章の埋め込みベクトルを計算していることに注意)。その後、この「埋め込みベクトル」をニューラルネットワークに入力し、新しい「埋め込みベクトル」を生成します。この最後の部分を取得し、次に来そうなトークンの確率が得られる約5万個の値の配列を生成します(ニューラルネットワークの出力配列が約5万あり、各配列が各トークンに対応していると思っています)。ここで使われているニューラルネットワークの一部はトランスホーマーとよばれるもので、トランスホーマーに含まれているアテンション機構によりトークン列の一部に、より重きを置くようにします。すなわちその部分との結合を強くします。
(以上の解説は、「ChatGPTの頭の中」スティーヴン・ウルフラム著を参考にしました)

ChatGPT等の生成AIの活用法については、「ChatGPT&生成AI最強の仕事術」日経X TRENDの記事を一読することをお勧めします。また、ChatGPTの解説としては、「ChatGPTの頭の中」の他では、ネット記事「ChatGPTの仕組みを理解する(前編)」(https://tech-blog.abeja.asia/entry/chat-gpt-first-half-202307)およびその後編(https://tech-blog.abeja.asia/entry/chat-gpt-second-half-202307)が大変参考になりました。

今後は、
1.「分散表現」と「埋め込み」の解説
2.「Transformer」の解説
等の作成を予定しています。