「OpenAIのChatGPTコードインタプリタの探索:その機能に深く潜る」

Exploring the features of OpenAI's ChatGPT code interpreter

OpenAIの自然言語処理(NLP)における進歩は、大規模言語モデル(LLM)の台頭によって特徴付けられています。これらのモデルは、GitHub CopilotやBing検索エンジンなど、数百万人が利用する製品の基盤となっています。これらのモデルは、情報を記憶し統合する独自の能力により、コードやテキスト生成などのタスクにおいて類を見ないベンチマークを設定しています。

ChatGPTのコードインタプリタの理解

ChatGPTのコードインタプリタの重要性を理解するためには、まず何であるか、そしてどのように構築されたかを把握することが不可欠です。

ChatGPTのコードインタプリタは、ChatGPTの能力を活用しつつ、さまざまなプログラミング言語におけるコードの理解、解釈、さらには生成において高い能力を持っています。この機能により、ChatGPTはテキスト生成ツールから開発者の貴重なツールへと変わり、コード理解、デバッグ、さらにはコード生成を支援します。

コーディングのためのGPTのトレーニング:Codexアプローチ

GitHub CopilotとChatGPTのコードインタプリタは、OpenAIが開発したCodexモデルを活用しています。

Codexは、Pythonのコード記述能力に優れた特殊なGPT言語モデルです。GitHubから公開されたコードを使用してトレーニングされたCodexは、GitHub Copilotの機能を支える潜在能力を示しています。ドックストリングからプログラムを合成する能力である機能の正確性の尺度として評価された際、CodexはGPT-3およびGPT-Jを上回ります。

興味深い観察結果は、繰り返しサンプリングがCodexの能力を向上させることです。問題ごとに100サンプルまで使用すると、モデルの成功率は70.2%に向上します。このような効率性から、各問題の完全な評価を必要とせずに正確なコードサンプルを選択するために、ヒューリスティックなランキングを使用する可能性が示唆されます。

能力を評価するために、モデルにはドックストリングのみを基に独立したPython関数の作成が課されました。生成されたコードの正確性は、ユニットテストを使用して評価されました。言語理解、アルゴリズム、基本的な数学テストを含む164のオリジナルのプログラミング問題からなるデータセットでは、12Bのパラメータを持つCodexは単一の試行で28.8%の問題を解決しました。

Codexモデルのトレーニングデータ:https://arxiv.org/abs/2107.03374

正しく実装された独立した関数をファインチューニングすることで、モデルの効率が向上し、Codex-Sは最初の試行で37.7%の課題を解決しました。ただし、プログラミングの現実的な領域では、試行錯誤のアプローチが一般的です。この現実のシナリオを模倣するように、Codex-Sモデルは100回のチャンスを与えられると、77.5%の課題を成功裏に対処します。

コードを生成するChatGPTのような生成モデルは、生成されたサンプルを参照ソリューションと比較して評価されることが通常です。この比較は、完全一致であるか、BLEUスコアのような類似度尺度を使用することができます。ただし、これらのマッチングベースの尺度は、コーディングのニュアンスを捉えることができないことがしばしばあります。BLEUの主な批判点は、コードの意味的特徴を捉えることのできない無効性です。

マッチングにのみ頼らず、より関連性の高い尺度が提案されています:機能的な正確性。これは、モデルが与えられた一連のユニットテストに合格するコードを生成することを意味します。このアイデアは、開発者がコードの効果性と正確性を評価するためにユニットテストを使用するという標準的なコーディングの実践と一致しています。

この尺度は、正確性だけでなく、生成されたコードの機能的な使いやすさも評価します。

機能的な正確性の尺度として[email protected]が導入されています。これは、生成されたコードサンプルの「k」がユニットテストに合格すれば、問題が解決されたとみなされることを意味します。ただし、これを直接使用するのではなく、高い分散を回避するためにバイアスのない推定器を使用して[email protected]を計算します。

ChatGPTのコードの能力を評価するために、研究では「HumanEval」データセットを使用しました。このデータセットには、ユニットテストが添えられた手書きのPythonの問題が含まれています。

https://github.com/openai/code-align-evals-data/blob/main/human_eval

未知または信頼されていないコードを実行する際のリスクを考慮して、サンドボックス環境が設計され、生成されたコードを安全にテストするために使用されました。この環境では、gVisorを使用してリソースをエミュレートし、ホストシステムと実行中のコードの間にバリアを作成しました。したがって、モデルが悪意のあるコードを生成しても、それは制約され、ホストやネットワークに損害を与えることはありません。

ChatGPTコードインタプリタの使用

OpenAIのChatGPTは、GPT-4モデルの革新的な機能であるCode Interpreterを中心に数多くの進化を遂げてきました。従来のチャットインターフェースとは異なり、Code Interpreterを使用すると、ユーザーは計算タスクにより深く入り込むことができ、人間とAIの会話と計算プロセスの間の境界をシームレスに結びつけることができます。

Code Interpreterは、チャットボット内にコンピュータが埋め込まれているようなものです。このダイナミックな機能により、ユーザーは一時的なディスクスペースを利用して、一般的な形式(TXT、PDF、JPEGなど)からCPP、PY、SQLiteなどのより専門的な形式まで、さまざまなファイル形式をアップロードすることができます。この幅広いサポートにより、文書処理や画像操作など、さまざまなタスクでの多様性が高まります。

堅牢で安全なフレームワーク内で動作するCode Interpreterは、300以上の事前インストールされたライブラリを備えています。このサンドボックス環境により、セキュリティが確保されながらも十分な計算能力が提供されます。興味深いことに、タスクが割り当てられると、ユーザーのリクエストを実行するためのPythonスクリプトがリアルタイムで作成されます。たとえば、OCRを使用して画像ベースのPDFを検索可能な形式に変換する場合、ユーザーはドキュメントをアップロードするだけで、ChatGPTが残りの処理を処理します。

ファイルのアップロードサイズ制限についての興味深い点は、まだ明確な仕様が発表されていないものの、ユーザーの実験からは、システムが100MBを超えるファイルを効果的に処理できることが示されています。サイズに関係なく、これらのファイルはセッション終了後に破棄されるということが重要です。

Code Interpreterの素晴らしさは、その技術力だけでなく、アクセシビリティにもあります。OpenAIは、GPT-4モデルを備えたChatGPT Plusのサブスクライバーにこの機能を提供しています。したがって、この変革的なツールは、技術エリートだけでなく、より広範なユーザーに徐々にアクセス可能になっています。

標準のChatGPTモデルとCode Interpreterの違いは、それらのインタラクションパラダイムにあります。前者は主にテキストの応答を生成しますが、後者はコードを理解し実行するため、直接的な結果を提供します。これにより、テックプロフェッショナルだけでなく、コーディングの知識がない人々も複雑な計算タスクを実行することができる貴重な資産となります。

ChatGPT Code Interpreterの機能は、ソフトウェア開発やデータサイエンスのさまざまな側面を革新することができます:

  • 自動コード生成:ソフトウェアアプリケーションやデータ分析スクリプトの両方において、高レベルの説明が与えられれば、システムはひな形構造や複雑なコードスニペットを生成し、開発とデータ分析のプロセスを加速します。
  • コードレビューとデータの検証:ChatGPTのようなAI駆動のツールは、ソフトウェアコードベースの品質とセキュリティを向上させるのに役立ちます。また、データサイエンスの領域では、このようなツールはデータ処理や変換スクリプトのレビューや検証において重要な役割を果たし、正確性と効率性を確保します。
  • データ分析のサポート:データサイエンティストにとって、ChatGPT Code Interpreterは、初期のデータ探索、可視化、さらには基本的な統計テストのためのコード生成を支援することができます。これにより、データ分析のワークフローが容易になります。

ChatGPTやプロンプトエンジニアリングの詳細について知りたい場合は、Unite AIの「ChatGPT: Advanced Prompt Engineering」で詳細をご覧いただけます。

ChatGPT Code Interpreterの設定

Code Interpreterの統合により、プラットフォームはユーザーのクエリを解釈し、Pythonコードとして実行し、結果をインタラクティブなチャット形式で表示することができます。この機能にアクセスするには、ユーザーはChatGPTの設定に移動し、Beta機能のセクションを探索し、Code Interpreterをアクティベートすることができます。

それを特異なものにしているのは、その透明なメカニズムです。ユーザーがタスクをプロンプトすると、プラットフォームは処理の各ステップを明らかにし、コマンドがどのように解釈され、実行されるかについての明確さを提供します。プライバシーとセキュリティの理由から、Code Interpreterはインターネットに接続せずに動作します。

ChatGPT Code Interpreterの利点の探求

データの可視化と分析

ChatGPTは従来のグラフだけでなく、革新的なグラフ表現も提供し、ユーザーがデータを最も有意義な情報で表示できるようにします。

ただし、単に生データを可視化するだけではありません。ChatGPTモデルはデータの処理と洗練にも長けています。強力ではありますが、ユーザーは注意を払う必要があります。

金融アナリストは、株価を分析し可視化するCode Interpreterの能力が特に役立つでしょう。シームレスな統合を通じて、ユーザーはデータセットをアップロードし、さまざまな形式で可視化することができます。この機能の重要性は、個人が複雑なデータ分析を行えるときに明らかです。

下のビデオは、ChatGPTのコードインタープリタが包括的なTSLA株価分析を作成した様子を示しています。

主なポイント:

  • Teslaの株価は変動がありますが、成長期も見られます。
  • 特定の日における取引高は、市場への関心や重要なイベントへの反応を示しています。
  • 下方向の年初来(YTD)のリターンは、将来の投資を考える際には企業内要因と市場外の状況の両方を分析すべきことを示唆しています。

コンピュータビジョンとOCRの実装

コンピュータビジョンにおける重要な機能である顔検出は、OpenCVのHaarカスケード分類器を使用してアプローチされました。

以下の画像は、古典的なHaarカスケード分類器の利用例を示しています。

光学文字認識(OCR)と呼ばれる画像からテキストを抽出するプロセスは、Tesseractを使用してシームレスに実現し、その後のテキストはGPT-4によって構造化され、理解しやすくなります。

以下のビデオでは、Tesseract(OCR)が証明書の画像からテキストを抽出する様子をご覧いただけます。

コードインタープリタは、ビデオ、オーディオ、画像の操作において優れた能力を発揮します。ユーザーは簡単なコマンドで詳細な編集を行うことができます。例えば、GIFを特定の強化機能を持つMP4に変換するなどです。ファイルをアップロードし、希望する変更を入力するだけで、魔法のように変換が行われます。

ChatGPTコードインタープリタ内の外部Pythonライブラリ

ChatGPTコードインタープリタは、広範なPythonライブラリを備えた動的なプログラミングプラットフォームです。これらはSeabornによるデータの可視化からTorchを使用した高度な機械学習までカバーしていますが、これは単なる静的なツールキット以上のものです。

これはKorakot Chaovavanich氏のChatgptページからのインスピレーションです。

最新のnltkリリースを使用して、私たちは.whlファイルをインタープリタにアップロードしました。次に、既存のパッケージの場所を分析して適切なsite-packagesディレクトリを見つけるようChatGPTに指示しました。次のステップでは、wheelファイルを一時的な場所に展開し、ファイルを特定されたsite-packagesディレクトリに移動することが含まれていました。しかし、これには問題が生じました。

回避策を探して、私たちは「NLTKがPython環境にインストールされ、インストール後にアクセス可能であることを確認してください。」と促しました。

ChatGPTは解決策を提供しました。一時ディレクトリをsys.pathに追加することを提案しました。これにより、Pythonがその場所に展開されたnltkパッケージからモジュールを識別して取得できるようになりました。この戦略は素晴らしい効果を発揮し、NLTKの成功したインストールにつながりました。

.whlファイルの使用により、インストールは独自の工夫と適応性の組み合わせを表示しました。ChatGPTコードインタープリタは、最初の課題にもかかわらず、その柔軟性とコーダーのニーズに対するコミットメントを示し、初心者からベテランまで洗練されたコーディング体験を保証します。

インタープリタの能力を魅力的に示した、@DominikPeters氏の最近のツイートが注目されました。PetersさんはGPT-4にパリの区に関するクイズを作成するように依頼し、モデルはうまく機能するウェブサイトを提供しました。動作するクイズは、dominik-peters.de/gpt-arrondissement-quiz/で体験することができます。

Asked GPT-4 to code me a Paris arrondissements quiz, it worked out of the box. https://t.co/Uhv7tPLspq pic.twitter.com/3agFZllEEQ

— Dominik Peters (@DominikPeters) April 30, 2023

まとめ

OpenAIのChatGPTコードインタプリタの突破は、コーダーと非コーダーの両方にとって変革的なものです。デバッグ支援からパリのクイズまで、さまざまなタスクをスムーズにこなすその多機能性は、AIの無限の可能性を示しています。以下に、私たちが深く掘り下げた内容をまとめます:

ツールを理解する:同僚と友達になるように、コードインタプリタと親しくなりましょう。Codexをベースに設計されており、GPT-4から微調整されています。複数のプログラミング言語にわたるその能力は、あらゆるコーディングの冒険に最適な相棒です。

AI革命を受け入れる:AIによるツールの登場により、従来のコーディングプラクティスは大きく変わるでしょう。ChatGPTコードインタプリタのようなAI駆動のツールにより、バグの特定、コード生成、さらにはコードレビューなどのタスクが迅速化されます。

コードだけでなく:インタプリタの活躍は、テキストやコードに限定されません。シンプルなTXTファイルから複雑なPYスクリプトまで、さまざまなファイル形式に対応できる能力は、さまざまなドメインでのユーティリティを示しています。

絶えず実験を続ける:NLTKライブラリのインストールにおける私たちの取り組みは、コードインタプリタが具現化している、持続性と適応性の重要性を反映しています。問題があれば、それを乗り越える方法がしばしばあります。

AIの会話に参加する:パリの区クイズが示すように、現実の世界での応用は、このツールの無限の有用性を強調しています。それを受け入れ、探求し、プロジェクトを活性化させましょう。

上記の動画はGen-2とMidjourneyを使用して作成されています。

要約すると、ChatGPTコードインタプリタは単なるツール以上のものであり、私たちがテクノロジーとつながる方法を変えています。革新者と愛好家の両方にとって、コーディングの可能性に満ちた世界を約束しています。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more