コード・インタープリターはChatGPTの有料版「ChatGPT Plus」で、GPT-4の付加機能として呼び出せる。
画像:筆者によるスクリーンショット
ChatGPTの有料版である「ChatGPT Plus」(月額20ドル)には、7月初めから「Code Interpreter(コード・インタープリター)」という機能が追加された。
この機能が画期的だとして、一時ネットでは大いに話題になった。これまでは面倒だった「データ集計」などを、チャットの命令だけで実行できるからだ。
データ集計は、Excelなどの表計算ソフトやPythonなどのデータ処理に強いプログラミング言語で処理することが多い。
しかしコード・インタープリターでは、それらを使う必要はほとんどなく、データさえ用意できればいい。さまざまな手間がほぼゼロになり、ChatGPT任せにできる。
そうはいってもピンと来ない人も多いはず。そこで実際に使用例を挙げて解説してみよう。
ネトフリの視聴ランキングを解析してみる
ネットフリックスが毎週更新している「Top10」。視聴時間に応じ、各国でトップ10を集計。そのデータは2021年夏以降の分が無償公開されている。
出典:ネットフリックス
今回使うのは、ネットフリックスが公開している「全世界での視聴ランキングトップ10データ」だ。
以前に別の記事で紹介したが、ネットフリックスはサービスを提供しているすべての国で視聴時間がトップ10に入った作品を、「映画」「テレビ」「英語作品」「非英語作品」に分けた形で集計し、ウェブ上で毎週公開している。
そこでは、2021年6月28日から現在まで、すべてのランキングデータが手に入る。つまり、「あの作品が毎週何時間視聴されていて、どの国のランキングで何位に入り、それを何週間続けたのか」といったことを、自分で集計できる。
では今回は、
- 日本ではテレビシリーズ(映画以外)のうち、どんなものが人気か。
- 特に日本で作られたネットフリックスオリジナルの実写作品は、どの国で人気か。2022年以降の特定作品で集計。
をやってみよう。
本来、これをExcelで処理するとそこそこ面倒だ。
ファイルは基本英語なので、項目名を把握する必要がある。さらに、含まれるデータのどの項目で集計するのが適切かを考え、データを求める形に並べ直し、再集計する。
工程を並べるだけでも10くらいはありそうだ。しかもこれは、集計作業としては非常に初歩的なもの。それでもそのくらい「手を動かさなくてはいけない」ことになる。
数行の文章から複雑な分析を自動生成
ではこれを、ChatGPTのコード・インタープリターで処理してみる。使うのはネットフリックスが公開している生データのみだ。
ChatGPTに質問する場合、通常は「ChatGPTが学習済みの内容に対して質問する」形になる。だから知らないこと、学習範囲に入っていないことだと途端に間違いが増える。
そもそもChatGPTは「文章をつなぐ」ことは得意でも計算はとても苦手なので、集計などをお願いするのは結構怖い。
だが、コード・インタープリターだと話が変わってくる。 ここがポイントだ。
コード・インタープリターで、ChatGPTは「内部で目的に合わせたPythonのプログラムを作って実行」する。命令・質問からどういう処理が必要かを見つけ出し、必要なプログラムを自動的に作って集計し、答えにする。
コード・インタープリターが実際に処理している内容。その場でPythonなどを道具として使い、データを解析する。
画像:筆者によるスクリーンショット
ChatGPTは日本語などの自然言語以上に、プログラム言語を書くのが得意だ。その特性を最大限に活用する。
作業の様子を流れで追ってみよう。
こちらが入力したのはたった3つのシンプルな命令だ。
入力した命令文。
画像:筆者によるスクリーンショット
コード・インタープリターはそこから読み込んだファイルを解析し、「ファイル内の項目がなにか」を理解した上で、どういう解析をするかもちゃんと日本語で示してくれる。
さすがに番組タイトルまでは翻訳してくれない。これは、ChatGPTには2021年9月までのデータしか学習しておらず、最新の番組名を知らないからだ。
AIはまずアップロードしたファイルの内容を把握している。
画像:筆者によるスクリーンショット
続いて、指示に従って分析している。
画像:筆者によるスクリーンショット
一方、入力したデータに「ない」情報を使っての分析は、当然ながら不可能だ。今回の場合、「どの番組が日本で人気か」はわかっても、「どの番組が日本で作られたものか」はわからない。
そこで、2022年後半からの1年で公開されたもののうち、人気があって動向が気になる作品を5つピックアップした。データは英語タイトルなので、タイトル名は英語で与えている。
対象としたのは
- 今際の国のアリス
- First Love 初恋
- 舞妓さんちのまかないさん
- サンクチュアリ -聖域-
- THE DAYS
である。
追加で加えた命令文。タイトルは英語タイトルだ。
画像:筆者によるスクリーンショット
こちらについて、
- 人気がある5カ国では何週間トップ10入りしているのか。
- 日本では何週間トップ10入りしていたのか。
を集計させた。
AIの出力したAI結果。青枠部分の「今際の国のアリス」の部分を拡大して掲載する。
画像:筆者によるスクリーンショット
さらに、それらの傾向がどういう意味を持つかを考察させると、驚くべき結果が出た。
ChatGPTに「詳しく分析して」と書いただけで……
たった1行「詳しく分析して」と書いただけで、
- 作品ごとにどの国で人気であり
- どのくらい国のばらつきがあるのか
- 人気はどのくらい長続きしたのか
といった考察を、しっかりとした根拠をもとに書き出したのだ。
さらに「今集計した各作品について、視聴国や人気の傾向を詳しく分析してください」と命令文を入力した結果の前半。
画像:筆者によるスクリーンショット
結果の後半。途中で「箱ひげ図(Box Plot)」も生成されている。
画像:筆者によるスクリーンショット
生成AIにプログラミングさせて「DX」しよう
これはどういう意味を持つのか?
生成AIに何ができるのか、現在さまざまなところで議論が進められている。そこでは正しくない情報(ハルシネーション)の問題から、実用性に疑問を持つ声もある。
しかし、生成AIに直接日本語を書かせるのではなく、「データと分析させたいことを与え、その作業に必要な処理を任せる」のであれば、これだけしっかりした答えが出てくる。
内容も、筆者が手作業で行なった分析と(少なくともこの例では)差異がない。根拠となるデータはいじらず、あくまでそれをChatGPTが「プログラムを書いて、それをもとに解析する」のだから、構造的にデータの間違いは起きづらい。
ここから示唆されるのは、生成AIには「プログラムを書かせる」のが最も効率が良く、人間は「調べたいこと」「それに必要な情報」の用意と検討を担当するのがベスト……ということになる。
生成AIに読み込ませるデータは、人間にとっての可読性よりもコンピューターにとっての可読性が重要になる。
そうすると、WordやExcelで装飾されたデータやPDFでなく、CSV形式やTSV形式、テキストなどの方が楽、ということもわかってくる。
これらは、いわゆる「デジタルトランスフォーメーション(DX)」で話題になりやすいものでもある。
生成AIにプログラミングをさせるということは、「我々の手作業をデジタルトランスフォーメーションしていく」ことに他ならないのだ。