namespace LLama.Native; /// /// Possible GGML quantisation types /// public enum GGMLType { /// /// Full 32 bit float /// GGML_TYPE_F32 = 0, /// /// 16 bit float /// GGML_TYPE_F16 = 1, /// /// 4 bit float /// GGML_TYPE_Q4_0 = 2, /// /// 4 bit float /// GGML_TYPE_Q4_1 = 3, // GGML_TYPE_Q4_2 = 4, support has been removed // GGML_TYPE_Q4_3 (5) support has been removed /// /// 5 bit float /// GGML_TYPE_Q5_0 = 6, /// /// 5 bit float /// GGML_TYPE_Q5_1 = 7, /// /// 8 bit float /// GGML_TYPE_Q8_0 = 8, /// /// 8 bit float /// GGML_TYPE_Q8_1 = 9, // k-quantizations /// /// "type-1" 2-bit quantization in super-blocks containing 16 blocks, each block having 16 weight. /// Block scales and mins are quantized with 4 bits. This ends up effectively using 2.5625 bits per weight (bpw) /// GGML_TYPE_Q2_K = 10, /// /// "type-0" 3-bit quantization in super-blocks containing 16 blocks, each block having 16 weights. /// Scales are quantized with 6 bits. This end up using 3.4375 bpw. /// GGML_TYPE_Q3_K = 11, /// /// "type-1" 4-bit quantization in super-blocks containing 8 blocks, each block having 32 weights. /// Scales and mins are quantized with 6 bits. This ends up using 4.5 bpw. /// GGML_TYPE_Q4_K = 12, /// /// "type-1" 5-bit quantization. Same super-block structure as GGML_TYPE_Q4_K resulting in 5.5 bpw /// GGML_TYPE_Q5_K = 13, /// /// "type-0" 6-bit quantization. Super-blocks with 16 blocks, each block having 16 weights. /// Scales are quantized with 8 bits. This ends up using 6.5625 bpw /// GGML_TYPE_Q6_K = 14, /// /// "type-0" 8-bit quantization. Only used for quantizing intermediate results. /// The difference to the existing Q8_0 is that the block size is 256. All 2-6 bit dot products are implemented for this quantization type. /// GGML_TYPE_Q8_K = 15, /// /// Integer, 8 bit /// GGML_TYPE_I8 = 16, /// /// Integer, 16 bit /// GGML_TYPE_I16 = 17, /// /// Integer, 32 bit /// GGML_TYPE_I32 = 18, /// /// The value of this entry is the count of the number of possible quant types. /// GGML_TYPE_COUNT, }