Azure OpenAI とテキスト入力候補の概要

完了

Azure OpenAI Service では、モデル シリーズの GPT-3.5 や GPT-4 など、OpenAI の強力な言語モデルを REST API として使用できます。 これらのモデルは、特定のタスクに合わせて簡単に調整できます。たとえば、コンテンツの生成、まとめ、セマンティック検索、自然言語からコードへの翻訳などです。

REST API アクセスに加え、Azure OpenAI サービスにアクセスするための .NET SDK があります。 それを今回のアプリケーション ビルドに使用します。 ただし、アプリケーションをビルドする前に、Azure OpenAI とは何か、テキスト入力候補とは何かについてもう少し学習しましょう。 その知識は、AI で優れたアプリケーションをビルドするために必要な土台となります。

Azure OpenAI の概要

Azure OpenAI Service では、OpenAI GPT-3.5、GPT-4、Codex、DALL-E モデルによる高度な言語 AI に加え、Azure のセキュリティ機能とエンタープライズ機能を顧客に提供します。 Azure OpenAI は OpenAI と共に API を共同開発しており、互いの互換性とスムーズな移行を可能にしています。

Azure OpenAI を使用すると、顧客は OpenAI と同じモデルを実行しながら、Microsoft Azure のセキュリティ機能を使用できます。 Azure OpenAI は、プライベート ネットワーキング、リージョン可用性、責任ある AI コンテンツのフィルタリング、独自のデータでモデルを拡張する機能を備えています。

入力候補エンドポイントは、API サービスのコア コンポーネントです。 この API は、モデルのテキストイン、テキストアウト インターフェイスへのアクセスを提供します。 英語のテキスト コマンドを含む入力プロンプトをユーザーが指定するだけで、モデルによってテキスト入力候補が生成されます。

テキスト入力候補

このユニットでは、テキスト入力候補について学習します。 入力候補エンドポイントはさまざまなタスクに使用できます。 あらゆる Azure OpenAI モデルにとってシンプルながらパワフルなテキストイン/テキストアウト インターフェイスになります。 プロンプトとしてテキストを何か入力すると、文脈やパターンに一致するようなテキスト入力候補がモデルによって生成されます。 たとえば、「デカルトが言ったように、我思う、ゆえに」というプロンプトを API に与えると、高い確率で「我あり」という入力候補が返されます。

AI は既定で確率的になっているため、実際の入力候補結果は異なる場合があります。 言い換えると、プロンプトが同じであっても、呼び出すたびに少し異なる候補が得られる可能性があります。

このシンプルな "テキストイン、テキストアウト" インターフェイスでは、実行したい操作の指示や、いくつかの例を示すことで、モデルを "プログラミング" できます。 通常、それが成功するかどうかは、タスクの複雑さとプロンプトの品質によって決まります。 小学生が解くような国語の問題を作るようなものであると一般的には考えられます。 適切に記述されたプロンプトは、必要な内容とその対応方法をモデルが十分に把握できる情報を提供します。

良いプロンプトの作り方はもう少し後で確認するとして、別の種類の入力候補を見てみましょう。

Azure OpenAI 入力候補の種類

前述のように、ユーザーは Azure OpenAI API にプロンプトを渡します。API に対する指示がそのプロンプトに含まれています。 また、テキストを分類したり、アイディアを生み出したり、さらにはテキストを絵文字に変換したりすることもできます。

分類

この最初の入力候補の種類について、指示によってモデルを "プログラミング" する方法について詳しく確認しましょう。

事前定義されたカテゴリにデータを分類するよう、モデルに指示できます。 この入力候補の種類は、分類と呼ばれます。

たとえば、次のような指示またはプロンプトを入力候補 API に渡すことができます。

This is a sentiment classifier

Example: "I loved the new movie!"
Sentiment: Positive

Example: "I hate it when my phone battery dies"
Sentiment: Negative

Example: "My day has been 👍"
Sentiment: Positive

Example: "This is the link to the article"
Sentiment: Neutral

Examples:
1. "I loved the new Batman movie!"
2. "I hate it when my phone battery dies"
3. "My day has been 👍"
4. "This is the link to the article"
5. "This new music video blew my mind"

Examples sentiment ratings:
1: Positive
2: Negative
3: Positive
4: Neutral
5: Positive

Create sentiments for:
1. "I can't stand homework"
2. "This is no fun. I'm bored 😠"
3. "I can't wait for Halloween!!!"
4. "My cat is adorable ❤️❤️"
5. "I hate chocolate"

Sentiment classifications:
1.

センチメントによって分類された文章の 4 例をモデルに示した後、それに例リストを与え、その後、同じ番号インデックスのあるセンチメント評価リストを与えます。 このリストからこの API は、分類後のセンチメントの出力方法を選択できます。

結果、モデルに実行させることがわかります。つまり、分類する 5 つのセンチメントを与えます。その後、それぞれの分類が昇順または降順のリストで出力されるはずです。

これで、たった 1 回呼び出すだけで、5 つ (あるいはそれ以上の) 例をモデルは評価できます。

モデルに渡されるプロンプトまたはテキストがプログラミング言語であることがだんだんわかってきます。

世代

さまざま GPT モデルで実行できる非常にパワフルであるが非常にシンプルでもあるタスクとして、入力の新しいアイディアやバージョンの生成があります。 ストーリーのアイディアをいくつか記載したリストをモデルに与えると、そのリストを増やそうとモデルは試行します。 わずかな例を提供するだけで、ビジネス プラン、文字の説明、マーケティング スローガンが作成されるのを見てきました。

会話

モデルは熟練の域で人間との会話を続け、さらにはモデル自体との会話も続けます。 ご存知のように、たった数行の指示があれば、戸惑うことなくインテリジェントに質問に回答するカスタマー サービス チャットボットや、ジョークやしゃれを言う冗談好きな話し相手としてモデルは機能します。

変換

モデルは、単語や文字で情報を表現するさまざま方法に精通している言語モデルです。 これは、自然言語のテキストから、コードや英語以外の言語までにわたります。 モデルは、さまざまな方法でコンテンツを要約、変換、表現できるレベルでコンテンツを理解することもできます。

翻訳

モデルはフランス語などの多くの言語を既に理解しているため、それを教える必要はありません。 その代わりに必要になる作業は、ある言語から別の言語に翻訳していることが理解されるよう、十分な翻訳例をプロンプトで指定することだけです。

変換

この例では、映画の名前を絵文字に変換します。 これは、柔軟にパターンを拾い、他の文字に取り組むことができるモデルの機能を示しています。

ここでは、映画「スパイダーマン」を表す絵文字が出力されることが想定されます。

Back to Future: 👨👴🚗🕒
Batman: 🤵🦇
Transformers: 🚗🤖
Wonder Woman: 👸🏻👸🏼👸🏽👸🏾👸🏿
Spider-Man: 🕸🕷🕸🕸🕷🕸
Winnie the Pooh: 🐻🐼🐻
The Godfather: 👨👩👧🕵🏻‍♂️👲💥
Game of Thrones: 🏹🗡🗡🏹
Spider-Man:

概要

モデルはテキストの文脈を把握し、別の方法で言い換えることができます。 たとえば、ひとまとめのテキストを受け取り、子供に理解されるような表現を作ることができます。

Completion

すべてのプロンプトは結果的に入力候補になりますが、テキスト入力候補とはモデルに仕事を与えるようなものです。入力をやめたところから先はモデルに思考させるわけです。 たとえば、このプロンプトを与えると、垂直農業とは何か、モデルは思考を続けます。

Vertical farming provides a novel solution for producing food locally, reducing transportation costs and

実際の応答

大規模言語モデル (LLM) には、トレーニングに使用されたデータから学習したたくさんの知識があります。 もっともらしく聞こえるが実は創作された応答を返す機能もあります。 LLM で回答が創作される可能性を制限する方法が 2 つあります。

  • 1. API にグラウンド トゥルースを提供する 質問に回答するためのテキスト本文 (Wikipedia 投稿など) をモデルに提供すると、回答が創作される可能性が少なくなります。

  • 2. 低い確率を使用し、"わからない" と答える方法を API に示す 回答に確信がないなら "わからない" などと答えたほうが良いことをモデルが理解していれば、回答が創作される可能性が少なくなります。

この例では、モデルが知っている質問と回答の例をモデルに与え、その後、モデルが知りえないものの例を与え、疑問符を与えます。 また、疑問がある場合にモデルが回答に "?" を付ける可能性が高くなるよう、確率を 0 に設定します。

Q: Who is Batman?
A: Batman is a fictional comic book character.

Q: What is torsalplexity?
A: ?

Q: What is Devz9?
A: ?

Q: Who is George Lucas?
A: George Lucas is American film director and producer famous for creating Star Wars.

まとめ

Azure OpenAI Service では、モデル シリーズの GPT-3.5 や GPT-4 など、OpenAI の強力な言語モデルを REST API として使用できます。 セキュリティやエンタープライズの機能も提供します。これは Azure クラウドから利用するようになっています。

OpenAI 言語モデルの最も便利な機能の 1 つはテキスト入力候補です。 モデルへの指示をプロンプトで渡すか、平易な言葉で表現することで、テキスト分類、テキスト生成、テキスト要約といったタスクをモデルは実行できます。

自分の知識をチェックする

1.

分類の入力候補とは何をするものですか?