鈴木氏の自己紹介

鈴木和男氏:では始めます。ゴールデンウィーク直前にもかかわらず、たくさんの方にお集まりいただいきありがとうございます。それでは、さっそく始めます。

私のほうからは、Azure OpenAI ServiceのChatGPT APIと、OpenAIのChatGPT APIに関して、お話しできればなと思います。

プロダクションレベルで運用しているので、各々いい点、悪い点はあったりしますが、それも交えながら話せればなと思います。

スピーカーに関して説明します。私は、株式会社wevnalでCTOをしている、鈴木和男と申します。時間がないのでさくっと言うと、2023年4月頭にすごくバズっていた、「GPT-4時代のエンジニアの生存戦略」という記事を書いていた人という感じですね。

「Azure OpenAI ServiceのChatGPT API」と「OpenAIのChatGPT API」の比較における5つの観点

さっそく比較しますが、技術選定をしていく上でなにが重要になってくるかを、5つのカテゴリーに分け、各々のカテゴリーで比べられればと思っています。

(スライドを示して)Azure OpenAI Serviceのところに「AOAI」と書いてあると思いますが、Azure OpenAI Serviceって長いので、中の人はAOAIって略しているんですね。なので、このセッション内ではAOAIと略そうかなと思っています。

それではさっそく比較します。5つの観点ですね。最初に、安定性と可用性を説明した上で、その次に重要になるであろうセキュリティとか料金とか、あとはリリース速度や利用方法や組み込み方法、サポート体制を比べられればと思っています。

安定性/可用性の比較

まず安定性/可用性に関してですが、安定性/可用性は、AOAIのほうが確実に優れています。まず安定性に関して言うと、OpenAIのほうは日本時間夜になると、やはりレスポンス速度が不安定になってタイムアウトが多発することがあるんですね。

なので、レスポンス速度が不安定になってしまった結果、タイムアウトの設定時間を何秒にするのかの設定がけっこう難しくて。けっこう難儀なところがあります。

AOAIのほうは時間帯を問わずレスポンス速度が安定しているので、安定性に関してはAOAIのほうが優れているかなとは思っています。

次に可用性のところに関しては、AOAIのほうは「Azure Cognitive Services」というAI系サービス、Azureの中にAI系サービスがあるんですが、その1サービスとしてSLA(Service Level Agreement)も99.9パーセントあるという、それなりの可用性を誇る感じになっています。

OpenAIのほうはサービス規約上SLAはなくて、サービスページのほうから稼働率を見ることができます。実稼働率は99.52ですね。

一時期98パーセント台まで落ちちゃっていたりしたので、だいぶ良くはなってきました。ただ、可用性に関して言えば、AOAIと比べると落ちてしまう部分はある印象ですね。

なので、安定性/可用性に関してはAOAIのほうが優れているかなというのが、実際に両方運用してみて思っているところです。

セキュリティの比較

次にセキュリティの比較をします。セキュリティに関しては、2つの観点から比べようかなと思っています。インフラセキュリティとプロンプトインジェクション対策です。どっちもやらなければ、本番運用はけっこう厳しいところがあります。

まずインフラセキュリティのほうから説明すると、AOAIのほうは「Private Endpoint」や「Private Link」などのAzureのサービスを組み合わせると、インターネットを経由せずにAPIを利用できるのが非常に大きいところだなと思っています。

これはAzureだけではなくて、AWSからつなぐ場合でも同様ですね。なぜここが大きいかというと、OpenAIは基本的にインターネットに出さないといけないので、APIのアクセスキーが漏れた瞬間に、予算の上限まで余裕で使われてしまうことも覚悟しなければならないと思います。(一方で)AOAIのほうは、アクセスキーが漏れたとしても即死ぬことにはならないんですね。

ほかのエンドポイントとかホスティングしているリージョンとかのパラメーターがありますが、それが漏れたとしても、イントラネットに組み込むと言うか、VNet内に閉じ込めている上ではインターネットを経由していないので、それで即死ぬということにはならなくて。

さすがにVNet内に侵入されたら死ぬ可能性はありますが、そこは「Office」のゼロトラストというアーキテクチャのセキュリティ系の仕組みと組み合わせることによって、VNet内に侵入されていてもある程度は検出できるかなというところで。かなりの強み、セキュリティ対策ができるかなと思っています。

プロンプトインジェクション対策に関してですが、AOAIのほうはプロンプトインジェクションのベストプラクティスというものがまだなくて。できてベタープラクティスぐらいだと思います。

AOAIのほうは、コンテンツフィルターというものが初期設定でされていて。簡単にイメージしてもらうと、緩めの枠みたいな感じですね。なので、ある程度自動でセキュリティ対策が入った状態。プロンプトインジェクションの対策が取れた状態にはなるかなという感じです。ただ完璧ではないので、けっこう自前でもやる必要があります。

他方、OpenAIのほうはコンテンツフィルターとかは一切ないので、自前でプロンプトインジェクション対策をけっこうごりごりに組まないといけないんですね。

そこが漏れているサービスが世の中にちょっと多い印象があるので、どのみち自分でやる必要があるにしろ、最初からある程度プリセットされているAOAIのほうが、運用していて楽だなと感じていますね。

セキュリティに関してはAOAIのほうが優れているかなというところで。ただ、最初にお伝えしたとおり、すべてにおいてAOAIが絶対に勝っているというわけではないので、その点であとの説明をします。

料金の比較

安定性/可用性、セキュリティと来たら、次に料金面が心配になるかなと思います。料金面に関しては、APIの課金体系はAOAIもOpenAIも同じです。

ただ、先ほどのセキュリティ系の機能を使おうとすると、ややAOAIのほうが高額になるかなという感じですね。Azureを使っている方(の中)で、それを嫌ってAOAIじゃなくてOpenAIのほうを使っているような方がいるというような話は聞きました。

なので、料金面に関しては両方とも同じような感じかなと思っています。

サービスのリリース速度・利用方法の比較

次に、サービスのリリース速度とか利用方法に関して比べると、こちらは利用する上ではOpenAIのほうが優れています。

まずリリース速度に関して、当然ではありますが、AOAIはOpenAIが出したものをAzureで提供しているかたちになるので、OpenAIが最初にリリースして、その1、2週間後ぐらいにAOAIのほうがリリースされる感じになるんですよね。

どんどんリードタイムは短くなってきていますが、最初にリリースされるのはOpenAIなので、OpenAIのほうがリリース速度に関しては絶対に勝っているかなと思っています。

次に利用方法ですが、ここが最初にお話しした安定性の部分にけっこう大きく影響しているところで、利用に申請が必要なケースはAOAIのほうが多いんですね。

許可方式で両方ともAzureにホスティングされているのでインフラは同じなんですが、人数制限がけっこう厳しく、AOAIのほうが効いている結果、余裕を持って使えるというところで、安定性が担保されているところが大きいのかなと私は思っています。

他方、OpenAIのほうは基本的には申請が要る時はあるんですが、Waiting List方式なので、申請が落ちることはまずないというのがあります。

使わせてもらえはしますが、そのぶん人数が多くなってしまって満員電車みたいな状態になってしまった時に、サービスの安定性がちょっと落ちる時がある印象があります。

ただ全体として見れば、リリース速度や利用方法はOpenAIのほうが優れているかなという印象です。

組み込み方法・サポートなどの比較

最後に、組み込み方法とかサポートのほうの説明をします。こちらに関しては、正直意見が分かれそうだというのが私の所感ですね。

なんでかと言うと、AOAIのほうは同じライブラリを使っていますが、必要なパラメーター数がちょっと多いんですね。実装方法が変わってしまうので、世の中にある「やってみた」系のものを試すのがOpenAIのAPIよりもやや難しくなってしまう印象を持っています。

世の中にある「何々やってみた」みたいなものは、だいたいOpenAIが軸に作っているので、OpenAIを使って実装したほうが簡単になるかなという印象ですね。

ただそれと引き換えに、サポート体制に関してですが、AOAIはAzureのサービスなので、Azureのサポートリクエストを使ってプロに聞くことができるのはけっこういいところで。

OpenAIはサポートサービスが存在しないので、Discordコミュニティとかで解決することが必須になってくるんですね。

なので、GCP(Google Cloud Platform)みたいな、サポートがけっこう薄いストロングスタイルが好きな方はOpenAIのほうが好きだと思いますし、サポートがけっこう手厚いほうが実装がちょっと難しいよりもうれしい方々は、AOAIのほうが好きになるかなというところで、ここは意見が分かれるところかなと思っております。

ただそれでも、結論としてはセキュリティと安定性という面でやはりAOAIのほうが優れているので、本番環境でプロダクション運用をするんだったら、さすがにAOAIを使ったほうがいいかなと思っています。

実際のところ、弊社もそれで「BOTCHAN AI」というサービスをAOAIを使ってホスティングしている次第です。

「Azure OpenAI ServiceのChatGPT API」と「OpenAIのChatGPT API」の使い分けの例

じゃあどういう場面で使い分けをするのかというと、参考までに弊社での使い分けを説明すると、AOAIのほうは、AI系のサービスのStagingを含めて顧客提供をする時に使っています。

ただそれと引き換えにセキュリティの制御をガチガチに入れていて、アクセスできる人数とかもめちゃめちゃ絞って、それで本番運用用として隔離している感じですね。

他方、OpenAIのほうはどう使っているかというと、こちらのほうが先にサービスが出るので、先行調査に利用したり、Slackbotとかでお遊び、「○○やってみた」みたいに使ってみる用途で使うところがメインになります。

以上で私の説明、LTセッションを終了します。ご清聴ありがとうございます。ちょうど15分ですね、ありがとうございます。