MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / save_opt_context_gguf

Function save_opt_context_gguf

common/train.cpp:596–661  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

594}
595
596void save_opt_context_gguf(struct gguf_context * fctx, struct ggml_opt_context * opt) {
597 gguf_set_val_u32(fctx, LLM_KV_OPTIMIZER_FILE_VERSION, 0);
598 gguf_set_val_u32(fctx, LLM_KV_OPTIMIZER_CONVERGENCE_PAST_COUNT, opt->params.past);
599 gguf_set_val_u64(fctx, LLM_KV_OPTIMIZER_PARAMETER_COUNT, (uint64_t) opt->nx);
600 gguf_set_val_u32(fctx, LLM_KV_OPTIMIZER_ITERATION_COUNT, opt->iter);
601 gguf_set_val_bool(fctx, LLM_KV_OPTIMIZER_JUST_INITIALIZED, opt->just_initialized);
602
603 switch (opt->params.type) {
604 case GGML_OPT_ADAM:
605 {
606 gguf_set_val_str(fctx, LLM_KV_OPTIMIZER_TYPE, LLM_KV_OPTIMIZER_TYPE_ADAM);
607 gguf_set_val_f32(fctx, LLM_KV_OPTIMIZER_ADAM_BEST_LOSS, opt->adam.fx_best);
608 gguf_set_val_f32(fctx, LLM_KV_OPTIMIZER_ADAM_PREVIOUS_LOSS, opt->adam.fx_prev);
609 gguf_set_val_u32(fctx, LLM_KV_OPTIMIZER_ADAM_NO_IMPROVEMENT_COUNT, opt->adam.n_no_improvement);
610
611 ggml_set_name(opt->adam.m, LLM_TENSOR_OPTIMIZER_ADAM_FIRST_MOMENTS);
612 ggml_set_name(opt->adam.v, LLM_TENSOR_OPTIMIZER_ADAM_SECOND_MOMENTS);
613 if (opt->adam.pf) {
614 ggml_set_name(opt->adam.pf, LLM_TENSOR_OPTIMIZER_ADAM_PAST_LOSS_VALUES);
615 }
616
617 gguf_add_tensor(fctx, opt->adam.m);
618 gguf_add_tensor(fctx, opt->adam.v);
619 if (opt->adam.pf) {
620 gguf_add_tensor(fctx, opt->adam.pf);
621 }
622 } break;
623 case GGML_OPT_LBFGS:
624 {
625 gguf_set_val_str(fctx, LLM_KV_OPTIMIZER_TYPE, LLM_KV_OPTIMIZER_TYPE_LBFGS);
626 gguf_set_val_u32(fctx, LLM_KV_OPTIMIZER_LBFGS_APPROX_HESSIAN_COUNT, opt->params.lbfgs.m);
627 gguf_set_val_f32(fctx, LLM_KV_OPTIMIZER_LBFGS_BEST_LOSS, opt->lbfgs.fx_best);
628 gguf_set_val_f32(fctx, LLM_KV_OPTIMIZER_LBFGS_LINE_SEARCH_STEP, opt->lbfgs.step);
629 gguf_set_val_i32(fctx, LLM_KV_OPTIMIZER_LBFGS_LINE_SEARCH_J, opt->lbfgs.j);
630 gguf_set_val_i32(fctx, LLM_KV_OPTIMIZER_LBFGS_LINE_SEARCH_K, opt->lbfgs.k);
631 gguf_set_val_i32(fctx, LLM_KV_OPTIMIZER_LBFGS_LINE_SEARCH_END, opt->lbfgs.end);
632 gguf_set_val_u32(fctx, LLM_KV_OPTIMIZER_LBFGS_NO_IMPROVEMENT_COUNT, opt->lbfgs.n_no_improvement);
633
634 ggml_set_name(opt->lbfgs.x, LLM_TENSOR_OPTIMIZER_LBFGS_CURRENT_PARAMETERS);
635 ggml_set_name(opt->lbfgs.xp, LLM_TENSOR_OPTIMIZER_LBFGS_PREVIOUS_PARAMETERS);
636 ggml_set_name(opt->lbfgs.g, LLM_TENSOR_OPTIMIZER_LBFGS_CURRENT_GRADIENTS);
637 ggml_set_name(opt->lbfgs.gp, LLM_TENSOR_OPTIMIZER_LBFGS_PREVIOUS_GRADIENTS);
638 ggml_set_name(opt->lbfgs.d, LLM_TENSOR_OPTIMIZER_LBFGS_SEARCH_DIRECTION);
639 if (opt->lbfgs.pf) {
640 ggml_set_name(opt->lbfgs.pf, LLM_TENSOR_OPTIMIZER_LBFGS_PAST_LOSS_VALUES);
641 }
642 ggml_set_name(opt->lbfgs.lmal, LLM_TENSOR_OPTIMIZER_LBFGS_MEMORY_ALPHA);
643 ggml_set_name(opt->lbfgs.lmys, LLM_TENSOR_OPTIMIZER_LBFGS_MEMORY_YS);
644 ggml_set_name(opt->lbfgs.lms, LLM_TENSOR_OPTIMIZER_LBFGS_MEMORY_S);
645 ggml_set_name(opt->lbfgs.lmy, LLM_TENSOR_OPTIMIZER_LBFGS_MEMORY_Y);
646
647 gguf_add_tensor(fctx, opt->lbfgs.x);
648 gguf_add_tensor(fctx, opt->lbfgs.xp);
649 gguf_add_tensor(fctx, opt->lbfgs.g);
650 gguf_add_tensor(fctx, opt->lbfgs.gp);
651 gguf_add_tensor(fctx, opt->lbfgs.d);
652 if (opt->lbfgs.pf) {
653 gguf_add_tensor(fctx, opt->lbfgs.pf);

Callers 1

save_train_state_ggufFunction · 0.85

Calls 8

gguf_set_val_u32Function · 0.50
gguf_set_val_u64Function · 0.50
gguf_set_val_boolFunction · 0.50
gguf_set_val_strFunction · 0.50
gguf_set_val_f32Function · 0.50
ggml_set_nameFunction · 0.50
gguf_add_tensorFunction · 0.50
gguf_set_val_i32Function · 0.50

Tested by

no test coverage detected