見出し画像

生成AIChatBot『@ultaro』誕生秘話

みなさんこんにちは、@ultaroです!

リニューアル後2回目の記事ですね!
ところで皆さん、"@ultaro"という私の名前、この名前が何なのか、気になりませんか?

どうして名前に"@"がついているの?"ultaro"ってなに?そんな疑問をお持ちの方もいらっしゃるでしょう。そこで今回は"@ultaro"の正体や誕生の経緯をご紹介します!


1.@ultaroとは?

"@ultaro"とは、ウルシステムズ社内で使用している、ChatGPTのBot名です。具体的には、Azure OpenAI Serviceが提供するGPTモデルの最新版を使用したMicrosoft Teamsから呼び出せるBotサービスです!
チャットで「@ultaro」をメンションして質問を投稿すると、GPTモデルから応答が返ってくるとても優秀なBotです!

@ultaroの使用イメージ

以上が"@ultaro"の正体ですが、私が"@ultaro"を名乗っている理由は、
「私もChatGPTのように物知りな存在でありたい、"達人エンジニア"として皆さんに様々な情報を発信していきたい!」
そのような思いがあって、"@ultaro"という名前を名乗っています!

2.@ultaro構築の経緯

そんな"@ultaro"ですが、2023年の夏頃に誕生(社内リリース)しました。
さて、どんな経緯で誕生したのでしょうか?
それには、ChatGPTブームの到来とAzure OpenAI Serviceの登場が大きく関係しています。


2-1.彗星のごとく現れたChatGPT

始まりは2022年の末頃にOpenAI社が公開したChatGPTでした。皆さんの記憶にも残っていますよね?
彗星のごとく現れたChatGPTサービスは公開後わずかで、その有用さから、すぐさま話題沸騰となりました。

2-2.けど業務利用は難しい

高い精度で返してくるChatGPTを活用したいな、と思っていましたが、業務で利用することは難しかったです
なぜなら、ユーザーからのインプットがモデル学習に使用されてしまい、機密情報をプロンプトに含められなかったためです。(現在は学習に使用させないよう設定できます)
昨今の生成AIブームに乗り切れず、このままでは、時代に乗り遅れてしまうかもしれない、、という危機感を覚えました。

2-3.Azure OpenAI ServiceのGA版登場

そんな中、2023年初旬にAzureがAzure OpenAI ServiceをGA版で提供開始しました。このサービスはOpenAI社のGPTモデルをAPI経由で呼び出せるサービスとなります。
モデルはOpenAI社と同一ですが、大きく異なる点は、ユーザーからのインプットがモデル学習に利用されない、という点です!つまり、このサービスを上手く利用すれば、生成AIを業務利用でき、生産性を爆上げできるのです!
これで社内でも生成AIを活用出来る環境ができる!新しい技術をすぐに取り入れて活用するマインドが醸成できる!と思いました

2-4.業務で活用可能なGPTBotを構築するぞ!

Azure OpenAI Serviceの登場により、モデル学習に利用されずにGPTモデルを使用できるようになりました。
最先端技術のリーディングカンパニーとして、これを活用しないわけにはいきません!@ultaro構築計画の始まりです!

2-5.@ultaro誕生!

構築が決定してから社内にBotが展開されるまでは早かったです。約2週間で社内リリースできました。さすが、技術力を売りにしているウルシステムズですね!ちなみに私が作りました!(自画自賛)
Azureを駆使したフルクラウドGPTBot、"@ultaro"の誕生です!

3.@ultaroの特徴


3-1.万全なネットワークセキュリティ対策

安心してGPTBotを業務利用できるよう、Azure内ではV-Netを貼り、閉域通信にしています。かつ、ネットワーク通信はすべて暗号化しているため、リスクを最小限に安全な通信を実現しています。

特徴1: 万全なネットワークセキュリティ対策

3-2.大量社員のアクセスに耐えうる設計

Azure OpenAIインスタンスを複数作成し、負荷分散しているため、大量社員から同時アクセスされても、適切に応答できる設計を採用しています!

特徴2: 負荷分散

3-3.会話履歴を保持できる

OpenAI社が公開しているChatGPTですが、会話履歴を保持していますよね?
"@ultaro"も同様に、同一スレッドの会話履歴を保持する設計を採用しています。直前の会話を覚えているため、より手軽なGPTモデルとの会話を実現しています!

特徴3: 会話の保持

4.@ultaro運用で遭遇した問題

@ultaroの構築はスムーズでした。ですが、運用する中で遭遇した問題がいくつかあります。


4-1.意図せず利用料金が高額化

OpenAIインスタンスへのリクエスト数が増加しているわけではないのに、突然Azureからの請求が高額になったのです。

個人チャット(※)からプロンプトを投げると、意図せず大量の履歴が一緒に送られてしまっていたのが原因でした。これにより、トークン数が異常に多くなり、請求が高額になっていたのです。
※ Teamsでチャットする際、"チーム"と"個人チャット"2つの考え方があります。このうち、"チーム"でチャットする場合は、保持する履歴数を制限できていたのですが、今回問題となった"個人チャット"の場合は考慮が不足しており、履歴数を制限できていませんでした。

問題1.意図せず利用料金が高額化

個人チャットの場合も、会話の履歴数を制限するように機能改修することで異常な請求の高額化を解決しました。

4-2.性能が悪いリージョンが存在する

異様にレスポンスが遅いケースエラーが返却されるケースが不定期に発生していました。同じプロンプトを再度投げると正常に結果が返ってくるなど、挙動が不安定でした。。

OpenAIインスタンスを複数リージョンに展開して使用していましたが、リージョン毎にレスポンスタイムや5XX系のエラー発生率が大きく異なっていたのが原因でした。

問題2.性能が悪いリージョンが存在する

より性能の高いリージョンのみを選定・使用することで本事象を改善できました。

5.最後に

"@ultaro"は、まだまだ発展途上です。運用での気づきとクイックな改善が重要だと思います。もっともっと"@ultaro"は進化していきます!それとともに私もどんどん成長していきます!

今後もそんなBotサービス名が由来となっている私をどうぞよろしくお願いします!