Unverified Commit da72ac6e authored by Sylvain Gugger's avatar Sylvain Gugger Committed by GitHub
Browse files

Fix push_to_hub docstring and make it appear in doc (#12770)

parent 08d609bf
...@@ -22,4 +22,5 @@ PretrainedConfig ...@@ -22,4 +22,5 @@ PretrainedConfig
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. autoclass:: transformers.PretrainedConfig .. autoclass:: transformers.PretrainedConfig
:special-members: push_to_hub
:members: :members:
...@@ -35,6 +35,7 @@ PreTrainedModel ...@@ -35,6 +35,7 @@ PreTrainedModel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. autoclass:: transformers.PreTrainedModel .. autoclass:: transformers.PreTrainedModel
:special-members: push_to_hub
:members: :members:
...@@ -80,6 +81,7 @@ TFPreTrainedModel ...@@ -80,6 +81,7 @@ TFPreTrainedModel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. autoclass:: transformers.TFPreTrainedModel .. autoclass:: transformers.TFPreTrainedModel
:special-members: push_to_hub
:members: :members:
...@@ -94,6 +96,7 @@ FlaxPreTrainedModel ...@@ -94,6 +96,7 @@ FlaxPreTrainedModel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. autoclass:: transformers.FlaxPreTrainedModel .. autoclass:: transformers.FlaxPreTrainedModel
:special-members: push_to_hub
:members: :members:
......
...@@ -53,10 +53,8 @@ PreTrainedTokenizer ...@@ -53,10 +53,8 @@ PreTrainedTokenizer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. autoclass:: transformers.PreTrainedTokenizer .. autoclass:: transformers.PreTrainedTokenizer
:special-members: __call__ :special-members: __call__, batch_decode, decode, encode, push_to_hub
:members: batch_decode, convert_ids_to_tokens, convert_tokens_to_ids, convert_tokens_to_string, decode, encode, :members:
get_added_vocab, get_special_tokens_mask, num_special_tokens_to_add, prepare_for_tokenization, tokenize,
vocab_size
PreTrainedTokenizerFast PreTrainedTokenizerFast
...@@ -68,10 +66,8 @@ loaded very simply into 🤗 transformers. Take a look at the :doc:`Using tokeni ...@@ -68,10 +66,8 @@ loaded very simply into 🤗 transformers. Take a look at the :doc:`Using tokeni
<../fast_tokenizers>` page to understand how this is done. <../fast_tokenizers>` page to understand how this is done.
.. autoclass:: transformers.PreTrainedTokenizerFast .. autoclass:: transformers.PreTrainedTokenizerFast
:special-members: __call__ :special-members: __call__, batch_decode, decode, encode, push_to_hub
:members: batch_decode, convert_ids_to_tokens, convert_tokens_to_ids, convert_tokens_to_string, decode, encode, :members:
get_added_vocab, get_special_tokens_mask, num_special_tokens_to_add,
set_truncation_and_padding,tokenize, vocab_size
BatchEncoding BatchEncoding
......
...@@ -22,7 +22,15 @@ import os ...@@ -22,7 +22,15 @@ import os
from typing import Any, Dict, Tuple, Union from typing import Any, Dict, Tuple, Union
from . import __version__ from . import __version__
from .file_utils import CONFIG_NAME, PushToHubMixin, cached_path, hf_bucket_url, is_offline_mode, is_remote_url from .file_utils import (
CONFIG_NAME,
PushToHubMixin,
cached_path,
copy_func,
hf_bucket_url,
is_offline_mode,
is_remote_url,
)
from .utils import logging from .utils import logging
...@@ -729,3 +737,9 @@ class PretrainedConfig(PushToHubMixin): ...@@ -729,3 +737,9 @@ class PretrainedConfig(PushToHubMixin):
) )
setattr(self, k, v) setattr(self, k, v)
PretrainedConfig.push_to_hub = copy_func(PretrainedConfig.push_to_hub)
PretrainedConfig.push_to_hub.__doc__ = PretrainedConfig.push_to_hub.__doc__.format(
object="config", object_class="AutoConfig", object_files="configuration file"
)
...@@ -1991,14 +1991,14 @@ class PushToHubMixin: ...@@ -1991,14 +1991,14 @@ class PushToHubMixin:
use_auth_token: Optional[Union[bool, str]] = None, use_auth_token: Optional[Union[bool, str]] = None,
) -> str: ) -> str:
""" """
Upload model checkpoint or tokenizer files to the 🤗 Model Hub while synchronizing a local clone of the repo in Upload the {object_files} to the 🤗 Model Hub while synchronizing a local clone of the repo in
:obj:`repo_path_or_name`. :obj:`repo_path_or_name`.
Parameters: Parameters:
repo_path_or_name (:obj:`str`, `optional`): repo_path_or_name (:obj:`str`, `optional`):
Can either be a repository name for your model or tokenizer in the Hub or a path to a local folder (in Can either be a repository name for your {object} in the Hub or a path to a local folder (in which case
which case the repository will have the name of that local folder). If not specified, will default to the repository will have the name of that local folder). If not specified, will default to the name
the name given by :obj:`repo_url` and a local directory with that name will be created. given by :obj:`repo_url` and a local directory with that name will be created.
repo_url (:obj:`str`, `optional`): repo_url (:obj:`str`, `optional`):
Specify this in case you want to push to an existing repository in the hub. If unspecified, a new Specify this in case you want to push to an existing repository in the hub. If unspecified, a new
repository will be created in your namespace (unless you specify an :obj:`organization`) with repository will be created in your namespace (unless you specify an :obj:`organization`) with
...@@ -2008,11 +2008,9 @@ class PushToHubMixin: ...@@ -2008,11 +2008,9 @@ class PushToHubMixin:
the current working directory. This will slow things down if you are making changes in an existing repo the current working directory. This will slow things down if you are making changes in an existing repo
since you will need to clone the repo before every push. since you will need to clone the repo before every push.
commit_message (:obj:`str`, `optional`): commit_message (:obj:`str`, `optional`):
Message to commit while pushing. Will default to :obj:`"add config"`, :obj:`"add tokenizer"` or Message to commit while pushing. Will default to :obj:`"add {object}"`.
:obj:`"add model"` depending on the type of the class.
organization (:obj:`str`, `optional`): organization (:obj:`str`, `optional`):
Organization in which you want to push your model or tokenizer (you must be a member of this Organization in which you want to push your {object} (you must be a member of this organization).
organization).
private (:obj:`bool`, `optional`): private (:obj:`bool`, `optional`):
Whether or not the repository created should be private (requires a paying subscription). Whether or not the repository created should be private (requires a paying subscription).
use_auth_token (:obj:`bool` or :obj:`str`, `optional`): use_auth_token (:obj:`bool` or :obj:`str`, `optional`):
...@@ -2022,29 +2020,27 @@ class PushToHubMixin: ...@@ -2022,29 +2020,27 @@ class PushToHubMixin:
Returns: Returns:
The url of the commit of your model in the given repository. :obj:`str`: The url of the commit of your {object} in the given repository.
Examples:: Examples::
# Upload a model to the Hub: from transformers import {object_class}
from transformers import AutoModel
model = BertModel.from_pretrained("bert-base-cased") {object} = {object_class}.from_pretrained("bert-base-cased")
# Fine-tuning code
# Push the model to your namespace with the name "my-finetuned-bert" and have a local clone in the # Push the {object} to your namespace with the name "my-finetuned-bert" and have a local clone in the
# `my-finetuned-bert` folder. # `my-finetuned-bert` folder.
model.push_to_hub("my-finetuned-bert") {object}.push_to_hub("my-finetuned-bert")
# Push the model to your namespace with the name "my-finetuned-bert" with no local clone. # Push the {object} to your namespace with the name "my-finetuned-bert" with no local clone.
model.push_to_hub("my-finetuned-bert", use_temp_dir=True) {object}.push_to_hub("my-finetuned-bert", use_temp_dir=True)
# Push the model to an organization with the name "my-finetuned-bert" and have a local clone in the # Push the {object} to an organization with the name "my-finetuned-bert" and have a local clone in the
# `my-finetuned-bert` folder. # `my-finetuned-bert` folder.
model.push_to_hub("my-finetuned-bert", organization="huggingface") {object}.push_to_hub("my-finetuned-bert", organization="huggingface")
# Make a change to an existing repo that has been cloned locally in `my-finetuned-bert`. # Make a change to an existing repo that has been cloned locally in `my-finetuned-bert`.
model.push_to_hub("my-finetuned-bert", repo_url="https://huggingface.co/sgugger/my-finetuned-bert") {object}.push_to_hub("my-finetuned-bert", repo_url="https://huggingface.co/sgugger/my-finetuned-bert")
""" """
if use_temp_dir: if use_temp_dir:
# Make sure we use the right `repo_name` for the `repo_url` before replacing it. # Make sure we use the right `repo_name` for the `repo_url` before replacing it.
......
...@@ -490,6 +490,13 @@ class FlaxPreTrainedModel(PushToHubMixin, FlaxGenerationMixin): ...@@ -490,6 +490,13 @@ class FlaxPreTrainedModel(PushToHubMixin, FlaxGenerationMixin):
logger.info(f"Model pushed to the hub in this commit: {url}") logger.info(f"Model pushed to the hub in this commit: {url}")
# To update the docstring, we need to copy the method, otherwise we change the original docstring.
FlaxPreTrainedModel.push_to_hub = copy_func(FlaxPreTrainedModel.push_to_hub)
FlaxPreTrainedModel.push_to_hub.__doc__ = FlaxPreTrainedModel.push_to_hub.__doc__.format(
object="model", object_class="FlaxAutoModel", object_files="model checkpoint"
)
def overwrite_call_docstring(model_class, docstring): def overwrite_call_docstring(model_class, docstring):
# copy __call__ function to be sure docstring is changed only for this function # copy __call__ function to be sure docstring is changed only for this function
model_class.__call__ = copy_func(model_class.__call__) model_class.__call__ = copy_func(model_class.__call__)
......
...@@ -36,6 +36,7 @@ from .file_utils import ( ...@@ -36,6 +36,7 @@ from .file_utils import (
ModelOutput, ModelOutput,
PushToHubMixin, PushToHubMixin,
cached_path, cached_path,
copy_func,
hf_bucket_url, hf_bucket_url,
is_offline_mode, is_offline_mode,
is_remote_url, is_remote_url,
...@@ -1392,6 +1393,13 @@ class TFPreTrainedModel(tf.keras.Model, TFModelUtilsMixin, TFGenerationMixin, Pu ...@@ -1392,6 +1393,13 @@ class TFPreTrainedModel(tf.keras.Model, TFModelUtilsMixin, TFGenerationMixin, Pu
return model return model
# To update the docstring, we need to copy the method, otherwise we change the original docstring.
TFPreTrainedModel.push_to_hub = copy_func(TFPreTrainedModel.push_to_hub)
TFPreTrainedModel.push_to_hub.__doc__ = TFPreTrainedModel.push_to_hub.__doc__.format(
object="model", object_class="TFAutoModel", object_files="model checkpoint"
)
class TFConv1D(tf.keras.layers.Layer): class TFConv1D(tf.keras.layers.Layer):
""" """
1D-convolutional layer as defined by Radford et al. for OpenAI GPT (and also used in GPT-2). 1D-convolutional layer as defined by Radford et al. for OpenAI GPT (and also used in GPT-2).
......
...@@ -38,6 +38,7 @@ from .file_utils import ( ...@@ -38,6 +38,7 @@ from .file_utils import (
ModelOutput, ModelOutput,
PushToHubMixin, PushToHubMixin,
cached_path, cached_path,
copy_func,
hf_bucket_url, hf_bucket_url,
is_offline_mode, is_offline_mode,
is_remote_url, is_remote_url,
...@@ -1555,6 +1556,13 @@ class PreTrainedModel(nn.Module, ModuleUtilsMixin, GenerationMixin, PushToHubMix ...@@ -1555,6 +1556,13 @@ class PreTrainedModel(nn.Module, ModuleUtilsMixin, GenerationMixin, PushToHubMix
return retrieved_modules return retrieved_modules
# To update the docstring, we need to copy the method, otherwise we change the original docstring.
PreTrainedModel.push_to_hub = copy_func(PreTrainedModel.push_to_hub)
PreTrainedModel.push_to_hub.__doc__ = PreTrainedModel.push_to_hub.__doc__.format(
object="model", object_class="AutoModel", object_files="model checkpoint"
)
class Conv1D(nn.Module): class Conv1D(nn.Module):
""" """
1D-convolutional layer as defined by Radford et al. for OpenAI GPT (and also used in GPT-2). 1D-convolutional layer as defined by Radford et al. for OpenAI GPT (and also used in GPT-2).
......
...@@ -43,6 +43,7 @@ from .file_utils import ( ...@@ -43,6 +43,7 @@ from .file_utils import (
_is_torch_device, _is_torch_device,
add_end_docstrings, add_end_docstrings,
cached_path, cached_path,
copy_func,
hf_bucket_url, hf_bucket_url,
is_flax_available, is_flax_available,
is_offline_mode, is_offline_mode,
...@@ -3371,3 +3372,10 @@ For a more complete example, see the implementation of `prepare_seq2seq_batch`. ...@@ -3371,3 +3372,10 @@ For a more complete example, see the implementation of `prepare_seq2seq_batch`.
) )
model_inputs["labels"] = labels["input_ids"] model_inputs["labels"] = labels["input_ids"]
return model_inputs return model_inputs
# To update the docstring, we need to copy the method, otherwise we change the original docstring.
PreTrainedTokenizerBase.push_to_hub = copy_func(PreTrainedTokenizerBase.push_to_hub)
PreTrainedTokenizerBase.push_to_hub.__doc__ = PreTrainedTokenizerBase.push_to_hub.__doc__.format(
object="tokenizer", object_class="AutoTokenizer", object_files="tokenizer files"
)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment