Transformers documentation
ログ出力
ログ出力
🤗 Transformersには中央集権型のログシステムが備わっており、ライブラリの冗長性を簡単に設定できます。
現在、このライブラリのデフォルトの冗長性レベルはWARNINGです。
冗長レベルを変更するには、直接セッターのいずれかを使用します。例えば、冗長レベルをINFOレベルに変更する方法は以下の通りです。
import transformers
transformers.logging.set_verbosity_info()環境変数TRANSFORMERS_VERBOSITYを使用して、デフォルトの冗長性を上書きすることもできます。以下のいずれかに設定できます: debug、info、warning、error、critical、fatal。例:
TRANSFORMERS_VERBOSITY=error ./myprogram.py
また、環境変数 TRANSFORMERS_NO_ADVISORY_WARNINGS を 1 のような真の値に設定することで、一部の warnings を無効にできます。これにより、logger.warning_advice を使用して記録される警告はすべて無効になります。例:
TRANSFORMERS_NO_ADVISORY_WARNINGS=1 ./myprogram.py
ライブラリと同じロガーを独自のモジュールやスクリプトで使用する例を以下に示します。
from transformers.utils import logging
logging.set_verbosity_info()
logger = logging.get_logger("transformers")
logger.info("INFO")
logger.warning("WARN")このロギングモジュールのすべてのメソッドは以下にドキュメント化されています。主なメソッドは、ロガーの現在の冗長度レベルを取得するlogging.get_verbosity()と、任意のレベルに冗長度を設定するlogging.set_verbosity()です。冗長度が低い順から高い順に、これらのレベル(対応するint値を括弧内に記載)は以下の通りです:
transformers.logging.CRITICALまたはtransformers.logging.FATAL(int 値、50):最も重大なエラーのみを報告します。transformers.logging.ERROR(int value, 40): エラーのみを報告します。transformers.logging.WARNINGまたはtransformers.logging.WARN(int 値、30): エラーと警告のみを報告します。これはライブラリでデフォルトとして使用されるレベルです。transformers.logging.INFO(int 値、20): エラー、警告、および基本的な情報を報告します。transformers.logging.DEBUG(int 値、10):すべての情報を報告します。
デフォルトでは、モデルのダウンロード中にtqdmのプログレスバーが表示されます。logging.disable_progress_bar()とlogging.enable_progress_bar()を使用して、この表示を抑制または解除できます。
logging と warnings
Pythonには、併用されることが多い2つのログシステムがあります。上記で説明したloggingと、警告を特定のバケットに分類できるwarningsです。例えば、すでに非推奨となった機能やパスにはFutureWarningを、今後の非推奨化を示すにはDeprecationWarningを使用します。
transformers ライブラリでは、両方を使用しています。logging の captureWarnings メソッドを活用・調整し、上記の冗長度設定子によってこれらの警告メッセージを管理できるようにしています。
これはライブラリの開発者にとって何を意味するのでしょうか。以下のヒューリスティックを遵守すべきです。
warningsは、transformersに依存するライブラリや、そのライブラリ自体の開発者にとって推奨されるべきです。loggingは、日常的なプロジェクトでこのライブラリを使用するエンドユーザー向けに使用されるべきです
captureWarnings メソッドの詳細は、以下の参照を参照してください。
ロギングライブラリからcaptureWarningsメソッドを呼び出し、warningsライブラリによって発行される警告の管理を有効にします。
Read more about this method here: https://docs.python.org/3/library/logging.html#integration-with-the-warnings-module
すべての警告は、py.warnings ロガーを通じて記録されます。
注意: このメソッドは、このロガーにハンドラーがまだ存在しない場合にもハンドラーを追加し、そのロガーのログレベルをライブラリのルートロガーに更新します。
ベースセッター
冗長レベルをERRORに設定します。
冗長レベルをWARNINGに設定します。
冗長レベルをINFOに設定します。
冗長レベルをDEBUGに設定します。
その他の関数
🤗 Transformers のルートロガーの現在のレベルを int として返します。
🤗 Transformersには、次のログレベルがあります。
- 50:
transformers.logging.CRITICALまたはtransformers.logging.FATAL- 40:
transformers.logging.ERROR- 30:
transformers.logging.WARNINGまたはtransformers.logging.WARN- 20:
transformers.logging.INFO- 10:
transformers.logging.DEBUG
transformers.utils.logging.set_verbosity
< source >( verbosity: int )
🤗 Transformersのルートロガーの冗長レベルを設定します。
指定した名前のロガーを返します。
この関数は、カスタムの transformers モジュールを作成している場合を除き、直接アクセスするようには設計されていません。
HuggingFace Transformers のルートロガーのデフォルトハンドラーを有効にします。
HuggingFace Transformersのルートロガーのデフォルトハンドラーを無効にします。
HuggingFace Transformers のロガーのフォーマットをリセットします。
このメソッドの影響は、ルートロガーに現在バインドされているすべてのハンドラーに及ぶことに注意してください。
tqdmのプログレスバーを有効にします。
tqdmのプログレスバーを無効にします。