Code Interpreterとは?
年平均35%以上で成長し、2030年には1,093億ドルに達すると予想される生成AI市場。ChatGPTを展開するOpenAIが主導権を握っていると思われるが、Bardを擁するグーグルのほか、AlphaGoの技術を活用したチャットボットGeminiを開発するディープマインド、ChatGPTよりも強い記憶力を売りとするClaude2をリリースしたAnthropicなど、競合がひしめきあい、競争が激しい市場となっている。
生成AIトレンドの火付け役となったOpenAIは優位性を維持するために、ChatGPTのプラグインを拡充するなどさまざまな施策を展開中だ。ChatGPTにおける直近のアップデートで特に注目されているのが「Code Interpreter」のリリースだろう。
Code Interpreterの存在が明らかにされたのは3月23日。ChatGPTのプラグインアップデートの一環として発表された。その後、4~6月にかけてアルファ版が一部のテスターに開放され、7月6~8日にかけてChatGPT Plusユーザー向けに開放された。
Code Interpreterをオンにすることで、ChatGPTにファイルをアップロードし、Pythonでさまざまな処理を行うことが可能になった。
アップロードできるのは、CSV、XLSなどのデータファイル、PNG、JPEGなどの画像ファイル、MOV、MP3などの動画・音声ファイル、またPDFファイルやZIPファイルのアップロード/ダウンロードがサポートされている。
アップロードできるファイルサイズは、最大で100MBといわれているが、それ以上のファイルサイズ(170MB)をアップロードできたケースや最大250MBであるとする報告もある。
特筆すべきは、Code Interpreterでは、すでに330以上のPythonライブラリがインストールされており、それらを活用して、さまざまな処理が可能である点だ。
たとえば、pandasによるデータ分析、matplotlibやseabornによるグラフ・地図の作成、Pillowによる画像処理などが挙げられる。すでに海外コミュニティでは、ゲーム作成、ミームの描画、データの前処理、コンピュータービジョンによる顔検出など、さまざまな実験が行われ、その結果が多数シェアされている。
多様な使い方があるが、その中でも最も一般的な使い方として広がりつつあるのがデータ分析といわれている。ニューヨーク・タイムズによると、株価分析や予算準備などでCode Interpreterを活用する金融アナリストが増えているという。
Code Interpreter活用法
- プラグインpandasを用いたデータ分析
- matplotlibなどでグラフ・地図の作成
- Pillowを用いた画像処理
- ゲーム開発
- マーケティング調査
- 数学学習
など
Code Interpreterのクリエイティブ活用事例
Code Interpreterの活用例としては、Pythonの強みを生かしたデータ分析が主流のようだが、他の活用方法を模索する実験も多数実施されている。
たとえば、アドビのクリス・カシュタノバ氏はツイッターで、Code Interpreterを使ったゲーム開発の実験をシェアしている。これは、ランダムに発生し、宇宙船に向かって飛んでくる隕石を撃ち落とすシンプルなゲーム。
カシュタノバ氏は、まずCode Interpreterをオンした状態で、ChatGPTに以下のプロンプトを入力し、ゲームの基礎となるコードを生成した。
これはJavascriptライブラリのp5.jsで、ゲームプログラムを生成するプロンプト。宇宙船をマウスで動かし、左クリックで隕石を撃ち落とし、宇宙船が隕石に衝突すると終了するというプログラムを生成するプロンプトとなる。
ChatGPTが生成したコードを、Javascriptを実行できるプラットフォームOpenProcessingにコピー&ペーストし、任意のテクスチャを加えることで、簡単に作成できたとカシュタノバ氏は説明している。
Code Interpreter、マーケティングでのポテンシャル
Code Interpreterを活用すると、ファイルをアップロードし、Pythonライブラリにより、データ分析を行い、可視化することが非常に簡単になる。
統計局のデータを使って、簡単な実験を行ってみた。
まずCode Interpreterをオンにした状態で、統計局からダウンロードしたデータをChatGPTにアップロード、そのデータファイルから得られるインサイトについて聞いてみた。このデータファイルは、日本全国における事業所数と従業員数に関するものだ。
入力プロンプト:
このデータから得られるインサイトを教えてください。以下、ChatGPTの回答:
このデータセットには、日本全国の各地域における事業所数と従業員数に関する情報が含まれています。これを分析することで、以下のようなさまざまなインサイトを得ることができます:
- 地域別の経済活動の規模:事業所数と従業員数は、その地域の経済活動の規模を示す指標となります。これらの数値を比較することで、各地域の経済活動の規模を比較することができます。
- 男女間の雇用格差:男性と女性の従業員数を比較することで、各地域における男女間の雇用格差を調査することができます。
- 地域の経済密度:1km²当たりの事業所数と従業員数を用いて、各地域の経済活動の密度を調査することができます。これは、都市部と地方部の間の経済活動の格差を理解するのに役立つかもしれません。
- 産業の特性:特定の地域における事業所数と従業員数の比率から、その地域の産業の特性を推測することができます。たとえば、事業所数が多いのに従業員数が少ない地域は、小規模事業所が多いか、自動化が進んだ産業が多い可能性があります。
以上のようなインサイトを得るためには、データの詳細な分析と可視化が必要です。具体的な分析方法やインサイトの探求については、ご希望があればお知らせください。
このプロンプトでは、ファイルにどのような情報が含まれているのかに言及しなかったが、ChatGPTはデータ項目を読み取り、ファイルに含まれている情報を解析、さらには、そこから得られるインサイトまで生成するに至った。 また「このファイルからグラフを作成してください」というプロンプトを与えたところ、以下のようなグラフが自動で生成された。
青色の棒グラフは、地域別の事業所数、赤い線グラフは地域別の従業員数を表している。東京都が81万件で突出して多いことが分かるグラフとなっているが、グラフィックライブラリが日本語フォントをサポートしておらず、文字化けが発生する結果となった。日本語でグラフ生成を行う場合は、注意が必要だ。
実際どのようなプロセスが実行されたのか確認することも可能だ。この事例では、ChatGPTはデータファイルのクリーニングを行い、その後Pythonのグラフライブラリであるmatplotlibを用いて、グラフを生成している。
数学学習にも活用できるCode Interpreter
Code Interpreterを活用することで、ChatGPTを数学学習に活用することも可能となる。
たとえば、ChatGPTに「3次元グラフによるベクトルの解説をしてください」というプロンプトを入力すると、Pythonライブラリを使って、3次元グラフとベクトルの加算についての解説が生成される。
また「外積と内積についても可視化し、詳しく初心者向けに解説してください」というプロンプトを試してみると、以下のようなグラフと解説が生成された。
任意の学習内容に特化したプロンプトを入力すれば、より詳細な解説とそれに付随するグラフを生成することが可能で、理解の促進にも役立つはずだ。ただし、ここでも日本語の文字化けには何らかの対応が必要となる。
このほかCode Interpreterを活用して、データファイルから地図を作成したり、ビットコインの値動きをモデル化するなどさまざまな実験が実施されている。今後さらに有用な使い道が登場するのは間違いなさそうだ。