みなさんこんにちは。
近年のMicrosoft社の動向にはAIの色を強く感じます。 AIに関連するMicrosoft社のサービス・製品を思い浮かべるとAzure OpenAI Serviceを含むAzure AI Services、Azure Machine Learning、Copilot、...とバリエーション豊かです。
これら一連のサービスを読み解く上で、Azure OpenAI Serviceに対し「APIを使う」という感覚があるとサービスの意義や用途が見えやすくなるかもしれません。 本ブログ記事では「APIを使う」という切り口でAzure OpenAI Serviceをご紹介したいと思います。 今回は技術や操作手順のご紹介というよりも、サービスの根幹を感覚的に掴んで頂くためAPIに主眼を置いています。
※本ブログ記事ではAzure OpenAI Serviceリソースを扱いますが、本リソースの利用にあたってはMicrosoft Learnに記載の通り申請が必要です。
Azure AI Services / Azure OpenAI Service
Azureはさまざまな学習済みのモデルをAzure AI Servicesとして提供しています。 その一例としまして、以下のようなAIを利用することが可能です。(サービスの一覧についてはこちらをご参照ください。)
このうちAzure OpenAI Serviceは大規模言語モデルであるGPTをはじめとしたOpenAI社のモデルを利用できるサービスです。 本記事ではGPTを利用し文章やコードを生成する「Chat Completion」をピックアップしてご紹介します。
Azure AI Servicesでは学習済みのモデルが提供されるため、Microsoft Learnに記載されている通り機械学習やデータサイエンスのスペシャリストでなくともAIを扱うことができ、自身で開発したシステムにAIの機能を取り入れることができるという魅力があります。(もしも独自にモデルの開発をするということであればAzure Machine Learningというサービスを利用することも可能です。)
Azure AI ServicesについてMicrosoft Learnを確認してみると、「APIでAzure AI Servicesの機能を利用する」ということが説明されています。 この「API」がどういったものか、簡単に確認しておきましょう。
「API」によるサービスの利用
API(アプリケーションプログラミングインターフェース)は、異なるプログラムやサービスとのやりとりに利用されます。 APIはAzureやAIに特化した仕組みという訳ではなく、一般に広く様々なサービス・製品で利用されています。 また、APIには個々に仕様、使い方(お作法)があります。 APIを利用する際はこれらを確認した上で扱います。
API利用の例を挙げますと、開発者が自身で作成したWebサイトに天気予報が表示されるようにしたい場合、「サイトの裏側で気象情報を提供するAPIに情報提供をリクエストする」というように実装することができます。 開発者は天気に関する情報の入手を「天気の情報を提供するサービスのAPI」に依頼し、提供された情報がサイト上に反映されるようにすればよく、「開発者自身が気象予報士となって天気を予測する」「開発者自身が日々天気予報をチェックしてサイトを更新する」といったことをしなくて済むという訳です。
これをAzure OpenAI Service (GPT)に置き換えてみましょう。 あるWebサイトにAIと会話できる機能を実装する場合を例にすると以下のようになります。 ユーザーが入力したAIの質問をAzure OpenAI ServiceのAPIに送信(リクエスト)し、その返答(レスポンス)をユーザーに提示するというイメージです。 会話を生成する機能がAzure OpenAI ServiceのGPTによって提供されているため、「開発者がモデル構築のために機械学習の知識を修得する」「開発者が自分で会話生成のためのモデルを構築する」といったことをせずに済むのです。 これは、AIを利用したサービスを開発する上でモデルを構成するためのコストや時間をカットするということにも繋がります。
上図ではWebサイトの裏側でAPIへリクエストを送るという構図になっていますが、下図のようにPCからAPIに対してリクエストを送信するといったことも可能です。
Azure OpenAI Serviceの認証
サービスが従量課金である場合やサービスを利用できるユーザーを限定したいような場合、さらには適正な利用といった観点から、サービスによっては「誰でも利用できてしまう」状態が望ましくない場合があります。