社内版ChatGPTを導入したお話(LibreChat)
こんにちは。GMOメディア IT戦略チーム エンジニアの石井です。
IT戦略チームでは少数精鋭で社内IT環境の整備、業務効率化の支援、情報セキュリティの管理などを行っております。
弊社では職種を問わず、多くのパートナー(従業員)がAIを活用し業務を行っております。
また、全正社員パートナーは「AI For Everyone」というAIリテラシー講座を必修としており、全員が受講を完了しました。詳しくはこちらのプレスリリースをご覧ください。
弊社パートナーはChatGPTを始め、エンジニア向けAIツールのGithub Copilotや
デザイナー向けAIツールのAdobe Fireflyなどを積極的に導入し生産性や品質を高めております。
なかでも、ChatGPTにはいくつか課題があったためそれを克服すべく社内版ChatGPTを導入しました。
ChatGPTの利用状況と課題
社内を見廻しても多くのパートナーがChatGPTなどのAIツールを活用しておりましたが、利用状況の見える化ができていなかったため、社内アンケートを実施しました。


回答者の中では、ほとんどのパートナーがChatGPTを利用していることがわかりました。
しかし、以下のような課題も見えてきました。
高性能かつハルシネーション(AIの幻覚)が少ないGPT-4を3割程度しか活用できていない。
毎月50名弱のChatGPTPlus費用(約3,000円/人)の支払いコストが毎月経費発生している。
ChatGPTはオプトアウト申請をしない限り入力内容を学習されてしまう。
社内ネットワークの出口IPが1つしかないため、弊グループパートナーが同時利用するとChatGPTにアクセスできなくなる問題が多々あった。
パートナーそれぞれのアカウントでChatGPTを利用しているため、会社全体の利用状況の統計が取れない。
このような課題があったため、パートナー全員が安全に使える社内版ChatGPTを自社環境に構築することを決めました。
ChatGPTの代替となるツールの選定
UIツールの選定
ChatGPTと同様に会話形式でGPTを利用できるツールはいくつかありますが、調査や試用をした結果、danny-avila氏作のOSSであるLibreChatを選定しました。
https://github.com/danny-avila/LibreChat

本家ChatGPTライクなUIであるため、ChatGPTからの移行も違和感なく行える
SSO(シングルサインオン)が利用可能。弊社ではGoogleWorkSpaceを使っているため、SSOで認証制限をかけられるのは非常にありがたいです。
本記事投稿現在も、活発に開発が続けられており今後の発展に期待できる
利用できるAIサービスが豊富で都度切替が可能。OpenAI、Azure OpenAI Serviceなど…
MITライセンスであるため商用利用可能
AIサービスの選定
AIツールはMicrosoft社のAzure OpenAI Service(AOAI)を活用することにしました。
■メリット
・商用利用で実績のあるAzure環境のリソースを利用できる
・将来的に社内データを参照させるためにAzure AI Searchを利用予定である
・学習されることはない、と明言している。
https://learn.microsoft.com/ja-jp/legal/cognitive-services/openai/data-privacy
・オプトアウト申請をすることで、Microsoft社の監視対象から外すこともできる
(もちろん責任あるAIの利用体制が求められます)
■デメリット
・本家OpenAIに比べて最新版のGPTリリースが遅い
(現時点では本家は最新のGPT-4-0125-Previewが利用でき、Azure版はGPT-4-1106-Previewで止まり)
・日本国内でGPT‐4-Turboが使えるリージョンがない。
・本家に比べて少々レスポンスが遅い傾向にある
システムの構築
以下のような構成で構築しました。
弊社ではGoogleWorkSpaceを使用しているため、GoogleのOAuth 2.0を活用します
(内部のみ認証可能に制限)
EC2は t4g.medium
メモリ使用量はざっくりこんな感じで、mediumでも余裕があります。
LibreChat 270.6MiB / 3.746GiB
mongo-express 44.93MiB / 3.746GiB
chat-mongodb 192.8MiB / 3.746GiB
chat-meilisearch 472.1MiB / 3.746GiB
アプリケーション実行環境の用意
システム構築に関する詳細はZennで随時投稿しております
https://zenn.dev/gmomedia/articles/c5fb80dd75468c
Azure OpenAI Serviceの利用申請
Azureのサブスクリプション、リソースグループが用意されていることが前提ですが、Azure OpenAI Serviceを利用するには、フォームから申請が必要です。
https://learn.microsoft.com/en-us/legal/cognitive-services/openai/limited-access#registration-process
申請後3日程度で許可され、リソースが作れるようになりました。
AI利用に関するルール整備
Azure OpenAI Serviceは学習に利用されないと明記されていたとしても、セキュリティ観点で個人情報や認証情報、売上に関わる情報は一切入力禁止としています。
また、弊グループで定められているAI活用セキュリティのガイドラインに沿って利用するように定めています。
社内で利用開始
無事システム構築ができたため、社内Slackで周知し無事導入が完了しました🎉🎉🎉


LibreChatでは、内部DBとしてmongoDBを利用しているため利用状況の計測が可能です。
社内に導入し2週間ほどで約70名のパートナーが利用しています。
2/1~2/20までで 入力 500万トークン、完了 40万トークン程度利用されておりました。
mongoDB クエリ
// 入力
db.getSiblingDB("LibreChat").getCollection("transactions").aggregate([
{
$match: {$and: [{"tokenType": {$eq: 'prompt'}}, {"updatedAt": {$gt: new Date('2024-02-01')}}]}
},
{
$group: {
_id: null,
"sum(ABS(rawAmount))": {$sum: {$abs: "$rawAmount"}}
}
},
{
$project: {"sum(ABS(rawAmount))": "$sum(ABS(rawAmount))", "_id": 0}
}
])
// 完了
db.getSiblingDB("LibreChat").getCollection("transactions").aggregate([
{
$match: {$and: [{"tokenType": {$eq: 'completion'}}, {"updatedAt": {$gt: new Date('2024-02-01')}}]}
},
{
$group: {
_id: null,
"sum(ABS(rawAmount))": {$sum: {$abs: "$rawAmount"}}
}
},
{
$project: {"sum(ABS(rawAmount))": "$sum(ABS(rawAmount))", "_id": 0}
}
])AOAIのコストは9,000円弱程度ですので、OpenAIのChatGPT Plusの3人分程度です。
AOAIは従量課金ですので利用するトークン数次第にはなりますが、大幅なコストダウンも期待できます。

次回の記事では社内でより詳細な効果測定やパートナーに対してアンケートを実施し
社内版ChatGPT導入の効果を検証し、レポートしてみたいと思います。




