ChatGPTのCode Interpreterはどこまでできるのか
先日(2023/07/07)、OpenAIの公式Twitterアカウントから以下のアナウンスがあった。
そこで自分のアカウントの設定画面を見てみると、どうもすでにCode Interpreterがすでに利用できるようだったので、何ができて何が出来ないのか遊んでみた。
ChatGPTのCode Interpreterとは
そもそもこのCode Interpreterは何ができるのか、さきほどのツイートには以下のように書かれている。
It lets ChatGPT run code, optionally with access to files you've uploaded. You can ask ChatGPT to analyze data, create charts, edit files, perform math, etc.
僕は英語が読めないのでGhatGPTに翻訳してもらった。
それにより、ChatGPTはコードを実行し、オプションであなたがアップロードしたファイルにアクセスすることができます。あなたはChatGPTにデータを分析させたり、チャートを作成したり、ファイルを編集したり、数学的な計算を行わせることができます等。
https://chat.openai.com/share/0e130d2e-2cfc-4f61-935b-26ea6a48b3d6
ようは、ChatGPTにテキストではなく入力としてファイルをアップロードできるようになるということだ。他にも任意のソースコードを実行することができる。
実はこれ、機能としてはChatGPT Pluginと一緒にアナウンスされていたので「やっと来たか」という感じだった。
有効にする方法
このCode Interpreterを利用するには、以下の上限が必要となる。
- ChatGPT Plusに課金していること
- 設定で有効にしていること
- waitlistに登録していること(?)
まず大前提として、この機能はChatGPT Pluginと同様、ChatGPT Plus(20USD/month)に課金している必要がある。また、これはまだBeta機能ということもあってか設定画面から手動で有効にしないと利用できない。
さらに、さきほどのツイートにもある通り、Code Interpreterが使えるようになるのは来週中(2023/07/10〜2023/07/16)とのことなので、ChatGPT Plusに課金している人全員がまだ使えるわけではないらしい。おそらく以前あったwaitlistに登録していたため、先行して利用できているような気がする。
実際にやってみた
というわけで、せっかく先行利用できるので何ができるのか試してみた。
QRコードの生成
まずはさきほどのツイートなどにもあったPythonのソースコードの実行を試してみた。
なるほど、動作としてはこういう流れになるようだ。
- Pythonのソースコードを出力
- Code InterpreterがPythonのソースコードを実行
- 実行結果(画像)を出力
文字列以外でも出力可能なのはありがたい。
Pythonによる計算
次に試してみたのはOpenAIの記事にあったプロンプト。
以前からChatGPTは計算が苦手と言われてきたが、これで計算もできるようになったみたいだ。
グラフの出力
他にもOpenAIの記事の動画内で登場していたグラフの出力も試してみた。
なるほど、numpyのような有名なライブラリは利用できるらしい。
Pythonファイルの実行
試しに、ChatGPTが出力したソースコードをそのままアップロードしてみた。
CSVファイルからグラフ描画
次に試してみたのはCSVファイル。今回はe-Statで公開されている人口データを利用させてもらった。
スクリーンショットを見ると手こずっていることに気づくかもしれないが、なんとかグラフを出力することができた(グラフの正確性までは未検証)。
ちなみに今回利用したCSVファイル、このチャットでもChatGPTに指摘されているとおりCSVとして正しくないのだ(そういうところだぞ)。それにもかかわらず、内容を理解して読み込めているのは素直にすばらしい。
なお、画像(グラフ)の描画日本語を利用することはサポートしているフォントの都合上、現状ではできないようだ。
PDFファイルの読み込み
もう少し複雑なファイルとして、PDFファイルを読み込んでみた。
今回は厚生労働省が公開しているPDFファイルを読み込ませた。
テキスト部分であれば読み込むことができていそうだ。ただし、画像やグラフ部分まで読み込めているわけではなさそうだ。仕様書や取り扱い説明書を読み込ませて回答させるみたいなことはある程度はできそうだが、レイアウトに依存する。
ファイル変換
CSVの読み込みができることはわかったので、今度はそれを別のファイル形式に変換してみた。
今回はさきほど利用したe-Statで公開されている人口データから特定のデータのみをExcelファイルとして出力してもらった。
細かい検証はしていないが、Excelファイルとして出力できた。先ほども述べた通り、このCSVファイルは注意書きをCSVファイル内に記述するという正気の沙汰とは思えないことをしている。それでも欠損値として理解し、処理できているのはやはりすごい。
スライドの作成
ExcelがいけるならPowerPointもいけるだろうということで、OpenAIの紹介スライドを作成してもらった。
問題なくできた。完成度はそこまで高くないが、これはどちらかというとライブラリに依存するのでChatGPTの能力というわけではない。
画像出力ができていないが、これはプロンプトを工夫すればいけるような気がする。
画像ファイルの処理
次はOpenAIの記事の動画にもあった画像処理を試してみた。
読み込んだ画像に対してPythonを実行することでフィルター処理なども可能だ(最後触れてはいけなさそう画像が出力されているがそっとしておこう)。
今回興味深かったのが、処理に失敗しても自らトライ&エラーで解決を試みているところだ。
動画ファイルの処理
画像がいけるなら動画もいけるだろうということで、適当な動画をアップロードして写真同様に処理を試してみた。
結果から言うと、メモリ不足になりがちだが工夫次第でそれなりのことはできた。
また、今回試行錯誤していてわかったのが、条件は不明だが実行環境が途中で破棄されることがあるらしい。
参考までに、元動画と出力した動画をYouTubeにアップロードしておいた。
Code Interpreterの限界
この記事を書く上で紹介し切れていないいろいろなプロンプトを試していったところ、現段階でのCode Interpreterの限界も見えてきた。
実行できるのはPythonのみ
Code Interpreterで実行できるのはあくまでPythonのみ。
また、numpyのような有名なライブラリは利用できるが、すべてのライブラリを利用できるというわけではない。Code Interpreterは外部のネットワークから隔離されたサンドボックス環境下でソースコードを実行する。そのため、以下のような処理が必要なPythonのソースコードは実行出来ない。
-
pip install
など外部ライブラリのインストールが必要なソースコード - Web APIを呼び出すソースコード
これは外部ライブラリを利用してOCR処理を試みてみた例。
内容を理解できるのはあくまでテキストのみ
今回のファイルアップロードで「ついにマルチモーダルにも対応したのか」と思っていたが、どうやらそういうわけではなさそうだった。
試しにアップロードした画像の説明やテキスト抽出(OCR)を試してみたが、できなかった。前述した通り画像や動画を処理することはできるが、あくまでPythonを介しての処理であり、画像や動画の内容を理解しているわけではない。
また、PDFファイルの読み込みは可能だが「テキストベースのPDF」に限定されるようだ。画像だらけだったり、スライドをPDF出力したようなPDFファイルは読み込みに失敗する傾向にある。
大量のファイルやサイズの大きなでファイルは扱えない
当たり前といえば当たり前だが、Pythonの実行環境に与えられるリソースには限界がある。そのため、大量のファイルやサイズの大きなファイルを処理しようとするとエラーになってしまう。
また、実行環境は条件は不明だがある程度で破棄されるため、あまり長いやり取りをすると途中で破棄されてしまうこともある。
実行環境は維持されない
以下のツイートで指摘されたので追記。
Pythonの実行環境は一定時間経過したりセッションが切れると破棄されてしまう。Code Interpreterで出力したファイルが必要であれば、ダウンロードしておく必要がある。
まとめ
まだBeta版ということで発展途上ではあるが、Code InterpreterによってChatGPTがさらに進化した。
今までもChatGPTにソースコードを出力してもらってそれを手元で実行して…みたいなことでできていたが、これがすべてChatGPT上で完結できるのは思考との速度感的にはかなり嬉しい。素Python+αでできることはこれでほぼできるということなので、利用の幅もかなり広がったように思う。
余談だが、僕が個人的に開発していたQRコードを出力できるChatGPT Pluginはこれにて役目を完全に終えた。
Discussion