2024.10.01
自社の社内情報を未来の“ゴミ”にしないための備え 「情報量が多すぎる」時代がもたらす課題とは?
リンクをコピー
記事をブックマーク
きしだなおき氏:今日は「ChatGPT」などの言語モデルがどのようにシステムで使えるかという話を、概要レベルでやりたいと思います。まだ細かい知見は溜まっていない……。たぶん世界中でまだ知見が溜まっていないので、今は知見を溜めていくところだという話をしたいと思っています。
まず自己紹介です。LINE Fukuokaで働いています。役職的にはDeveloper Relationsなので、別に仕事でLLMを触っているわけではないです。Twitter(現X)は@kis(というID)でやっていて、『プロになるJava』というとても良い本を書いているので(笑)。もしJavaを勉強したい人がいれば、よろしくお願いします。
本題です。もうここで聞いているみなさんはChatGPTがだいたいどんなものかは知っていると思うので、概要というか、まとめですね。
ChatGPTという言葉がちょっと難しくて、わりと紛らわしいんですよね。ChatGPT(という言葉)が意味するものが3つあります。まずはサービスとしてのChatGPTです。チャットを行うやつ。これがいわゆるChatGPTだと思います。ただシステムの開発というか、エンジニアの観点からはもう2つあります。
まずAPIとして。ブラウザで人間が言葉を入力して返ってくるのを待つやつではなくて、APIとして、プログラムからChatGPTを呼び出すというものがありますね。
あと言語モデルとして。つまり、サービスとしてのChatGPTとか、APIとしてのChatGPTのバックグラウンドで動いている、核となる技術です。その言語モデルとしてのChatGPTがあります。
よく言われていますが、ChatGPTはTransformerというものを基盤にして開発された言語モデル(です)。GPTのTはTransformerですね。Transformerというのは、文章のどこが大事かに注目するというのがいいところだったので、性能が向上したと言われています。
実際にはGPT-4とGPT-3.5-Turboという2つのモデルがあります。サービスとしては(GPT-3.5-Turboは)無償で利用が可能です。APIだとGPT-4とGPT3.5のどっちかを選ぶ。両方課金があるけれど、GPT3.5のほうが安いし速いですね。
ChatGPTで何が変わったか。ChatGPTが出現したことで、AIの話が現実的になってきていますよね。言語モデル、自然言語処理というもの(の話)が、2022年11月までは研究者のものだったと思うんですけれど。ごく一部の人しか知らなかったものが、一気にいろいろな人が知るようになって、現状は技術者がいろいろいじっている感じになっています。だから、研究段階から具体的な需要を満たす段階になってきた。僕もその1人ですが、いろいろいじくっていますね。
それから、日本でも独自モデルを作ろうという動きが活発になっています。前からもちろんあったわけですが、それがどんどん活発になっていて。例えばスーパーコンピューターの「富岳」で言語モデル開発ができるように、いろいろな基盤を整えていこうという話だったり。あと、日本語特化モデルをみんなたぶん作っていたと思うんですが、バタバタと発表をしてきていますね。
(スライドを示して)ここには書いていませんが、法律というか、そういった整備のお話も出てきています。
なので、リスクの議論というものも始まっています。ChatGPTが出てくるまでは、自然言語モデルのリスクとかの議論もあまりありませんでした。もちろんChatGPTだけではなく、Stable Diffusionみたいな画像生成のモデルも含めて、リスクの議論が活発になってきていますね。
リスクとして3つ挙げられます。著作権の問題と個人情報の問題、プライバシーの問題。あと有害情報の問題があります。どの問題もAIのモデルを作るという観点と、AIのモデルを使うという観点の両方ありますが、モデルを作るという観点では、日本の著作権ではやりやすくなっています。
ぶっちゃけて言うと、利用時の著作権の問題は、人間の手による創作と基本的には変わらないですね。著作物というのは思想や感情を創作的に表現したものです。だから、思想や感情が残っていれば著作権を侵害しているみたい(なこと)になっていて。
その観点は変わりませんが、AIによって何が変わったかというと、ものすごく手軽に作れるようになって、ものすごく量が多くなってきたというのがあります。このあたりが議論になっています。
あと、個人情報の場合は、「ChatGPTのサービスを利用する時に、個人情報を含めてしまうと問題ですよね」ということが今は主に議論されていると思います。
サービスとしてのChatGPTの場合は、「使った履歴も学習に使うかもしれないよ」と言っているので、意図せずそのモデルに含まれてしまって、誰かが使った時に出てきてしまうという問題が考えられています。
あと有害情報ですね。これは利用する時に出てくる問題ではありますが、作る時にも考えないといけない問題です。一番は、モデル作成時に偏りがあって、なんらかの偏りのある返答をしてしまう。例えば「この医者はどういう考えをしていますか?」と言った時に「彼はこういうふうに考えています」。つまり彼女ではなくて彼はと言ってしまう。「医者というのはだいたい男の人だ」みたいな偏りがあったり。
あとは思いがけない出力。ちょっと暴力的だったり、倫理的とかバイアスのかかった出力が出てくることがあるという問題が議論されていますね。このあたりの議論も今始まったばかりなので、これからどんどんフィックスしていくんだと思います。こういった議論があるということは知っておいたほうがいいと思います。
じゃあChatGPTの使い方。言語モデルとしてはもうChatGPTが代表的というか、かなりすごいので、まずChatGPTをちゃんと使うのは大事だと思っています。
使っていく場合に、今回はプライベートとか教育とかではなく、業務で(使う)ということを観点にする。(かつ)システム的に使うということを観点にしたいと思います。そうすると、サービスとして使うのとAPIとして使う(という2つ)がありますね。
サービスとして使うというか……。利用方法。基本的な考え方として、ChatGPTだけではなく、言語モデルは言語の計算機だと考えたほうがいいです。
よく「対話型AI」と言われますが、対話ではなくて、文章を突っ込んだらなんかいい感じの処理がされた文章が返ってくる言語の計算機だと考えたほうがいいです。だから、対話とかチャットにとらわれてはいけない。
その時の文章が、自然言語だけではないというのがけっこう肝ですね。文章の変換とか文章の解析、一般知識の解説、あとはテキスト生成。だいたいこんな感じの区分ができると思いますが、例えば文章の変換でも、プログラムの変換、JavaからPerlへとかそういった変換ができたりするというのを、具体的に見ましょう。
文章の変換。代表的なのが、箇条書きを書くとメールの文章を作ってくれるとか、文章を与えると要約してくれるとか。あとは文体の変換だったり、翻訳みたいなものがありますね。
今、「僕のブログを要約してください」ということをやっています。GPT-4に課金した場合、向こう側でWebアクセスをして、ちゃんとブログを見にいってくれるようになっていて、わりといい感じに要約をしてくれています。
やはり驚くほどちゃんとわかっているなと。けっこういっぱい無駄なことを書いているんですが、一番重要なことがちゃんと取り出されているように思います。
次に文章の解析ですね。与えた文章がどういうものかを解析する使い方があります。「この文章はだいたい意味が通っていますか?」という妥当性のチェックだったり、特性の判断、あとプログラムの解説というのが(できることとして)ありますね。
(スライドを示して)例えば、この続きに「このブログの著者の技術レベルを推定してください」と言うと、なんか(出力したものに)わりと褒められて(いて)うれしい感じになっているんですが(笑)。「どういう特性があるか」みたいなことをけっこうちゃんと判断してくれますね。
あとはプログラムの解説。長いコードを出してくれたので字が小さくなっていますが……。これはJavaで書いたWebサーバーのコードですね。TCP/IPの通信をやって、Webサーバーのコードを書いていますが、ちゃんと一発目で「簡易的なHTTPサーバーを起動します」と書いてくれていますね。一字一句を解説してくれるのではなくて、「プログラムの意図がなんであるか」ということをわりとちゃんと言ってくれています。
こういったものは「こういうコードはこういうプログラムだ」という、いろいろな解説記事があるので。というか逆に、「HTTPサーバーを作るとこんなコードになります」みたいな解説記事がいっぱいあるので、そういったものから類推していると思うんですけど。わりとちゃんとプログラムの意図をわかってくれるのがすごいところですね。
あとは一般知識の解説。賢い検索のように使うこともできます。Googleで検索するといっぱい候補が出て、そこを自分で見にいかないといけない。当たりが出るまでいろいろな記事を全部見ないといけないんだけど、ChatGPTは「なんのために知りたいのか」という、「知りたい」というコンテキストを与えると、すごく適切なものを返してくれますね。
一般的な業務知識とかもかなり詳しいので、ちゃんと教えてくれます。(スライドを示して)これはプラグインを使って図にしてもらっているんですが、ちゃんとこうやって図を描いてくれたりもします。なので、「知りたいことがあったらとりあえず聞く」みたいなことはすごくいいです。ただ嘘をつくこともあるので、ちゃんと検証は必要です。
あと文章の生成です。物語とか詩とかを書いてくれるんですが、プログラムをかなり書けますね。(スライドを示して)これはウィンドウを出すプログラム。ボタンを押したらHelloと出すプログラムをやってもらっているんですが、かなりちゃんとしたコードを出してくれます。
特にJavaのコードは世の中にかなりあるので、Javaに関してはちゃんとしたコードを出してくれる実感があります。よく知らなくてもわりとちゃんと書いてくれる。なので、みんな試すといいと思います。
じゃあどういうシチュエーションで使えるか、ユースケースがあるかという話です。「その時にどういうことを与えればいいか」みたいなことが、今は「プロンプトエンジニアリング」みたいな言葉で話題になっていますね。
ChatGPTとかLLMって、プロンプトによって違うし、LLMならではの癖みたいなものがけっこうあるんですね。というか、実際はLLMならではというよりも、人間にもそのように言ったほうがいいみたいなものが明確になってきている、明示されているという感じです。人に命令を与える時もこのようにすればいい。たぶん適切に命令を解釈してくれる。
1つ代表的なものがあって、Chain of Thought、CoTと呼ばれるものです。これは何かというと、考え方を提示すると正しい答えが出やすくなる(ものです)。
(スライドを示して)左側にブラブラブラblah-blah-blahと(いろいろ)書いて、(最後に)「答えは11です、ではこれは何でしょう?」と言ったら、間違った答えを言います。1回目の例として与えるものに、ちゃんと考え方を1つずつ書いておくと、同じように考えてくれて正しい答えが出るという、CoTというものがあります。
図は「Chain-of-Thought Prompting Elicits Reasoning in Large Language M「Chain-of-Thought Prompting Elicits Reasoning in Large Language Models」より
さらにZero-shot-CoTといって、「実は『Let's think step by step』と言うだけでいい」という話があって。「1つずつ考えて」と言えばちゃんと答えてくれるというものもあります。
例えば「ちゃんと専門家のように答えてください」みたいな言葉をつけるとちゃんと答えてくれるとか、いろいろなテクニックがあるんですが、そういったものはけっこういろいろなところに書かれているので、調べてみるといいと思います。
図は「Large Language Models are Zero-Shot Reasoners」より
(次回につづく)
関連タグ:
2024.10.29
5〜10万円の低単価案件の受注をやめたら労働生産性が劇的に向上 相見積もり案件には提案書を出さないことで見えた“意外な効果”
2024.10.24
パワポ資料の「手戻り」が多すぎる問題の解消法 資料作成のプロが語る、修正の無限ループから抜け出す4つのコツ
2024.10.28
スキル重視の採用を続けた結果、早期離職が増え社員が1人に… 下半期の退職者ゼロを達成した「関係の質」向上の取り組み
2024.10.22
気づかぬうちに評価を下げる「ダメな口癖」3選 デキる人はやっている、上司の指摘に対する上手な返し方
2024.10.24
リスクを取らない人が多い日本は、むしろ稼ぐチャンス? 日本のGDP4位転落の今、個人に必要なマインドとは
2024.10.23
「初任給40万円時代」が、比較的早いうちにやってくる? これから淘汰される会社・生き残る会社の分かれ目
2024.10.23
「どうしてもあなたから買いたい」と言われる営業になるには 『無敗営業』著者が教える、納得感を高める商談の進め方
2024.10.28
“力を抜くこと”がリーダーにとって重要な理由 「人間の達人」タモリさんから学んだ自然体の大切さ
2024.10.29
「テスラの何がすごいのか」がわからない学生たち 起業率2年連続日本一の大学で「Appleのフレームワーク」を教えるわけ
2024.10.30
職場にいる「困った部下」への対処法 上司・部下間で生まれる“常識のズレ”を解消するには