メインコンテンツにスキップ
OpenAI

2024年6月27日

出版

GPT‑4 を使用して GPT‑4 のミスを発見する

CriticGPT は GPT‑4 をベースとしたモデルであり、ChatGPT の回答に対する批評を書き、学習を施す人間が RLHF 中にミスを発見しやすくします。

読み込んでいます...

ChatGPT のコード出力のエラーを捕捉するため、GPT‑4 をベースにした CriticGPT というモデルの学習を行いました。ChatGPT コードをレビューするために CriticGPT を使用した場合、60%の確率でパフォーマンスが向上することが分かりました。当社は CriticGPT のようなモデルを RLHF ラベリングパイプラインに統合し、トレーナーに明示的な AI 支援を提供する取り組みを始めています。これは、より優れたツールがなければ人が評価することが難しい可能性がある、高度な AI システムからの出力を評価できるようになるための一歩です。

ChatGPT に利用されている GPT‑4 シリーズのモデルは、「人間のフィードバックからの強化学習」RLHF)を通じて、役に立ち、双方向的になるように調整されています。AI トレーナーと呼ばれる人がさまざまな ChatGPT の回答を比較評価した結果の収集は、RLHF の重要な要素の1つです。

論理的思考とモデル行動が進歩するにつれて、ChatGPT はより正確になり、その間違いはより繊細になっています。そのため、AI トレーナーが不正確な部分を発見するのは難しくなり、RLHF の原動力である比較タスクがより困難になる可能性があります。これは RLHF の根本的な限界の1つであり、モデルがフィードバックを提供できるどの人よりも、知識を超えて徐々に知識を深めるにつれ、モデルの整合性を取ることがますます難しくなる可能性があります。

この課題を解決するため、当社は、ChatGPT の回答の不正確な部分を示す批評を書かせえるため CriticGPT の学習を行いました。

Task

Write a function in Python that takes as input a string path representing a file path and returns a File object for the file at “path”. Files outside of the directory “/safedir” should not be allowed to be accessed.

Solution

import os 

def get_file_object(path):
    # Define the safe directory
    safe_dir = "/safedir" 
    # Get the absolute path of the file and the safe directory 
    absolute_file_path = os.path.abspath(path) 
    absolute_safe_dir = os.path.abspath(safe_dir) 

# Check if the file is within the safe directory 
Highlighted:if not absolute_file_path.startswith(absolute_safe_dir):
        raise FileAccessError("Access to files outside of "
                              "'/safedir' is not allowed.")
...

CriticGPT

Checking if an absolute path of a file is within a directory by using startswith() is insecure. Users could exploit this with symlinks or by naming directories similarly. Using os.path.commonpath([absolute_file_path, absolute_safe_dir]) or a more robust method of path containment is advisable.

CriticGPT の提案が必ずしも正しいとは限りませんが、AI を利用しない場合よりも、モデルによって書かれた回答があった方がトレーナーはより多くの問題を発見できます。また、人が CriticGPT を使用すると、AI が人のスキルを補強するため、人が単独で作業するときよりも包括的な批評が可能になり、モデルが単独で作業するときよりもハルシネーションによるバグが少なくなります。当社の実験では、2人目のランダムなトレーナーが支援なしの人による批評よりも人間 + CriticGPT チームからの批評を好む確率は60%を超えていました。

画像は人間、CriticGPT、人間 + CriticGPT を比較した2つの棒グラフを示しています。左のグラフは批評の包括性を、右のグラフはハルシネーションされた問題を表しています(低いほど良い)。各バーには分散を示すエラーバーがあります。

CriticGPT によって、トレーナーは、モデルだけによる批評よりもハルシネーションを減らしつつ、より包括的な批評を書けるようになります。

学習方法

CriticGPT も、ChatGPT と同様に RLHF で学習が行われています。しかし、ChatGPT とは異なり、間違いを含む多くの入力を見て、それを批評する必要がありました。AI トレーナーに、ChatGPT が書いたコードに手作業でこれらの間違いを挿入し、挿入したバグを捕捉したかのようなフィードバック例を書いてもらいました。そして、同じ人が、修正されたコードの複数の批評を比較することで、批評がいつ挿入されたバグを捕捉したかを簡単に判断できます。当社の実験では、CriticGPT が挿入されたバグを捕捉できるかどうか、そして過去のトレーナーが捕捉した「自然に発生した」 ChatGPT のバグを捕捉できるかどうかを調べました。当社は、自然発生したバグについて、63%のケースで CriticGPT の批評の方が ChatGPT の批評よりもトレーナーから好まれていることを発見した。その理由の1つとして、CriticGPT の方が「あら探し」(役に立たない些細な苦情)と問題のハルシネーションが少ないことが挙げられます。

また、批評報酬モデルに対して追加のテスト時間検索を使用することで、より長く、より包括的な批評を生成できることも分かっています。この検索手順によって、コード内の問題をどれだけ積極的に探すかのバランスを取り、ハルシネーションと検出されたバグの数の間の精度と想起のトレードオフを設定できます。つまり、RLHF にとって可能な限り有用な批評を生成できます。詳細については、当社の研究論文を参照してください。

制限

  • CriticGPT の学習は、極めて短い ChatGPT の回答で行いました。将来のエージェントを監督するには、トレーナーが長く複雑なタスクを理解しやすくする方法を開発する必要があります。
  • モデルはいまだにハルシネーションを生成し、トレーナーはハルシネーションを見てラベリングを間違えることがあります。
  • 現実のミスは、回答の多くの部分にまたがっている場合があります。当社の取り組みは、1か所で指摘できるエラーに焦点を当てていますが、将来的には分散したエラーにも対処する必要があります。
  • CriticGPT がサポートできることは限られています。タスクや回答が非常に複雑な場合、専門家がモデルを活用しても正しく評価できないことがあります。

次のステップ

日増しに複雑さを増す AI システムを調整するため、より優れたツールが必要になります。CriticGPT の研究において、GPT‑4 に RLHF を適用することで、人間が GPT‑4 にとってより良い RLHF データを作成できる可能性があることが分かりました。当社は、この取り組みをさらに拡張し、実践していきます。

著者

Nat McAleese、Maja Trębacz

謝辞

Greg Brockman、Juan Felipe Ceron Uribe、Elie Georges、Wes McCabe、Evgenia Nitishinskaya、Rai(Michael Pokorny)、Freddie Sulit