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
AllenNLPを使った開発
Search
Yasufumi Taniguchi
July 29, 2019
Programming
2.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AllenNLPを使った開発
Yasufumi Taniguchi
July 29, 2019
More Decks by Yasufumi Taniguchi
See All by Yasufumi Taniguchi
Pathologies of Neural Models Make Interpretations Difficult
yasufumy
1
1.8k
Making Neural QA as Simple as Possible but not Simpler
yasufumy
0
110
Other Decks in Programming
See All in Programming
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
330
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
250
iOSDCのペンライトを自動制御したい!
akkeylab
0
330
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
4
400
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
150
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
220
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
160
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
420
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
410
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
580
カツオ、ご期待ください
suneo3476
0
130
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
270
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Speed Design
sergeychernyshev
33
2.1k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Designing for humans not robots
tammielis
254
26k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
310
Git: the NoSQL Database
bkeepers
PRO
432
67k
Deep Space Network (abreviated)
tonyrice
0
350
Side Projects
sachag
456
43k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Transcript
AllenNLPを使った開発 ⾕⼝泰史
⽬次 1. AllenNLPとは︖ 2. AllenNLPの概要 3. AllenNLPによる実装例 4. まとめ
1. AllenNLPとは • NLP研究に特化したPyTorchベースのライブラリ • プロトタイプ作成が簡単 • ハイパーパラメータ管理が簡単
1. AllenNLPとは • NLP研究に特化したPyTorchベースのライブラリ • プロトタイプ作成が簡単 • ハイパーパラメータ管理が簡単
1. プロトタイプ作成
1. プロトタイプ作成 論⽂で提案された様々な⼿法が実装済み
1. AllenNLPとは • NLP研究に特化したPyTorchベースのライブラリ • プロトタイプ作成が簡単 • ハイパーパラメータ管理が簡単
1. パラメータ管理 python -m torch.distributed.launch --nproc_per_node=8 ./examples/run_squad.py ¥ --model_type bert
¥ --model_name_or_path bert-large-uncased-whole-word-masking ¥ --do_train ¥ --do_eval ¥ --do_lower_case ¥ --train_file $SQUAD_DIR/train-v1.1.json ¥ --predict_file $SQUAD_DIR/dev-v1.1.json ¥ --learning_rate 3e-5 ¥ --num_train_epochs 2 ¥ --max_seq_length 384 ¥ --doc_stride 128 ¥ --output_dir ../models/wwm_uncased_finetuned_squad/ ¥ --per_gpu_eval_batch_size=3 ¥ --per_gpu_train_batch_size=3 ¥
1. パラメータ管理 allennlp train ¥ --include-package pretrained_bert ¥ model_config/pretrained_bert_large_squad1.1.jsonnet
1. パラメータ管理 allennlp train ¥ --include-package pretrained_bert ¥ model_config/pretrained_bert_large_squad1.1.jsonnet ファイルで指定するのでGit管理可能
2. AllenNLPの概要
Trainer データセットの準備 実験 モデル構築 DatasetReader Model torch.optim, etc Config files
$ allennlp train 2. AllenNLPの概要
2. AllenNLPの概要 DatasetReader Model
2. AllenNLPの概要 DatasetReader Model
2. DatasetReaderの役割 誰が⼀番に着くか私には分かりません。 DatasetReader tensor([88, 19, 226, 3, 151, 25,
18, 14, 3, 1, 273, 34, 17, 37, 26, 0])
2. AllenNLPの概要 DatasetReader Model
2. Modelの役割 tensor([88, 19, 226, 3, 151, 25, 18, 14,
3, 1, 273, 34, 17, 37, 26, 0]) Model {“loss”: tensor([0.1234])}
3. AllenNLPによる実装例
3. AllenNLPによる実装例 • 感情分析タスク (IMDB Dataset) に取り組む • 与えられた⽂書が肯定的か・否定的かを予測する •
DatasetReaderとModelの実装を紹介
3. DatasetReaderの実装 @overrides def text_to_instance(self, string, label): fields = {}
tokens = self._tokenizer.tokenize(string) fields['tokens'] = TextField(tokens, self._token_indexers) fields['label'] = LabelField(label, skip_indexing=True) return Instance(fields) • トークナイゼーション • インデックス化
3. DatasetReaderの実装 • ⽂書のトークナイズを⾏う • トークナイザは設定ファイルで指定する @overrides def text_to_instance(self, string,
label): fields = {} tokens = self._tokenizer.tokenize(string) fields['tokens'] = TextField(tokens, self._token_indexers) fields['label'] = LabelField(label, skip_indexing=True) return Instance(fields)
3. DatasetReaderの実装 • トークナイズした⽂書からTextFieldを⽣成 • インデックス化はTextFieldが実⾏ @overrides def text_to_instance(self, string,
label): fields = {} tokens = self._tokenizer.tokenize(string) fields['tokens'] = TextField(tokens, self._token_indexers) fields['label'] = LabelField(label, skip_indexing=True) return Instance(fields)
3. Modelの実装 def forward(self, tokens, label): embedded_text = self._text_field_embbeder(tokens) mask
= get_text_field_mask(tokens).float() encoded_text = self._dropout( self._seq2vec_encoder(embedded_text, mask=mask) ) logits = self._classification_layer(encoded_text) probs = F.softmax(logits, dim=1) loss = self._loss(logits, label.long().view(-1)) return {“loss”: loss} • ⼊⼒からロスを計算 • dict形式で値を返却
3. 設定ファイル作成 allennlp configure --include-package allennlp_imdb
3. 設定ファイル作成
3. 学習 allennlp train –include-package allennlp_imdb ¥ -s /path/to/serialization ¥
training_config/base_cpu.jsonnet • 設定ファイルを指定して実験を⾏う
3. 学習 allennlp train –include-package allennlp_imdb ¥ -s /path/to/serialization ¥
-o ‘{“trainer”: {“cuda_device”: 0}}’ training_config/base_cpu.jsonnet • 設定ファイルを指定して実験を⾏う • 設定の上書きも可能
4. まとめ • AllenNLPを使えば、必要最低限の実装で実験を⾏える • プロトタイプ作成、ハイパーパラメータの管理も簡単 • コードは下記リンク https://github.com/yasufumy/allennlp_imdb