GGML 学习笔记大纲
1. 矩阵乘法基础
矩阵乘法通常写作 。只有当左矩阵 的列数与右矩阵 的行数相同,乘积矩阵
才有定义。其元素由下式确定:
1.1 形式
1.2 一般公式
1.3 数值示例
2. ggml_tensor 结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| struct ggml_tensor { enum ggml_type type; struct ggml_backend_buffer * buffer; int64_t ne[GGML_MAX_DIMS]; size_t nb[GGML_MAX_DIMS];
enum ggml_op op; int32_t op_params[GGML_MAX_OP_PARAMS / sizeof(int32_t)]; int32_t flags; struct ggml_tensor * src[GGML_MAX_SRC]; struct ggml_tensor * view_src; size_t view_offs; void * data; char name[GGML_MAX_NAME]; void * extra; char padding[8]; };
|
要点摘要: - ne(number of elements)与
nb(number of bytes)分别描述各维度的元素数量及字节跨度。 -
op 和 op_params
指明该张量对应的运算节点及其参数,用于构建计算图。 -
view_src 与 view_offs
允许视图张量共享底层数据,常用于切片、reshape 等操作。
3. 常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| .\build\bin\Release\gpt-2.exe -m .\models\gpt-2-117M\ggml-model.bin -p "This is an example" -n 128 -t 8 --top_k 40 --top_p 0.9 --temp 0.8
.\build\bin\Release\gpt-2-batched.exe -np 4 -m .\models\gpt-2-117M\ggml-model.bin -p "Hello my name is" -n 64
.\build\bin\Release\gpt-2-alloc.exe -m .\models\gpt-2-117M\ggml-model.bin -p "Sample prompt" -n 80
.\build\bin\Release\gpt-j.exe -m .\models\gpt-j-6B\ggml-model.bin -p "int main(int argc, char ** argv) {" -n 200 -t 8
.\build\bin\Release\gpt-2-quantize.exe .\models\gpt-2-1558M\ggml-model-f16.bin .\models\gpt-2-1558M\ggml-model-q4_0.bin 2
.\build\bin\Release\sam.exe -i .\examples\sam\example.jpg -m .\examples\sam\ggml-model-f16.bin -t 8
.\build\bin\Release\yolov3-tiny.exe -m .\examples\yolo\yolov3-tiny.gguf -i .\examples\yolo\dog.jpg
|
shape |
矩阵维度,如 (3, 4) 表示 3 行 4 列 |
dtype |
元素类型,例如 float64、int32 |
nnz |
稀疏矩阵中非零元素(number of non-zero entries) |