ホーム » Transformer » HuggingFace Transformers 3.3 : 哲学

HuggingFace Transformers 3.3 : 哲学

HuggingFace Transformers 3.3 : 哲学 (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 10/16/2020 (3.3.1)

* 本ページは、HuggingFace Transformers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー開催中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

HuggingFace Transformers : 哲学

Transformers は以下のための意固地な (= opnionated) ライブラリです :

  • ラージスケール transformers モデルを利用/研究/拡張することを求める NLP 研究者と教育者
  • それらのモデルを再調整して and/or それらをプロダクションでサービス提供することを望むハンズオン実践者
  • 事前訓練モデルをダウンロードして与えられた NLP タスクを解くためにそれを利用することを単に望む技術者

ライブラリは 2 つの強力なゴールを念頭において設計されました :

  • できる限り容易に高速に利用できるものである :
    • 学習する user-facing 抽象の数を強く制限しました、実際殆ど抽象はなく、モデルを利用するために必要な単に 3 つの標準的なクラス : configuration, modelstokenizer があるだけです。
    • これらのクラス総ては共通の from_pretrained() インスタンス化メソッドを使用することで単純で統一された方法で事前訓練インスタンスから初期化できます、これは Hugging Face ハブ や貴方自身のセーブされたチェックポイント上で提供される事前訓練されたチェックポイントから、 (必要であれば) ダウンロードを処理し、関連するクラス・インスタンスと関連データ (configurations のハイパーパラメータ, tokenizers の語彙とモデルの重み) をキャッシングしてロードします。
    • それら 3 つの基底クラスの上に、ライブラリは 2 つの API を提供します : 与えられたタスク上でモデル (加えて関連する tokenizer と configuration) を素早く使用するための pipeline() そして与えられたモデルを素早く訓練または再調整するための Trainer() / TFTrainer() です。
    • 結果として、このライブラリはニューラルネットのためのビルディング・ブロックのモジュール・ツールボックスでは ありません。ライブラリを拡張 / (その上で) 構築することを望むのであれば、通常の Python/PyTorch/TensorFlow/Keras モジュールを単に利用してそしてモデルロード/セーブのような機能を再利用するためにはライブラリの基底クラスから継承してください。
  • 元のモデルにできる限り近いパフォーマンスを持つ最先端技術のモデルを提供する :
    • 各アーキテクチャ毎に少なくとも一つのサンプルを提供します、これはそのアーキテクチャの公式作者により提供された結果を再生成します。
    • コードは通常は元のコードベースに出来る限り近いです、これはある PyTorch コードは pytorchic ではないかもしれないことを意味します、何故ならばそれは変換された TensorFlow コードの結果そしてその逆である可能性があるからです。

2, 3 の他のゴール :

  • モデルの内部をできる限り一貫性を持って公開する :
    • 単一の API を使用して、full 隠れ状態と attention 重みへのアクセスを与えます。
    • tokenizer と基底モデルの API はモデル間で容易に切り替えられるように標準化されています。
  • これらのモデルを再調整/調査するために見込みのあるツールの主観的な選択を組み入れます :
    • 再調整のため語彙に新しいトークンと埋め込みを追加するための単純で/一貫した方法。
    • transformer ヘッドをマスクして刈り取る (= prune) 単純な方法。
  • PyTorch と TensorFlow 2.0 間を容易に切り替え、一つのフレームワークを使用して訓練して他方を使用して推論することを許容します。

 

主要コンセプト

ライブラリは各モデルに対して 3 つのタイプのクラス周りに構築されます :

  • BertModel のような Model クラス、これは 30+ PyTorch モデル (torch.nn.Module) や Keras モデル (tf.keras.Model) で、ライブラリで提供される事前訓練重みで動作します。
  • BertConfig のような Configuration クラス、これはモデルを構築するために必要なパラメータ総てをストアします。これらを貴方自身でインスタンス化する必要は常にはありません。特に、どのような変更もなしに事前訓練モデルを使用している場合、モデルの作成は configuration のインスタンス化を自動的に処理します (これはモデルの一部です)。
  • BertTokenizer のような Tokenizer クラス、これは各モデルのための語彙をストアして、モデルに供給されるトークン埋め込みインデックスのリスト内のエンコード/デコード文字列のためのメソッドを提供します。

これらのクラス総ては 2 つのメソッドを使用して pretrained インスタンスからインスタンス化できてローカルにセーブできます :

  • from_pretrained() は、ライブラリ自身から提供される (サポートされるモデルは ここ のリストで提供されます) かユーザによりローカルにストアされた事前訓練バージョンから model/configuration/tokenizer をインスタンス化させます。
  • save_pretrained() は model/configuration/tokenizer をローカルにセーブさせます、その結果それは from_pretrained() を使用して再ロードできます。
 

以上






AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com