Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
[NLP2023] 最小コスト法に基づく形態素解析におけるCPU キャッシュの効率化
Search
LegalOn Technologies, Inc
PRO
May 01, 2024
Programming
400
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
3
450
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
630
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
670
AI時代でも楽しくエンジニアリングするには
legalontechnologies
PRO
1
240
AI Coding Agent と歩むプロダクト開発 〜現場とデザイナーの変化〜
legalontechnologies
PRO
1
350
アクセシビリティ1年生、専任になるまでとこれから
legalontechnologies
PRO
2
210
AI導入だけでは価値提供が速くならない ― Findy Team+活用でわかった、アウトカムにつながる土台とプロセス再構築のポイント
legalontechnologies
PRO
0
330
QAプロセスAI支援ツールキットの導入とその効果について
legalontechnologies
PRO
1
1.4k
全社で推進するAI活用 ― ダブルCoE体制とLegalRikaiが支えるリーガルテックの進化
legalontechnologies
PRO
0
3.6k
Other Decks in Programming
See All in Programming
Next.js: The final boss of Web Performance
guaca
0
130
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
1
310
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
210
golang-bob.pdf
iwatsukayura
0
130
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
3
2.5k
ジョジョの世界をXRで再現する
mofurune
0
160
mrbgem 三角測量 開発
ogom
0
250
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
990
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
120
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
230
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
エンジニアに許された特別な時間の終わり
watany
109
250k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Faster Mobile Websites
deanohume
310
32k
Building Applications with DynamoDB
mza
96
7.2k
Paper Plane
katiecoart
PRO
5
54k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Why Our Code Smells
bkeepers
PRO
340
58k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
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 高速