生成AI時代を生きる社会人に必須の基礎知識を身に付けよう。生成AIに関する用語として「生成系AI」「大規模言語モデル(LLM)」「プロンプトエンジニアリング」「ハルシネーション」「埋め込み表現」「ベクトル検索」「ベクトルデータベース」「RAG(検索拡張生成)」「事前学習」「ファインチューニング」の10語を紹介する。代表的なチャットAIやLLM、画像生成AIについても触れる。
本連載『AI・機械学習の用語辞典』では、AIや機械学習に関連する専門用語をできるだけかみ砕いて分かりやすく解説しています。コンパクトながらも、必要十分な知識が得られる内容を目指しています。
これまでに公開した用語は149語です。詳しくはabc/あいうえお順のキーワード目次を参照してください。
今回は第150回を記念して、これまでに公開した「生成AI」に関連する用語を厳選してピックアップし、合計10個の用語をまとめてみました(図1)。
新しい生成AI時代を生きる現在の社会人にとって必須の基礎知識になると思います。ぜひ社内教育などで知識ゼロの人に「まずは、これを読んでおいてね!」とお勧めしていただけるとうれしいです。
生成系AI(GenAI:Generative AI)とは、全く新しいオリジナルのアウトプットを生み出すAIです。具体的には、デジタルの画像や動画、オーディオ(音声/音楽など)、文章やコードなどのテキストを生成するAIのこと、もしくはこれらを組み合わせて生成するAIのことです。
筆者の感覚では、学術方面では「生成系AI」と、ニュースなど一般向けでは「生成AI」と呼ばれることが多いです(本稿でも以降は「生成AI」と表記します)。また、2023年の前半では英語を重視して「ジェネレーティブAI」と呼ばれることもありましたが、最近ではあまりこの表記を見ません。英語では「GenAI」という省略表記が定着しています。
生成AIの中でも「チャットAI」は、一般社会でも広く認知されています。以下に代表的な3つのサービスを紹介します。いずれも無料で(下記のリンク先から)利用できます。
*1 本稿で「執筆時点」は全て「2024年3月29日時点」を指すこととします。
この他、Perplexity(パープレキシティ)と呼ばれる、検索AIもあり有用です。検索AIという立ち位置ですが、できることはチャットAIとほぼ同じなので、筆者は上記の3つと同時に常用しています。
図3は、Googleトレンドで「ChatGPT/Gemini/Claudeの検索トレンド」を比較してみた結果です。
圧倒的にChatGPTの人気が高く、2024年3月から突如としてClaudeが人気となりGeminiに拮抗(きっこう)してきています。この結果は筆者の体感に近いので、妥当だと思います。
ちなみに、MicrosoftはCopilot(コウパイロット)という独自ブランドでAIアシスタントのサービスを提供しており、中身はChatGPTと同じ「GPT-4」(後述)などの大規模言語モデル(後述)を使用しています。
大規模言語モデル(LLM:Large Language Models)とは、大量のテキストデータを使って学習した言語モデル(=AI技術を用いて文章を理解し、新しい文章を生成できるソフトウェア)のことです。LLMは、文章を要約したり、テキストを生成したり、質問に応答したりできます。つまりチャットAIの中身です。
ChatGPTの中身の代表例がLLM「GPT-4」、Geminiの中身が同名のLLM「Gemini 1.5 Pro」、Claudeの中身が同名のLLM「Claude 3」です。
ちなみに、チャットAIの中身としてではなく、LLM単体で有名なものあります。それがオープンソース*2の「Llama 2」(ラマ2)です。
*2 一般人レベルでは「ソースコードが公開されてい(て、それを誰もが自由に使用したり、再頒布したり、その内容を自由に改変したりでき)ること」をオープンソースと呼びますが、より厳密な定義をOpen Source Initiative(OSI)という団体が規定しています。Llama 2は公式に「オープンソース」と説明されていますが、「オープンソース」の定義に当てはまらない、とOSIが主張しています。ちなみに執筆時点では、現状のAIにフィットする「AI用のオープンソース」の定義がOSI主導で議論されています。
これらの代表的なLLMの特徴は、以下の通りです。
オープンソース方面はLlama 2が有名ですが、最近になって強力なライバルが登場してきました。2024年2月にGoogleがオープンなLLM「Gemma」(ジェマ)を、2024年3月にイーロン・マスク氏が率いるxAI(エックス・エー・アイ)がオープンソース(Apache 2ライセンス)のLLM「Grok-1」(グロク1)を発表しています。
ユーザーがチャットAIなど(のLLM)に入力する質問や指示のテキストは、専門用語で「プロンプト」(Prompt)と呼ばれます。
チャットAI(LLM)や画像生成AIなどの生成AIで、より望ましい返答テキストや画像などが生成されるようにするには、ユーザーがAIモデルに入力する質問や指示のプロンプトを工夫することが有効です。この工夫は、プロンプトエンジニアリングと呼ばれます。
基本的には、図5に示されている「明確に指示する」「背景情報を提供する」「制約を設定する」ことに気を付けて、プロンプトを入力するとよいでしょう。
この他のテクニックとしては、回答方法の見本となる例文を幾つか提示することで同じように回答させるフューショット・プロンプティングや、計算問題のように順番に解いていくことが有効な内容に対して「ステップ・バイ・ステップで考えてみましょう」というプロンプトを含めるゼロショット・思考の連鎖(Zero-shot-CoT)プロンプティングなどがあります。
チャットAIやLLMは有用ですが、万能ではありません。間違った情報を出力することがあります。たちが悪いことに、自信満々にもっともらしく誤情報(=事実とは異なる内容や、文脈と無関係な内容)を生成します。この現象をハルシネーション(Hallucination)と呼びます。
ちなみに、ハルシネーションは「幻覚」という意味です。まるでAIが「幻覚」を見聞きして出力しているみたい、というわけです。
ハルシネーションはもっともらしいことが多いので、AIから返答を受け取った人間が「本当かどうか」の判断に困るという問題があります。この問題を回避する方法として、生成内容の正確さを向上させるために、Webアクセスを含める機能や、独自の情報源を付与するRAG(後述)、ファインチューニング(後述)による再学習などがあります。
そのRAGを理解するために、「埋め込み表現」「ベクトル検索」「ベクトルデータベース」についても事前に知っておきましょう。
埋め込み(Embedding:エンベディング)とは、単語やテキスト、画像を、AI/言語モデルが扱いやすい数値ベクトル(後述)に変換することです。
数値ベクトルとは、例えば[0.47, −0.12, 0.26, 0.89, −0.71, ...]のように実数値が並べられた配列のことで、例えば100個の数値が並ぶ場合は「100次元」とも表現できます。このように表現された数値ベクトルは、埋め込み表現とも呼ばれます。
例えば単語を埋め込む、つまり数値ベクトルに変換することで、意味的に近い単語同士が(数学概念の)ベクトル空間上で近接するように変換されます(図7)。つまり埋め込みによって、意味的な類似度を数学的に計算できるようになるというメリットがあるわけです。
ベクトル検索とは、数値ベクトル(埋め込み表現)間の類似度を計算することで、関連する情報を見つけ出す検索方法です(図8)。意味的な類似性を捉えられるのが特徴です。これは、単に文字列の一致やパターンマッチングに基づいて検索する(従来の)キーワード検索とは大きく異なる特性です。
例えば企業がチャットAIを導入する際、「自社内の情報を回答できるようにしたい」というニーズは高いでしょう。これを実現するには、「RAG」と呼ばれる仕組み(後述)を導入するのが一般的です。そのRAGで自社情報を検索するための方法として、ベクトル検索がよく採用されています。
ベクトルデータベースとは、テキストなどのデータを数値ベクトル(埋め込み)として保存するデータベースのことです。ベクトル検索により、意味的に類似する情報を探せるのが特徴で、チャットAIのRAG構築に役立ちます。
ただし、データを格納して管理するシステム形式の「データベース」製品だけではなく、単に開発者用のライブラリ(=プログラミングで使う部品集)形式の製品(例えばMetaの「Faiss:Facebook AI Similarity Search」など)も存在するので、ベクトル検索の機能を持つ製品全般を総称してベクトルストアと呼ばれる場合もあります。
図9は代表的な「ベクトルデータベース/ベクトルストア」のカオスマップ(業界地図)です。
RAG(Retrieval-Augmented Generation:検索拡張生成)とは、ChatGPTなどのチャットAIに独自の情報源を付与する仕組みのことで、具体的には言語モデルによるテキスト生成に特定の情報源(ナレッジベース)の検索を組み合わせることです。これには、生成内容の正確さが向上して、ハルシネーションを回避しやすくなるメリットがあります。
図10はRAGの基本的な流れを示したものです。
ユーザーからの質問内容で、いったんナレッジベース(ベクトルデータベースなどの情報源)を検索して自社情報を引き出し、それを踏まえてLLMに質問への回答を生成してもらう、というわけです。そのナレッジベースとして、ベクトルデータベース/ベクトルストアを採用することが一般的です。
ハルシネーションを回避する方法として、「RAG」の他に「ファインチューニング」もあると説明済みです。ファインチューニングを説明するために、まずは事前学習について説明します。
LLMなど最近のAIモデルでは、データからの学習(訓練、トレーニング)の工程が2段階に分けられています。最初にAIモデルを訓練することを事前学習と呼び、次にその事前学習済みモデルを特定の用途(例えばチャットAI用)に適応させるために微調整(ファインチューニング、後述)することを下流タスクと呼びます(図11)。
少し専門的な話になりますが、LLMの中身はニューラルネットワークという、人間の脳神経の構造に着想を得たネットワーク構造で構成されています。図11がそのニューラルネットワークの一例で、左側からデータが入力され、そのデータがネットワークを通って、右側へ出力されます。
事前学習では、左側のデータ入力に近い方から(基本的に)全体を訓練します。LLMなら、これにより言語を理解するモデルが出来上がります。
下流タスクでは、右側にさらにネットワークの層を追加するなどしてチャットのような特定の用途に対応できる形にした上で、右側の出力に近い方を中心に再訓練してモデルを微調整(ファインチューニング)します。
これまでの説明で分かるように、「Fine-tuning(ファインチューニング)」を翻訳すると「微調整」となります。微調整は一般的な日本語なので、より専門用語として目立たせるためなどの理由で「ファインチューニング」と表記されることが多いです。
あらためてファインチューニングとは、「事前学習」した訓練済みニューラルネットワークモデルの一部もしくは全体を、別のデータを使って再訓練することで、新しい用途向けにモデルのパラメーター(=言語モデル内部の設定項目)を微調整することです(図12)。
一般的に、ファインチューニングはRAGよりも取り組むハードルは高いと考えられますが、独自の情報源を再学習することで、より強力にハルシネーションを抑えられる可能性があります。
以上、2〜10番目までは、生成AIのうち主にLLM(大規模言語モデル)に関する用語でした。しかしながら生成AIでは、画像生成AIも注目されています。そこで、代表的な画像生成AIとして「Stable Diffusion」「Midjourney」「DALL-E」についても簡単に紹介しておきます。
これらの代表的な画像生成AIの特徴は、以下の通りです。
図13は、Googleトレンドで「Stable Diffusion/Midjourney/DALL-Eの検索トレンド」を比較してみた結果です。
検索トレンドを見ると、日本では圧倒的にStable Diffusionが人気ですね。筆者の体感とも一致します。しかし世界ではMidjourneyの方がやや人気のようです(図14)。
以上、生成AIの一般ユーザーが知っておくべき基礎知識として、特に重要な用語を厳選してご紹介しました。本稿が、生成AIをより効果的に活用するための一助になっているとうれしいです。
Copyright© Digital Advantage Corp. All Rights Reserved.