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
850
サイクルガードサービス 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
930
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
700
Azure Bicep で始める Infrastructure as Code/ace0917
thara0402
0
440
Introduction to Azure Synapse Analytics/ace0416
thara0402
0
490
Azure Kubernetes Service を活用したマイクロサービス開発/clouddev
thara0402
0
450
Azure Kubernetes Service を活用したマイクロサービス開発/Ignite-osaka
thara0402
0
460
Azure Kubernetes Service を活用したマイクロサービス開発/Ignite-tokyo
thara0402
0
190
Other Decks in Technology
See All in Technology
実践! ソフトウェアエンジニアリングの価値の計測 ── Effort、Output、Outcome、Impact
nomuson
0
900
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
250
事業貢献を考えるための技術改善の目標設計と改善実績 / Targeted design of technical improvements to consider business contribution and improvement performance
oomatomo
0
390
mixi2 の技術スタックを探ってみる (アプリ編)
ichiki1023
0
110
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
1
4.9k
.NET AspireでAzure Functionsやクラウドリソースを統合する
tsubakimoto_s
0
110
SpiderPlus & Co. エンジニア向け会社紹介資料
spiderplus_cb
0
340
20241220_S3 tablesの使い方を検証してみた
handy
4
860
10年もののバグを退治した話
n_seki
0
140
.NET 9 のパフォーマンス改善
nenonaninu
0
2.2k
Azureの開発で辛いところ
re3turn
0
190
MasterMemory v3 最速確認会
yucchiy
0
300
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Six Lessons from altMBA
skipperchong
27
3.5k
Become a Pro
speakerdeck
PRO
26
5.1k
Making Projects Easy
brettharned
116
6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
940
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Producing Creativity
orderedlist
PRO
343
39k
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.