|
@@ -2692,6 +2692,7 @@ bool llama_model::load_tensors(llama_model_loader & ml) {
|
|
|
// output
|
|
// output
|
|
|
output_norm = create_tensor(tn(LLM_TENSOR_OUTPUT_NORM, "weight"), {n_embd}, 0);
|
|
output_norm = create_tensor(tn(LLM_TENSOR_OUTPUT_NORM, "weight"), {n_embd}, 0);
|
|
|
output = create_tensor(tn(LLM_TENSOR_OUTPUT, "weight"), {n_embd, n_vocab}, TENSOR_NOT_REQUIRED);
|
|
output = create_tensor(tn(LLM_TENSOR_OUTPUT, "weight"), {n_embd, n_vocab}, TENSOR_NOT_REQUIRED);
|
|
|
|
|
+ output_b = create_tensor(tn(LLM_TENSOR_OUTPUT, "bias"), {n_vocab}, TENSOR_NOT_REQUIRED);
|
|
|
// if output is NULL, init from the input tok embed
|
|
// if output is NULL, init from the input tok embed
|
|
|
if (output == NULL) {
|
|
if (output == NULL) {
|
|
|
output = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, TENSOR_DUPLICATED);
|
|
output = create_tensor(tn(LLM_TENSOR_TOKEN_EMBD, "weight"), {n_embd, n_vocab}, TENSOR_DUPLICATED);
|
|
@@ -7765,6 +7766,10 @@ struct llm_build_qwen2 : public llm_graph_context {
|
|
|
// lm_head
|
|
// lm_head
|
|
|
cur = build_lora_mm(model.output, cur);
|
|
cur = build_lora_mm(model.output, cur);
|
|
|
|
|
|
|
|
|
|
+ if (model.output_b != nullptr) {
|
|
|
|
|
+ cur = ggml_add(ctx0, cur, model.output_b);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
cb(cur, "result_output", -1);
|
|
cb(cur, "result_output", -1);
|
|
|
res->t_logits = cur;
|
|
res->t_logits = cur;
|
|
|
|
|
|