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
390
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
2
420
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
550
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
500
AI時代でも楽しくエンジニアリングするには
legalontechnologies
PRO
1
230
AI Coding Agent と歩むプロダクト開発 〜現場とデザイナーの変化〜
legalontechnologies
PRO
1
300
アクセシビリティ1年生、専任になるまでとこれから
legalontechnologies
PRO
2
190
AI導入だけでは価値提供が速くならない ― Findy Team+活用でわかった、アウトカムにつながる土台とプロセス再構築のポイント
legalontechnologies
PRO
0
310
QAプロセスAI支援ツールキットの導入とその効果について
legalontechnologies
PRO
1
1.3k
全社で推進するAI活用 ― ダブルCoE体制とLegalRikaiが支えるリーガルテックの進化
legalontechnologies
PRO
0
3.5k
Other Decks in Programming
See All in Programming
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.4k
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
150
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
280
Webの地図
yosuke_furukawa
PRO
6
4k
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
120
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
2
270
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
130
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
600
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
Deep dive into the select statement (GopherCon UK)
jespino
0
170
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
160
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
190
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
YesSQL, Process and Tooling at Scale
rocio
174
15k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
RailsConf 2023
tenderlove
30
1.5k
Writing Fast Ruby
sferik
630
63k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
Thoughts on Productivity
jonyablonski
76
5.4k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
980
Un-Boring Meetings
codingconduct
0
410
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
270
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
820
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
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 高速