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
[NLP2023] 最小コスト法に基づく形態素解析におけるCPU キャッシュの効率化
Search
LegalOn Technologies, Inc
PRO
May 01, 2024
Programming
380
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[NLP2023] 最小コスト法に基づく形態素解析におけるCPU キャッシュの効率化
LegalOn Technologies, Inc
PRO
May 01, 2024
More Decks by LegalOn Technologies, Inc
See All by LegalOn Technologies, Inc
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
1
200
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
440
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
380
AI時代でも楽しくエンジニアリングするには
legalontechnologies
PRO
1
210
AI Coding Agent と歩むプロダクト開発 〜現場とデザイナーの変化〜
legalontechnologies
PRO
1
280
アクセシビリティ1年生、専任になるまでとこれから
legalontechnologies
PRO
2
170
AI導入だけでは価値提供が速くならない ― Findy Team+活用でわかった、アウトカムにつながる土台とプロセス再構築のポイント
legalontechnologies
PRO
0
290
QAプロセスAI支援ツールキットの導入とその効果について
legalontechnologies
PRO
1
1.2k
全社で推進するAI活用 ― ダブルCoE体制とLegalRikaiが支えるリーガルテックの進化
legalontechnologies
PRO
0
3.4k
Other Decks in Programming
See All in Programming
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
140
Claude Team Plan導入・ガイド
tk3fftk
0
250
React本体のコードリーディング
high_g_engineer
1
130
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
490
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
200
プロポーザルを書いてもらう
pvcresin
0
190
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
350
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
410
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
450
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
18k
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
230
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
860
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
530
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
190
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
So, you think you're a good person
axbom
PRO
2
2.1k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.7k
Are puppies a ranking factor?
jonoalderson
1
3.8k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
270
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.2k
Automating Front-end Workflow
addyosmani
1370
210k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
Transcript
神田峻介, 赤部晃一, 後藤啓介(LegalOn Technologies Research) 小田悠介(東北大学 データ駆動科学・AI 教育研究センター) 最小コスト法に基づく形態素解析における CPU
キャッシュの効率化 NLP2023 (3/13–3/17)
2 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
最小コスト法による形態素解析 ❏ 形態素ラティスを構築し、最小コスト経路を探索することで形態素列を得る ❏ MeCabやSudachiなどで利用されているアルゴリズム 最小コスト法の時間的ボトルネック ❏ 木構造探索や行列参照など頻繁なランダムアクセス ❏ 辞書の肥大化に伴うCPUキャッシュ効率の低下 ❏ ipadic-neologd (2020-09-10): 形態素辞書 約460万エントリ ❏ unidic-cwj (v3.1.1): 連接行列 15388×15626 = 459 MiB 本研究の貢献 ❏ 参照の局所性の良いデータ構造の提案 ❏ キャッシュ効率化により40%程度の高速化を達成 ❏ Rust製形態素解析器 Vibrato を開発 https://github.com/daac-tools/vibrato 背景と貢献 ※unidic-mecab v2.1.2では68MiB程度 ※ipadic-mecab v2.7.0では40万程度
3 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
以下の2ステップにより入力文から形態素列を得るアルゴリズム 1. 入力文に現れる形態素をノードとしたグラフ構造(形態素ラティス)を構築 2. 形態素本体や並びの出現しやすさを表したコストの和が最小となる経路を探索 最小コスト法による形態素解析 入力文「元気になった」の例
4 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
最小コスト法の時間的ボトルネックは以下の2つのランダムアクセス ❏ 辞書引き:トライ木の探索による形態素列挙 ❏ ダブル配列を使えば定数時間だが、各探索は配列上のランダムアクセス ❏ 連接コスト参照:連接表アクセスによる参照 ❏ 単純な行列を使うので定数時間だが、ランダムアクセス 肥大化したモデルでは、これらのランダムアクセスがボトルネックになる ➔ それぞれに参照の局所性の良いデータ構造を設計し高速化 高速化の方針
5 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
最小コスト法の時間的ボトルネックは以下の2つのランダムアクセス ❏ 辞書引き:トライ木の探索による形態素列挙 ❏ ダブル配列を使えば定数時間だが、各探索は配列上のランダムアクセス ❏ 連接コスト参照:連接表アクセスによる参照 ❏ 単純な行列を使うので定数時間だが、ランダムアクセス 肥大化したモデルでは、これらのランダムアクセスがボトルネックになる ➔ それぞれに参照の局所性の良いデータ構造を設計し高速化 高速化の方針
6 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
入力文に現れる辞書エントリはトライ木の共通接頭辞検索により列挙 ❏ 多くの形態素解析器はトライの表現にダブル配列を採用 ❏ 定数時間でエッジの探索を実現 エッジの探索は配列上のランダムアクセス ❏ 辞書のサイズが大きくなるとキャッシュミスがボトルネックに! 辞書引きのキャッシュ効率化:背景と問題点
7 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
従来法:文字列をバイト列として表現 ❏ 汎用性、実装の容易さが理由 提案法:文字列をUnicodeのコードポイント列として表現 ❏ 木の高さを抑えランダムアクセスを削減 辞書引きのキャッシュ効率化:改善案
8 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
最小コスト法の時間的ボトルネックは以下の2つのランダムアクセス ❏ 辞書引き:トライ木の探索による形態素列挙 ❏ ダブル配列を使えば定数時間だが、各探索は配列上のランダムアクセス ❏ 連接コスト参照:連接表アクセスによる参照 ❏ 単純な行列を使うので定数時間だが、ランダムアクセス 肥大化したモデルでは、これらのランダムアクセスがボトルネックになる ➔ それぞれに参照の局所性の良いデータ構造を設計し高速化 高速化の方針
9 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
連接コスト:形態素ラティスのエッジのコスト ❏ 左側と右側のノードの文脈IDでアクセスされる連接表に格納される 連接表のキャッシュ効率化:背景と問題点 unidic-cwj (v3.1.1) では連接表が巨大:15,388 × 15,626 = 459 MiB ➔ 頻繁なアクセスによるキャッシュミスが重大なボトルネック
10 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
頻繁に使用されるコストが配列の先頭に集まるように文脈IDをマッピング ❏ 頻度順に若い文脈IDを割り当て直す ❏ 頻繁に使用されるコストが密集し参照の局所性が改善 ❏ 頻度は訓練コーパスを解析し算出 連接表のキャッシュ効率化:改善案 ※訓練コーパス:BCCWJ 1.5万中上位40件の 使用率が50%
11 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
文章コーパス:BCCWJ v1.1 ❏ マッピングの訓練:コアデータ6万文 ❏ 解析速度の評価:サブコーパスからランダムに抽出した10万文 実験環境 ❏ Intel Core i9-12900K @3.2–5.2GHz CPU (L1d: 640 KiB, L2: 14 MiB, L3: 30MiB) ❏ 64 GiB RAM プログラミング言語 ❏ Rust (rustc v1.63.0) 実験設定
12 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
❏ 辞書引きの効率化(文字単位トライ)によりIPADICで10%程度高速化 ❏ 連接表の効率化(IDマッピング)によりUniDicで20–40%程度高速化 ❏ L1-load missも全体的に削減 ❏ (ただし辞書引きやコスト参照以外の処理も含まれており、パートごとに詳細な分析も必要) 提案手法の分析 辞書引きの効率化 +連接表の効率化
13 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
均衡コーパスとドメイン特化なコーパスを使った場合で解析速度に差はあるかを調査 ❏ BCCWJサブコーパスの13カテゴリについて、1万文ずつを評価用にサンプル ❏ 各カテゴリについて、以下の方法でマッピングを訓練し解析速度を比較 ❏ 均衡データ:BCCWJコアデータ1万文で訓練 ❏ カテゴリ別:各カテゴリの評価用データについて5分割交差検証 文脈ID頻度算出の訓練データに関する調査 解析時間に大きな差は無い ➔ 均衡データから訓練したマッピングを一 つ持っておけば十分 (詳細な解析は論文の付録参照)
14 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
提案法を組み込んだRust製形態素解析器 ❏ 解析結果がMeCab互換 ❏ 解析精度を犠牲にしない圧縮オプションもサポート(C2-1の発表) ❏ Python Wrapperもあります (https://github.com/daac-tools/python-vibrato) ❏ ダブル配列の実装も切り分けて公開してます (https://github.com/daac-tools/crawdad) 形態素解析器 Vibrato (https://github.com/daac-tools/vibrato) IPADICで 2.1x 高速 UniDicで 2.3x 高速