Docs: introduction to the generate API
# What does this PR do?

This PR adds a sort of landing page on `generate`, which was missing in our docs. This page is useful for beginners and experienced users alike -- it goes through the basic generate API for both LLMs and non-text tasks, common caveats, and ends with pointers for advanced exploration. 

I expect that the consolidation of pointers for advanced exploration in a single page will massively improve the discoverability of our various generate-related efforts!

👉 best viewed in the doc preview, since there are gifs :)

Related issue: #24575 
The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_25240). All of your documentation changes will be reflected on that endpoint.<|||||>Do we really want to include non-text parts so prominently here? I think 99% of the users clicking on "Generation" expect to see only text generation and not anything multi-modal.<|||||>I would actually just call it "text-generation" and not "autoregressive generation"<|||||>@patrickvonplaten the non-text parts correspond to a tiny portion of the docs -- given than a significant number of issues in `transformers` come from models like Whisper or BLIP, the benefits may be huge. Pointers to things like quantization or generate classes also apply to them.

The decision to have a separate generate section is somewhat tied to including other modalities. If we include them, then it should be separate. If we don't, I still think generate deserves its own section.

Note that this would be the only guide that is planned to include the non-LLM case :) <|||||>> @patrickvonplaten the non-text parts correspond to a tiny portion of the docs -- given than a significant number of issues in `transformers` come from models like Whisper or BLIP, the benefits may be huge. Pointers to things like quantization or generate classes also apply to them.
> 
> The decision to have a separate generate section is somewhat tied to including other modalities. If we include them, then it should be separate. If we don't, I still think generate deserves its own section.
> 
> Note that this would be the only guide that is planned to include the non-LLM case :)


Sorry this might not be super in-line with what we discussed in our call earlier, but I think since we're in the task guide here we should stay in a "task"-format that the user expects, no? So more generally speaking: I'm not really looking for a "auto-regressive generation" task - I'm looking for "Text generation" or "Speech recognition" task. Auto-regressive generation is just the underlying method of different tasks but for someone that just looks at how to do a certain task they don't need to know about auto-regressive generation right away no? I think when explaining text-generation on the main page it's good to mention auto-regressive generation, but it shouldn't be the title IMO.

Taking a step back here, I don't fully understand is what is the different between "natural language processing" and "text-generation"?
To me we should either:
- a) Change NLP to NLU and move all text-generation based tasks like "summarization", "translation" and potentially copy "question answering" to "Text Generation"
- b) Or text generation should just live under NLP

I think a) is better to make text generation more prominent and then we can also add more sub sections like "chat", "code generation", maybe below.

The other things we talked about such as k/v cache, speeding up inference / prompting etc... could maybe have sections under "Tutorials" and we link from the different "sub-generation" tasks since they are related to all of them no? 