🧠

生成AI・LLM周りの基本をイメージで掴む!

に公開

はじめに

この記事は、chatGPTなどAIサービスは触ったことがあるけれど、あまりLLMの仕組みやAI関連の基本的な単語はわからないという新人に、超ざっくりと短時間で説明ができることを目標に作成しました。AI関連の本などを読んだ方が正しい理解ができると思いますが、本を読むとなると時間もかかるので、この記事では正しさよりもなんとなくイメージを掴むことを目的にしたいと思います。とはいえ、自分がAIの専門家ではなく細かい部分を理解しきれていないため、致命的な間違いがあればご指摘いただけると嬉しいです。

AI関連の基本用語を整理する

関係図

まずこれから説明する単語の関係図を下図で表示しています。

AI > 機械学習 > ディープラーニング > 生成AI > LLM

という包含関係になっています。
各単語の定義を示し、その上で自分風に簡単にイメージしやすい言葉に変換しつつ、説明していきます。

AIとは

AI(Artificial Intelligence)=人工知能。

機械学習とは

機械学習 = 明示的にプログラムされることなく、データまたは経験に基づいて自動的に学習し、機能改善する能力をシステムに提供することを特徴とする人工知能の応用。
機械学習以外をルールベースAIと呼んだりして、ルールベースAIは人間が定義したルールに従って処理を実行するため、ルール設計が難しいです。
それに対して機械学習では、結果に導く過程(ルール)を自分で調整してくれるので、人間が気づきにくい特徴もキャッチして結果を出力することが可能です。

ディープラーニング(深層学習)とは

ディープラーニング = 人間の脳神経細胞を模倣した数学モデルをニューラルネットワークと呼び、それが深く多層化したもの。

https://jp.mathworks.com/discovery/deep-learning.html

中間部分(重みやパラメータ)は人間が直接決めるのではなく、データを使って自動的に最適化されます(=機械学習)。

生成AIとは

生成AI = ディープラーニングなどの機械学習技術を用いて、テキスト・画像・音声・動画などの新しいコンテンツを生成するAIの一種。

(従来のAIは学習したデータの範疇で判断・判定するような感じだったから、できるタスクの範囲が小さかった)

LLM(大規模言語モデル)とは

LLM(Large Language Model) = 膨大な量のテキストデータをもとに訓練された自然言語を理解・生成するための深層学習モデルの総称。

LLMの基本

次にLLMについてもう少しだけ深掘りしていきましょう。

基本的な出力イメージ

まず基本的な出力イメージは、下図のように次の単語を確率を基に予測していくシンプルなイメージとなります。
正確には単語ではなく、トークンという単位で次の出力を予測していくのですが、わかりやすいように単語と一旦考えます。

次にどのような単語が来るかは、大量のデータを学習したLLMが、それまでのテキストの内容を加味して、予測します。
上図のように確率を予測していくだけなので、計算問題が得意ではありません。
例えば「1+1=」の次に来るのは「2」になると、これまでの学習データから推測できる可能性が高いと思いますが、これは計算ではなく、推測による結果です。
「249853×536932=」のような意味のない計算については、どのような計算結果になるのかを学習していないと思われるので、誤った結果を返す可能性が高くなります。

LLMの進化やツール利用で計算の回答ができるようになっている場合も

この後記載するo1などの推論モデルが登場したことで、計算問題に対してもより正確な答えを出せるようになってきています(計算しているわけではないが、正確性は上がっている)。
また、計算結果についてchatGPTに質問すると、下図のようにpythonをコードインタープリタで実行するという方法で、実際に計算し、正しい結果を返してくれたりもします(これもLLMが計算しているのではなく、コードインタープリタをツールとして使用しているだけ)。

Cotとは

Cot(Chain of thought)とは「思考の過程」を明示的に出力させるプロンプトエンジニアリング手法の1つです。
有名な例を用いて簡単に説明します。
以下のようにLLMに質問すると、

私は市場に行って10個のリンゴを買いました。
隣人に2つ、修理工に2つ渡しました。それから5つのリンゴを買って1つ食べました。
残りは何個ですか?

↓以下のように間違った答えを出す場合があります(最近のAIは賢いので間違えないかもですが)。

11個のリンゴ

次に、Zero-shot COT Promptingという方法で、以下のように「ステップバイステップ」で考えさせるような文を追加して、質問してみたら、

私は市場に行って10個のリンゴを買いました。
隣人に2つ、修理工に2つ渡しました。それから5つのリンゴを買って1つ食べました。
残りは何個ですか?

ステップバイステップで考えてみましょう。

↓以下のように回答で思考過程を書き出すことで、最終的な結果の予測精度も上がり、正しい結果を出力することができるようになりました。

最初に、10個のリンゴから始めました。
隣人と修理工に合わせて、リンゴを2つずつ渡し、残りは6個になりました。
次に、5つのリンゴを買い、11個になりました。
最後に、1つのリンゴを食べたため、残りは10個になります。

参照リンク:Prompt Engineering Guide / Chain-of-Thoughtプロンプティング

推論(reasoning)モデルとは

推論モデルとは、上で書いたCoTのような思考過程をモデル自身が自動的に行い、より正確な出力を目指すモデルです。上の例で言えば、正しいリンゴの数を知りたいだけなのに、長ったらしい思考過程とか出力されるのは面倒だし、わざわざプロンプトエンジニアリングしないと正しい出力が得られないのも面倒なので、モデル側で勝手にじっくり考えて、より正解に近い答えを出すというイメージです。
OpenAIのo1モデルなどが推論モデルと言われているものになります。
参考:推論モデル(reasoningモデル)とは?仕組みや学習モデルとの違いを徹底解説

マルチモーダルとは

マルチモーダルとは複数の種類のデータを扱えるAIの能力のことを指します。
これまでテキストの話をメインで話してきましたが、テキストだけでなく、画像・音声・動画など複数の入力や出力が可能となるイメージです。

https://storage.googleapis.com/deepmind-media/gemini/gemini_1_report.pdf
既にgpt-4oを初めとして、画像を入力に使えるモデルは多く存在していますし、これからも入力・出力できるファイルの種類は増えていくことと思います。

LLMの仕組み(もう少し詳しく)

処理イメージ

もう少し詳しくLLMがやっている処理のイメージを見てみると下図のようになります。

https://aismiley.co.jp/ai_news/what-is-large-language-models/
解説したい内容だけピックアップしていきます。

トークンとは

トークンとは「LLMにおける最小単位」です。モデルによってトークンで区切るためのトークナイザーは異なり、トークナイザーは辞書のようなものを頼りに機械的に文章をトークン化していきます。なので、以下のようにトークナイザーの違いによって同じ文章でもトークン数(文章の区切り方)が異なる場合があります。

「こんにちは世界」という文章を見たときに、トークナイザーAは3トークンなのに対して、トークナイザーBでは2トークンという計算になっています。
LLMはインプットやアウトプットにトークンの上限があり、トークン数によってコストが従量課金されるのが基本なため、トークンについてなんとなく理解しておくことは重要と思います。

トークンのベクトル化

トークンはそのままでは計算できないため、ベクトルに変換することで、後の計算ができるようにします。
LLMの処理の時のベクトル化とは多少違う部分があるかもですが、ベクトル化のイメージを掴むための記事を以前書いていたので、良かったら参考にご確認ください。
https://zenn.dev/peishim/articles/c696ff85a539bd

パラメータ数とは

パラメータ数とは先ほどもディープラーニングの説明で用いた下図の丸の部分の数と言い換えられると思います。

https://jp.mathworks.com/discovery/deep-learning.html
丸の部分は脳の神経細胞のようなもので、この数が多いということは、それだけ脳が大きいということです。脳が大きい方が頭が良いというイメージがつくように、LLMも基本的にはパラメータ数が多い方がより優秀なモデルになる可能性が高いです。
ただパラメータ数を増やすと、その分よりたくさん計算しなければいけなくなるので、容量の大きいGPUが必要になったりでコストが増大してしまう点には注意です。

Transformerとは

GPTに代表される昨今のLLMには2017年にGoogleが提案したニューラルネットワークであるTransformerが用いられています。TransformerではAttention機構を用いることで、同じ単語でも文脈を理解してくれているかのように振る舞うことが可能になるようです。

Transformerに関しての理解を深めたい場合、まずは以下のyoutubeおよび関連の動画を見ると、自分のようにあまり知見のない人でもなんとなくわかった気になれます(動画は非常に面白いです)。
https://www.youtube.com/watch?v=KlZ-QmPteqM
https://www.youtube.com/watch?v=j3_VgCt18fA&t=11s

最後に

かなり雑な解説記事でしたが、AI初心者が少しでもAIに対する解像度が上がれば幸いです。
より詳しくなりたい場合は、他の記事を読んだり、本を購入して理解を深めていただければと思います。

参考

IT基礎教養 自然言語処理&画像解析 "生成AI"を生み出す技術

GitHubで編集を提案

Discussion