Amazon Bedrock で情報の安全性と社内での円滑な利用促進を両立する
LAPRAS株式会社 / 増川武志
テックリード / フルスタックエンジニア / 従業員規模: 11名〜50名 / エンジニア組織: 10名以下
利用プラン | 利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|---|
従量課金プラン | 基盤モデル | 10名以下 | 2023年11月 | B to B B to C |
利用プラン | 従量課金プラン |
---|---|
利用機能 | 基盤モデル |
ツールの利用規模 | 10名以下 |
ツールの利用開始時期 | 2023年11月 |
事業形態 | B to B B to C |
アーキテクチャ
アーキテクチャの意図・工夫
LAPRAS のサービスから直接 Bedrock を呼び出すのではなく、間にAPIサーバーを挟み、このサーバーが Bedrock の呼び出しを行っています。 これには次の理由があります。
1. R&D チームとの分業体制
Bedrock へのプロンプトチューニングは R&D チームが担当し、その成果物としてのプロンプティングロジックを R&D チームが社内ライブラリとして提供します。それをプロダクトに組み込んでサービスとして提供するところは Dev チームが担当しています。
この社内ライブラリはlangchainなどのライブラリへの依存関係を持っており、これらはアップデートのスパンが極めて早いため、既存の LAPRAS のコードベースの中に入れると社内ライブラリのアップデート時に依存関係の競合を起こしやすいです。
そのためできるだけ依存関係を持たないシンプルな API サーバーを作成し、そこに社内ライブラリを入れることで高頻度のアップデートを可能にしています。
詳しくは次をご覧ください。
https://tech-blog.lapras.com/techBlogs/llm-architecture
2. LAPRAS のリソースのブロッキング防止
LAPRAS ではバックエンドに Django を利用していますが、Python は非同期処理が苦手です。
(近年言語としてはサポートするようになりましたが、未対応のライブラリも多く完全な非同期処理への移行にはまだ時間がかかります。)
LLM の処理はレスポンスに数秒~数十秒かかるため、この間サーバーのスレッドが占有されるとサービスの稼働状況に致命的な影響があります。
そのため celery や job など非同期的処理の仕組みを挟んで、そこから API サーバーを呼び出すようにしています。
導入の背景・解決したかった問題
導入背景
導入前はOpenAI APIを使用して機能を提供していましたが、次のような課題がありました。
- コストや認証の管理が煩雑になり、個々の開発者が気軽に利用できない
- OpenAI は日本法人がなく、海外法人との契約になるため法務的な論点が複雑になること
弊社は転職サービスなので職歴などの個人情報も扱いますが、個人情報は不適切な取り扱いをしたり漏洩を起こしたりした際に法的な罰則があり、単なる機密情報以上の慎重な取り扱いが求められます。
すでに社内で AWS を広く利用しているため、新たに環境構築をしなくとも個々の開発者の IAM アカウントで安全に認証を通せること、またエンタープライズレベルのセキュリティを備えており機密情報・個人情報をより安全に扱えることなどから、Bedrock への移行が検討されました。
比較検討したサービス
- Azure OpenAI Service
- OpenAI API
比較した軸
- 日本語を高い性能で処理できる基盤モデルが利用できること
- 入力した情報がどのように扱われるか
選定理由
- Anthropic Claude series が 日本語の処理において GPT seriesと並ぶかそれ以上の性能を持っていたこと
- 社内で AWS が広く使われており、既存のサービスやローカルからロールベースで安全に認証を通す仕組みが整っていたこと
- AWS の日本法人・日本リージョンがあるため、OpenAI に比べ法務的な論点が少ないこと
- 規約で「入力データは不正利用防止のため機械によりレビューされるが、人によるレビューは行われない」と明言されており、OpenAI や Azure と比べ安全性が高いと考えられたこと
導入の成果
OpenAI API を使っていたころに比べ、LLM を活用したサービスや社内システムが開発しやすくなりました。 ユーザーに AI レビューなどの機能を提供するほか、AI Slack Bot など便利な社内システムが開発され、日々活用されています。
また、各開発者が LLM を活用したスクリプトを気軽に書いて業務効率化に利用できるようになりました。次のリンクはその一例です。
https://zenn.dev/takeaship/articles/translate_confidential_slides_by_llm
導入に向けた社内への説明
上長・チームへの説明
決め手になったポイントが決定的であったため、特に異論はなくスムーズに導入が決まりました。
活用方法
ユーザーが新たに投稿した記事を毎日レビューし、結果をユーザーに伝えています。 また、社内システムとしての Slack Bot など便利なツールが開発され、日々の業務の中で活躍しています。
よく使う機能
- langchain などのライブラリを利用して Claude などの基盤モデルを呼び出し
ツールの良い点
- Anthropic Claude series の性能の高さ
- AWSをすでに広く利用しているチームにとって導入や管理が容易である
ツールの課題点
- OpenAI の基盤モデルが利用できないこと
- 最新のモデルが発表されてから Bedrock の日本リージョンで利用できるようになるまで時間差があること
ツールを検討されている方へ
ユーザーの個人情報を LLM で処理するケースにおいては様々な法的論点があり、専門的な話になるためここでは詳細に踏み込みません。
気になる方は次の投稿などを参照してみてください。
※ 参考情報であり、弊社としての見解を示すものではありません
https://zenn.dev/piyoketa/articles/4f95a62371fd11
LAPRAS株式会社 / 増川武志
テックリード / フルスタックエンジニア / 従業員規模: 11名〜50名 / エンジニア組織: 10名以下
よく見られているレビュー
LAPRAS株式会社 / 増川武志
テックリード / フルスタックエンジニア / 従業員規模: 11名〜50名 / エンジニア組織: 10名以下
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法