無料GPUを取得し、スパシーモデルを訓練するには?


我々は皆そこにいた.私は、我々の光沢のある新しいモデルを訓練したい面白いデータセットを持っています.残念ながら、私はMacBook 2015モデルに専用GPUを持っていません.あなたがゲームのようなグラフィカルな集中的なアプリケーションを使用している誰か、数値処理ソフトウェアを定期的に、それはあなたが専用GPUを購入するための意味をなさない.
幸いにも多くのリモートGPUオプションをご利用いただけます.あなたのユースケースに応じて、あなたのニーズに合うものを選択することができます.
オプション
長所
短所
クラウド・プロバイダ
柔軟性、データを保存
ランプアップ時間
口頭ノート
良いドキュメンテーション
短いランタイム、遅いGPUは、ロングトレーニングジョブに適していない
Jupyterハブ
オープンソース、複数の言語サポート
無料のGPUサポート
Kaggleノート
GPUコンピューティングの無料43時間
機械へのデータIOは少し不便です
そこで、今日、我々は、ヒンディー語のためのスパシーモデルを訓練するためにKaggleの上でGPUを使う方法について話します.モデルのトレーニングの最大の課題は、正確にあなたのマシンの学習問題を表すクリーンなデータを取得することです.データセットのリストを入手できるように簡単に検索しましょう
「ヒンディー語タガー」とのGithubの速い検索は、これらの結果をもたらします

これらのデータセットをブラウズした後、これらのデータセットのほとんどが比較的小さいことに注意して、spacyの入力データ形式と互換性のないインコヒーレントなタグ付けスキームに従ってください.幸運にも、我々はコンドル競争からここで使用できる他のデータセットを持っています.

普遍的依存 / ウドゥッヒヒルディ



概要


ヒンディー語UD Treebankは、ヒンディー語依存Treebank(HDTB)に基づきます
IIITハイデラバード、インドで作成されます.

導入


ヒンディー語ユニバーサル依存Treebank自動的にヒンディー語とウルドゥー語の多層トレードバンクを作成する継続的な努力の一部であるヒンディー語依存トレッドバンク(HDTB)から変換されました.HDTBはIIIT - Hインドで開発された.

謝辞


プロジェクトはNSF Grant (賞番号: CNS 0751202 ; CFDA番号: 47.070 )によってサポートされています.
このデータを使用して作業を報告するすべての刊行物は、次の引用を引用する必要があります.
Ryaz Ahmad Bhat、Rajesh Bhatt、Annahita Farudi、プレスコットKlassen、Bhuvana Narasimhan、マルタPalmer、オーウェンRambow、Dipti Misra Sharma、Ashwini Vaidya、Sri Ramagurumurthy Vishnu、およびfei - xia.Hinddi/Urdu Treebankプロジェクト言語注釈ハンドブック(Nancy IDEとジェームズPustejovskyによって編集されます)、スプリンガープレス
@InCollection{bhathindi
  Title                    = {The Hindi/Urdu Treebank Project}
  Author                   = {Bhat, Riyaz Ahmad and Bhatt, Rajesh and Farudi, Annahita and Klassen, Prescott and Narasimhan,

Browsing the stats.xml file gives us an overview of different pos tags available in the dataset.

Let's open the notebook and enable GPU for the session from three dots > Accelerator > GPU. Note that there is tpu option as well, but TPU can only be used for Keras and Tensorflow models. Spacy uses none of those, it uses its own custom neural network library, thinc.

Let's clone this repository using the command below in Kaggle notebook. This will download the data from repo in the working directory.

! git clone https://github.com/UniversalDependencies/UD_Hindi-HDTB
我々がGPUへのアクセスをするならば、すぐにチェックしましょう
import tensorflow as tf 
tf.test.gpu_device_name()
Spacyはトレーニング入力データがJSON文書の形であることを期待します、しかし、我々のダウンロードされたデータは中にあります.Connlu形式.そこで、JSONへの変換のためにspacy convertを使用します.
! mkdir data
! spacy convert UD_Hindi-HDTB/hi_hdtb-ud-dev.conllu data
! spacy convert UD_Hindi-HDTB/hi_hdtb-ud-train.conllu data
! spacy convert UD_Hindi-HDTB/hi_hdtb-ud-test.conllu data
今、我々はすべてのセットアップは、モデルのトレーニングを開始する
! spacy train hi model_dir data/hi_hdtb-ud-train.json data/hi_hdtb-ud-dev.json  -g 0
トレーニングのためのGPU使用を可能にするために、引数-g 0を通過するのを忘れないでください.それは訓練されたモデルをmodel_dirディレクトリに保存します.それは私のローカルマシンよりもGPUで約6 x高速実行されます.Kaggleノートブックの仕事がCPU制約されたので、おそらくそれが速く走らせる方法があります.とにかく、全部の仕事は、Kaggleノートで30分で終わりました.
モデルをロードしていくつかの推論を実行しましょう
from spacy.lang.hi import Hindi 
from spacy.gold import docs_to_json
nlp_hi = Hindi()


nlp_hi.add_pipe(nlp_hi.create_pipe('tagger'))
nlp_hi.add_pipe(nlp_hi.create_pipe('parser'))
nlp_hi.add_pipe(nlp_hi.create_pipe('ner'))
nlp_hi = nlp_hi.from_disk("model_dir/model-best/")


sentence = "मैं खाना खा रहा हूँ।"
doc = nlp_hi(sentence)
print(docs_to_json([doc]))
# ...
# {'id': 0, 'orth': 'मैं', 'tag': 'PRP', 'head': 2, 'dep': 'nsubj', 'ner': 'O'}
# ...
終了後、モデルをgzipして、Kaggleノートブックの右側にあるファイルビューアパンからローカルにダウンロードしてみましょう.
! tar -cvzf model.tgz model_dir/model-best 
ハーレイ!
あなたがまわりで遊びたいならば、ここでは、Kaggleノート・リンクはあります.
https://www.kaggle.com/rahul1990gupta/training-a-spacy-hindi-model?scriptVersionId=41283884