Belong エンジニアリングチームにおける AI サービスの利用
はじめに
Belong では全社的に OpenAI の API を用いたチャットツールやソフトウェアエンジニアに GitHub Copilot を提供し AI 系サービスの活用をしています。 本記事ではこれらのサービスの導入の経緯やリスクに対する考え方に触れ、弊社での導入の方法などを紹介します。
AI 系サービスの導入に至るまで
AI 系サービスの導入の経緯
最近は ChatGPT ブームが起きており、LLM を利用したサービスも増えています。
私個人は 2022 年に ChatGPT 発表された GPT-3.5 の時点で OpenAI のサービスに触れ、GPT-4 が出たタイミングで個人で課金し利用し始めましたが、GPT-4 からは明らかにレベルが違うと感じました。
GPT-4 の返答は Belong 内でも多くの場面で仕事の生産性を高められる可能性を感じ、特にエンジニアリングには強力なレバレッジが効きます。
そのため早めに対応する必要があると思い、GPT-4 を使った次の日には ChatGPT 等 LLM を用いた AI サービスの活用指針
というレポートと利用ガイドラインの草案を書き経営陣に共有し、社内の利用ポリシーを定めるために動きました。
また、LLM 系のサービスの利点はあえて挙げませんが大きな利点と同時に、以下に挙げるような懸念点もありました。
AI 系サービスの懸念点
AI 系のサービスを手放しで使えたら簡単ですが、企業としてはやはりセキュリティやガバナンスの観点を持って扱うことが必要です。 弊社のエンジニアであればある高いリテラシーがあり自然と適切な利用ができるとは思いますが、全社で利用をするとなるとやはり暗黙の了解で扱う情報や使い方を理解することは難しいです。 そのため、社内でサービスを導入する前に懸念点を洗い出し、気をつけるポイントやルールを明確にした上で社員への周知やトレーニングが必要です。
以下はサービス利用に辺り特に気をつけるべきと考えたポイントです。
情報の機密性とサービスへの入力
企業は様々な情報を扱い、中にはセンシティブな情報も含まれます。 そこで、行政文書における秘密情報の定義などを参考に情報のアクセスレベルを機密性として改めて明確化し、外部サービスで扱って良い情報とそうでないものを定めました。
機密性 3
機密性 3 は 秘密情報に相当します。具体的には以下のような項目です。
- PII (個人情報)
- 顧客の email
- 名前
- 住所
- etc.
- M&A 等の情報
- NDA などを結び社外に秘密情報として扱うことを契約した情報
- その他公開されることで顧客に危害が及ぶ情報
機密性 3 として扱われる情報はサービスのへの入力は禁止です。モデルの学習に使わない場合でもデータがベンダ側で保持され、何かをきっかけに情報漏えいが起こる可能性があるためです。
機密性 2
機密性 2 は機密性 3 の秘密情報に相当しないものの、一般に公開する事を前提としていない情報資産です。 具体的には以下のような項目です。
- 社内サービスの仕組み・ワークフロー
- にこスマ買取など各サービスのオペレーションフロー
- 自社で生成・収集しているデータ
- プログラム等
- サービスで生成し保存される情報
- 取引データ
- その他公開されることで顧客等に危害は及ばないが、ビジネスの詳細が記述されているものなど
機密性 2 として扱われる情報はモデルの学習に利用されない場合にのみ利用可としています。 OpenAI の利用規約では ChatGPT では入力情報がモデルの学習に利用される可能性ありますが、API 経由であれば入力情報は学習に利用されません。 前提として規約とは別に事故等での情報漏えいの可能性はありますが、そういった場合でも深刻な問題にはならない情報の利用を許可します。
機密性 1
機密性 1 は 機密性 2,3 に該当しない情報資産で、以下のような公開情報です。
- 外部向けデータ
- 公開されている資料
公開情報は秘匿する必要がなく、制限なく利用可能です。
情報の正確性
ChatGPT を利用している方は体験した方もいると思いますが、チャットの返答には hallucination と呼ばれるもっともらしく見える嘘が含まれる場合があります。 そのため、利用者は回答を鵜呑みにするのではなく、自身で判断するリテラシーを持つ必要があります。
情報の鮮度
2023/04 時点で OpenAI のモデルは 2021/09 までの情報で構築されています。 そのためモデルの構築に利用された時点以降の情報は(単に API を呼ぶだけでは)扱えません。
サービスの本格利用前にここで挙げたような項目を慎重に考慮し、ガイドラインを策定し利用を開始しました。
サービスの導入
GitHub Copilot
GitHub Copilot は AI ベースで自分が書いたプログラムの修正や文脈を先読みして次に書くコードの提案を行う機能を持つツールで、利用によりエンジニアの生産性向上が期待されます。 また、GitHub Copilot X では今後 GPT-4 を用いた機能の導入も予定されています。
Belong では GitHub Copilot for Business を利用していますが、特別な設定などは必要なかったです。
GitHub には元々コードを置いていますし、同一のサービス提供元が、今後モデルの学習に私達のリソースを利用しない前提でサービスを提供しているので、セキュリティやガバナンスの面でも懸念事項は少ないです。
生成されたコードの著作権についての論点はありますが、GitHub Copilot の設定で「公開されている OSS などのコードと一致する提案は行わない」という選択が可能になので利用しています。
OpenAI
OpenAI に関しては ChatGPT を用いると入力データがモデルの学習に使われ情報流出につながる可能性があるため業務関連の文脈を含めた利用は禁止しています。 そのため基本的に OpenAI は API を経由して利用することになりますが、API の利用には人間用のインターフェースが必要です。 まずは社内利用を開始するために私が業務の合間を縫って API とやりとりするための仕組みを作りました。
当初は WebUI を作り使うモデルやパラメータの細かい調整を可能にしよう考えて PoC を作っていましたが、とにかく素早い社内での利用を促したいかつ、どのような会話が行われているか可視化するべきという考えから、 まずは UI を Slack に限定した形での開発に切り替えました。
以下の図のようなアーキテクチャで、API の呼び出しには Python の SDK を用いつつ、ChatGPT の体験を踏襲できるためスレッドごとの会話履歴を保持出来るチャットアプリのサーバーをまずは作りました。
このサービスはコードレビューなどをすっ飛ばしたため2 日程度で開発しデプロイまで行いましたが、やはり動くものがあるとサービス価値の認知には有効です。
この仕組の利用は全社導入前に AI サービスの理解度の高いメンバーや経営陣での試用を開始し、細かい改善や Prompt Engineering の紹介をした上で全社の導入を行いました。
あとから知ったのですが WebUI に関しては BetterChatGPT や Chatbot UI などの OSS を用いると ChatGPT ライクな UI を素早く使うことができそうで、 カスタマイズを行い会話のトレーサビリティが担保出来る状態にできたら有効な選択肢になると思います。
今後の展望
OpenAI の API 利用において今後行いたいことは会社の文脈を予め含んだ上での会話です。 社内向けにはカスタマーサポートの補助やナレッジベースの共有を行うアシスタントとして導入し生産性を高めたり、社外向けには各種サービスにチャットアプリを組み込みユーザー体験をさらに向上出来るのではないかと期待しています。
文章をベクトルとしてインデックス化し問い合わせごとに有用な情報を選別してプロンプトに用いるのであれば LlamaIndex が有効そうで、 会話の途中で外部の情報源に問い合わせたり自己問い合わせを何度か行うなど、より複雑で高度な会話を行うのであれば LangChain というフレームワークがあります。
現在はこれらのフレームワークについて調査中であり、Belong として効果が高そうな部分から順次実用化していきたいと考えています。
おわりに
本記事では Belong の AI サービスの利用について紹介しました。 現在は GitHub Copilot や OpenAI を利用していますが、弊社で利用している Google Workspace などでも今後は強力な AI インテグレーションが入るのではないかと期待しており、必要に応じて各種サービスを活用していきたいと考えています。
最後に、Belong Inc. では我々と一緒にサービスの成長にコミットしてくれるメンバーを募集中です。
GitHub Copilot や OpenAI などの AI サービスの利用に興味がある方、そういったサービスを用いた自社サービスの構築に興味がある方など、エンジニアリングを楽しみたい方と一緒に働きたいと考えています。
ぜひ エンジニアリングチーム紹介ページ をご覧いただけたら幸いです。