MMI-antiLM decoding
# What does this PR do?

Implements **Maximum Mutual Information anti-Language Model objective (MMI anti-LM)** decoding from [A Diversity-Promoting Objective Function for Neural Conversation Models](https://www.aclweb.org/anthology/N16-1014.pdf). 

This technique looks really cool! Unfortunately running `generate` with two models will break lots of our assumptions, so maybe you could write a standalone:

```python
def generate_anti_lm(model, lm_model, **kwargs):
	... logic ...
    return generated_ids
```

,put it in `examples/anti_mlm_generation/`, and add a test that it runs with `sshleifer/tiny-gpt2`, for example?

Does that make sense to you @patrickvonplaten ?<|||||>Hey @AADeLucia - thanks for your PR! The `generate()` function is a very central part of the library and thus we have to be super careful when implementing new features. I agree with @sshleifer that MMI-antiLM decoding probably fits better in an example (has its own `generate()` function in an example file) to begin with - would that be ok for you?<|||||>> Hey @AADeLucia - thanks for your PR! The `generate()` function is a very central part of the library and thus we have to be super careful when implementing new features. I agree with @sshleifer that MMI-antiLM decoding probably fits better in an example (has its own `generate()` function in an example file) to begin with - would that be ok for you?

Thank you so much for your quick responses! Yes, putting it as its own example is okay with me.<|||||>This issue has been automatically marked as stale and been closed because it has not had recent activity. Thank you for your contributions.

If you think this still needs to be addressed please comment on this thread.