@@ -27,6 +27,17 @@ static void zeros(std::ofstream & file, size_t n) {
27
27
}
28
28
}
29
29
30
+ static std::string ggml_ne_string (const ggml_tensor * t) {
31
+ std::string str;
32
+ for (int i = 0 ; i < GGML_MAX_DIMS; ++i) {
33
+ str += std::to_string (t->ne [i]);
34
+ if (i + 1 < GGML_MAX_DIMS) {
35
+ str += " , " ;
36
+ }
37
+ }
38
+ return str;
39
+ }
40
+
30
41
static struct gguf_context * load_gguf (std::string & fname, struct ggml_context ** ctx_ggml) {
31
42
struct gguf_init_params params = {
32
43
/* .no_alloc = */ true ,
@@ -242,7 +253,7 @@ struct lora_merge_ctx {
242
253
}
243
254
244
255
void copy_tensor (struct ggml_tensor * base) {
245
- printf (" %s : %s\n " , __func__, base->name );
256
+ printf (" %s : %s [%s] \n " , __func__, base->name , ggml_ne_string (base). c_str () );
246
257
size_t len = ggml_nbytes (base);
247
258
base_model.read_tensor_data (base->name , read_buf);
248
259
fout.write ((char * )read_buf.data (), len);
@@ -254,7 +265,7 @@ struct lora_merge_ctx {
254
265
std::string name_lora_a = name_base + " .lora_a" ;
255
266
std::string name_lora_b = name_base + " .lora_b" ;
256
267
257
- printf (" %s : %s\n " , __func__, base->name );
268
+ printf (" %s : %s [%s] \n " , __func__, base->name , ggml_ne_string (base). c_str () );
258
269
259
270
// context for input tensor
260
271
std::vector<struct ggml_tensor *> inp_a (adapters.size ());
@@ -308,6 +319,8 @@ struct lora_merge_ctx {
308
319
const float scale = alpha ? adapters[i]->scale * alpha / rank : adapters[i]->scale ;
309
320
delta = ggml_scale (ctx0, delta, scale);
310
321
cur = ggml_add (ctx0, cur, delta);
322
+ printf (" %s : merging from adapter[%ld]\n " , __func__, i);
323
+ printf (" %s : input_scale=%f calculated_scale=%f rank=%d\n " , __func__, adapters[i]->scale , scale, (int ) inp_b[i]->ne [0 ]);
311
324
}
312
325
cur = ggml_cast (ctx0, cur, get_out_tensor_type (base));
313
326
ggml_build_forward_expand (gf, cur);
0 commit comments