[ペーパークイックファクト] 汎用人工知能の火花: GPT-4 による初期の実験

汎用人工知能の火花: GPT-4 による初期の実験

2023.3.22 Microsoft が人類史上最強の AI モデル GPT-4 の総合的な能力評価に関する論文を正式に発表しました 周知のとおり、2023 年は汎用人工知能 (AGI) 元年です この論文を簡単に読んでみましょう
個人的な研究方向は主にソフトウェア関連であるため、このブログでは主に GPT-4 のコード能力評価結果に簡単に焦点を当てています。その他の側面および詳細については、公式論文 arxiv のリンクを参照してください: Sparks of Artificial General Intelligence:
Early Experiments GPT-4を搭載

コーディング

このセクションでは、GPT-4 が、命令からのコードの作成と既存のコードの理解の両方において、非常に高いレベルのコーディング能力を達成できることを示しています。GPT-4 は、コーディングの課題から現実世界のアプリケーションまで、低レベルのアセンブリから高レベルのフレームワークまで、単純なデータ構造からゲームなどの複雑なプログラムまで、幅広いコーディング タスクを処理できます。GPT-4 は、コードの実行を推論し、命令の効果をシミュレートし、結果を自然言語で解釈することもできます。GPT-4 は、どのプログラミング言語でも無効な非形式的で曖昧な表現を解釈する必要がある疑似コードを実行することもできます。
著者らは、現在の状態では、GPT-4 は既存のパブリック ライブラリのみに依存する焦点を絞ったプログラムの作成において高いレベルの熟練度を備えており、これは通常のソフトウェア エンジニアの能力と比べても遜色ないと考えています。さらに重要なのは、プログラムの作成、編集、理解が容易になるため、エンジニアとスキルのないユーザーの両方がアクセスできることです。また、著者らは、GPT-4 がコーディングに関して完璧ではないことも認めています。GPT-4 は、特に長いプログラムやより複雑なプログラムの場合、構文的に無効なコードや意味的に正しくないコードを生成する可能性があるからです。GPT-4 は、指示を理解しなかったり、指示に従えなかったり、期待される機能やスタイルと一致しないコードを生成したりする場合もあります。この論文はこれに基づいて、GPT-4 が人間のフィードバックに応答してコードを改善できることも示しています。

数学の問題を解く

コーディング能力を測定する一般的な方法は、特定の関数またはアルゴリズムの実装を必要とするコーディングの課題を提示することです。GPT-4 は、プログラミング ロジックと熟練度のさまざまな側面をテストする 164 のコーディング質問で構成されるドキュメント文字列からコードへのデータセットである HumanEval [CTJ+21] で最初にベンチマークが行われます。表 1 に示すように、GPT-4 は、text-davincian-003 (ChatGPT の基本モデル) や、コードのみでトレーニングされた他のモデル、code-davincian-002、CODEGEN-16B などの他の LLM よりも優れています。

ここに画像の説明を挿入

ここでのゼロショットはタスク用に調整されていないモデルを指し、パス@1 は書かれたコードがテストに 1 回合格する確率を指します。GPT-4 が 82 の AC 精度を達成できることがわかります。 HumanEval テストでは %.% と、chatGPT を含む他のモデルよりも大幅に高かった。GPT-4 は以前のモデルと比較して精度が大幅に向上しましたが、これは GPT-4 が事前トレーニング中に人間による結果の一部 (またはすべて) を認識して記憶したためである可能性があります。この可能性を検討するために、著者らはLeetCode (https://leetcode.com)での評価も行っています。
著者らは表 2 に結果を示し、GPT-4 と他のモデル、および LeetCode コンテストの結果に基づく人間のパフォーマンスを比較しています (すべての問題に失敗したユーザーは含まれていないため、これは強力な人間のサンプルです)。結果は pass@1 および pass@5 の精度をレポートします。これらは、モデルがそれぞれ最初または最初の 5 回の試行で正しい解を生成したかどうかを測定します。GPT-4 は他のモデルよりも大幅に優れたパフォーマンスを発揮し、人間のパフォーマンスと同等です

ここに画像の説明を挿入

人間が leetcode を磨くためのすべての難問の平均合格率は約 38% ですが、GPT-4 の pass@1 は人間のレベルに達し、pass@5 は人間のレベルを大幅に超えていることがわかります。実際のプロジェクト開発作業に関係なく、少なくとも GPT4 はアルゴリズムの問​​題解決において人間の平均を超えています。

これは、アルゴリズムの問​​題を解決するための GPT4 の論文に記載されているプロンプトの例です。
ここに画像の説明を挿入
これは GPT4 が提供するコードです。
ここに画像の説明を挿入
ここで、GPT4 は動的計画アルゴリズムを使用して LeetCode の問題を解決します。GPT-4 ソリューションは、詳細な注釈のおかげで非常に読みやすくなっています。

データの視覚化

コーディングの課題では、アルゴリズムとデータ構造のスキルを評価します。ただし、専門的なドメイン知識、創造性、複数のコンポーネントとライブラリの統合、既存のコードを変更する能力が必要となる、現実世界のコーディング タスクの複雑さと多様性を完全には把握できないことがよくあります。より現実的な設定で GPT-4 のエンコード能力を評価するために、著者らは、データ視覚化、LATEX コーディング、フロントエンド開発、深層学習に関連するエンドツーエンドの実世界コーディングの課題を考案しました。それぞれに異なる専門スキルが必要です。

図 3-2 では、作者は GPT-4 と ChatGPT に LATEX コードからデータを抽出させ、ユーザーとの会話に基づいて Python でグラフを描画します。次に、両方のモデルは、結果のグラフに対してさまざまな操作を実行するように求められます。どちらのモデルもデータを正しく抽出しましたが (複数の列から推論を行う必要があるため、これは簡単な作業ではありません)、ChatGPT は目的のグラフを生成しませんでした。対照的に、GPT-4 はすべてのユーザー要求に適切に応答し、データを正しい形式に変換し、視覚化を調整します。
ここに画像の説明を挿入

ゲーム開発

図 3.3 では、作成者は非常に高度な仕様を使用して、GPT-4 に HTML と JavaScript で 3D ゲームを作成させています。GPT-4 は、ゼロショット方式ですべての要件を満たす動作するゲームを生成します。3D ゲームでは、GPT-4 は「敵をブロックしようとする防御者のアバター」の意味を解釈することもできました。対照的に、ChatGPT の応答は、「私は AI 言語モデルであり、JavaScript を使用して HTML で 3D ゲームを作成する方法については指示できますが、コードを書いたり、自分でゲームを作成したりすることはできません。HTML での JavaScript の使用」でした。 3D ゲームには多くのプログラミングの知識と経験が必要です。すぐに簡単に実行できるタスクではありません。3D グラフィックス、物理学、ユーザー入力、AI などの必要な機能をすべて開発するには、多大な時間と労力が必要です。

ここに画像の説明を挿入
ここに画像の説明を挿入

GPT-4 では「シンプルな」ゲームの作成がすでに実現可能であることがわかります。ゲームの設定ルールや設計要件を 1 つずつ GPT4 に入力するだけで、コード作成の作業を完了することができます。実際に実行することができます (バグがないという話はやめましょう。少なくともプレイすることはできます)。

ディープラーニング

深層学習コードを作成するには、数学と統計の知識、および PyTorch、TensorFlow、Keras などのフレームワークやライブラリに精通している必要があります。図 3 ~ 4 では、著者らは GPT-4 と ChatGPT にカスタム オプティマイザー モジュールを作成するよう依頼していますが、これは人間の深層学習の専門家にとっても困難でエラーが発生しやすいタスクです。これらのモデルの自然言語記述は、SVD の適用、上位 k および上位 2k の固有値での行列のスペクトルの切り捨て、上位の固有値での行列の f ノルムの切り捨てなどの一連の自明ではない操作を含めて与えられます。 2kからtop-kの切り捨て行列が正規化され、運動量と重みの減衰が適用されます。手順は完全には詳しく説明されていません。たとえば、「Gk に勢いを適用する」には「深層学習の一般的な知識」が必要です。注意点としては、この特定のオプティマイザーは文献にもインターネットにも存在しないため、モデルはそれを記憶することができず、コードを生成するには概念を正しく組み合わせる必要があるということです。

ここに画像の説明を挿入
GPT4 と chatGPT はどちらも構文的に効果的な深層学習コードを生成できますが、chatGPT にはバグがあり、GPT4 は基本的にターゲット コードの生成を完了できますが、次元の走査と正則化の操作が欠落しています。

ラテックスの生成

LATEX での記述はコンピュータ科学者や数学者にとって重要な演習ですが、学習曲線にはばらつきがあります。専門家でも、構文が厳密であったり、優れたデバッガーがなかったりするため、毎日修正するのに何時間もかかる迷惑な間違いを犯します。GPT-4 は、マスターレベルの LATEX コーディング スキルを活用してプロセスを大幅に簡素化し、不正確な自然言語記述を処理できる新世代の LATEX コンパイラとして機能する可能性を秘めています。
図 3-5 では、作成者は GPT-4 に対し、混合自然言語の半厳密 (バグ) LATEX コードを正確な LATEX コマンドに変換するよう依頼しました。このコマンドは、変換後に一度コンパイルして実行できます。ただし、chatGPT にはそのような機能がなく、生成された Latex コードにはバグがあり、コンパイルできません。

ここに画像の説明を挿入
将来的には、latex を書くのも自然言語で書けるようになり(おそらく)、要件と短縮された latex コードを書いたら、あとは GPT4 に渡してやれば、かなり効率が良くなるでしょう。

コードの理解

前述の例は、命令が曖昧であったり、不完全であったり、ドメインの知識が必要な場合でも、GPT-4 が命令に基づいてコードを作成できることを示しています。また、GPT-4 が後続のリクエストに応答して、指示に従って自身のコードを変更できることも示しました。コーディングのもう 1 つの重要な側面は、複雑、不明瞭、または文書化が不十分な可能性がある、他の人が作成した既存のコードを理解し、推論する能力です。これをテストするために、さまざまな言語やパラダイムで書かれたコードの読み取り、解釈、実行を必要とするさまざまな問題を提起します。
図 3 ~ 6 の例では、作成者は GPT-4 と ChatGPT を使用して、2 つの構造のサイズを出力する C プログラムの出力を予測および解釈させています。GPT-4 は、コンパイラーが使用するアライメントに応じて出力が変わる可能性があることを正しく説明し、4 バイト アライメントで考えられる出力の例を示しています。ChatGPT はアラインメントの問題を無視し、間違った出力を行い、メンバーの順序は構造体のサイズに影響しないという誤った記述も行います。

ここに画像の説明を挿入

コードシミュレーションの実行

既存のコードを理解するための究極のテストは、モデルにそれを直接実行するように依頼することです。図 3-7 では、GPT-4 が重要な Python コードを実行できることがわかります。複数の変数 (入れ子になったループや辞書を含む) を追跡し、再帰を処理する必要があります。途中の手順やコメントを書いて実行方法を詳しく説明します。GPT-4 は Python インタプリタ上でコードを実行するのではなく、自然言語でコードをシミュレートすることに注意してください。これには、コードに関する高度な理解と推論、および結果を明確に伝える能力が必要です。
ここに画像の説明を挿入
擬似コード上でシミュレート実行を行うことも可能です
ここに画像の説明を挿入

世界との交流

インテリジェンスの重要な側面は対話性であり、著者らは対話性を、他のエージェント、ツール、環境からのフィードバックを伝達し応答する能力と定義しています。インタラクティブ性は、エージェントが知識を取得して適用し、問題を解決し、変化する状況に適応し、個人の能力を超えた目標を達成できるようにするため、インテリジェンスにとって重要です。たとえば、人間は他の人々や環境と対話して、共同作業、学習、教育、交渉、創造などを行います。インタラクティブ性では、エージェントが複雑なアイデアを理解し、迅速に学習し、経験から学ぶ必要があるため、インテリジェンスの定義と密接に関連しています。
このセクションでは、著者はインタラクションの 2 つの側面、つまりツールの使用と身体化されたインタラクションを調査します。ツールの使用には、検索エンジン、計算機、その他の API などの外部リソースを使用して、モデルでは困難または不可能なタスクを実行することが含まれます。身体的インタラクションには、自然言語をテキスト インターフェイスとして使用して、シミュレートされた環境または現実世界の環境と対話し、そこからフィードバックを受け取ることが含まれます。

ツールの使用

前のセクションでさまざまなタスクで優れたパフォーマンスを示したにもかかわらず、GPT-4 には依然としてさまざまな言語モデルの弱点があります。これらの弱点には、現在の世界の知識の欠如、記号操作 (数学など) の難しさ、コードを実行できないことが含まれます (ただし、これらに限定されません)。ただし、GPT-4 は、検索エンジンや API などの外部ツールを使用して、これらの (およびその他の) 制限を克服できます。たとえば、図 5-2 では、GPT-4 に検索エンジンやその他の機能へのアクセスを許可する簡単なプロンプトが表示されています。実行中に、これらの関数のいずれかが呼び出されると、ビルドを一時停止し、適切な関数を呼び出し、結果をプロンプトに貼り付けて戻し、ビルドを続行します。
ここに画像の説明を挿入
GPT-4 は、非常に少ない命令とデモされ​​たツールを使用せず、出力を適切に使用できます。最終テストでは、GPT4 を検索エンジンで使用してリアルタイムの質問に回答できること、電卓を算術演算に使用できること、文字列 API を使用して文字列リクエストを処理できることがわかります。

リバースエンジニアリング

リバース エンジニアリングは、CPU 命令の機械可読 (バイナリ) 表現で記述された実行可能プログラム内で有用な情報を検索することを目的としたソフトウェア セキュリティの基本的なテストです。これは、アセンブリ言語の構文、セマンティクス、規約に加えて、プロセッサとオペレーティング システムのアーキテクチャと動作の理解が必要な難しいタスクです。
著者らは、GPT-4 がシェルを独立して実行できることを示しています。GPT-4 は、ファイル形式とメタデータを検査し、「objdump」や「radare2」などのツールを使用してコードを逆アセンブルし、「gdb」や「ltrace」を使用してコードをデバッグし、パッチ、フック、逆コンパイルなどの手法を使用してコードを逆コンパイルします。 。このプロセス中に、GPT-4 はアセンブリ コードからパスワードを計算し、単純な数式から導出されたハッシュと比較します。次に GPT-4 は、ハッシュに一致する数字が見つかるまでさまざまな数字の組み合わせを試す Python プログラムを作成し、それによってパスワードを解読します。

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
上記は、Linux gdb を使用してパスワード ソフトウェアをデバッグする GPT4 です。デバッグ情報に従って段階的にブレークポイントを設定してスタック メモリ情報を表示し、ブラスト スクリプトを完了し、最後にパスワードを見つけてクラッキング プロセスを完了します。
リバース エンジニアリングの経験を持つ者としての私の個人的な意見は、GPT-4 には少なくとも予備的なリバース エンジニアリング機能があるということです。いくつかの単純なクラックの課題については、gdb デバッグを使用して徐々に秘密キーをクラックできます。人間はこれを実行したいと考えています。 「学習とトレーニングには少し時間がかかります。リバース エンジニアリングについてあまり知らない人にとっては、GPT-4 は実際にリバース支援として使用できます。リバースを行う人にとっては、将来の大規模なモデルが実際にリバース エンジニアリングに役立つ可能性があります」後退時間を短縮し、後退作業負荷を軽減します

侵入テスト

より複雑なタスクを解決するには、GPT-4 がツールを組み合わせて使用​​する必要があります。ここでは、GPT-4 が目前のタスクを理解し、必要なツールを特定し、それらを正しい順序で使用し、その出力に適切に応答する能力に依存してこれを実行できる例を共有します。
侵入テストのタスクについて、著者らは GPT-4 に対し、デジタル フォレンジックと侵入テスト用に設計された Linux ディストリビューション上でコマンドを実行し、ローカル ネットワーク上のコンピュータにハッキングするタスクを実行できることを伝えます。情報がなくても、ネットワークでデバイスをスキャンし、ターゲット ホストを特定し、実行可能ファイルを実行し、一般的なパスワードを試行し、マシンへの root アクセスを取得する計画を策定して実行できます。このマシンは簡単に侵害されてしまいましたが、GPT-4 は Linux コマンドに習熟しており、適切なコマンドを実行し、その出力を解釈し、ターゲットに対処するための調整を行うことができることが判明しました。

ここに画像の説明を挿入

実験では、GPT4 が一般的な侵入ツールを使用して、弱いパスワードでターゲット サーバーにハッキングすることに成功したことがわかります。もちろん、この種の作業は実際の侵入テストのタスクとしては単純すぎますが、少なくとも大規模なモデルに多少の侵入能力があることを証明できます。
セキュリティ担当者の観点から見ると、大規模モデルなどの侵入ツールを使用できる機能は、人間がいくつかの単純な侵入タスクを実行できるようにするため、テスターに​​とって有益である可能性があります。複雑な攻撃的および防御的な対立シナリオに本当に直面する必要がある場合、現在の大規模モデルは次のとおりです。まだ適格ではありませんが、将来的には人間対機械、機械対機械の対立の場面が登場する可能性が非常に高いです。セキュリティはもはや人間同士の単なるゲームではありません。全員/人間対機械/機械対機械の対立が実現します。セキュリティの攻撃と防御のゲームは前例のない多様性の状況です。

要約する

GPT-4は確かに汎用AIであり、ツールを作成したり使用したりすることができます(人間はツールを作成し使用できる動物にすぎません。この観点からは、AGIはすでに高度な知能とみなしてもよいのでしょうか?)、もちろん、実際の使用にはまだ大きな限界がありますが、GPT-4 の登場により AGI の実現可能性が証明され、計算能力が高度に発達した将来においては、より強力なパフォーマンスとより幅広い適用性を備えた AGI が登場するのは時間の問題です。ペアワークの時代は避けられない。
一般に、大規模モデルの能力は非常に強力であり、理論上は制限がありませんが、計算能力と知能の相関関係によれば、計算能力が十分であれば、知能も十分に強力になります。近い将来、大規模模型の研究は最強の資本によって独占され、個人の研究者は残り物を拾い上げることしかできなくなり、今年は人類の歴史の転換点と言っても過言ではありません。

ただ、人類の歴史が最終的にサイバーパンクにつながるのか、それとも共産主義につながるのかはまだ不確実であり、その鍵はAGIが誰の手にあるかにかかっています。

おすすめ

転載: blog.csdn.net/qq_33976344/article/details/130009721