Repository navigation
Add Nemotron Super 3.5 VL and Nemotron Bolt 74B A9B support #30520
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
Changes from all commits
b44931e
63eb76c
8f2b7ce
a19a6ec
2d6085f
3cb3b3f
02b83fb
0e8b76d
e64207b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -930,7 +930,7 @@ llama_model_dflash::graph<false>::graph(const llama_model & model, const llm_gra | |
| res->t_inp_tokens = inp_tokens; | ||
|
|
||
| ggml_tensor * inp_anchor = nullptr; | ||
| if (model.lilicorr_pass_hidden_proj && ubatch.embd_state) { | ||
| if (model.lilicorr_pass_hidden_proj && ubatch.embd_state && n_tokens == (int64_t) hparams.dflash_block_size * ubatch.n_seqs_unq) { | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Here as well.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Again, not sure how it passed by earlier! AFAIK before starting llama-server does a dummy pass with 2 tokens and directly calls the decoder; which causes the LiliCorr head to try to make the lattice with 2 tokens. It can only make the lattice for 8 tokens currently, since we have implemented it that way in #30506. So the dummy pass fails this assert in (dflash.cpp:664), and the server stops - |
||
| // LiliCorr sets inp_anchor to pass the context features to the lattice scorer | ||
| auto inp = std::make_unique<llm_graph_input_embd_h>(n_embd, n_embd); | ||
| inp->tokens = inp_tokens; | ||
|
|
@@ -1100,7 +1100,7 @@ llama_model_dflash::graph<false>::graph(const llama_model & model, const llm_gra | |
|
|
||
| if (model.dflash_selector_hidden) { | ||
| build_dflash2_selector(*this, model, inp_tokens); | ||
| } else if (model.lilicorr_pass_hidden_proj && ubatch.embd_state) { | ||
| } else if (model.lilicorr_pass_hidden_proj && ubatch.embd_state && n_tokens == (int64_t) hparams.dflash_block_size * ubatch.n_seqs_unq) { | ||
| build_lilicorr_scores(*this, model, tok_embd, inp_anchor); | ||
| } | ||
| } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh wait, what is this change here? We just merged lilicorr, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure why it wasn't caught earlier.
In the LiliCorr PR, LiliCorr calculates the entire candidate lattice even when n_draft < 7. The head's tensors are specifically made to run attention between 56 candidates, so it seemed inadvisable to slice it. In any case, not within in the already-burgeoning scope of this PR.
For that case, doing the loop from 1 to n_block_tokens is wrong; since that will always output 7 draft tokens, even when we have set n_draft to < 7.
That hits this assert later on in
llama-context.cpp:2384The change keeps us from passing more than
n_maxtokens even if the lattice is larger.