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
LayerX Biz Boost〜Whisper+GPTによる音声文字起こし要約の取り組み〜
Search
yakipudding
April 25, 2023
Programming
1
10k
LayerX Biz Boost〜Whisper+GPTによる音声文字起こし要約の取り組み〜
LLM(GPT, PaLM等) with MLOps LT大会!!! で登壇した内容です
https://mlops.connpass.com/event/279156/
yakipudding
April 25, 2023
Tweet
Share
More Decks by yakipudding
See All by yakipudding
LayerX Biz Boost 〜セキュリティチェックシート一次回答の取り組み〜
yakipudding
1
30k
Other Decks in Programming
See All in Programming
漸進。
ssssota
0
1.8k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
16
4k
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
200
SODA - FACT BOOK
sodainc
1
830
実践ArchUnit ~実例による検証パターンの紹介~
ogiwarat
2
250
C++20 射影変換
faithandbrave
0
250
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
10
1.8k
UPDATEがシステムを複雑にする? イミュータブルデータモデルのすすめ
shimomura
1
530
Using AI Tools Around Software Development
inouehi
0
1.2k
Spring gRPC で始める gRPC 入門 / Introduction to gRPC with Spring gRPC
mackey0225
2
480
カクヨムAndroidアプリのリブート
numeroanddev
0
410
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
750
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
The Invisible Side of Design
smashingmag
299
51k
Side Projects
sachag
454
42k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.6k
Bash Introduction
62gerente
614
210k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Cost Of JavaScript in 2023
addyosmani
50
8.3k
Facilitating Awesome Meetings
lara
54
6.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Transcript
LayerX Biz Boost 〜Whisper+GPTによる音声文字起こし要約の取り組み〜 2023.4.25 LLM(GPT, PaLM等) with MLOps LT大会!!!
白井 仁美(@yakipudding)
Confidential © LayerX Inc. 2 画像を入れてね 自己紹介 白井 仁美 @yakipudding
- LayerX MLエンジニア - 3月に弥生からLayerXに転職 - 法人向けSaaS「バクラクシリーズ」 請求書OCR機能の開発がメイン - LLM活用の取り組みも
What's LayerX Biz Boost?
© LayerX Inc. 4 LLMを活用した業務効率化ツール - 例)お客様へのヒアリング内容の要約自動生成 (セールスチーム向けに提供) What’s LayerX Biz
Boost? ヒアリング 音声ファイル 文字起こし 要約
© LayerX Inc. 5 LLMを活用した業務効率化ツール - 例)お客様へのヒアリング内容の要約自動生成 (セールスチーム向けに提供) What’s LayerX Biz
Boost? ヒアリング 音声ファイル 文字起こし 要約 GPT Whisper
課題&工夫したこと
Whisperが話し手を区別できない問題
© LayerX Inc. 8 実際の音声: セールス: お世話になっております。LayerXの田中と申します。 お客さま: お世話になっております。 Whisperの文字起こし結果: お世話になっております。LayerXの田中と申します。お世話になっております。 ➔
Whisperの文字起こし結果は話し手の区別ができない 1. Whisperは話し手の区別ができない
© LayerX Inc. 9 実際の音声: セールス: バクラクシリーズはAがBでCで・・・とにかくバクラクなんですよ。 お客さま: へー。 セールス: 御社の運用ではどういったところに課題を感じていますでしょうか。 お客さま: んーそうですね。やっぱ紙で回すのがつらいですね。 Whisperの文字起こし結果:
バクラクシリーズはAがBでCで・・・とにかくバクラクなんですよ。へー。御社の運用ではどういったと ころに課題を感じていますでしょうか。んーそうですね。やっぱ紙で回すのがつらいですね。 GPTの要約結果: バクラクシリーズはとにかくバクラクです。紙で回すことに課題を感じています。 ➔ 要約結果にセールスが話した内容は不要 ➔ 文字起こし時点で話し手の区別をし、お客さまの発言を抽出して要約したい 1. Whisperは話し手の区別ができない
© LayerX Inc. 10 話者分離を行うためにpyannote.audioを利用 - 音声から話者判別を行うことができるライブラリ - 1名の話者の発言単位に音声を分割し、分割した音声単位でWhisperで文字起こしを行った 1.
Whisperは話し手の区別ができない お世話になっております。お世話になっております。 A: お世話になっております。 B: お世話になっております。
© LayerX Inc. 11 話者分離後のWhisperの文字起こし結果: SPEAKER1: バクラクシリーズはAがBでCで・・・とにかくバクラクなんですよ。 SPEAKER2: へー。 SPEAKER1:
御社の運用ではどういったところに課題を感じていますでしょうか。 SPEAKER2: んーそうですね。やっぱ紙で回すのがつらいですね。 GPTのプロンプト: これはセールスと顧客の会話です。顧客の回答を要約してください。 GPTの要約結果: 顧客は紙で回すことに課題を感じています。 ➔ GPTがどちらが顧客かを推測して回答してくれる ➔ 要約結果がいい感じになった! 1. Whisperは話し手の区別ができない
GPTの要約結果、なんかちょっと違う問題
© LayerX Inc. 13 実際の音声: セールス: 御社の運用ではどういったところに課題を感じていますでしょうか。 お客さま: んーそうですね。やっぱ紙で回すのがつらいですね。 ・・・(長い会話)・・・ GPTのプロンプト: これはセールスと顧客の会話です。顧客の回答を要約してください。
GPTの要約結果: 課題を感じた内容について話題にあがりました。 ➔ 違う、そうじゃない。みたいな結果が返ってくる ➔ 「要約して」だと要約しすぎて本当に聞きたい中身がないことがある 2. 「要約して」だとうまく要約してくれないことがある
© LayerX Inc. 14 プロンプトを少し工夫することで改善 - 聞きたい項目について具体的に聞く 1. 顧客が使っているシステムは何ですか? 2.
顧客が課題に感じていることは何ですか? 3. 顧客はどうなることを期待していますか? … - 重要な発言を抽出させてから要約する - 価格に関して言及している発言を抽出してください - 要約してください ➔ GPTがいい感じに答えてくれるようになった 2. 「要約して」だとうまく要約してくれないことがある
GPTの文字数制限きつすぎる問題
© LayerX Inc. 16 ヒアリングは長いと1時間にも及ぶこともある ➔ 文字起こしした文字数が長文になる ➔ プロンプトの文字数制限にひっかかる 3.
プロンプトの文字数制限がきつい
© LayerX Inc. 17 結局制限文字数でチャンクわけするしかない。。。 3. プロンプトの文字数制限がきつい … … …
…
© LayerX Inc. 18 複数項目質問をすると回答もチャンクごとに出る 3. プロンプトの文字数制限がきつい … … …
… A,B,Cについて回答して A,B,Cについて回答して A,B,Cについて回答して A,B,Cについて回答して Aは... Bは... Cは... Aは... Bは... Cは... Aは... Bは... Cは... Aは... Bは... Cは...
© LayerX Inc. 19 後処理でまとめたり再要約させたりする 3. プロンプトの文字数制限がきつい … … …
… A,B,Cについて回答して A,B,Cについて回答して A,B,Cについて回答して A,B,Cについて回答して Aは... Bは... Cは... Aは... Bは... Cは... Aは... Bは... Cは... Aは... Bは... Cは... Aは... Bは... Cは...
実際に使ってもらった結果
© LayerX Inc. 21 - 話者分離するためにpyannoteを使うことで、処理時間が長くなってしまった - そもそも音声処理は重たい - ほぼGPU必須(CPUで動かなくはないが何時間もかかる。。)
- 30分の音声ファイルで10分程度かかる - GCP BatchでGPU使うなども工夫したが、これ以上は厳しかった。。 - 忙しいセールスにとって、精度よりも速度のほうが大事だった - 結果的に思ったほど使ってもらえなかった。。 実行時間がかかりすぎる
© LayerX Inc. 22 - 社内用Webサイトに音声ファイルをアップロードしてもらう形にした - Stleamlit + LangChainでシュッと開発
- いったんPoCということで実装が楽なやり方に倒してしまった - 忙しいセールスにとって、わざわざWebサイトにアクセスしてアップロードするのは面倒だった - 結果的に思ったほど使ってもらえなかった。。(その2) 使うまでのハードルが高かった
© LayerX Inc. 23 - 通常のプロダクト開発と同じく、UXが良くないと使ってもらえない - といっても本業の片手間開発だとそこまで時間をかけられず。。。 - やるならちゃんとリソースを投入して開発しないと使ってもらえるものは作れない
やっぱりUXが良くないと使ってもらえない
ということで
© LayerX Inc. 25 CTO松本が初代所長に就任し、LLM Labsチームを立ち上げました https://tech.layerx.co.jp/entry/2023/04/04/110000 LLMの研究・サービスへの導入検証・新規事業探索などに取り組むチームとなっております! 興味ある方は是非応募をお待ちしております!! ※私の所属するバクラク
MLチームとは別の組織になります もちろんバクラクのMLエンジニア/ML Opsエンジニアの方も募集しています!!! https://open.talentio.com/r/1/c/layerx/pages/63504 https://open.talentio.com/r/1/c/layerx/pages/71190 カジュアル面談もやってますのでお気軽に!!! https://jobs.layerx.co.jp/6843b7b523ce45e2921e82a03e902edb LayerXではLLM Labsチームを立ち上げました!!!