Assets¶
fairseq2.asset
provides API to load the different model using the “model cards” from different “stores”.
Model store¶
A store is a place where all the model cards are stored. In fairseq2, a store is accessed via fairseq2.assets.AssetStore. Multiple stores are allowed. By default, fairseq2 will look up the following stores:
- System asset store: Cards that are shared by all users. By default, the system store is /etc/fairseq2/assets,
but this can be changed via the environment variable FAIRSEQ2_ASSET_DIR
- User asset store: Cards that are only available to the user. By default, the user store is
~/.config/fairseq2/assets, but this can be changed via the environment variable FAIRSEQ2_USER_ASSET_DIR
To register a new store, implement a fairseq2.assets.AssetMetadataProvider
and add them to
fairseq2.assets.asset_store
. Here is an example to register a new directory as a model store:
from pathlib import Path from fairseq2.assets import FileAssetMetadataProvider, asset_store
my_dir = Path(“/path/to/model_store”) asset_store.metadata_providers.append(FileAssetMetadataProvider(my_dir))
Model card¶
A model card is a .YAML file that contains information about a model and instructs a
fairseq2.models.utils.generic_loaders.ModelLoader
on how to load the model into the memory. Each model card
must have 2 mandatory attributes: name and checkpoint. name will be used to identify the model card, and it must
be unique _across_ all
fairseq2 provides example cards for differen LLMs in
fairseq2.assets.cards.
In fairseq2, a model card is accessed via fairseq2.assets.AssetCard
. Alternatively, one can call
fairseq2.assets.AssetMetadataProvider.get_metadata(name: str) to get the meta data of a given model card name.