ChatGPTをはじめとする生成AIは、私たちがふだん使っている話し言葉を使って、コンピュータに指示出しできる画期的な仕組みです。「これって何?」「あれって何?」と聞けば答えてくれますし、「これやって」「あれやって」と指示すれば、さまざまな作業をしてくれます。
生成AIの最大の特徴は、人間に比べて、圧倒的に作業が速いこと。そのため人間に代わるものとして、もてはやされています。
しかし、何でもできる万能な仕組みではありません。使い方を間違えると、期待する効果が出ないこともあります。
今回は2回にわたって、「生成AIとの賢い付き合い方」についてお話します。
生成AIってなに?なぜ注目されている?
生成AI(Generative AI)とは、さまざまなコンテンツを生成できるAI(人工知能)のことです。そのほとんどは、私たちがふだん使っている日本語などの話し言葉を解釈でき、そうした言葉で指示を出すことで、テキストや画像、音楽などを生成できます。
たとえばOpenAI社の「ChatGPT」は、ブラウザから使える会話形式の生成AIです。ブラウザの入力画面に質問や指示を入力すると、その回答が戻ってきます。
言ってみれば、ChatGPTは、コンピュータと対話できるチャットサービスに過ぎません。
しかしとても賢く、「以下の文章を要約して」「英訳して」「文中からメールアドレスだけを抜き出して」「こういうプログラムを作って」など、業務で使いそうな質問にも適切な回答が得られることから、近年注目を集めています。
つまり、「生成AIって、もしかして人間の代わりに使えるのでは!?」というのが、いま、チヤホヤされている理由です。
「仕事の補助」を期待される生成AI
生成AIはさまざまな場面で使われますが、注目を集めている分野のひとつが仕事の補助です。
いま挙げた、「以下の文章を要約して」「英訳して」「文中からメールアドレスだけを抜き出して」「こういうプログラムを作って」という指示を生成AIに投げて、生成AIに作業させる使い方です。こうした使い方は、作業効率の向上や時短につながります。
たとえば、あなたが備品発注業務の担当者だとしましょう。発注に当たっては、備品を表にまとめて、御者に発注書として提出しなければならないとします。
このとき、次のような作業依頼を受けたとしましょう。
おつかれさまです。
備品の発注お願いします。
ボールペンの黒を20本、赤を30本。A4用紙を5パック
それから、単3電池を10本。
のりを5本。封筒が50枚です。
よろしくお願いします。
あなたは、このメールをもとに、Excelなどで手入力すると思いますが、こうした手入力作業を軽減してくれるのが、生成AIです。次のように作業させれば、あっという間に表に変換してくれます。
ここでは、次の2点の作業ポイントがあるとします。
・発注の際、ボールペンの黒を「PEN0001BK」、ボールペンの赤を「PEN001RED」のように、実際の商品名に変換させています
・単3電池は4本で1パックとして扱い、10本の発注は、3パックのようにパック単位で換算させています(ただし後述するように、この計算は、ときどき間違うことがあるので、注意します)。
▲生成AIの例
作業効率の向上や時短はいつの時代も業務改善の基本的なテーマです。たとえば、VBAのマクロやRPA(Robotic Process Automation)による自動化は、業務改善のためのこれまでの方法のひとつです。しかしこれらは、自動化のためのコードを書かなければなりません。
コードを書くということは、それだけの労力が必要ですし、誰でもできるわけではありません。対して生成AIなら、「こうして」と指示を出すだけでやってくれます。これなら誰でもできますし、労力もかかりません。こうしたソリューションが流行らないわけがありません。
あいまいなデータもよしなに処理する生成AI
いま挙げた、文章中から商品名と数量の組み合わせを抽出する例からわかるように、生成AIは文章を適切に解釈できるのも大きな特徴です。
こうした文章の解釈は、従来の自動化の方法、すなわちVBAのマクロやRPAなどでは実現が困難です。実際、これらで自動化を試みた人のなかには、「データを囲むダブルクォーテーションが、ちょっと違う」「サーバーとサーバなど音引きの表記の揺れがあって置換に失敗する」など、わずかな違いでうまく動かない経験をしたこともあるでしょう。しかし生成AIならあいまいなデータ、定型から少し外れたデータでもよしなに処理してくれます。
2つの注意点。平気で嘘をつく生成AI?
さて、便利な生成AIですが、使う上で注意したい点が2つあります。
注意点その1:確実性が担保されない
注意点のひとつめは回答の確実性です。生成AIは回答の確実性が担保されておらず、昨日できていたことと同じことをもう一度、今日やろうとしてもうまくいかないことがあります。
たとえば、これまで挙げてきた氏名とメールアドレスを抽出する例は、実際に筆者がChatGPTで試して、うまくいった例を画面キャプチャして掲載しています。しかしそれはあくまでもその時点での話です。いまではうまくいかなかったり、別の回答が返されたりするのはよくある話です。
■生成AIのそもそもの仕組み、確率論による回答
回答の確実性が担保されないのは生成AIの仕組みに理由があります。
生成AIはそもそも何をしているのかと言うと、基本的にはLLM(Large Language Models、大規模言語モデル)という仕組みを使っています
LLMとは、端的に言うと単語の並びを入力すると、それに続くもっともらしい単語の並びを出力する機械です。
「もっともらしさ」を計算する際、その基準となるのが大量に事前学習したデータです。LLMは、インターネットをはじめとする大量のテキストを事前に学習して作られます
。この学習工程において、どういう単語の並びのときに、次にどういう単語が来る確率が高いのかを計算する式を調整する値が記憶されます。
私たちが生成AIに対して質問や指示のテキストを投げると、計算式および調整値に基づいてもっともらしい単語の並びが回答として戻ってくる。生成AIは、ただそれだけの機械です。
回答の確実性が担保されない理由はここにあります。
回答は確率に基づくものであるため、文章が少し違うと、内容が類似していても回答が大きく変わることがあります(経験上、印象が強い特定の単語が入っていると回答がそれに引っ張られる感じがします)。
また、いつも同じ回答だと自然な会話にならないので、あえてランダムな要素も加えられています。そのため、まったく同じ文章でもまったく同じ回答が戻ってくるとは限りません。実際、わざと同じ質問を繰り返すと、その様子がわかります
。こんな単純な仕組みで「『てにをは』が崩れない自然な言葉として返されるのか」「なぜ賢いのか」など、疑問が沸くかと思います。なんだか信じられませんし、嘘っぽいです。筆者もそう思います。でも実際、この仕組みで動いているのは事実です。
この議論は「知とは何か」という哲学的な疑問に行き着きそうですが、私たち人間は幼少の頃から回りの人と会話したり、さまざまな経験を重ねて事前の今の知識を得ているわけで、そう考えるとあながち知識の習得として間違っていないかも知れません。
LLM内部の調整値は、パラメータと呼ばれます。LLM界隈では、ときどき「パラメータ数」という言葉が出てきますが、それは、調整値の総数です(少なくとも億単位の、とても大きな総数で、単位として「B(ビリオン。10億のこと)」が使われる。たとえば「7B」であれば「70億」の意味)。パラメータ数が多いほど、精度が高くなります。反面、計算量が増えるので、速度は遅くなります。
またLLMでは、単語のことを「トークン」と言い、一度に扱えるトークン数のことを「最大トークン数」と言います。英語では1単語が1トークンなのですが、日本語の場合、概ね「1文字が1トークン(もしくはそれ以上)」です。最大トークン数が多いほど、長いデータをまとめて処理できます。
注意点その2:回答を信じてはいけない
そして注意点の2つめ。それは回答が正しいとは限らないという点です。
いま説明したように、生成AIは確率論に基づいて返答する機械なので、回答が正しいという保証がまったくありません。知らないことは平気で嘘をつきます
。ですから、生成AIの回答を信じてはいけません。たとえばChatGPTに次のように聞いてみました。
【質問】
すると、次の回答が戻ってきました。
【回答】
「つちのこ」という言葉は、日本語で「土の子」という意味で、主に甲虫類(ムシ)の幼虫を指すことがあります。一般的には、クワガタムシやカブトムシなどが知られています。
これらの幼虫にはA型とB型という分類がありますが、これは幼虫の角の形状に関連しています。
A型の幼虫は、一般的に角の先端が鋭く、細く尖っています。一方、B型の幼虫は、角が太く、丸みを帯びています。この違いは、主に角の形状で観察されます。
具体的には、幼虫の飼育箱や自然界で幼虫を観察する際に、角の形状を確認することでA型かB型かを判断することができます。また、幼虫が成虫になった際にもその形質は引き継がれるため、成虫になったクワガタムシやカブトムシの角の形状を見ることで、その幼虫がA型かB型かを推測することもできます。「つちのこ」はクワガタやカブトムシだと言われてしまいました。
ちなみにこの例は「つちのこ」とひらがなで入力したのが悪くて、カタカナで入力すると下記のように概ね正しい回答が戻ってきます。
【質問】
【回答】
ツチノコは、日本の伝説や民間信仰に登場する伝説上の生物であり、実際に存在するかどうかは科学的には確認されていません。しかし、伝承によれば、ツチノコにはA型とB型の2つの異なる種類が存在するとされています。
A型のツチノコは、体が太く、頭部が大きく、尾が短いと言われています。一方、B型のツチノコは、体が細長く、頭部が小さく、尾が長いとされています。また、B型のツチノコは、地中を高速で移動する能力があるとも言われています。
これらの違いは、伝承や報告に基づいたものであり、科学的には検証されていません。ツチノコ自体が架空の生物である可能性が高いため、A型とB型の区別が存在するかどうかも、確証を持って言及することは難しいでしょう。
もしツチノコを見たいと思っているのであれば、それらの報告が多い地域や、伝説に登場する場所に足を運んでみると良いかもしれませんが、科学的な証拠は期待できないことを理解しておく必要があります。
ここで注目したいのは、ChatGPTの回答が正しくないというよりも、「それっぽい回答を返す」という点です。
いまの「つちのこ」の例では、「幼虫」と「成虫」の違いなど、まことしやかに記述されており、ツチノコとは何かを知らなければ信じてしまいそうです。自分が知らないことを聞いたときには、こうしたことが起こりうることを知っておくことはとても重要です。
生成AIは、計算が苦手だといわれます。最近では、対策がとられてきているので、以前ほどまったく計算できないわけではありませんが、計算はとくに信用しないのが吉です。繰り返しとなりますが、確率論で返しているのに過ぎないからです。
たとえば、「1234×4567は?」のように聞くと、これは文法的にかけ算として認識されるらしく、正しい計算値が戻ってきます。対して、「1234に4567をかけた値を教えて」と聞くと、そうした計算ロジックが働かないのか、少し間違った値が戻ってきます。
・・・
いかがでしたか。話題の生成AIにできること、そして注意すべき生成AIの性質について解説しました。
次回は生成AIの性質を踏まえた上で、役立てるためのポイントと、エンジニアの方におすすめの具体的な活用アイデアを3つご紹介します。