Unclear kwargs options in docstrings
Author: matsuobasho
Pull request: no

### System Info

<This issue is about the docstrings, see no other more relevant categories when I create issue.>

### Reproduction

The problem is that kwargs documentation is too general to understand all the options of arguments for a particular function. Here is an example.

The [tutorial ](https://huggingface.co/docs/transformers/llm_tutorial)on generation has this example:
```
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained(
    "openlm-research/open_llama_7b", device_map="auto", load_in_4bit=True)
```

I wanted to understand the load_in_4bit argument, so examined the `from_pretrained` [API](https://huggingface.co/docs/transformers/main/en/model_doc/auto#transformers.AutoTokenizer.from_pretrained). It doesn't have it as a named argument, so that makes it seem like it can be part of kwargs:
```
kwargs (additional keyword arguments, optional) — Will be passed to the Tokenizer __init__() method. Can be used to set special tokens like bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, additional_special_tokens. See parameters in the __init__() for more details.
```

So I then examined the __init__ API:
```
|  __init__(self, vocab_file=None, merges_file=None, tokenizer_file=None, unk_token='
', bos_token='
', eos_token='
', add_prefix_space=False, **kwargs)
 |      Initialize self.  See help(type(self)) for accurate signature.
```

So it has its own kwargs with no reference of what those may be.  There's no way for me to understand what the load_in_4bit or other kwargs options are for `from_pretrained`.


### Expected behavior

A clear explanation of what the arguments for kwargs can be or a reference to another specific class/function documentation for more information.  

Comments:
Hi @matsuobasho, thanks for raising this issue! 

The API you linked to is for the tokenizer classes. When calling AutoModelForCausalLM, the `from_pretrained` API is [this one](https://huggingface.co/docs/transformers/main/en/model_doc/auto#transformers.AutoModelForCausalLM.from_pretrained). In the docstring, you'll see that for kwargs it says: 

```
If a configuration is not provided, kwargs will be first passed to the configuration class initialization function ([from_pretrained()](https://huggingface.co/docs/transformers/main/en/main_classes/configuration#transformers.PretrainedConfig.from_pretrained)). Each key of kwargs that corresponds to a configuration attribute will be used to override said attribute with the supplied kwargs value. Remaining keys that do not correspond to any configuration attribute will be passed to the underlying model’s __init__ function.
``` 

The `load_in_4bit` argument is not a config argument, and so is passed to the [PretrainedModel class](https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel.from_pretrained.load_in_4bit). 

This is admittedly a bit difficult to track. The AutoXxx API allows us to seamlessly loaded many different architectures which perform the same task. This ultimately means that there's lots of arguments which get passed forward through the use of kwargs and handled in our Pretrained classes. If looking for an argument's use, I'd suggest searching in the docs for the argument, it (should) normally point you in the correct spot. 

@amyeroberts, thank you for the explanation, this makes sense.