11-phi3-sliding-window.diff 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. From 6eedae4cf2fcc8015dac79cb3f28f61fcabacab2 Mon Sep 17 00:00:00 2001
  2. From: Michael Yang <mxyng@pm.me>
  3. Date: Wed, 31 Jul 2024 14:57:04 -0700
  4. Subject: [PATCH] phi3 sliding window
  5. ---
  6. src/llama.cpp | 6 +++---
  7. 1 file changed, 3 insertions(+), 3 deletions(-)
  8. diff --git a/src/llama.cpp b/src/llama.cpp
  9. index a207451f..f2872d4e 100644
  10. --- a/src/llama.cpp
  11. +++ b/src/llama.cpp
  12. @@ -4893,7 +4893,7 @@ static void llm_load_hparams(
  13. } break;
  14. case LLM_ARCH_PHI3:
  15. {
  16. - ml.get_key(LLM_KV_ATTENTION_SLIDING_WINDOW, hparams.n_swa);
  17. + ml.get_key(LLM_KV_ATTENTION_SLIDING_WINDOW, hparams.n_swa, false);
  18. ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps);
  19. switch (hparams.n_layer) {
  20. @@ -10762,7 +10762,7 @@ struct llm_build_context {
  21. struct ggml_tensor * inp_pos = build_inp_pos();
  22. // KQ_mask (mask for 1 head, it will be broadcasted to all heads)
  23. - struct ggml_tensor * KQ_mask_swa = build_inp_KQ_mask_swa();
  24. + struct ggml_tensor * KQ_mask = hparams.n_swa > 0 ? build_inp_KQ_mask_swa() : build_inp_KQ_mask();
  25. for (int il = 0; il < n_layer; ++il) {
  26. auto residual = inpL;
  27. @@ -10820,7 +10820,7 @@ struct llm_build_context {
  28. cur = llm_build_kv(ctx0, lctx, kv_self, gf,
  29. model.layers[il].wo, model.layers[il].bo,
  30. - Kcur, Vcur, Qcur, KQ_mask_swa, n_tokens, kv_head, n_kv, 1.0f, cb, il);
  31. + Kcur, Vcur, Qcur, KQ_mask, n_tokens, kv_head, n_kv, 1.0f, cb, il);
  32. }
  33. if (il == n_layer - 1) {
  34. --
  35. 2.45.2