Logging
🤗 Transformersには、ライブラリの詳細度を簡単に設定できる中央集中型のロギングシステムがあります。
現在、ライブラリのデフォルトの詳細度は「WARNING」です。
詳細度を変更するには、直接設定メソッドの1つを使用するだけです。例えば、詳細度をINFOレベルに変更する方法は以下の通りです。
import transformers
transformers.logging.set_verbosity_info()
環境変数 TRANSFORMERS_VERBOSITY
を使用して、デフォルトの冗長性をオーバーライドすることもできます。設定できます
debug
、info
、warning
、error
、critical
のいずれかに変更します。例えば:
TRANSFORMERS_VERBOSITY=error ./myprogram.py
さらに、一部の「警告」は環境変数を設定することで無効にできます。
TRANSFORMERS_NO_ADVISORY_WARNINGS
を 1 などの true 値に設定します。これにより、次を使用してログに記録される警告が無効になります。
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 値、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 vs warnings
Python には、よく組み合わせて使用される 2 つのロギング システムがあります。上で説明した logging
と warnings
です。
これにより、特定のバケット内の警告をさらに分類できます (例: 機能またはパスのFutureWarning
)
これはすでに非推奨になっており、DeprecationWarning
は今後の非推奨を示します。
両方ともtransformers
ライブラリで使用します。 logging
のcaptureWarning
メソッドを活用して適応させて、
これらの警告メッセージは、上記の冗長設定ツールによって管理されます。
それはライブラリの開発者にとって何を意味しますか?次のヒューリスティックを尊重する必要があります。
warnings
は、ライブラリおよびtransformers
に依存するライブラリの開発者に優先されるべきです。logging
は、日常のプロジェクトでライブラリを使用するライブラリのエンドユーザーに使用する必要があります。
以下のcaptureWarnings
メソッドのリファレンスを参照してください。
Calls the captureWarnings
method from the logging library to enable management of the warnings emitted by the
warnings
library.
Read more about this method here: https://docs.python.org/3/library/logging.html#integration-with-the-warnings-module
All warnings will be logged through the py.warnings
logger.
Careful: this method also adds a handler to this logger if it does not already have one, and updates the logging level of that logger to the library’s root logger.
Base setters
Set the verbosity to the ERROR
level.
Set the verbosity to the WARNING
level.
Set the verbosity to the INFO
level.
Set the verbosity to the DEBUG
level.
Other functions
Return the current level for the 🤗 Transformers’s root logger as an int.
🤗 Transformers has following logging levels:
- 50:
transformers.logging.CRITICAL
ortransformers.logging.FATAL
- 40:
transformers.logging.ERROR
- 30:
transformers.logging.WARNING
ortransformers.logging.WARN
- 20:
transformers.logging.INFO
- 10:
transformers.logging.DEBUG
transformers.utils.logging.set_verbosity
< source >( verbosity: int )
Set the verbosity level for the 🤗 Transformers’s root logger.
Return a logger with the specified name.
This function is not supposed to be directly accessed unless you are writing a custom transformers module.
Enable the default handler of the HuggingFace Transformers’s root logger.
Disable the default handler of the HuggingFace Transformers’s root logger.
Resets the formatting for HuggingFace Transformers’s loggers.
All handlers currently bound to the root logger are affected by this method.
Enable tqdm progress bar.
Disable tqdm progress bar.