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
[DEIM2023] 高速な形態素解析器Vibratoの紹介
Search
LegalOn Technologies, Inc
PRO
March 06, 2023
Technology
1.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[DEIM2023] 高速な形態素解析器Vibratoの紹介
DEIM2023 にて、LegalOn Technologies Research からの技術報告です。
LegalOn Technologies, Inc
PRO
March 06, 2023
More Decks by LegalOn Technologies, Inc
See All by LegalOn Technologies, Inc
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
2
440
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
570
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
550
AI時代でも楽しくエンジニアリングするには
legalontechnologies
PRO
1
230
AI Coding Agent と歩むプロダクト開発 〜現場とデザイナーの変化〜
legalontechnologies
PRO
1
330
アクセシビリティ1年生、専任になるまでとこれから
legalontechnologies
PRO
2
200
AI導入だけでは価値提供が速くならない ― Findy Team+活用でわかった、アウトカムにつながる土台とプロセス再構築のポイント
legalontechnologies
PRO
0
310
QAプロセスAI支援ツールキットの導入とその効果について
legalontechnologies
PRO
1
1.3k
全社で推進するAI活用 ― ダブルCoE体制とLegalRikaiが支えるリーガルテックの進化
legalontechnologies
PRO
0
3.6k
Other Decks in Technology
See All in Technology
AI時代、データエンジニアが一番おもろい
genshun9
0
670
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.8k
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
230
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
2.1k
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
360
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
25
16k
Von-Neumann Machines, Dreams & The Futures of IT
ufried
0
110
絵ではじめるKubernetesセキュリティ
aoi1
4
680
あるけみー式LTスライド作成術
alchemy1115
2
220
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
180
LTのテーマ どうきめてる?〜5つの型と私のやり方〜
yama3133
1
110
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
150
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
910
Paper Plane (Part 1)
katiecoart
PRO
2
11k
We Have a Design System, Now What?
morganepeng
55
8.3k
New Earth Scene 8
popppiees
4
2.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Code Review Best Practice
trishagee
74
20k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Typedesign – Prime Four
hannesfritz
42
3.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
330
Transcript
DEIM2023 技術報告 神田峻介(LegalOn Technologies Research) 2023年3月6日 高速な形態素解析器Vibratoの紹介 株式会社LegalOn Technologies
2 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
株式会社LegalOn Technologies レビュー支援ソフトウェア AI契約管理システム 代表: 角田 望 設立: 2017年4月21日 従業員等: 470名※1(役員含) 資本金等: 178.5億円※2(資本準備金等含) ※1: 2022年12月時点 ※2: 2022年6月時点 契約・法令情報メディア 株式会社LegalOn Technologiesは、弁護士の法務知見と自然言語処理技術や機械学習な どのテクノロジーを組み合わせ、法務業界のイノベーションを推進するサービスの開発・提供 をしています。
3 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
LegalOn Technologies Researchメンバー主体で開発している形態素解析器について紹介 ❏ Vibrato: VIterbi-Based acceleRAted TOkenizer ❏ OSSコミュニティ “daac-tools” で開発・管理 本日の発表内容 https://github.com/daac-tools
4 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
以下の2ステップにより入力文から形態素列を得るアルゴリズム 1. 入力文に現れる単語をノードとしたグラフ構造(単語ラティス)を構築 2. 単語本体や単語の並びの出現しやすさを表したコストの和が最小となる経路を探索 最小コスト法による形態素解析 ソフトウェア:MeCab, Kuromoji, Sudachi, Vibrato など
5 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
最小コスト法に基づくOSSの形態素解析器 ❏ 提案手法による時間・メモリの効率化(本日の発表内容) ❏ CPUキャッシュ効率化による高速解析 ❏ コスト計算分割による圧縮モデルオプション ❏ MeCab互換 ❏ MeCabと同じ解析結果をサポート ❏ Pure Rust ❏ Rustプロダクトに自然に導入可能(e.g., Tantivy-vibrato) ❏ ちなみにPython Wrapperもあります https://github.com/daac-tools/python-vibrato Vibratoとは
CPUキャッシュ効率化による高速化
7 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
最小コスト法はランダムアクセスが多い! ❏ 辞書単語列挙(辞書引き)でのダブル配列トライの探索 ❏ コスト参照のための連接表アクセス モデルの肥大化に伴いランダムアクセスによるキャッシュミスがボトルネックに! ❏ mecab-ipadic-neologd: 単語辞書 約460万エントリ ❏ unidic-cwj v3.1.1: 連接表 15388×15626 = 459 MiB Vibratoでは参照の局所性を改善するためのデータ構造を提案 ❏ 文字単位でのダブル配列トライの実装 ❏ 頻度に基づくIDマッピング 最小コスト法による形態素解析の時間的ボトルネック ※unidic-mecab v2.1.2では68MiB程度 ※ipadic-mecab v2.7.0では40万程度
8 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
入力文に現れる辞書単語はトライ木の共通接頭辞検索により列挙 ❏ 多くの形態素解析器はトライの表現にダブル配列を採用 ❏ 定数時間でエッジの探索を実現 エッジの探索は配列上のランダムアクセス ❏ 辞書のサイズが大きくなるとキャッシュミスがボトルネックに! 辞書引きのキャッシュ効率化:背景と問題点
9 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
従来の実装:文字列をバイト列として表現 ❏ 汎用性、実装の容易さが理由 Vibratoの実装:文字列をUnicodeのコードポイント列として表現 ❏ 木の高さを抑えランダムアクセスを削減 辞書引きのキャッシュ効率化:Vibratoのアイデア
10 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
連接コスト:形態素ラティスのエッジのコスト ❏ 左側と右側のノードのIDでアクセスされる連接表に格納される 連接表のキャッシュ効率化:背景と問題点 UniDic v3.1.1では連接表が巨大:15,388 × 15,626 = 459 MiB ➔ 頻繁なアクセスによるキャッシュミスが重大なボトルネックに!
11 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
頻繁に使用されるコストが配列の先頭に集まるようにIDをマッピング ❏ 頻度順に若いIDを割り当て直す ❏ 頻繁に使用されるコストが密集し参照の局所性が改善 ❏ 頻度は訓練コーパスを解析し算出 連接表のキャッシュ効率化:Vibratoのアイデア 1.5万中上位40件の 使用率が50% ※訓練コーパス:BCCWJ
12 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
文書コーパス:BCCWJ v1.1 ❏ 速度評価用:サブコーパスからランダムに抽出した10万文 ❏ マッピング訓練用:コアデータ6万文 高速化の実験結果
13 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
他の形態素解析器との速度比較 IPADICで 2.1x 高速 UniDicで 2.3x 高速 文書コーパス:BCCWJ v1.1 ❏ 速度評価用:サブコーパスからランダムに抽出した10万文 ❏ マッピング訓練用:コアデータ6万文
スコア計算の分割による連接表の省メモリ化
15 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
素性の設計によっては連接表が大規模になりモデルサイズが肥大化する ❏ unidic v2.1.2: 5,981 × 5,981 = 68 MiB ❏ unidic v3.1.1: 15,388×15,626 = 459 MiB 連接表の構築はスコアの事前計算を解析時に立て替えることで回避可能 ❏ ただしメモリと解析時間のトレードオフ Vibratoのアイデア ❏ 連接表の肥大化に寄与しないスコアのみを事前計算 ❏ 解析速度を大きく損なわずに連接表を省メモリ化 最小コスト法による形態素解析の空間的ボトルネック
16 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
Step1: 人手で作った素性テンプレートに基づいて素性列を抽出 Step2: 内積 wTΦ を連接スコアとして計算 背景: 連接スコアの計算 法律 の POS1/POS1 POS1,POS2/POS1 POS1/POS1,POS2 素性テンプレート 名詞/助詞 名詞,一般/助詞 名詞/助詞,格助詞 素性列 h(法律,の) Step1. 素性列を抽出 Φ = (0,0,…,1,…,1,…,1,…,0,0) w = (2,1,…,3,…,4,…,6,…,6,3) 名 詞 /助 詞 名 詞 ,一 般 /助 詞 名 詞 /助 詞 ,格 助 詞 h(法律,の) = 3 + 4 + 6 = 13 Step2. スコアを計算 ※ 連接スコア = -1*連接コスト Φ: 素性ベクトル (multi-hot vector) w: 重みベクトル
17 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
解析時の重みの足し算を回避するため、事前計算し連接表に保存しておく 背景: 連接表の構築 POS1/POS1 POS1,POS2/POS1 POS1/POS1,POS2 素性テンプレート 名詞/助詞 名詞,一般/助詞 名詞/助詞,格助詞 素性列 Rid(の) = 助詞-助詞-助詞,格助詞 Lid(法律) = 名詞-名詞,一般-名詞 左右それぞれの素性列の連結が ID 13 Lid(法律) Rid(の) h(法律,の) = 3 + 4 + 6 = 13 問題点:詳細に素性テンプレートを設計すると、IDが増え連接表が肥大化! ❏ 例えば、UniDic v3.1.1 (L1正則化) で 13,403 × 13,689 = 350 MiB
18 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
素性テンプレートの一部のみを事前計算し連接表に格納 ❏ 素性列の組合せ数が減るので、連接表の行数・列数も減る ❏ 事前計算しない素性に対応するスコアは解析時に陽に計算 圧縮のアイデア:スコアの部分的事前計算 POS1/POS1 POS1,POS2/POS1 POS1/POS1,POS2 素性テンプレート 名詞/助詞 名詞,一般/助詞 名詞/助詞,格助詞 素性列 Rid(の) = 助詞-助詞,格助詞 Lid(法律) = 名詞-名詞 IDがシンプルになって 組合せ数が減少 9 Lid(法律) Rid(の) h(法律,の) = 3 + 4 + 6 = 9
19 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
事前計算しない素性テンプレート数は時間とメモリのトレードオフ ❏ より多く選べば連接表は小さくなるが、解析時の計算が多くなる 事前計算する素性テンプレートの選択戦略 Vibratoの戦略 ❏ 連接表のサイズに大きく影響を与える素性テン プレートを貪欲法により選択 UniDic v3.1.1での実験結果(右図) ❏ 91の素性テンプレートから5個を取り除くだけ で、連接表は10%程度まで軽量化
20 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
辞書 ❏ UniDic v3.1.1 モデル訓練用コーパス ❏ BCCWJコアデータ6万文 ❏ 人手で短単位アノテーション ❏ L1正則化 速度評価用コーパス ❏ サブコーパス10万文 (ランダムに抽出) 実験:時間とメモリのトレードオフ 8.5倍省メモリ 2.1倍 低速化 ダブル配列 + SIMD による高速スコア計算バージョン
21 当該資料の利用により直接または間接に生じた損害や損失等について、株式会社 LegalOn Technologiesは一切の責任を負いません。 ©LegalOn Technologies, Inc. all rights reserved.
形態素解析器Vibratoの技術仕様を紹介 ❏ CPUキャッシュ効率化による高速解析 ❏ コスト計算分割による圧縮オプション 詳細な解説がEnginnering Blogにあります! https://tech.legalforce.co.jp/ 一週間後の言語処理学会でも発表します! まとめ LegalOn Technologiesでは、SREやバックエンドエンジニア、検索システム、研究開発に興味のあるインター ン生など様々なポジションを募集しています。 興味を持たれた方は是非お声がけください! PR