ggml 是一个为机器学习设计的张量库。它的核心思想是使用计算图来表示对多维数组(即“张量”)的一系列操作。通过抽象的后端系统,它可以在各种硬件(如 CPU 和 GPU)上高效运行。其关键特性之一是量化技术,它能压缩模型,使其在普通设备上运行得更快、占用内存更少。项目还使用专门的 GGUF 文件格式来存储和加载模型。
GGML重要数据结构
flowchart TD
A0["张量 (ggml_tensor)
"]
A1["上下文 (ggml_context)
"]
A2["计算图 (ggml_cgraph)
"]
A3["后端 (ggml_backend)
"]
A4["后端缓冲区 (ggml_backend_buffer)
"]
A5["后端调度器 (ggml_backend_sched)
"]
A6["GGUF 上下文 (gguf_context)
"]
A7["图分配器 (ggml_gallocr)
"]
A8["量化 (Quantization)
"]
A1 -- "创建" --> A0
A2 -- "组织" --> A0
A3 -- "执行" --> A2
A4 -- "存储数据" --> A0
A5 -- "调度" --> A3
A5 -- "使用...进行分配" --> A7
A6 -- "加载信息" --> A0
A7 -- "在...中分配" --> A4
A8 -- "压缩数据" --> A0
后续章节
-
张量 (ggml_tensor)
-
量化 (Quantization)
-
上下文 (ggml_context)
-
计算图 (ggml_cgraph)
-
GGUF 上下文 (gguf_context)
-
后端 (ggml_backend)
-
后端缓冲区 (ggml_backend_buffer)
-
图分配器 (ggml_gallocr)
-
后端调度器 (ggml_backend_sched)