Adds LlamaForQuestionAnswering class in modeling_llama.py along with AutoModel Support 
Author: nakranivaibhav
Pull request: yes

# What does this PR do?
Adds AutoModelForQuestionAnswering support for llama.

Fixes # (issue)
#28265

## Who can review?
@ArthurZucker @NielsRogge 

I haven't added a copy statement. When I try to add the following copy statement
`# Copied from transformers.models.bloom.modeling_bloom.BloomForQuestionAnswering.__init__ with Bloom->LLama`
It throws an error even though both the init functions are same.

When I try to make fix-copies. The fix copy wants to capitalize both the L's in Llamamodel on this line
`self.transformer = LlamaModel(config)` -> `self.transformer = LLamaModel(config`

Perhaps I am missing something and @ArthurZucker can guide me further.

I tried training the model on a subset of SQUAD and it does train fine.

Comments:
@ArthurZucker Alright the capitalization in the copy statement affects the test. Thank you for pointing it out.

Now let’s make sure the CIs are green! Feel free to rebase on main! 

@ArthurZucker I did rebase on main, still the tests are failing. What's wrong?
I did 
`git fetch upstream ->
git rebase upstream/main ->
git push -u origin llama-for-qa -f`
P.S: I make stupid mistakes. Do Forgive

failing tests are flaky ! 

@NielsRogge or @ArthurZucker What is to be done kindly guide further?

Just waiting for you to answer my last comment 😉 

@ArthurZucker **Why not use this for the entire class?** This one or
**failing tests are flaky !**
The former i have given some explanation I hope you have seen it, the latter i can just pray the flaky gods 😁

@ArthurZucker Alright i will get to work 

@ArthurZucker 
I did update the PR title.

I tried adding `# Copied from transformers.models.bloom.modeling_bloom.BloomForQuestionAnswering with Bloom->Llama` at the top of the class.
Issues I am facing:
It wants the entire class code to be the same as Bloom when I make fix-copies
Bloom has a `head_mask` param in the forward function which Llama does not seem to handle anywhere.
Bloom does not have `past_key_values` in its forward params.
Not including `past_key_values` in llama fails some tests.
I did add `past_key_values` in this commit [c90f9b3] for this reason.

For the tests I have this error 
`FAILED examples/pytorch/test_accelerate_examples.py::ExamplesTestsNoTrainer::test_run_swag_no_trainer - AssertionError: 0.3 not greater than or equal to 0.8`

How do I figure out the flaky tests besides being in the exotic model test? 

Alright no worries then no need to use the copied from for everything, thanks for explaining 😉 

<img width="720" alt="image" src="https://github.com/huggingface/transformers/assets/48595927/15de76e6-1ddd-4abd-80a6-c4b25e64b497">
Flaky tests are marked as flaky automatically 😉 

The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_28777). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@ArthurZucker If the community demands. I can do the same for mistral as well. :)

If there is demand for it sure, have not seen that yet!

Feel free to open an issue, to track this feature request