Skip to content

[Feat] Add support for eagle3 non-greedy Sample#1084

Open
lingebeng wants to merge 5 commits into
sgl-project:mainfrom
lingebeng:haifeng/eagle3_adapt
Open

[Feat] Add support for eagle3 non-greedy Sample#1084
lingebeng wants to merge 5 commits into
sgl-project:mainfrom
lingebeng:haifeng/eagle3_adapt

Conversation

@lingebeng
Copy link
Copy Markdown

@lingebeng lingebeng commented May 14, 2026

Add support for eagle3 non-greedy Sample.

  • Adapt sharding
  • Padding
python test/srt/test_speculative_decoding.py TestSpeculativeDecoding.test_mmlu_non_greedy

After my test in TPU v6e-4, it's OK!
image

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces support for non-greedy sampling within the Eagle3 speculative decoding framework. The changes focus on optimizing the underlying JAX kernels for probability renormalization and ensuring the speculative sampling logic is fully JIT-compatible for TPU environments. These updates improve both the flexibility and performance of the speculative decoding pipeline.

Highlights

  • Non-Greedy Sampling Support: Added support for non-greedy sampling in the Eagle3 speculative decoding pipeline.
  • Kernel Optimization: Optimized probability renormalization (top-k and top-p) using jax.lax.top_k, significantly improving performance by reducing sorting overhead.
  • JIT Compilation: Implemented a JIT-compiled version of the speculative sampling target-only function to ensure compatibility with TPU sharding.
  • Testing: Added new test cases for non-greedy sampling and a dedicated test suite for top-k speculative decoding.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant