#include "ckernel_model.h"#include <errno.h>#include <stdio.h>#include <stdlib.h>#include <string.h>Go to the source code of this file.
Functions | |
| int | ck_model_load_weights_flat (TransformerModel *m, const char *path) |
| static int | read_floats (FILE *f, float *dst, size_t count) |
| int ck_model_load_weights_flat | ( | TransformerModel * | m, |
| const char * | path | ||
| ) |
Load weights from a single flat binary file into model->memory_base.
Expected layout in the file (float32, little-endian), in the same order as layout_transformer_from_ir assigns weight offsets:
1) Token embeddings [vocab_size × hidden_size] 2) Pos embeddings [context_window × hidden_size] 3) For each layer L = 0..num_layers-1:
Activation buffers (embedded_input_offset, final_output_offset, logits_offset) are NOT populated by this loader.
Returns 0 on success, non-zero on failure.
Definition at line 24 of file ckernel_model_load.c.
References CKLayerLayout::attn_proj_bias_offset, CKLayerLayout::attn_proj_weight_offset, TransformerModel::cfg, CKModelConfig::context_window, CKLayerLayout::fc1_bias_offset, CKLayerLayout::fc1_weight_offset, CKLayerLayout::fc2_bias_offset, CKLayerLayout::fc2_weight_offset, TransformerModel::final_ln_bias_offset, TransformerModel::final_ln_weight_offset, CKModelConfig::hidden_size, CKModelConfig::intermediate_size, TransformerModel::layers, TransformerModel::lm_head_weight_offset, CKLayerLayout::ln1_bias_offset, CKLayerLayout::ln1_weight_offset, TransformerModel::memory_base, CKModelConfig::num_layers, TransformerModel::pos_emb_offset, CKLayerLayout::qkv_bias_offset, CKLayerLayout::qkv_weight_offset, read_floats(), TransformerModel::token_emb_offset, and CKModelConfig::vocab_size.
|
static |