Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bugfix] Allow prefill of assistant response when using mistral_common #9446

Merged
merged 2 commits into from
Oct 17, 2024

Conversation

sasha0552
Copy link
Contributor

The mistral_common tokenizer supports prefilling of an assistant message, when prefix=True is used in the last message (role="assistant" only).

However, continue_final_message=False makes no sense for the mistral_common tokenizer because ChatCompletionRequest cannot have a last message with role="assistant" without prefix=True.

Also, AFAIK, OpenAI uses continue_final_message=True-like behavior (continues the last assistant message), so I think this behavior should be replicated in vLLM (potentially replacing add_generation_prompt/continue_final_message in chat completion endpoint?), but that's beyond the scope of this PR. (I'm only fixing the error that vLLM gives when an application sends a message chain in which the last message is an assistant.)

(Also, warnings about add_generation_prompt/continue_final_message when using mistral_common are annoying and should only be logged once (or don't logged at all), but that too is beyond the scope of this PR).

Copy link

👋 Hi! Thank you for contributing to the vLLM project.
Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run fastcheck CI which starts running only a small and essential subset of CI tests to quickly catch errors. You can run other CI tests on top of those by going to your fastcheck build on Buildkite UI (linked in the PR checks section) and unblock them. If you do not have permission to unblock, ping simon-mo or khluu to add you in our Buildkite org.

Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging.

To run CI, PR reviewers can do one of these:

  • Add ready label to the PR
  • Enable auto-merge.

🚀

Copy link
Member

@DarkLight1337 DarkLight1337 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@patrickvonplaten can you verify whether this is reasonable? I am not familiar with using Mistral tokenizer.

Just a minor nit:

vllm/transformers_utils/tokenizers/mistral.py Outdated Show resolved Hide resolved
Copy link
Contributor

@patrickvonplaten patrickvonplaten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch! If the last message is an assistant message we should indeed set prefix=True

@DarkLight1337 DarkLight1337 added the ready ONLY add when PR is ready to merge/full CI is needed label Oct 17, 2024
@DarkLight1337 DarkLight1337 enabled auto-merge (squash) October 17, 2024 12:47
@DarkLight1337 DarkLight1337 merged commit 5e443b5 into vllm-project:main Oct 17, 2024
65 of 66 checks passed
@sasha0552 sasha0552 deleted the mistral-assistant-prefill branch October 17, 2024 15:09
charlifu pushed a commit to charlifu/vllm that referenced this pull request Oct 23, 2024
vrdn-23 pushed a commit to vrdn-23/vllm that referenced this pull request Oct 23, 2024
Alvant pushed a commit to compressa-ai/vllm that referenced this pull request Oct 26, 2024
garg-amit pushed a commit to garg-amit/vllm that referenced this pull request Oct 28, 2024
FerdinandZhong pushed a commit to FerdinandZhong/vllm that referenced this pull request Oct 29, 2024
sumitd2 pushed a commit to sumitd2/vllm that referenced this pull request Nov 14, 2024
KuntaiDu pushed a commit to KuntaiDu/vllm that referenced this pull request Nov 20, 2024
mfournioux pushed a commit to mfournioux/vllm that referenced this pull request Nov 20, 2024
tlrmchlsmth pushed a commit to neuralmagic/vllm that referenced this pull request Nov 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready ONLY add when PR is ready to merge/full CI is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants