THINCは、Pytorch、Tensorflow、MxNetなどの他のフレームワークで定義されたレイヤーをサポートして、モデルのエレガントでタイプチェックされた機能プログラミングAPIを提供する軽量のディープラーニングライブラリです。 THINCをインターフェイスレイヤー、スタンドアロンツールキット、または新しいモデルを開発する柔軟な方法として使用できます。 THINCの以前のバージョンは、スパシーと天才の両方を介して、数千の企業で生産で静かに運営されています。ユーザーがお気に入りのフレームワークで構築されたカスタムモデルを作成、構成、展開できるようにする新しいバージョンを作成しました。
mypy
プラグインを使用して、モデル定義をタイプチェックします。THINCはPython 3.6+と互換性があり、 Linux 、 MacOS 、 Windowsで動作します。バイナリホイールを使用した最新リリースは、PIPから入手できます。 THINCとその依存関係をインストールする前に、 pip
、 setuptools
、およびwheel
が最新であることを確認してください。最新のリリースでは、PIP 19.3以下が推奨されます。
pip install -U pip setuptools wheel
pip install thinc
さまざまなバックエンドとGPUのオプションの依存関係の詳細については、拡張インストールドキュメントを参照してください。また、THINCのタイプシステムを活用するために、静的タイプチェックを設定することもできます。
ショ和 Pytorchをインストールし、Python 3.7+を使用している場合は、Pytorchによってインストールされており、Python 3.7+と互換性がないため、pip uninstall dataclasses
でパッケージdataclasses
をアンインストールしています。
また、その他の例については/examples
Directoryおよび使用法のドキュメントも参照してください。ほとんどの例は、Google Colabで起動するJupyterノートブックです(GPUサポート付き!)ノートブック名の横にあるボタンをクリックします。
ノート | 説明 |
---|---|
intro_to_thinc | 始めるためにあなたが知る必要があるすべて。 MNISTデータのモデルを作成してトレーニングし、構成ファイルを使用し、カスタム関数の登録、Pytorch、Tensorflow、MXNetモデルのラッピング。 |
transformers_tagger_bert | Thinc、 transformers 、Pytorchを使用して、スピーチの一部を訓練する方法。モデルの定義と構成からトレーニングループまで。 |
pos_tagger_basic_cnn | 外部依存関係のない、スピーチの一部のタグ付けモデルの基本的なCNNの実装とトレーニングおよび異なるレベルのTHINCの構成システムを使用します。 |
parallel_training_ray | THINCとRAYを使用した同期および非同期パラメーターサーバートレーニングをセットアップする方法。 |
もっと表示→
ドキュメント | 説明 |
---|---|
導入 | あなたが知る必要があるすべて。 |
コンセプトとデザイン | THINCの概念モデルとそれがどのように機能するか。 |
モデルの定義と使用 | モデルを作成し、状態を更新する方法。 |
構成システム | THINCの構成システムおよび関数レジストリ。 |
Pytorch、Tensorflow、Mxnetの統合 | 機械学習フレームワークとの相互運用性 |
層API | ウェイト層、変換、組み合わせ、ラッパー。 |
タイプチェック | モデル定義などをタイプチェックします。 |
モジュール | 説明 |
---|---|
thinc.api | ユーザー向けAPI。すべてのクラスと機能はここからインポートする必要があります。 |
thinc.types | カスタムタイプとデータラス。 |
thinc.model | Model クラス。すべてのTHINCモデルは、 Model のインスタンス(サブクラスではない)です。 |
thinc.layers | レイヤー。各レイヤーは独自のモジュールに実装されます。 |
thinc.shims | Pytorch、Tensorflowなどで実装された外部モデルのインターフェイス。 |
thinc.loss | 損失を計算する機能。 |
thinc.optimizers | オプティマイザーを作成する機能。現在、「バニラ」SGD、アダム、ラダムをサポートしています。 |
thinc.schedules | さまざまな料金、スケジュール、減衰またはシリーズのジェネレーター。 |
thinc.backends | numpy とcupy のバックエンド。 |
thinc.config | 構成解析と検証および関数レジストリシステム。 |
thinc.util | ユーティリティとヘルパー機能。 |
THINCは、自動形式にblack
を使用し、糸くずにはflake8
使用し、タイプチェックにはmypy
。すべてのコードはPython 3.6+と互換性があり、可能な限りタイプのヒントが記載されています。 THINCのカスタムタイプの詳細については、タイプリファレンスを参照してください。
ソースからTHINCを構築するには、 requirements.txt
にリストされている完全な依存関係をインストールする必要があります。また、C拡張機能を構築するためのコンパイラが必要です。
git clone https://github.com/explosion/thinc
cd thinc
python -m venv .env
source .env/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
pip install --no-build-isolation .
または、編集モードにインストールします。
pip install -r requirements.txt
pip install --no-build-isolation --editable .
またはPYTHONPATH
を設定すること:
export PYTHONPATH= ` pwd `
pip install -r requirements.txt
python setup.py build_ext --inplace
THINCには、大規模なテストスイートが付属しています。以下はすべて合格し、警告やエラーを報告しないでください。
python -m pytest thinc # test suite
python -m mypy thinc # type checks
python -m flake8 thinc # linting
テストカバレッジを表示するには、 python -m pytest thinc --cov=thinc
実行できます。 100%のテストカバレッジを目指しています。これは、すべての行のテストを細心の注意を払って作成することを意味するものではありません。テストがないか困難なブロックを無視し、テストですべてのコードパスを実行することを確認します。