生成 AI を活用した toitta 切片分類機能の裏側 / Inside toitta's AI-Based Factoid Clustering
by
https://speakerdeck.com/pokutuna
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
高性能な AI を使うだけじゃない! 生成 AI を活用した toitta 切片分類機能の裏側 id:pokutuna 2024/10/24 はてな 生成AI×新規事業 の挑戦 1
Slide 2
Slide 2 text
id:pokutuna ● toitta の AI 周辺担当 ● 2013 新卒入社 ➡ 受託開発 ➡ 広告配信・データ基盤 ➡ 新規事業 アイコン 2
Slide 3
Slide 3 text
アジェンダ ● 切片分類(グルーピング)機能とは ● グルーピング処理の流れ ● 生成 AI を利用する上での工夫 3
Slide 4
Slide 4 text
4 toitta の機能
Slide 5
Slide 5 text
5
Slide 6
Slide 6 text
書き起こし & 話者分離 6 話者判定と分離 話者の判定と分離を⾃動で⾏い ます。 段落分割で⻑時間のインタ ビューによる書き起こしも⾒や すくします。 佐々木さん 佐藤さん
Slide 7
Slide 7 text
切片の抽出 7 インタビュイーの発話を中心に切片化
Slide 8
Slide 8 text
切片グルーピング 8 佐々木さん 佐藤さん
Slide 9
Slide 9 text
toitta の機能 ● 書き起こし & 話者分離 音声認識技術・言語モデルを利用 ● 切片の抽出 生成 AI による抽出・要約・加工 ● 切片グルーピング 生成 AI による要約・クラスタリング 9
Slide 10
Slide 10 text
toitta の機能 ● 書き起こし & 話者分離 音声認識技術・言語モデルを利用 ● 切片の抽出 生成 AI による抽出・要約・加工 ● 切片グルーピング 👈 ここの話 生成 AI による要約・クラスタリング 10
Slide 11
Slide 11 text
11 切片グルーピング
Slide 12
Slide 12 text
12 佐々木さん 佐藤さん "近い"切片をまとめる
Slide 13
Slide 13 text
13 佐々木さん 佐藤さん タイトル & サマリを付加
Slide 14
Slide 14 text
親和図法を支援 ● 切片を付箋に書く ● 似た切片をまとめる ● まとまりの 関係性を可視化 14 羽山祥樹. "KA法(本質的価値抽出法)の手順と実例「資格試験を受ける人のモチベーションの価値マップ」". https://www.figma.com/community/file/1142124393231568930 , (2024-10-18)
Slide 15
Slide 15 text
15 佐々木さん 佐藤さん
Slide 16
Slide 16 text
16 佐々木さん 佐藤さん 切片まとめるところまで ● 特定手法に特化しない ● 次の分析ステップを楽にする ○ 分析作業は慣れたツールで
Slide 17
Slide 17 text
17 どのように グルーピングするか?
Slide 18
Slide 18 text
全体の流れ 18
Slide 19
Slide 19 text
AI にお願い ● 「これらを分類してまとめて」 ● 一見よさそうな出力は得られるが... ○ 入出力の一貫性・網羅性がいまいち ○ 粒度の調整が効かない ○ トップダウン的分類になりがち 19
Slide 20
Slide 20 text
「近い」切片とは? ● 定義が難しい ● 作業者・状況によって違う ● 切片テキストを 利用しようとしたが... 20
Slide 21
Slide 21 text
21 例: 引っ越しインタビュー
Slide 22
Slide 22 text
22 例: 引っ越しインタビュー 収納に関する話
Slide 23
Slide 23 text
切片の拡張 ● 前後の発話から分類用の拡張切片を生成 ● 意図・感情・行動・ニーズを拾って短く作文 ● 各切片に対して実行 (100~200回/インタビュー) 23 話者は、収納スペースが不足していると感じ 壁面を活用している。キッチンに突っ張りで フェンスを作りフライパンをかけている。 拡張
Slide 24
Slide 24 text
Text Embedding 24 ● 文章の意味を反映したベクトル表現 ○ 意味が近いテキストは近くなる ● 拡張した切片の Embedding 表現を得る ○ Vertex AI のクラスタリングに適した Emb を利用 話者は、収納スペースが不足 していると感じ... [0.179, 0.187, … 0.205]
Slide 25
Slide 25 text
次元削減&クラスタリング 25 ● UMAP で低次元へ削減 ○ 高次元だとクラスタリングが働きにくい ● HDBSCAN でクラスタリング ○ 今回の用途に使いやすい ○ 密度ベース・形状の変化に柔軟 ○ クラスタ数決めなくて良い
Slide 26
Slide 26 text
切片のクラスタリング 26 :クラスタなし 使い始めたきっかけ ブコメについて あとで読む機能 通知機能 はてなスター エンジニアの情報収集
Slide 27
Slide 27 text
拡張切片の出力の調整 27 ● 良いクラスタリングができるように調整 ● 文の体裁を統一 ○ ❌「インタビューでは」「〜と言っていました」 ○ ⭕「話者は (背景や理由) (行動) をした。」 に統一 ● 固有名詞を避ける ○ 共通すると過剰に類似度が高くなる ○ キーワードでグルーピングしたいわけではない
Slide 28
Slide 28 text
タイトル & サマリ 28 ● クラスタごとにタイトル & サマリを生成 ○ 切片 & 拡張した切片を入力 ○ 話者の行動に着目した説明を生成
Slide 29
Slide 29 text
全体の流れ 29
Slide 30
Slide 30 text
30 生成 AI を 利用する上での工夫
Slide 31
Slide 31 text
活用の工夫 31 ● 切片の拡張 ○ 簡単なタスクに落とし込む・必要な情報だけ与える ● グループ化 ○ 従来からある手法の活用 ● タイトル & サマリの生成 ○ 多段階の処理でユーザに見せる品質に整える
Slide 32
Slide 32 text
簡単なタスクに分解する 32 ● 高度な推論能力がなくてもいい形に分解 ○ 明確なタスク & 必要な情報だけ与える ● 切片拡張では切片ごとに実行 ○ 1インタビューで 100~200 回実行 ○ モデルの賢さ依存を下げる・出力を安定させる ● モデルを使い分ける ○ コスト・速度に優れる Gemini 1.5 Flash を利用
Slide 33
Slide 33 text
Gemini 1.5 Flash 33 Artifact Analysis "Gemini 1.5 Flash (Sep '24): API Provider Benchmarking & Analysis" https://artificialanalysis.ai/models/gemini-1-5-flash/providers , (2024-10-18)
Slide 34
Slide 34 text
既存手法と組み合わせる 34 ● Embedding & クラスタリング ○ 昔からある手法 ○ 結果も(相対的に)安定する ○ 実装を見れる・説明性もある
Slide 35
Slide 35 text
多段処理で品質を保つ 35 ● ユーザーに見せるテキスト品質 ○ 敬体に統一・テキストの長さの調整 ○ デザイン意図から特定の文字数に収めたい ● 一度にまとめてやらない ○ タイトル&サマリの生成 → 敬体に統一・文字数調整 ● Gemini 1.5 Pro を利用
Slide 36
Slide 36 text
例: テキスト長の調整 36 グループ サマリ文字数 指示:110文字程度
Slide 37
Slide 37 text
課題 37 ● 評価の難しさ ○ 求めるグルーピング結果が定まっていない ○ 定量的な指標に落ちていない ● 調整を繰り返し定性的に評価 ○ 一対比較「A と B のどっちがいい?」
Slide 38
Slide 38 text
38 まとめ
Slide 39
Slide 39 text
39 ✅ 切片分類機能とは ✅ グルーピング処理の流れ ✅ 生成 AI を利用する上での工 夫 ● 簡単なタスクに落とし込む ● 従来からある手法と組み合わせる ● 多段階の処理で品質をコントロール
Slide 40
Slide 40 text
hatena.co.jp/recruit 40 40
Slide 41
Slide 41 text
ご質問や感想は #hatenatech にお願いします 発表後ご質問をピックアップする場合がございます #hatenatech 41