ChatGPTのおさらい
はじめに
前職では B2B のインサイドセールスとマーケティング職を経て、コロナ禍頃にフリーランスになりました。2022年11月に ChatGPT が登場した際、皆さんと同じように衝撃を受け、その年末年始、各所に営業をかけ、今でいう RAG を使った組織専用ボットを提案していました。世間のブームもあり PoC には進んだものの、実際に使ってもらう中で「あったらいいよね」の域を出られず、そこからしばらく四苦八苦する日々が続きます。SaaSが溢れる昨今、必須ツールとなるには業務フローに深く入り込んだプロダクトが必要だと思い、領域を絞ることにし、現在は AI を活用した法律事務所・弁護士向けサービス「llamadrive」を提供しています。
皆さん、いかがですか?生成AIを毎日使えていますか?「意外と使い方がまだよく分からない…」という方がほとんどではないでしょうか。最近はブームが少し落ち着いた印象を受けますが、個人的にはこれでもまだ過小評価されているなと思います。今の生成AIはまだ癖があります。使う人を選びます。そこで、エンジニアではない私が、これまでChatGPTを通して学んだことを、同じくエンジニアではない方々に向けて共有しようと思い、このブログを始めました。
ChatGPT のおさらい
「名は体を表す」という言葉の通り、世に広まったサービスやプロダクトの名前は、その作り手が入念に考えて命名しています。ChatGPTという名前も同様です。これを真正面から理解するには、”Chat”と”GPT”に分解して考えてみると理解しやすいです。さらに、ChatGPTというサービスを理解していくと、いわゆる「生成AI」と呼ばれているものの正体もぼんやりと見えてきます。「AIを理解しよう」と思うと難解で気が重くなりがちですが、一つのサービスを理解しようという気軽に考えた方が良いと思います。
"Generative"
まずは”GPT”から始めてみましょう。”GPT”とはGenerative Pre-Trained Transformerの略です。”Generative”とは形容詞ですが、この場合は”生成する”と捉えて良いと思います。2010年前半頃のAIは「何かを識別する」ことを主なタスクとしていました(例えば、画像認識技術ではある画像が犬なのか猫なのかを識別する、など)。それに対して、データ(文字や画像など)を生み出すことができるAIであるから、この”Generative”(生成する)が頭についています。
"Pre-Trained"
次に、“Pre-Trained”とはこの言語モデルが”事前に学習済み”である、ということを表しています。何を学習しているかというと「与えられた文」に対して、「その次に来る単語」を学習しています。さらに、その「与えられた文」から自分で教師問題を作りその回答とセットで学習していきます。例えば、「Lemon が 大ヒットした日本人アーティストは 米津玄師 である」という文が与えられたとすると
Lemon が 大ヒットした日本人アーティストは [米津]
Lemon が 大ヒットした日本人アーティストは 米津 [玄師]
と言うふうに与えられた文から問題(太字)を作り、その問題に対して[◯◯]内の答えをセットで学習していきます。これを反復練習していくと、いろんな文に対して精度高く次の単語を予測することができるようになります。「次の単語が予測する」精度を上げていくとその過程で文法、文脈、背景知識等も学習することができます。
これは我々に置き換えて考えてみるとわかりやすいかもしれません。例えば、あなたが新卒で法律事務所に入ったとします。最初の1ヶ月は業務に対する知識もなく、右も左も分からない(モデルができていない状態)ので、次にどんな仕事をするべきか全く予測がつきません。しかし1-2年とだんだん慣れてくると「こういう時は次はこうだな」と仕事の勘のようなものを掴んでくる(モデルができている状態)と思います。そして、慣れてきた頃に自身が全く予期していないことがが起きると非常に驚きます。同時に、なぜそんなことが起きたのだろう、とその事象を遡って物事の因果関係や背景を先輩に聞いたり、調べたりして、次に似たようなことが起きた時にうまくこなせるように準備をします。言語モデルにおける学習とはこれとよく似た構造です。「次の単語が予測する」精度を磨くことで、文脈であったり、背景知識を学習していきます。
"Transformer"
最後の”Transformer”は、そのまま変換器という理解をしてもそれほど齟齬は出ないと思いますが、2017年にGoogleが「Attention Is All You Need」という論文ではじめて紹介した深層学習の手法のことを指しています。この論文がきっかけて自然言語処理の性能が飛躍的に向上し始め、現在までの言語モデルの基盤となっています。この論文を理解するのは非常に難しいですが、例えるならば、私たちも普段仕事で上司部下と会議する時と、実家に戻って両親と何気ない会話をする時では、使っている脳の場所が違います(なんとなく同感できる程度で良いです)。それは、あなたが状況や相手の話す内容に応じて、脳の使う回路を無意識に変えているということです。それと同じように、この”Transformer”も、入ってくる情報に応じてどういう回路を使うのか選択する技術です。
余談ですが”Pre-Trained”と”Transformer”を組み合わせたときに発見されたのが「スケール則」です。これは学習するデータ(文章)を増やし長文で訓練すればするほど、AIの精度が右肩に上がり続けるという法則です。GPT-3では4000億単語で事前学習されておりGPT-4では未公開ですが数兆単語の規模と言われています。2020年頃からこの「スケール則」が発見されてからは、ChatGPTの他にもGoogleのGemini、MetaのLlama-3など各社が大規模な開発合戦を繰り広げています。
"Chat"
ここまで”Generative” “Pre-Trained” “Transformer”をそれぞれ分解して説明しました。最後に”Chat”に戻ります。これは、和訳の通り「雑談する、おしゃべりする」機能を足したことを意味しています。ここは少し寄り道をしながら説明します。
従来のAIと生成AI(ChatGPT含むLarge Language Modelなど)の大きな違いは「汎用性の高さ」です。従来の手法では、翻訳AIを作るために翻訳の学習セットを、要約AIを作るために要約の学習セットを、それぞれ大量に用意して学習させていました。一方、LLMはこれらのタスク(翻訳や要約など)を一つのモデルでこなすことを目的としています。先述のように、大量の文章を事前に学習させておき、目的に応じて事後学習で調整するという考え方です。
これを人間に例えると、以前は野球選手を育てるために野球ばかり練習させ、サッカー選手を育てるためにサッカーばかり練習させていました。しかし今は、野球選手やサッカー選手を育てるために、まずはさまざまな球技を練習させて運動神経を磨き、その後に野球やサッカーの専門的な練習をさせる(結果、より優れた選手になった)、というイメージです。
前述のスケール則に従い、大量の文章データを学習したLLM(GPT-3、GPT-4など)に、会話特有の砕けた言い回しなど、ユーザーとチャットする際に適切な表現を事後学習させたものがChatGPTです。これはOpenAI社がGPTを広めるために取った、いわばマーケティング戦略の一環です。実際、GPT-3は2020年時点で既に使用可能でしたが、その主なユーザーはAPIを通してGPTを使用できるエンジニアに限られていました。ところが2022年11月30日にChatGPTを公開すると、ごく短期間で1億人のユーザーを獲得し、ニュースで取り上げられない日がないほど世界中で話題となったのです。
生成AIは第4次ブーム
2022年11月30日のChatGPT登場以降、AI関連のニュースが毎月のように続いています。
2022年11月 OpenAIがChatGPTを公開
2023年2月 自民党が「AIの進化と実装に関するプロジェクトチーム」を設立
2023年3月 MetaがLlamaを発表
2023年4月 岸田総理がOpenAIのサム・アルトマンCEOと面会
2023年5月 AI戦略会議での議論が開始
2023年7月 MetaがLlama 2を発表
2023年9月 OpenAIがGPT-4Vを公開
2023年10月 G7首脳が広島AIプロセスに関する声明を発表
2023年11月 イギリスでAI安全性サミットが開催
2023年12月 GoogleがGeminiを発表
2023年12月 MicrosoftがCo-pilotを正式公開
2024年4月 OpenAIがアジア初の拠点として日本法人を設立
この急速な発展は「第4次AIブーム」と呼ばれています。ちなみに一つ前の「第3次AIブーム」はディープラーニングという技術を中心に2010年代に発展しました。第3次ブームではブログでも取り上げたように、AIが物事の特徴を自動定義することを主なタスクとしていました。生成AIはこのディープラーニングの一部の技術だと位置付けられており、第3次AIブームの技術を基盤としつつ、さらに発展させた形で登場したのです。
"Pre-Trained"の補足(ChatGPTが学習している内容)
“Pre-Trained”の部分について、OpenAIのブログにも記載があるので、補足として目を通しておきましょう。ChatGPTを含むOpenAIの大規模言語モデルが”Pre-Trained”される時に使用された学習データは、主に3つです:
(1)インターネット上で公開されている情報
(2)第三者からライセンス取得した情報
(3)ユーザーまたは人間のトレーナーが提供する情報
これらの大量のテキスト情報を「読み」、ある単語と他の単語との関係性や、どのような文脈でその単語が使われているのか、その傾向などを学習していきます。そうすることで、ユーザーのリクエストに対して最も可能性の高い次の単語と、その後の各単語…を予測することができるのです。これは検索エンジン、スマートフォン、電子メールの自動補完機能に似ています。
例えば、学習プロセスの中で次のような文を完成させようとします。
「instead of turning left, she turned __.」
学習前の状態では__に入る言葉を全くランダムに応答してしまいますが、(1)〜(3)のテキストを読み学習することで、__には“right”, “around”, “back”など自然な単語を入れることができるようになります。
機械学習モデルは、たくさんの数字の並びと、その数字を理解して動かすための指示書のようなもので出来ています。この数字の並びは「重み」や「パラメータ」と呼ばれています。モデルは、学んだ情報をそのまま覚えたり保存しているわけではありません。代わりに、モデルが学習すると、その中の数字が少しずつ変わっていきます。この数字の変化が、モデルが学んだことを表しています。
法律事務所の新人弁護士、田中さんの成長を例に考えてみましょう。
田中弁護士の頭(モデル): 田中さんの頭の中には、法律知識を理解し使う能力(数字の並び)と、その知識を実際の仕事に活かす方法(コード)があります。
田中弁護士の学習: 田中弁護士は毎日たくさんの判例や法律文書を読みます。最初は意味がよくわかりませんが、少しずつ理解できるようになります。
知識の蓄積方法: 田中弁護士は読んだ内容を丸暗記しているわけではありません。代わりに、「こういう場合はこう判断するんだな」という感覚が身についていきます。 これは、田中弁護士の頭の中で何かが少しずつ変化している(モデルの数字が少し変わる)ことを表しています。
知識の活用: 半年後、クライアントから質問を受けた田中弁護士は、特定の判例を一字一句思い出すわけではありませんが、これまでの経験から「たぶんこうなるはずだ」と答えられるようになっています。 これは、変化した頭の中(調整された数字)を使って新しい状況に対応していることを表しています。
継続的な成長: 田中弁護士は日々新しいことを学び、より複雑な案件にも対応できるようになっていきます。
言語モデルも、田中弁護士と同じように動作します。大量の文章を「読む」ことで言葉の使い方を学び(数字が変化し)、その学んだ感覚を使って新しい質問に答えるのです。田中弁護士が判例を丸暗記せずに法律の「感覚」を身につけるように、モデルも文章を丸暗記せずに言葉の「感覚」を数字の形で身につけているのです。
このようにGPTは、GPT-3、3.5、4、4V、4oと進化を続けてきました。AIに限らず、日々バージョンアップし、ユーザーにとってより良くなっていくことは、ソフトウェアサービスの大きな特徴であり、私たちが享受している大きな恩恵です。OpenAIも私たちユーザーの使用履歴を収集し、それをバージョンアップの材料としています。ChatGPTはこちらのブログや利用規約で、ユーザーがオプトアウトしない限り、ユーザーとの対話履歴を学習に使う可能性があることを明記しています。ただし、ChatGPT Team、ChatGPT Enterprise、APIプラットフォームなどのビジネス向けサービスのコンテンツは、モデルのトレーニングには使用されません。また、個人利用の場合でも、有料プランに切り替えることで学習をオプトアウトすることが可能です。
GPT-3の“Pre-Trained”に使われたデータでは「インターネット上で公開されている情報」が大半を占めていました。このトレーニング情報には、著名人に関する情報など、偶発的に個人情報が含まれることがあります。モデルにとって、これらは名前や住所が文脈の中でどう使われるかを理解する材料となります。同時に、有名人や公人についても学習してしまう可能性があります。(ただし、OpenAIは個人情報を積極的に収集しません。また、個人情報を使って人々のプロフィールを作成したり、連絡を取ったり、広告を出したり、何かを販売しようとしたり、情報自体を売ったりすることもありません。さらに、個人情報の処理に対して異議を申し立てることも可能です。)
結果として、イーロン・マスクのような著名人に関する質問には、正確に回答できるようになります。
一方で、筆者のような一般人の場合、ウェブ上の公開情報が限られているため、同様の質問をすると以下のような回答になります。念のため確認しましたが、明治時代の武士や外交官に同姓同名の人物はいませんでした。
ChatGPTを含む生成AI系のツールには必ず「…の回答は必ずしも正確ではありません。重要な情報は必ず確認してください」という注意書きがありますが、これはまさにその例です。
今回のブログはここまでとさせていただきます。長文になってしまいましたが、名前から入ると少し理解しやすくなったと感じていただけていたら嬉しいです。結びとして、ChatGPTの回答が「必ずしも正確ではない」という点に触れましたが、この課題については次回のブログで私なりの見解を共有したいと思います。