Skip to content

[V0][V1][Core] Add outlines integration for V1, and update V0 integration. #15975

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

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

unaidedelf8777
Copy link

@unaidedelf8777 unaidedelf8777 commented Apr 3, 2025

Adds outlines as a guided decoding backend for V1, and updates the integration for V0.

The aim of this is three fold:

  1. Remove the dependency on outlines, and only use outlines_core
  2. performance gains for V0 using the write_mask_into method on Guide to write a bitmask in-place for use in logits masking.
  3. outlines backend for V1

Because the dependency on outlines will be removed, support for grammar based decoding with the outlines backend will also be removed (CFG classes reside in the outlines package)

cc @aarnphm

Copy link

github-actions bot commented Apr 3, 2025

👋 Hi! Thank you for contributing to the vLLM project.

💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels.

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 either: Add ready label to the PR or enable auto-merge.

🚀

@unaidedelf8777 unaidedelf8777 changed the title [V0][V1][Core] Add outlines integration for V1, and update V0 integration. [V0][V1][Core] Add outlines integration for V1, and update V0 integration. [DO NOT MERGE] Apr 3, 2025
@mergify mergify bot added the v1 label Apr 3, 2025
@unaidedelf8777 unaidedelf8777 marked this pull request as draft April 3, 2025 00:46
@unaidedelf8777 unaidedelf8777 changed the title [V0][V1][Core] Add outlines integration for V1, and update V0 integration. [DO NOT MERGE] [V0][V1][Core] Add outlines integration for V1, and update V0 integration. Apr 3, 2025
@unaidedelf8777
Copy link
Author

NOTE: Can't be merged until next version of outlines_core is released.

@russellb
Copy link
Member

russellb commented Apr 7, 2025

Thank you for the PR! I will review it this week.

Copy link
Collaborator

@aarnphm aarnphm left a comment

Choose a reason for hiding this comment

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

I reviewed the v0 code path. One ask is to add tests for this for disabling cache path.

And we should update the requirements/common.txt to the lowest version of outlines-core supported.

@mergify mergify bot added tpu Related to Google TPUs ci/build and removed tpu Related to Google TPUs labels Apr 9, 2025
Copy link

mergify bot commented Apr 11, 2025

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @unaidedelf8777.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@unaidedelf8777
Copy link
Author

@russellb @aarnphm All code is done. If you guys approve of it I’ll go ahead and clean up all the linter complaints, and then it should be ready.

Also outlines-core update has been pushed to pypi and pinned here (v0.2.9)

@unaidedelf8777 unaidedelf8777 marked this pull request as ready for review April 13, 2025 17:55
Copy link
Collaborator

@aarnphm aarnphm left a comment

Choose a reason for hiding this comment

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

First round of review. A few things needs to be addressed here. but great progress so far.

Copy link

mergify bot commented Apr 18, 2025

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @unaidedelf8777.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

Copy link

mergify bot commented May 15, 2025

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @unaidedelf8777.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify bot added the needs-rebase label May 15, 2025
@aarnphm
Copy link
Collaborator

aarnphm commented May 15, 2025

Ok, that one got merged, let's proceed with this one and get this in for 0.9.0

commit f861a35
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Thu May 1 18:39:16 2025 -0500

    Update vllm/v1/structured_output/backend_outlines.py

    Co-authored-by: Aaron Pham <Aaronpham0103@gmail.com>

commit 50886e0
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Thu May 1 13:22:46 2025 -0500

    Fix typo in merge conflict resolution

commit cf92ccf
Merge: 7bc8167 7423cf0
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Thu May 1 11:51:47 2025 -0500

    Merge branch 'main' into update-outlines-integration

commit 7bc8167
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Thu Apr 24 00:33:40 2025 +0000

    Make pre-commit happy

    Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>

commit 5f2855d
Merge: 0bf4bdf b07d741
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Wed Apr 23 19:07:34 2025 -0500

    Merge branch 'main' into update-outlines-integration

commit 0bf4bdf
Merge: 2d67e88 5536b30
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Tue Apr 22 11:38:21 2025 -0500

    Merge branch 'main' into update-outlines-integration

commit 2d67e88
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Mon Apr 21 21:43:08 2025 +0000

    format test last commit

    Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>

commit d5bdab7
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Mon Apr 21 16:44:32 2025 +0000

    fix part of failing test which I can fix.

    Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>

commit 058ab4b
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Sun Apr 20 05:35:45 2025 +0000

    Fix bugs from outlines -> outlines_core behavior differences

    Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>

commit 04928c8
Author: Nathan Hoos <thwackyy.y@gmail.com>
Date:   Sat Apr 19 17:32:36 2025 +0000

    Add outlines backend to V1

    Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>

Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
@unaidedelf8777 unaidedelf8777 force-pushed the update-outlines-integration branch from db324d3 to 8022c7a Compare May 15, 2025 22:10
@mergify mergify bot removed the needs-rebase label May 15, 2025
@unaidedelf8777
Copy link
Author

unaidedelf8777 commented May 16, 2025

Merge conflicts with your last PR are resolved. The test failure also seems to be unrelated to any changes in this PR.

@simon-mo simon-mo added the ready ONLY add when PR is ready to merge/full CI is needed label May 16, 2025
@simon-mo simon-mo enabled auto-merge (squash) May 16, 2025 05:30
@aarnphm
Copy link
Collaborator

aarnphm commented May 16, 2025

hmm maybe tried to merge from main ?

@aarnphm
Copy link
Collaborator

aarnphm commented May 17, 2025

@unaidedelf8777 I think only the logit processor tests in v0 is related to this PR here (at least for the outlines case)

PTAL

auto-merge was automatically disabled May 17, 2025 01:52

Head branch was pushed to by a user without write access

Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
@unaidedelf8777 unaidedelf8777 force-pushed the update-outlines-integration branch from 64c0086 to 3d4c13d Compare May 17, 2025 01:52
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
@unaidedelf8777 unaidedelf8777 force-pushed the update-outlines-integration branch from e70ee76 to 05023f6 Compare May 17, 2025 17:42
Signed-off-by: Nathan Hoos <thwackyy.y@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci/build ready ONLY add when PR is ready to merge/full CI is needed structured-output v1
Projects
Status: In review
Development

Successfully merging this pull request may close these issues.

4 participants