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