執筆者:弁護士 原智輝
こんにちは!弁護士の原智輝です。
レポートなどの比較的長文をChat GPTに生成させたいと思うとき、「うまくいかないな」と思うことはありませんか?文書が繰り返しになったり冗長的になったり、1000字と指定したのに、1000字になっていないなど日ごろChat GPTを使用しているユーザーなら共感してもらえるのではないかと思います。
このような「うまくいなかないな」という理由について本コラムでは少し踏み込んで説明を試みたいと思います。
Attention機構
GPTのような大規模言語モデル(LLM)が急成長した背景の一つに2017年に発表された「Attention is All you Need」によるTransformerモデルがあるということを聞いたことがある方もいるのではないでしょうか?この論文は、これまでのRNN(Recurrent Neural Network)やCNN(Convolutional Neural Network)といったようなモデルを使わずに、Attention機構のみを使ってスリムな処理を行えば、並列処理が可能となることを内容としている論文になります。雑な例えですが、本を読む際に常識となる文頭から少しずつ文書を解読するのではなく、文書全体の単語を一気にスキャンして文書を読んでしまえといった大転換を提示した論文になります。
◆プロンプトはどう処理されている?
実は皆さんが入力するプロンプトは、トークンといわれる単位に分割され(トークナイズ)、文字情報から数的な情報(ベクトル)に変換されていきます(embedding)。例えばですが、「私は弁護士です」という文があった場合、「私」「は」「弁護士」「です」のように分解され、それぞれが位置情報を含むベクトル情報に変換されます。言葉がこのようにベクトルに変換されるというのは何とも不思議ですね。ですがこの変換作業はGPTが言葉を理解するために数的な処理を施す非常に重要な処理になり、いわゆるディープラーニングのプロセスの一部となっています。
【ベクトル情報のイメージ】
トークン埋め込み + 位置エンコーディング:
「私は」: [0.1560, 1.1560, 0.0581, 1.8662]
「弁護士」: [1.4426, 1.2484, 0.0306, 1.9699]
「です」: [1.7417, -0.2038, 0.2018, 1.1832]
◆マルチヘッドアテンション機構って?
さて、プロンプトが数値に変換されたところで、本コラムの本題のマルチヘッドアテンション(MHA)の話に移ります。アテンション機構は、入力データ全体の中で「どの情報が重要か」を動的に判断し、適切に重み付けする仕組みです。特にトランスフォーマーにおいては、Query(注目したい要素)、Key(比較対象)、Value(実際の情報)の3つを使い、QueryとKeyの内積でスコアを計算します。このスコアをソフトマックスで正規化して確率化し、Valueに適用することで、文脈に応じて重要な情報を強調できます(重み付け)。これにより、長文中の特定部分や、入力データ同士の関係性を的確に理解します。アテンション機構は、情報の動的な選択を可能にし、GPTが文脈を維持しつつ効率的な生成を行う鍵となっています。
何やら難しい説明ですね。別の言い方をすると、数字に直されたプロンプト情報は、まるでゲームを行うかのように、自分(単語)にとって重要な情報はどれか?という判断を一斉に行います。実際はベクトル処理になりますが、例えば、「私」という言葉は、「は」よりも「弁護士」といった言葉の方により注目したくなります。このように分割した単語(トークン)レベルで各トークンの関係を一斉に処理をするわけですが、その際に自分が欲しい情報(Q)と自分の特徴(K)をアピールし合うわけです。「Queryは『自分に関連する単語を探してます!』、Keyは『私はこの特徴を持っています!」といった感じでしょうか。
このQとKのマッチング度合いを一気に計算し、このアテンションの出力はFNN(Feedforward Neural Network)に送られ、重要な情報を強調し、次の層の処理に適した形に整えられます。
FNNの働きの説明
FNN(Feedforward Neural Network)は、アテンション機構の出力をさらに変換し、次の処理に適した形に整える役割を担います。具体的には、線形変換で入力を次元変換し、活性化関数(例:ReLU)を通じて非線形性を加えることで、単純な線形関係では捉えきれない複雑な特徴を学習します。FNNは、アテンションによって選ばれた重要情報を強調し、不必要な情報を除外しながら、データを整理・圧縮・再構築する機能を持っています。この変換により、GPTは文脈の一貫性を保ちながら、予測精度を高めることができます。
また、FNNが整えた情報はソフトマックス関数を通じて確率分布に変換されます。ソフトマックスは、各トークンのスコアを正規化し、次にどのトークンを生成すべきかを確率的に判断する重要な役割を持っています。この確率分布を基に、次に出力する単語が決定されるため、GPTの生成結果に直接影響を与えます。
要約すると、プロンプト情報は数値(ベクトル)に変換され、各トークン間の関係が並列処理で計算されます。その結果を確率的に評価し、次に生成すべきトークンを予測する仕組みがGPTの核となっています。特に、FNNとソフトマックスは重要な情報を強調し、不必要な情報を削ぎ落とす役割を果たしており、GPTが自然で簡潔な回答を生成する基盤を作り上げています。
ここで冒頭の1000字レポートの話に戻りますが、このようなニューラルネットワークの処理は、計算結果により重要となった部分を強調していく過程を何度も経ます。その結果、GPTは簡潔な出力を好む傾向にあり、いわゆる「字数稼ぎ」を行うことを苦手としているのです。
また、トークンの値と文字数は必ずしも一致するわけではありません。1000字で出力してといわれても、「それって何トークン?」とGPTは思うわけです。
最後に、Tipsになります。このようなGPTの特徴から、Chat GPTは概ね200~300字程度の出力を得意としています。もし1000字の出力を望む場合は、パラグラフごとにコンテンツを区切ってみましょう。例えばこのコラムは概ね2000字程度ですが、300字のパラグラフを6つ用意するイメージで、
・なぜGPTは1000字レポートが苦手なのかという導入に関するコンテンツ
・GPTとトランスフォーマーモデルに関する冒頭の説明
・トークナイズからアテンション機構に入るまでのembedding処理の説明
・アテンション機構の説明
・FNNやソフトマックスの説明
・締めの文書
といった形で出力を促していくと出力の質を向上させることができます。
以上が「1000字レポート問題」に関するTips でした。GPTが簡潔表現を好むのは、アテンション機構が「重要な情報」を選び、FNNがそれを効率的に圧縮する仕組みに基づいています。この2つの処理により、GPTは冗長な情報を抑え、文脈に合った要点だけを抽出するよう設計されています。また、トークン数を抑えることで生成効率を高めるという設計思想も関与しています。その結果、簡潔で的確な回答を生成する傾向が強まるのです。
いかがでしたでしょうか?生成AIの活用は、業務の効率化や新たなビジネスチャンスの発掘など、多くの可能性を秘めています。本記事でご紹介した内容が、貴社における生成AIの導入や活用のきっかけとなれば幸いです。
さらに具体的な導入方法を学びたい、あるいは自社の業務での活用を検討されている企業様向けに、当事務所では生成AIの活用をテーマにしたハンズオン型ワークショップを実施しております。このワークショップでは、生成AIの基礎から実際のプロンプト作成、業務への応用方法までを具体的に体験いただけます。
参加をご希望の方や詳細を知りたい方は、当事務所のウェブサイトまたはお問い合わせフォームよりお気軽にご連絡ください。生成AIを活用した次世代の業務改善を、ぜひご一緒に実現しましょう。
- 東京、福岡、上海、香港、シンガポール、ホーチミン、ハノイ、ダナンの世界8拠点から、各分野の専門の弁護士や弁理士が、企業法務や投資に役立つ情報をお届けしています。
- 本原稿は、過去に執筆した時点での法律や判例に基づいておりますので、その後法令や判例が変更されたものがあります。記事内容の現時点での法的正確性は保証されておりませんのでご注意ください。