facebookresearch / xformers

Hackable and optimized Transformers building blocks, supporting a composable construction.
https://facebookresearch.github.io/xformers/
Other
8.61k stars 611 forks source link

Hydra ConfigStore doesn't store the registered name in the stored node #332

Open erip opened 2 years ago

erip commented 2 years ago

🐛 Bug

This is a minor bug (AFAICT) but the name of the registered nodes (attention, pe, ...) are listed as required in the hydra nodes when "retrieved" from the config store.

Command

To Reproduce

Steps to reproduce the behavior:

Python 3.9.12 (main, Jun  1 2022, 06:36:29)
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import hydra
>>> from xformers.factory.hydra_helper import import_xformer_config_schema
WARNING:root:Triton is not available, some optimizations will not be enabled.
Error No module named 'triton'
WARNING:root:Either FairScale or torch distributed is not available, MixtureOfExperts will not be exposed. Please install them if you would like to use MoE
>>> import_xformer_config_schema()
>>> cs = hydra.conf.ConfigStore.instance()
>>> cs.load("xformers/attention/linformer_schema.yaml")
ConfigNode(name='linformer_schema.yaml', node={'name': '???', 'dropout': '???', 'seq_len': '???', 'k': '???'}, group='xformers/attention', package=None, provider=None)

Expected behavior

The name within cs.load(...).node should be populated according to the registered component's name.

Environment

Please copy and paste the output from the environment collection script from PyTorch (or fill out the checklist below manually).

You can run the script with:

# For security purposes, please check the contents of collect_env.py before running it.
python -m torch.utils.collect_env
Collecting environment information...
PyTorch version: 1.11.0
Is debug build: False
CUDA used to build PyTorch: None
ROCM used to build PyTorch: N/A

OS: macOS 10.15.7 (x86_64)
GCC version: Could not collect
Clang version: 12.0.0 (clang-1200.0.32.29)
CMake version: version 3.23.2
Libc version: N/A

Python version: 3.9.12 (main, Jun  1 2022, 06:36:29)  [Clang 12.0.0 ] (64-bit runtime)
Python platform: macOS-10.15.7-x86_64-i386-64bit
Is CUDA available: False
CUDA runtime version: No CUDA
GPU models and configuration: No CUDA
Nvidia driver version: No CUDA
cuDNN version: No CUDA
HIP runtime version: N/A
MIOpen runtime version: N/A

Versions of relevant libraries:
[pip3] mypy-extensions==0.4.3
[pip3] numpy==1.22.4
[pip3] pytorch-lightning==1.6.4
[pip3] torch==1.11.0
[pip3] torchmetrics==0.9.1
[conda] blas                      1.0                         mkl  
[conda] cpuonly                   2.0                           0    pytorch
[conda] mkl                       2022.0.0           hecd8cb5_105  
[conda] mypy-extensions           0.4.3                    pypi_0    pypi
[conda] numpy                     1.22.4                   pypi_0    pypi
[conda] pytorch                   1.11.0                  py3.9_0    pytorch
[conda] pytorch-lightning         1.6.4                    pypi_0    pypi
[conda] pytorch-mutex             1.0                         cpu    pytorch
[conda] torchmetrics              0.9.1                    pypi_0    pypi

Additional context

blefaudeux commented 2 years ago

cc @jieru-hu, would you like to have a look ? Else I can get back to that later, not really available ATM unfortunately

jieru-hu commented 2 years ago

thanks ben for the ping, yes i will take a look!