Microsoft Build Japan にて弊社の Chat GPT への取り組みが紹介されました
はじめまして、価格.com サービスの DevOps エンジニアとして働いている渡辺と申します。いつか、料亭「和たな屁゛」を開きたいと思っていま…せん。 業務では、DevSecOps を実現すべく、開発環境からプロダクション環境に至る、ソフトウェア開発のライフサイクル全体における自動化を推進しています。 価格.com サービスの 20 数年を超える歴史を肌で感じつつ、負の遺産にも向き合い、モダンな環境を実現し、エンジニアがより多くの価値を生み出せるように取り組んでいます。
はじめに
Microsoft Build Japan が 2023年6月27, 28日に開催されました。 このカンファレンスは、2023年5月に米国で行われた Microsoft Build の日本版として、日本の開発者に向けて最新のテクノロジーを紹介するイベントです。
弊社は Chat GPT を様々なサービスで活用すべく研究・開発を行っています。 このカンファレンスに先立ち、食べログ、価格.com、価格.comトラベル、求人ボックスのサービスで Chat GPT プラグインをメディアを通じて発表しました。 その取り組みが、このカンファレンスのキーノートセッションで紹介されたのです。(取り組み自体はプレスリリースで発表しているとおりです)
私はこのキーノートセッションにイチ参加者として参加していましたので、突如として弊社の取り組みが紹介され、ロゴが映し出されたときは正直驚きました。 隣の席から「あれ?カカクコムの渡辺さんですよね?」と声をかけられたらどうしようと思いましたが、まぁ、そんなことあるわけありません。 でも、自社の取り組みが先進的な取り組みであると認められたことは、とても誇らしいことであると同時に、 スピード感をもって取り組みを進めていくことがとても重要であると、再度認識した次第です。
Azure OpenAI Service の利用について
マイクロソフト社は、Chat GPT を Azure 上で利用できるよう、Azure OpenAI Service として提供しています。 現状は、Azure サブスクリプションに対して有効化をフォームで申請する必要がありますが、弊社も無事使えるようになりました。
その Azure OpenAI Service を利用するにあたり、Chat GPT の API を利用する際と異なる点の中で、特に以下の点は重要です。
- Azure OpenAI Service では、ユーザー側のデータは Chat GPT の学習には使用されません。
- ユーザー側のデータを Azure Cognitive Search にインデックスしておくことで、Azure OpenAI Service がそれらのデータを参照できるようになります。
- Azure OpenAI Service の API アクセスに、Azure Active Directory による認証・認可を構成可能です。
- Azure OpenAI Service のエンドポイントをプライベート化でき、外部からのアクセスを遮断できます。
どれも、プロダクションとしてリリースするには必須の要件だと思います。 特に、1. は、ユーザー側のデータが漏洩しないことを保証するために必要な要件です。 また、2. は、例えば Azure Blob Storage にファイルをアップロードし、Azure Cognitive Search にインデックスさせることで、 Azure OpenAI Service の回答に含ませることができます。これは、社内からの問い合わせに対し、規約集を参照した返答をチャットボットにさせるシナリオも可能だということです。 そして、3. と 4. は、プライベートな環境で Chat GPT を利用することができるということです。
Microsoft の AI への取り組みと Copilot
今回の Build はまさに「AI 祭り」と言っていいほど、特に Copilot に関する発表が多かったです。 Microsoft 社は全方位的に AI を組み込むと宣言しています。そのおそらく最初の一歩が、Copilot であると思います。 すでにご利用になっている方も多いであろう、GitHub Copilot は Copilot X という次のバージョンが発表されていますし、 Windows Copilot、Microsoft 365 Copilot など、エンドユーザー向けの Copilot がデモされました。 また、Power Automate や Microsoft Fabric といった IT プロ・パワーユーザーやデータアナリスト向けの Copilot も発表されています。
Microsoft Fabric
私が今回の Build の中で、最も興味深かったのは、Microsoft Fabric です。 社内に分散したデータを統合する OneLake と、役割に応じて使い分ける Power BI、Data Factory、Synapse などのツールをワンパッケージにまとめた統合サービスです。
ここで私の普段の業務の話に戻ります。DevSecOps の観点から、自動化には客観的なデータによる判断が必須です。 例えば、プロダクション環境へのデプロイにセキュリティゲートを設けるとするならば、基準値の定義とその判断に必要なデータを収集する必要があります。 主にコードのセキュリティを含む品質が、基準値を下回っていないかどうかを判断するために、様々な観点での自動テストの結果を収集する必要があり、 それぞれ分散したデータを統合して、一元的に判断する必要があります。
OneLake はそのように、社内に分散したデータを統合するサービスです。実際に分散したままでよく、OneLake 上に射影したうえでクエリが実行できます。 私がマイクロソフト社に期待することは、OneLake に対して Azure Cognitive Search がインデックスを生成することで、 Azure OpenAI Service がそれらのデータを参照できるようになることです。 これができれば、弊社の複数のサービスそれぞれのデータ基盤を大きく変更する必要なく、ユーザー様に寄り添ったご案内を生成することが容易になるんじゃないかなぁ~と思っています。
DevOps エンジニアの仕事
さて、最後「思いました!」という内容で終わろうとしていたら、上司から「せっかくだから仕事を紹介しろ」と言われたので紹介します。 現在、価格.com サービス開発チームに対する DevOps エンジニアを募集しています。
開発・運用環境をモダン化するために、GitHub Actions を中心とした CI/CD パイプラインの構築や、GitHub だけでは実現できない DevSecOps の機能の実装を行っています。 それらの機能は .NET で実装されていて、Azure 上にデプロイされたクラウドネイティブなアプリケーションとなっています。 また、サービスのデプロイ環境はオンプレミスですので、GitHub Actions のワークフロー実行をオンプレミス環境で実行し、 そのトリガーを Azure 上のアプリケーションから行うなど、ハイブリッドな環境での CI/CD パイプラインの構築も行っています。 将来的に、このパイプラインの中に、Azure OpenAI Service を利用した、テスト結果やセキュリティ評価の要約の生成や、改善提案の生成を組み込めたら面白いなぁ~と考えています。