Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サイクルガードサービス AlterLock の問い合わせ対応業務に Azure OpenAI ...
Search
TonyTonyKun
February 05, 2024
Technology
0
830
サイクルガードサービス AlterLock の問い合わせ対応業務に Azure OpenAI Service を活用した話/jazug46
第46回 Tokyo Jazug Night のセッション資料です。
TonyTonyKun
February 05, 2024
Tweet
Share
More Decks by TonyTonyKun
See All by TonyTonyKun
Azure App Service on Linux の Sidecar に Phi-3 を配置してインテリジェントなアプリケーションを作ってみよう/jazug-anniv14
thara0402
0
900
Microsoft Ignite 2023 現地参加レポート/ignite2023
thara0402
0
240
Azure Container Apps で .NET 7 アプリを Blue-Green デプロイしてみよう!/jazug12
thara0402
0
1.6k
Azure Synapse Analytics 入門/jazug11
thara0402
0
690
Azure Bicep で始める Infrastructure as Code/ace0917
thara0402
0
430
Introduction to Azure Synapse Analytics/ace0416
thara0402
0
480
Azure Kubernetes Service を活用したマイクロサービス開発/clouddev
thara0402
0
440
Azure Kubernetes Service を活用したマイクロサービス開発/Ignite-osaka
thara0402
0
460
Azure Kubernetes Service を活用したマイクロサービス開発/Ignite-tokyo
thara0402
0
190
Other Decks in Technology
See All in Technology
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
3
280
クレカ・銀行連携機能における “状態”との向き合い方 / SmartBank Engineer LT Event
smartbank
2
100
組み込みアプリパフォーマンス格闘記 検索画面編
wataruhigasi
1
140
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
280
Wantedly での Datadog 活用事例
bgpat
2
680
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
120
Working as a Server-side Engineer at LY Corporation
lycorp_recruit_jp
0
370
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
27
23k
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
140
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.4k
.NET 9 のパフォーマンス改善
nenonaninu
0
1.3k
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
180
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Writing Fast Ruby
sferik
628
61k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Bash Introduction
62gerente
609
210k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
910
Fireside Chat
paigeccino
34
3.1k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
How to Ace a Technical Interview
jacobian
276
23k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
The Cost Of JavaScript in 2023
addyosmani
46
7k
Gamification - CAS2011
davidbonilla
80
5.1k
Transcript
サイクルガードサービス AlterLock の 問い合わせ対応業務に Azure OpenAI Service を活用した話 2024.2.7 第46回
Tokyo Jazug Night
自己紹介 名前 原 敏之 個人 Twitter : @TonyTonyKun ROMANCE DAWN
for the new world • https://gooner.hateblo.jp/ Microsoft MVP for Microsoft Azure 2017 〜 仕事 株式会社ネクストスケープ Copyright© 2024, JAZUG All Rights Reserved. 2
このセッションでお話しすること 社内データをもとに回答する問い合わせ対応業務について、 弊社で提供しているサイクルガードサービス AlterLock を題材に、 Azure OpenAI Service を導入した事例を話します Azure
OpenAI や AI Search の概要や機能については説明しません 実際にプロダクトを作ってみて分かったことや苦労したことを エンジニアの観点でお話しします 3 Copyright© 2024, JAZUG All Rights Reserved.
アジェンダ AlterLock とは RAG による社内データ検索システム 回答精度を向上させるために改善したこと まとめ 4 Copyright© 2024,
JAZUG All Rights Reserved.
Product AlterLock とは 5 Copyright© 2024, JAZUG All Rights Reserved.
AlterLock(オルターロック)とは 6 Copyright© 2024, JAZUG All Rights Reserved. 自転車用の盗難防止アラーム& GPS
追跡デバイスです スマホアプリと連携し、離れた場所からでも愛車を見守ります https://alterlock.net/
ユーザー問い合わせ対応業務の課題 7 Copyright© 2024, JAZUG All Rights Reserved. 顧客の感情や知識レベル、購入時期などを判断しながら回答を考える必要がある 過去の問い合わせ履歴から適切な回答を見つけるのが困難
メール返信文の作成に時間がかかるので返信用テンプレートを用紙しているが、 更新が追いついていない 休業期間中に問い合わせ対応ができないことが、返金などの問題に発展する 可能性がある 英語や他言語での問い合わせ対応を翻訳しながら回答しているので、 対応に手間がかかる
生成 AI を導入した目的 8 Copyright© 2024, JAZUG All Rights Reserved.
AlterLock 問い合わせ担当者の対応工数と属人性を下げ、 QA とその評価の履歴を蓄積できるシステムを構築し、 継続的に回答精度を改善できるようにする
QA チャットボット 9 Copyright© 2024, JAZUG All Rights Reserved.
QA チャットボット 10 Copyright© 2024, JAZUG All Rights Reserved.
Architecture RAG による社内データ検索システム 11 Copyright© 2024, JAZUG All Rights Reserved.
システム構成 12 Copyright© 2024, JAZUG All Rights Reserved. Retrieval Augmented
Generation(RAG)
シーケンス 13 Copyright© 2024, JAZUG All Rights Reserved.
構築して分かったこと 14 Copyright© 2024, JAZUG All Rights Reserved. RAG に取り込むデータの準備に想定していたよりも多くのコストがかかった
既存業務プロセスからデータ抽出 • 取り込みに足るデータか目視の個別判定が必要なケースもあった 非構造化データのフォーマット整理 個人情報の取り扱い • 個人情報保護法 • AOAI で個人情報を取り扱うことはできるが、技術面ではなく法務的ハードルが結構高い • 個人情報(氏名、メールアドレス、電話番号など)の抽出 • 普通の文章に個人情報が入ってくるため、ルールベースでの抽出が難しい • Azure AI Language の PII(Personally Identifiable Information)を利用した • マスキング • 氏名は仮名に変更 • メールアドレスは後からユーザー識別できるような仮アドレスに変更 • 最終確認は目検(手動)
構築して分かったこと 15 Copyright© 2024, JAZUG All Rights Reserved. プロンプトの書き方にはテクニックがいる 返答フォーマットを指定する
• 明示しないと意図したフォーマットで返ってこない、後続の処理で取得したい情報が取れない 場合がある 指示が多い場合は手順を明示する • 1回のプロンプトで多くの指示(文章を作成や推敲)をすると忘れられてしまうことがあるので、 できればプロンプトを分けた方が良い 曖昧な言葉を使わない • 表現のゆらぎをなくす 係り受け構造が伝わりやすい文章を意識する • 主語、述語、修飾語、否定、指示語
プロンプトの例 16 Copyright© 2024, JAZUG All Rights Reserved.
Improvement 回答精度を向上させるために改善したこと 17 Copyright© 2024, JAZUG All Rights Reserved.
回答精度が悪い原因 18 Copyright© 2024, JAZUG All Rights Reserved. ① データソース
② 検索結果 ③ OpenAI の回答
原因①:データソース 19 Copyright© 2024, JAZUG All Rights Reserved. そもそも類似する問い合わせメールが過去に存在しないため、欲しい回答が得られない 類似する問い合わせはあるが、古い回答が得られてしまう
類似する問い合わせはあるが、回答が統一化されていないため、欲しいフレーズが回答 に含まれない場合がある • 得たい回答を含んだデータを追加する • データソース内のメールの回答を統一化、最新化する • AI Search のスコアプロファイリング機能で情報の新しさで重みづけする • 検索スコアの閾値を設定して、類似する問い合わせがデータソース内に存在しない場合は 回答生成時に参照させないようにする
原因②:検索結果 20 Copyright© 2024, JAZUG All Rights Reserved. 類似する問い合わせメールはあるが検索時にヒットしない 1つの問い合わせに複数の質問や現象の説明が含まれていて、一部の質問の回答しか
検索結果として得られない • 検索する前に問い合わせ文の意図を明確化する • 問い合わせ文を質問や話題ごとに分割してから、それぞれ検索する
原因③:OpenAI の回答 21 Copyright© 2024, JAZUG All Rights Reserved. OpenAI
が余計なアレンジを加えてしまう 参照元メールや FAQ に記載のない文を付け加える 問い合わせの回答文としておかしい。 製品の交換が必要な旨の説明なしにいきなり交換手順案内をする ユーザーの問い合わせ文の内容を復唱しているだけの場合がある 代理店がユーザーの代わりに問い合わせしている場合、宛先や主語がおかしくなったり、 問い合わせ内容を復唱するだけのことがある 「お客様がXXという質問をしている」という問い合わせなので、立ち位置を理解できていない可能性がある • プロンプトエンジニアリングでの対応 • データソースに書いてあること以外は言及しないようにプロンプトに追記する • 立場(ペルソナ)の説明をプロンプトに追加する • 回答を返す前に問い合わせ文に対する回答として正しいか確認させる
どこが悪いといいきれないパターン 22 Copyright© 2024, JAZUG All Rights Reserved. 類似する問い合わせメールはヒットするが、その回答文が欲しい内容と異なる ヒットした問い合わせ文の類似度は全体的に高いが、回答内容を左右する重要な部分が類似しておらず、
回答の類似度が低くなる 1つの問い合わせに複数の質問が含まれていて、すべての質問に類似度の高い問い合わせ文が検索結果として 得られているが、回答としてはすべての質問に答える必要がない
どこが悪いといいきれないパターン 23 Copyright© 2024, JAZUG All Rights Reserved. • フローチャートを利用する
• 製品の現象と解決方法のパターンがある程度決まっているため、OpenAI に問い合わせ文を もとにフローチャートで状況を判断させる • 判断結果をもとに検索を行い、同様の状況の問い合わせメールを取得し回答生成する。 チャートを辿れない場合は質問する文章を作成する
Conclusion まとめ 24 Copyright© 2024, JAZUG All Rights Reserved.
まとめ AOAI を活用して社内データをもとに回答するシステムを作って分かったこと 回答精度の向上のためには、継続的な改善が重要となる • 開発と運用のフィードバックループを回していくアジャイル開発との相性が良さそう とりあえずデータは量を渡しておくから、いい感じに回答生成させるには限界がある • RAG では検索結果をもとに生成
AI で文章生成するため、検索精度の向上が重要となる • いくらデータ量を増やしても、質の高いデータでないと精度に限界がある • データソースにない情報には回答できない、欲しい情報をまんべんなく入れておく 検索する側の文章の意図を明確化したり、複数の意図が含まれる場合は分割しておく • フローチャートで判断される状況に応じた回答文を整備しておく など 25 Copyright© 2024, JAZUG All Rights Reserved.