メインコンテンツまでスキップ

テキスト補完 (Text Completion)

テキストを生成または操作する方法を学ぶ

序章

完了エンドポイントは、さまざまなタスクに使用できます。これは、当社のどのモデルに対してもシンプルかつ強力なインターフェースを提供します。テキストをプロンプトとして入力すると、モデルは、与えられたコンテキストやパターンに一致するテキスト補完を生成します。例えば、APIに「デカルトが言ったように、私はこう思う、ゆえに私はある」というプロンプトを与えると、高い確率で完全な「私はある」を返します。

仕上げの探索を開始する最良の方法は、プレイグラウンドを使用することです。これは、補完を生成するためのヒントを送信できる単なるテキスト ボックスです。次の例から始めることができます。

アイスクリーム屋のためにスローガンを書く。

送信すると、次のようなものが表示されます。

アイスクリーム屋のためにスローガンを書く。

私たちはアイスクリームスプーン1杯で笑顔を提供します!

API はデフォルトで非決定論的であるため、表示される実際の完了は異なる場合があります。これは、ヒントが同じままであっても、呼び出すたびにわずかに異なる補完が得られる可能性があることを意味します。温度を 0 に設定すると、出力はほぼ確定的になりますが、それでもわずかな変動が生じる場合があります。

この単純なテキスト入力および出力インターフェースは、指示または実行したいことのいくつかの例を提供することで、モデルを「プログラム」できることを意味します。その成功は、多くの場合、タスクの複雑さとヒントの質に依存します。経験則として、中学生向けの作文問題を書いて、それを解いてもらう場合を考えてみてください。適切に作成されたプロンプトは、モデルが何を求め、どのように応答する必要があるかを知るのに十分な情報を提供します。

このガイドは一般的なヒントデザインのベストプラクティスと例を扱っています。私たちのCodexモデルを使ってコード作業についてもっと知りたいなら、私たちのコードガイドをご覧ください。

デフォルトモデルの訓練データは2021年までなので、現在の事件の状況を知らないかもしれないことを覚えておいてください。私たちは未来にもっと多くの持続的な訓練を追加する計画だ。

提示語(Prompt)デザイン

基礎知識

私たちのモデルは、オリジナルストーリーの生成から複雑なテキスト分析の実行まで、すべてのタスクを遂行できます。彼らは多くのことを成し遂げることができるので、あなたはあなたが望む内容を明確に説明しなければならない。ただ教えるのではなく、見せることは、通常、良いヒントの秘訣です。

ヒントを作成する3つの基本指針は次の通りです。

展示とお知らせ。説明、例示、または両者の結合を通じて、あなたが何を望んでいるのかを明確に示す。モデルに一連の項目をアルファベット順にランキングさせたり、段落を感情別に分類したりしたい場合は、あなたが望む内容を見せてください。

高品質なデータを提供する。もしあなたが分類器を構築したり、モデルをあるパターンに従わせようとするなら、十分な例があることを確認してください。必ずあなたの例を校正してください。モデルは通常、基本的なスペルミスを見破って答えられるほど賢いですが、それが意図的だと思って答えに影響を及ぼすかもしれません。

あなたの設定をチェック。温度とtop_p設定制御モデルが応答を生成する時の確実性。もしあなたが一つの正解の応答を生成するように要求するなら、あなたはこれらを低く設定すべきだ。あなたがもっと多様な反応を望むなら、それらをもっと高く設定する必要があるかもしれません。人々がこれらの設定を使用する時に犯す最初の間違いは、それらが「賢さ」または「創造性」のコントロールだと考えることです。

故障排除

予想通りにAPIを正常に動作させることができないなら、以下のリストに従ってください。

1.生成された期待される結果が明確ですか?

2.十分な例が提供されていますか?

3.例示に間違いがないか確認しましたか?(APIは直接あなたに教えません)

4.あなたは温度とtop_pを正しく使いますか?

分類

APIを使ってテキスト分類器を作る時、私たちは任務説明といくつかの例を提供した。この例では、私たちはツイッターの感情をどのように分類するかを示す。


ツイッターの感情がポジティブか、ニュートラルか、ネガティブかを決める。
ツイッター:私は新しいバットマン映画が好きだ!感情:

この例では、いくつかの注意すべき点がある:

1.入力と出力をわかりやすい言語で記述する。私たちは「ツイッター」を入力することと「感情」を出力することを簡潔でわかりやすく表現した。模範事例として、最も詳細な描写から始めなければならない。略語やキーワードで入力と出力を表現できますが、まずできるだけ詳しく説明して、余計な語彙を徐々に除去して性能が一致しているか確認したほうがいいです。

2.どんな状況にもどう対処するかをAPIに示す。この例で、私たちは指示に可能な感情的なラベルを含んでいる。中性ラベルは非常に重要です。なぜなら、人間でさえ、ある場合によっては、あるものが肯定的か消極的か、または積極的でも消極的でもないかを判断することが難しいからです。

3.身近な任務に対して、あなたはもっと少ない例示が必要だ。私たちはこの分類器について何の例も提供しなかった。APIが感情とツイッターの概念を理解したからだ。もしAPIに不慣れな分類器を構築しているなら、より多くの例を提供する必要があるかもしれません。

分類器の効率を高める

今、私たちは分類器をどのように構築するかを把握しました。これを例に挙げて、より効率的にして、一つのAPI呼び出しで複数の結果を得ることができます。

以下のツイッターの感情を分類する:


「私は宿題に耐えられない」
「これは最悪だ、私は退屈だ😠」
「ハロウィンが待ちきれない!」
「私の猫は可愛い❤️❤️」
「私はチョコレートが嫌い」ツイッター感情評価:

私たちは番号付きのツイッターリストを提供し、APIが一つのAPI呼び出しで5つの(さらに多くの)ツイッターを評価することができます。

注意しなければならないのは、APIにリストの作成や評価テキストを要求する時、ドリフトを避けるために確率設定(Top Pまたは温度)に特に注意を払う必要があります。

-複数のテストを実行することで、あなたの確率設定が正しく校正されていることを確認してください。

-リストを長くしないでください。そうしないと、APIがドリフトする可能性があります。

生成

APIは最も強く、同時に最も簡単な任務の一つで、入力された新しい思想やバージョンを生成することです。ストーリーのアイデア、ビジネス計画から、キャラクター描写、マーケティングスローガンまで、どんな質問でも提起できます。この例では、APIを使って仮想現実を使ってフィットネスするアイデアを作ります。

ブレーンストーミング、VRとフィットネスを結合したアイデア。

必要であれば、ヒントにいくつかの例を含めることで、応答の質を向上させることができます。

会話

APIは人間、さらには自分自身との対話がとても上手です。数行のコマンドだけで、APIがスマート顧客サービスチャットボットとして、慌てず、知能的に質問に答えたり、賢い会話パートナーとしてジョークやダジャレを作ることができます。肝心なのはAPIにどう行動すべきかを教え、そしていくつかの例を提供することだ。


以下はAIアシスタントとの会話の例です。助手は親切で、創意的で、賢くて、とても親切です。
人間:こんにちは、あなたは誰ですか?AI:私はOpenAIが作ったAIです。私は今日何か手伝ってあげられますか?
人間:

それが会話ができるチャットボットを作るのに必要な全てだ。そのシンプルさの背後には、いくつかの注目すべき点がある:

1.私たちはAPIに意図を伝えますが、私たちはまた、どのように行動するかを教えます。他のヒントのように、私たちはAPIが何を表すかを提示しますが、もう一つの重要な細部事項も追加しました。私たちは「アシスタントが親切で、創意的で、賢くて、とても親切」というフレーズとどのように相互作用するかを明確に教えます。この指示がなければ、APIは軌道から逸脱し、相互作用している人を模倣し、皮肉や他の私たちが避けたい行動になるかもしれない。

2.私たちはAPIに身分を与える。最初は、APIをAIアシスタントとして答えてもらいました。APIには内在的なアイデンティティがないが、できるだけ真実に近い方法で答えるのに役立つ。あなたは他の方面で身分を使って他の種類のチャットボットを作ることができます。APIに生物学研究科学者として答えると言ったら、その背景で期待されるような知能と思慮深いコメントをもらえます。

Marvはチャットボットで、消極的に皮肉な答えで質問に答えます。
あなた:1キロに何ポンドですか。
Marv:また来たの?1キログラムは2.2ポンドに等しい。これをメモしてください。
あなた:HTMLは何を表していますか?
Marv:Googleは忙しすぎますか?ハイパーテキストマークアップ言語。Tは未来にもっと良い質問をすることを象徴する。
あなた:最初の飛行機はいつ飛行しましたか?
Marv:1903年12月17日、ウィルバーとオーウェル・ライトが最初の試験飛行を行った。私は彼らが来て私を連れて行ってくれることを願う。
あなた:人生の意味は何ですか?
Marv: 私は確かではない。私は私の友達のグーグルに聞いてみる。
あなた:なぜ空が青いの?

面白くて有用なチャットボットを作るために、私たちはいくつかの質問と答えの例を提供し、APIに返信方法を見せます。いくつかの皮肉な反応だけで、APIはパターンを把握し、無数の皮肉な反応を提供することができる。

変換

APIは言語モデルで、情報を表現するための様々な単語や文字の方式に精通している。これは自然言語のテキスト、コード、そして英語以外の言語を含む。このAPIは内容も理解でき、それをまとめ、変換し、異なる方法で表現することができます。

翻訳

この例では、APIを英語からフランス語、スペイン語、日本語に変換する方法を示した。

 以下の内容をフランス語、スペイン語、日本語に翻訳します: What rooms do you have available? 

この例が有効なのは、APIがこれらの言語を習得しているので、教えようとする必要がないからだ。英語をAPIに慣れていない言語に翻訳したい場合は、より多くの例を提供し、さらに微調整モデルで流暢に完成できます。

変換

この例では、私たちは映画の名前を絵文字に変える。これはAPIが捕獲モードに適応し、他の文字と一緒に働く能力を示した。

映画のタイトルを絵文字に変換する。未来に戻る:👨👴🚗🕒 バットマン:🤵🦇 トランスフォーマー:🚗🤖 スターウォーズ:

まとめ

このAPIはテキストの文脈を理解し、それを異なる方法で再表現することができる。この例では、私たちはより長くて複雑なテキストの段落から子供たちが理解できる解釈を作る。これはこのAPIが言語に対する深い理解を示している。

2年生のために要約すると、木星は太陽から5番目に遠くて体積が大きい惑星です。
ガス惑星で、質量は太陽質量の千分の1に過ぎませんが、他の全ての惑星より2倍半多いです。
木星は空で肉眼で視認性が高い物体の一つで、歴史を記録する前から古代文明に知られていた。
ローマ神話の神々の王ジュピター(Jupiter)にちなんで命名された[19]。
地球から観察する時、木星は目に見える影の反射光を出すのに十分で、平均的に言えば、
月と金星に次いで空の自然物の中で3番目に明るい。

完成

すべてのヒントは完成に繋がりますが、APIがあなたの仕事を引き継ぐことを望む時、テキスト補完(Text completion)を自分の任務とみなすことを考えてください。例えば、このヒントが与えられれば、APIは垂直農業に関する考え方の訓練を続ける。温度設定を下げてAPIを提示意図にもっと集中させたり、温度設定を増やしてテーマから逸脱させることができます。

垂直農業は食品の現地化生産を実現するための斬新な解決策を提供し、輸送コストの削減と...

以下のヒントは、完全性を使ってReactコンポーネントを書くのに役立つ方法を示しています。私たちはAPIにいくつかのコードを送り、Reactライブラリの理解のため、残りの部分を引き続き実行することができます。私たちのCodexモデルを使って理解やコード生成などのタスクを処理することを提案します。詳細については、私たちのコードガイドをご覧ください。

 import React from 'react'; const HeaderComponent = () => ( 

事実回答 このAPIはデータから多くの知識点を学び、非常にリアルに聞こえるが、実際には架空の答えを提供する能力を持っています。APIが答えを作る可能性を制限するには2つの方法がある:

1.APIに基本的な事実情報を提供し、もしAPIに質問に答える(例えば、Wikipediaの項目)の本文内容を提供するなら、それは簡単にでたらめを言うのではない。

2.低い確率を使ってAPIに「私は知らない」の話し方を教えてください。もしAPI理解が、ある場合、応答の不確実性に「私は知らない」やある変化が適切だと言う場合、答えを少なくする傾向があります。この例では、APIが問題と答えのサンプルを把握し、理解できない問題の例を挙げて疑問符を追加しました。私たちはまた確率をゼロに設定します。そうすれば、疑問があれば、APIは「?」を使う可能性が高いです。返事する。

質問:誰がバットマンですか?
答え:バットマンは架空の漫画のキャラクターです。
Q:torsalplexityとは何ですか?
答え:?
質問:Devz9とは何ですか?
答え:?
質問:ジョージ・ルーカスは誰ですか?
答え:ジョージ・ルーカス(George Lucas)はアメリカの映画監督とプロデューサーで、『スターウォーズ』の創作で有名です。
「カリフォルニア州の首都はどこですか?」と尋ねました。
答え:「サクラメント」
「地球の周りを回る天体は何がありますか?」と尋ねた。
「月」と答えました。
質問:フレッド・リクソン(Fred Rickerson)は誰ですか?
答え:?
質問:原子とは何ですか?
答え:原子はすべてのものを構成する微小な粒子である。
質問:アルヴァン・マンツ(Alvan Muntz)は誰ですか?
返事を待つ。
質問:Kozar-09とは何ですか?
返事を待つ。
質問:火星にはいくつの衛星がありますか?
答え:火星には2つあり、それぞれPhobosとDeimosです。

テキストを挿入(テスト版)

完成エンドポイントは、プレフィックス提示を除いて、サフィックスヒントを提供することでテキストにテキストを挿入することをサポートします。長い文章を書いたり、段落の間で変換したり、大綱を守ったり、モデルを終わりに導く時、自然にこのような需要が現れます。これはコードにも適用され、関数やファイルの真ん中に挿入するのに使えます。詳細については、私たちのコードガイドをご覧ください。

拡張子の文脈が私たちの予測能力の重要性を説明するために、「今日私は大きな変化をすることに決めました」というヒントを考慮してください。文を完成させることを想像できる多くの方法がある。しかし、もし私たちが今物語の結末を提供するなら、「私の新しい髪型はたくさん褒められた!」と、意図が明確になります。

私はボストン大学に勉強しに行きます。学位を取った後、私は変化することに決めた。
大きな変化だ!私は荷物をまとめてアメリカ西海岸に引っ越した。
今、太平洋は私のお気に入りになりました!

モデルに追加的な文脈を提供することで、それはよりコントロール可能で操作可能だ。しかし、これはモデルにとってより限定的で挑戦的な課題だ。

ベストプラクティス

テキスト挿入はベータ版の新しい機能であり、より良い結果を得るためにAPIの使用方法を修正する必要があるかもしれません。以下はいくつかのベストプラクティスです:

  • max_tokens > 256を使用。モデルは挿入が長く完成する時、より効果的です。Max_tokensが小さすぎると、モデルはサフィックスを接続する前に切断される可能性がある。より大きなmax_tokensを使っても、生成token数の面では実際の生成token数に対応する費用だけを請求することに注意してください。

  • Finish_reason == "stop"を優先的に選択。モデルが自然停止点やユーザーが提供した停止シーケンスに達すると、finish_reasonを「stop」に設定します。これはモデルがサフィックスに成功的に接続され、良い品質が完成された良い信号であることを示している。これはn>1または再サンプリング(下点参照)時にいくつかの完成を選択することと特に関連があります。

  • 3 ~ 5 回再サンプリング。ほとんどすべての補完は接頭辞でリンクされていますが、難しいケースでは、モデルが接尾辞でリンクするのが難しい場合があります。3 回または 5 回のリサンプリング (または k=3,5 で best_of をを使用)と、finish_reason として "stop" を使用してサンプルを選択することが、問題をこの種の解決する効果的な方法の 1 つになることがわかりました。リサンプリングするときは、多様性を高めるために温度を高くすることが望ましい場合がよくあります。注: 返されたすべての例が finish_reason == " length " である場合、max_tokens。Max_tokens可能性があります小さすぎて、ヒントとサフィックスが自然に接続される前にモデルがトークンを使い果たしているが。

  • より多くの手がかりを与えるように努める: 場合によっては、モデルがコンテンツを生成しやすくするために、モデルが自然な一時停止を決定するために従うことができる例を提供することで、手がかりを与えることができます。

美味しいホットチョコレートの作り方:
沸騰したお湯を煮る。
ホットチョコレートをコップに入れます。
コップにお湯を入れます。
美味しいホットチョコレートを楽しむ。

犬は忠実な動物です。
ライオンは凶暴な動物です。
イルカは遊ぶのが好きな動物です。
馬は雄大な動物です。

テキストの編集 (Alphaテスト)

edits エンドポイントは、テキストを完成させるだけでなく、テキストを編集するために使用できます。テキストと編集指示を入力すると、text-davinci-edit-001 モデルがそれに応じて編集を試みます。これは、テキストを翻訳、編集、および調整するための自然なインターフェイスです。また、コードのリファクタリングと操作にも役立ちます。詳細については、コード ガイドをご覧ください。この初期テスト中、edits エンドポイントは自由に使用できます。例

入力:GPT-3はとても良いAIで、返事を書くのが得意で、質問されたらアドバイスをします。これはそれによって作られ、韻を踏む詩だ。
出力:私はとても良いAIです。私は返事を書くのが得意です。質問されたら、私のアドバイスをします。これは私が作って韻を踏んだ詩だ。
説明:GPT-3自身の口調で答えさせる(文中のGPT-3を私に変えた)