きっかけ・はじまり
やりがいのあるプロジェクトだからこその責任感。
プロジェクトについて教えてください。
AIを用いてカスタマーサービス(以後、CS)チームの業務負担を減らすシステムの構築です。CSチームの業務の中には、AIの利用により改善を見込める作業が多くありました。生成系AI(LLM)や、機械学習の技術を用いて、作業の自動化を実現することで、業務効率化を目指しました。
アサインされた経緯を教えてください。
インターン生としてこのプロジェクトに参加させていただきました。
大学院では修士課程で理論物理学を研究しておりますが、AIについては独学で勉強していました。
理論ばかり勉強していても現場では役に立たないという考えが常にあったので、実務としての経験を積むためダイアモンドヘッドのインターンに参加しておりました。
インターン開始当初はバックエンド開発のチームに所属しておりましたが、AIチームに行きたいという希望を通してくださり、このタスクにアサインしていただきました。
ダイアモンドヘッドは実力次第でやりたいプロジェクトにジョインすることが可能な、非常に風通しのよい会社だと感じました。
プロジェクトの話を聞いた時にどう思いましたか?
もし実現できればCSチームの業務の工数削減にかなり貢献できるだろうな、という思いがありました。それと同時にCSチーム全体の業務に関わるシステムなので、強い責任を感じました。
実際にCSチームにヒアリングを行い、どのようなことを実現してほしいか等を綿密に話し合いました。
プロジェクトに対してどのような印象を受けましたか?
CSチームへのヒアリングを行い、データを分析したところ、過去10年間でのお客様からの問い合わせ件数は、全サイトで約65万件もあることが分かりました。単純計算で一日当たり約180件もの問い合わせに対応していることになります。これらが自動化されれば、大きな成果を上げることができる、やりがいのあるプロジェクトだと感じました。
同時に、これだけの業務を抱えるCSチームの方々にがっかりされないよう、中途半端にならないシステムを作ろうと決意しました。
どのようにしたか
綿密なコミュニケーションで課題を明確にする。
解決したい課題は何だと考えましたか?
以下の2つの課題をAI技術を用いて解決できそうだと、判断しました。
1. 適切な返信テンプレートを手動で探す作業
2. 適切な文章構成や正しい敬語や助詞を用いた返信内容を考える作業
まず、1の課題について。
CSチームでは元来社内での独自システムを用いて、約80モールの問い合わせ対応を行っており、各モールごとにお客様からのメールがシステムに届きます。そのうちの9割はよく来る問い合わせとして返信内容が定型化している状況です。
そこで、システム上で各モールごとに約60件の返信テンプレートを登録し、作業者は問い合わせ内容から適するテンプレート選択し、穴埋め箇所(注文番号など)を記入し返信するという業務フローを実施しておりました。
その上で課題を探るためヒアリングを重ねると、このテンプレートを選ぶ作業コストは、各々のスキルによってバラつきがあると判明しました。
テンプレートを把握しているAさんと、業務に慣れていないBさんとでは、テンプレートを探し出す時間に大きく差が出ており、結果、チームとしての工数削減が叶えられていないという実情が浮かび上がってきました。
適切なテンプレートをAIが自動で選択することにより工数削減の一助を担えると考えました。
また、2についても同様にヒアリングの中で浮かび上がった課題です。
お客様には、正しい日本語で、心象の良いメールを送ることが大切だという認識がCSチームの中でありました。そのような文面(敬語や助詞を適切に使い、誤用表現がなく、改行や句読点の位置を考え、正しい文書構成にすること)を考えるのは、カスタマーサービスのプロであるCSメンバーの方々でも簡単な作業ではありませんでした。
そこで、CSメンバーが打ち込んだキーワードを元にLLMで自動作成できる機能を開発することで負担を減らせると考えました。
業務はどのように進めましたか?
私たちインターン生が主体となって、CSチームとコミュニケーションを取りながら、プロジェクトを進めました。
AIの分野は技術進歩が速いので、常に最新の情報をキャッチアップする必要があります。
そのため、毎日の朝会や週次MTGでチームメンバーと最新の技術を共有したり、より精度を上げるための手法について綿密に議論を重ねました。プロジェクトマネージャーが最終的なゴールから逆算して常に指針を示してくださったので毎日の業務を目的をもって取り組むことができました。
制作中に難しいと感じたことはなんですか?
CSチームでは約80のモールに対しての問い合わせに対応しています。
モールそれぞれについて用いられるテンプレートが微妙に異なっており、その全てのモールに対して高い精度を出せるシステム作りが非常に難しいと感じました。
また今回、API作成についても単に動くものを実装するだけではなく、DDD(ドメイン駆動設計)と呼ばれるアーキテクチャを導入しました。
各ファイルそれぞれに対して責務を明確化することで、保守運用テストが、行いやすくなります。この技術についてのキャッチアップにもかなり苦労しました。
そして、最も苦労したのは技術選定でした。
このプロダクトでは、主にAWSで提供されているAIモデルを利用しましたが、AWSの中でも多様なAIモデルが存在し、性能の良さ、コストなど、多方面からの評価が必要です。AIチーム全体でMTGや、精度検証を重ね、より良いアプローチに辿りつけたのでよかったです。
何をしたか
最適なソリューションを導く難しさを実感。
成果物について教えてください。
本件においては、社内でこれまで扱ったことのない新しい技術を試し、部署全体でナレッジを蓄積するという目的もありました。
そのため、普段の業務では触れないようなプログラミング言語やフレームワークを積極的に採用し、適切なアーキテクチャ選定も重視しました。
PoCでスモールスタートをしつつ、将来的にスケールアップが容易にできるように、AWS LambdaとFastAPIを用いたサーバーレスであるLambdalithアプローチを採用しました。
認証基盤にはCognitoを、データベースにはRDSなど、AWSを用いることでセキュリティとスケーラビリティを両立させた、堅牢なインフラ基盤の構築を心がけました。
AWSのマネージドサービスを最大限活用することで、運用負荷を軽減しつつ、高可用性を確保し、将来的な機能追加や改修にも柔軟に対応できる設計となっています。 AIモデルについては、自作する案もありましたが、工数とコストを考慮し、AWSのAIサービスを利用しました。
具体的には、「返信テンプレートマッチング」には BedrockのAmazonTitan Text Embedding V2とPostgreSQLのpgvectorを用いたベクトル検索を利用し、「メール校正」にはBedrockのClaude 3.5 Sonnetを使ってLLMをAPIに組み込むことで、短期間かつ低コストで高精度なAIソリューションを提供することができました。
既存のメールシステムは10年以上稼働しており、コードベースを理解できていない、本番稼働中のPHPで記述されたソースコードに修正を行うことは現実的ではありませんでした。そのため、CSシステムのためのGoogle Chromeの拡張機能を開発しました。これにより、既存のシステムに手を加えることなく、新しい機能を疎結合で利用でき、効率的なシステム設計を実現しました。
こうして、返信テンプレート選定の自動化と、メールの自動校正を実現することができました。
無事にプロジェクトを達成したことで、CSチームの業務効率化を実現できたと考えています。
これから
プロジェクトを振り返って学びや気づきはありましたか?
多くの学び、気づきがあり、とても良い時間を過ごせたと思っています。
まず、AI技術を使ったプロダクトを作成する上で、AIの知見やコーディング力が重要視されますが、それと同等に、ドメイン知識も重要だということが身をもって体感できました。
また、チーム開発の苦労や面白さに気づきました。
研究は比較的個人戦のような側面が強いのですが、AIチームではチームで協力して一つのプロダクトを作成します。チームメンバーと苦労を共有したり、協力して解決していく過程は純粋にとても楽しかったです。
このチームではインターン生に大きな裁量権があります。個人的にはとても嬉しかったのですが、裏を返せば、多くの責任が伴うということです。
インターン生だからといって、タスクが振られるのを待つ姿勢ではなく、自分からタスクを生み出していく姿勢が重要だと感じました。
今後、このプロジェクトがどのようになって欲しいと思いますか?
まずはCSチームの皆さんにたくさん使ってもらいたいと考えています。
マッチング精度の向上や機能追加など、多くの改善案や要望が出てくると思います。そういったフィードバックを大切にしながら、もっと有用なシステムになっていって欲しいと思います。
最終的には、CSチームの方々が「このCSサポートAIなしではやっていけないよ」と言ってもらえるような存在になれれば、とてもうれしいですね。
AIチームではゴールを常に明確化し、適切なプロセスでタスクが進んでいくので、このプロジェクトが完成に至るのも、そう遠くないと感じています。