OpenAIできることを再確認

2023-07-25
2023-07-25

OpenAI の新機能リリースが止まりませんね!

本記事では自身の知識の再確認を兼ねて OpenAI でできることを調べてみました。

OpenAI でできること

ブラウザから行える操作と API を用いた操作に分けて考察しました。

ブラウザからできること

ChatGPT が使える。ChatGPT は対話形式で AI に対してさまざまな要求を行うことができる。これは以前にも記事にした。ChatGPT の調査:何が便利なのか?GPT3 の API を叩いてみた

現在使用可能な AI モデルは GPT-3.5 と GPT-4 がある。

GPT-3.5 は無課金ユーザーでも利用可能ですが、一方で GPT-4 は ChatGPT Plus という有料プランのユーザーのみが利用できます。

以下は ChatGPT Plus のユーザーができることの一覧です。

  • GPT-4 の利用
  • 応答への web 検索の活用(今は停止している)
  • Plugin の利用
  • Code Interpreter の利用
  • Custom instructions の利用

Code Interpreter と Custom instructions のできることについては以降で解説します。

API でできること

OpenAI の API ドキュメントによると以下のような API が提供されている。 (※ 2023/7/25 で lagacy じゃないもののみ記載)

  • チャット系(gpt-3.5-turbo、gpt-4 などのモデルを使う)
    • Create chat completion
  • 画像系(DALL·E モデルがが使われる)
    • Create image
    • Create image edit
    • Create image variation
  • 音声系(Whisper モデルが使われる)
    • Create transcription(音声ファイルから文字への書き起こし)
    • Create translation(音声ファイルから英語へ翻訳して書き起こす)
  • テキストをベクトル化する(text-embedding-ada-002 というモデルが使われる)
    • Create embeddings
  • ファイル操作系(ファインチューニングで利用)
  • ファインチューニング
  • 入力で OpenAI の規約に違反してないかチェック
    • Moderations

Code Interpreter

2023/7/17 に発表されたばかりの機能です。

参考にさせていただいたサイトです。

Code Interpreter とは

OpenAI の Code Interpreter は、ChatGPT で Python コードを実行するための機能です。 ChatGPT と Python インタプリタを組み合わせることで、サンドボックス化されたファイアウォール環境でコードを実行できます。

Code Interpreter でできる事

Python でそれほど大きなメモリを使わない操作かつ、実行環境に用意されている(新たに用意できる)Python ライブラリを使った事なら大体できる。

具体的には以下のようなことができる。

  • ファイルのアップロード、ファイルの生成およびダウンロード
  • データ分析・データの可視化
  • 画像処理(gif や QR コードの生成)
  • 英語文書の OCR

ファイル操作系はかなり汎用性が高そう。

Code Interpreter の制限

以下のような制限がある。

  • アップロード可能なファイルの上限は 512MB
  • コードの実行時間に制限があり 120 秒以上の処理はタイムアウトになります
  • Code Interpreter で実行できるのは Python のみ
  • インターネットアクセスが必要な処理はできない
  • 実行環境に用意されているライブラリしか使えない(日本語の matplotlib は入ってないので文字化けする)
  • 日本語の OCR はできない

使用してみた感想としては、細かい部分が伝わらないことや、必要なライブラリが存在しないことで実行できない状況が多いと感じました。

Code Interpreter と ChatGPT の違い

ChatGPT ではコードを実行することはできなかったが、Code Interpreter はコードを実行して結果を返すところまでやってくれる。 また、ファイルのアップロードや Code Interpreter で生成したファイルのダウンロードが可能な点も大きな違いです。 今の所 web 検索が必要な操作はできないため、元データが必要な場合は基本的にこちらから提供する必要がある。

Code Interpreter はどうやら何を頼んでも code で実行しようとしてくれるので不確実性は少ないように感じる。 例えば、ChatGPT で文章の分類をお願いするとモデルが分類してくれるイメージだが、Code Interpreter では分類のためのコードを準備して実行してくれる。 実際に text と label 列がある csv ファイルを渡して分類を依頼したところ、tf-idf で文書ベクトルを作って分類を実行してくれた。

Code InterPreter のいいところはファイルをアップロードできること、ファイルを生成できるところ、簡易な実行環境として使えるところ。

個人的には、日本語の OCR ができれば期待できますし、生データファイルから必要なデータ形式への変換作業を行ってもらえれば、私のタスクには非常に役立つと感じます。 それ以外はちょっと細かいところでできないことが多いのと生成が遅すぎる感。簡単ですぐできそうだけどめんどいみたいなレベル感の作業なら任せられる。

Custom instructions とは

API で元々あった system にと似た内容っぽい。ChatGPT にどのように回答して欲しいかを事前に設定するようなもの。この設定は永続化されるので毎回入力で指示しなくてもよくなり、利便性が向上する。

設定前と設置後を比較してみました。

今回は以下のような設定にしました。

  • What would you like ChatGPT to know about you to provide better responses?
    • 日本在住の日本人
    • エンジニアとしてプログラムを書いたりクラウドのインフラ設計を行なっている
    • よく使うプログラミング言語は Python と Javascript (Typescript)
  • How would you like ChatGPT to respond?
    • 簡潔かつ論理的に質問に答えてください
    • 回答にはソースとなった情報を含めるようにしてください

質問は「Python で Elasticsearch から特定のキーワードが含まれるドキュメントを取得するクエリを教えて」です。

設定前の回答が以下。

設定前

そして設定後は以下のようになりました。

設定後

思ったよりよくできています。pip install のくだりがなくなったのは非常に良いです。Python の基本的な知識を有していると判断されたのでしょうか。