🧠

LLMについての基礎知識

に公開

📝 更新履歴

  • 25/04/04:🚀 プロンプトエンジニアリングとは?(追加)
  • 25/04/04:👻 ハルシネーション(幻覚)とは?(追加)
  • 25/04/04:🧮 エンベディング(埋め込み)とは?(追加)

はじめに

この記事では、
LLM(大規模言語モデル)を利用・理解する上で知っておくべき基礎知識をわかりやすく解説します。

AI の時代において、これらの基本概念を理解することは、ツールを効果的に活用するための第一歩となります。また、根底にある考え方を知ることで、新しい機能や用語にも柔軟に対応できるようになります。

ここに挙げたもの以外にも重要な概念はたくさんありますので、気になる部分があれば、ぜひ自ら調べてさらに知識を深めてみてくださいb

🧠 そもそも LLM って何?

Large Language Model(大規模言語モデル) のこと。
大量のテキストデータから学習し、人間のように自然言語を理解・生成できる AI モデルです。

NLP(自然言語処理)といった分野で広く使用される機械学習モデルの一種になります。

LLM = 大量の自然言語(日本語、英語など)から学習した万能型 AI モデル
と覚えておくと良いと思います!

🗣 NLP(自然言語処理)って何?

NLP(自然言語処理)とは、人間が日常的に使う「自然言語(日本語、英語など)」をコンピュータに理解・生成・操作させる技術・研究分野 のことです。

つまり、「人の言葉をコンピュータが扱えるようにする」ことが、NLP の本質です。

NLP の具体例としては、
翻訳、要約、感情分析、対話、検索 などがあります。
LLM はこういったタスクを柔軟かつ高精度にこなすための中核技術となっています。

🔤 トークンとは何か?

トークン = モデル(LLM)が処理する「最小単位の文字列」 のことです。
人間が「単語」や「文節」で読むのに対し、LLM は、トークン単位で文章を理解・生成します。

テキストを処理する前に、
「トークン化」という前処理を行い、文章を小さな単位に分ける必要があります。
この単位が「トークン」であり、モデルが扱う情報の基本的な粒度になります。

言語モデルや自然言語処理のコンテキストでは、テキストをトークン化することで、
個々の単語、文字、またはサブワードに分割されます。

一般的なトークン化の手法には以下のようなものがあります。

単語トークン化

テキストを単語ごとに分割する方法です。
一般的な単語トークン化手法には、スペースや句読点に基づく方法や、辞書を使用して単語を特定する方法などがあります。

以下は、単語トークン化の例です。

入力テキスト: "Hello World."
トークン化後の結果: ["Hello", "World", "."]

文字トークン化

テキストを 1 文字ずつに分割する方法です。
単語や意味の境界は気にせず、単純に並んだ文字列を分割し、トークンとして扱います。

以下は、文字トークン化の例です。

入力テキスト: "Hello."
トークン化後の結果: ["H", "e", "l", "l", "o", "."]

サブワードトークン化

テキストを、単語より小さく、文字より大きい単位(サブワード) に分割する方法です。
これは未知語や造語にも柔軟に対応でき、効率的かつ高性能な処理が可能になります。

代表的なサブワードトークン化手法には、

  • Byte-Pair Encoding(BPE)
  • SentencePiece

といったものがあるみたいです。

以下は、サブワードトークン化の例です。

入力: "ChatGPT is amazing!"
→ トークン化結果(例): ["Chat", "G", "PT", " is", " amazing", "!"]

ちなみに、ChatGPT は「Byte Pair Encoding(BPE)ベースの「サブワードトークン化方式」」を使用してるみたいです。

🧩 コンテキストとは?

コンテキストとは、「LLM が現在の出力を決定するための、参照情報の全体」 のことを指します。

LLM(大規模言語モデル)は、「直前に何が書かれていたか(言われたか)」をもとに次の単語(トークン)を予測する仕組みになってます。

つまり、
会話の流れ・過去の発言・システムの指示・アップロードされたファイルの中身など、
モデルが「今どういう状況にあるか?」を判断する材料すべてが「コンテキスト」に含まれます。

「直前の情報のまとまり = コンテキスト」 という認識で良いと思います。

※なお、モデルごとに「一度に保持できるコンテキスト(=トークン数の上限)」が決まっています。

🚀 プロンプトエンジニアリングとは?

プロンプトエンジニアリングとは、LLM から望ましい出力を引き出すために、入力(プロンプト)を設計・最適化する技術やプロセス のことです。

LLM は入力されたプロンプトに基づいて応答を生成するため、プロンプトの質がアウトプットの質に直結します。

「LLM への指示や質問を工夫すること = プロンプトエンジニアリング」 と考えると分かりやすいでしょう。

なぜ重要なのか?

同じ LLM でも、プロンプト次第で応答の精度や関連性が大きく変わります。
効果的なプロンプトを作成するスキルは、LLM の能力を最大限に引き出す鍵となります。

基本的なテクニック例

いくつか簡単なテクニックを紹介します。

  • 明確な指示:
    • LLM に何をしてほしいのか、具体的かつ明確に指示します。曖昧な表現を避け、期待する出力形式なども指定すると効果的です。
    • 例:「以下の文章を小学生にもわかるように要約してください。箇条書きで 3 点にまとめてください。」
  • 役割を与える:
    • LLM に特定の役割(例:プロの編集者、特定の分野の専門家)を与えることで、その役割に沿った視点やトーンで応答を生成させることができます。
    • 例:「あなたは経験豊富なマーケターです。以下のアイデアについて、メリットとデメリットを挙げてください。」
  • Few-shot Learning (例示による学習):
    • いくつかの例(入力と期待される出力のペア)をプロンプトに含めることで、LLM にタスクのパターンや期待する出力形式を学習させます。
    • 例:
      入力: 林檎
      出力: Apple
      入力: 車
      出力: Car
      入力: 犬
      出力: Dog
      入力: 本
      出力:
      
      (LLM は "Book" と出力することが期待される)
  • 思考プロセスを促す (Chain of Thought):
    • 複雑な問題に対して、「ステップバイステップで考えてください」のように指示することで、LLM が段階的に推論を進め、より正確な回答を導き出しやすくなります。
  • 区切り文字を使う:
    • 指示、コンテキスト(背景情報)、入力データなどを明確に区切る記号(例:###---、XML タグなど)を使うことで、LLM がプロンプトの構造を理解しやすくなります。

プロンプトエンジニアリングは奥が深く、日々新しいテクニックが登場しています。まずはこれらの基本的な考え方を理解し、試行錯誤しながら LLM との対話を改善していくことが重要です。

👻 ハルシネーション(幻覚)とは?

ハルシネーションとは、LLM が事実に基づかない情報や存在しない情報を、あたかも真実であるかのように生成してしまう現象 のことです。

簡単に言えば、「AI がウソをついてしまう問題」です。

なぜ起こるのか?

LLM はあくまで「次のトークンを確率的に予測する」モデルであり、事実を検証する能力は限られています。トレーニングデータに含まれる情報の不足や、情報の混同などが原因で発生します。

ハルシネーションの例

  • 存在しない研究論文や書籍の引用
  • 実在しない人物や企業についての詳細な説明
  • 虚偽の歴史的出来事や科学的事実の提示

対策方法

  • 情報源の提供: LLM に判断材料となる十分な情報を提供する
  • 正確性の確認: 重要な情報は必ず別の信頼できる情報源で検証する
  • RAG(Retrieval-Augmented Generation): 外部の知識ベースと組み合わせて使用する

ハルシネーションは LLM の大きな課題の一つで、特に重要な判断や事実に基づく必要がある場面では注意が必要です。

🧮 エンベディング(埋め込み)とは?

エンベディングとは、テキストなどのデータを数値ベクトル(多次元の数値の配列)に変換する技術 のことです。

これにより、人間の言語をコンピューターが理解しやすい形式に変換し、意味的な類似性を数学的に計算できるようになります

なぜ重要なのか?

エンベディングは以下のような様々な用途で活用されています:

  • 意味検索: 単純なキーワードマッチングではなく、意味的に関連するコンテンツを検索できる
  • 文書の分類: 類似した内容の文書をグループ化できる
  • 推薦システム: ユーザーの好みに合った内容を提案できる
  • 知識ベースとの連携: LLM と外部データをつなぐ架け橋となる

簡単な例

例えば「犬」と「猫」というテキストをエンベディングすると、それぞれ数百次元のベクトルに変換されます。
これらのベクトル同士の距離は近く(=意味的に類似)、一方で「犬」と「車」のエンベディングの距離は遠く(=意味的に異なる)なります。

実践での活用例

  • 意味検索: 質問の意味を理解して、キーワードが完全に一致しなくても関連するドキュメントを見つける
  • RAG: LLM にデータベースや文書の内容を効率的に参照させる際の基盤技術
  • 類似コンテンツの発見: 似た内容の記事や製品を見つける

エンベディングは現代の AI システムの重要な構成要素であり、LLM の能力を拡張するために広く活用されています。

さいごに

AI は日々進化しています。
こうした基礎的知識は応用が効くので、知っておいて損はないです。
今回紹介したトピックで気になった部分から深掘りしたり、そこから派生して AI への興味を持ってみてください!

AI との付き合い方はこれからの時代にますます重要になっていきます。
本記事がその第一歩になれば嬉しいです!

Discussion