Replies: 1 comment 1 reply
I've tested draft-tokens in 1,2,3,5,7,15 and was good :) |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Community Testing Request: DFlash/DSpark Speculative Decoding Feedback
Hi everyone,
I am preparing experimental DFlash and DSpark speculative decoding support for
llama-cpp-python.This functionality has not been officially released yet and should currently be treated as part of the upcoming
0.3.49-previewdevelopment version. I would appreciate community testing across different models, quantizations, GPUs, backends, and workloads before the final0.3.49release.More Information see wiki: Llama Speculative Decoding
Current implementation
The preview currently provides:
The same
LlamaDFlashDecodingengine handles both DFlash and DSpark, with behavior selected from the configured algorithm and draft GGUF metadata.Important preview limitations
The current implementation is:
seq_id=00.3.49releasePlease use it in a testing environment rather than a production deployment.
Models tested so far
Initial testing currently covers compatible:
Support for other compatible architectures may already work, but needs more validation. In particular, feedback for Nemotron DFlash, different DSpark variants, hybrid/recurrent models, and reduced-vocabulary sidecars would be very useful.
How to test DFlash
For fixed-length throughput testing, add:
How to test DSpark
Run the example with
-hto see all available options:Draft-length testing
The best draft length depends on the model, draft block size, GPU, backend, quantization, prompt, and acceptance rate.
If possible, please compare several values:
A longer block is not automatically faster. Please compare final sustained throughput rather than relying only on the acceptance rate.
Feedback requested
Please include as much of the following information as possible:
The full summary printed by the example is also welcome.
Correctness notes
For the cleanest comparison, use deterministic sampling:
Even with deterministic sampling, ordinary and speculative output may diverge because target verification uses a different batch shape, which can affect floating-point tie-breaking. Please report the first divergent token instead of reporting only whether the complete outputs match.
More important warning signs include:
memory_seq_rm()operationsclose()or interpreter shutdownprocess()or synchronization timePerformance feedback
I am especially interested in:
Thank you to everyone willing to test this preview. Your results will help improve model compatibility, correctness, rollback behavior, and performance before the final
0.3.49release.— JamePeng
All reactions