Module: Rllama::Cpp

Extended by:
FFI::Library
Defined in:
lib/rllama/cpp.rb

Defined Under Namespace

Classes: LlamaBatch, LlamaChatMessage, LlamaContextParams, LlamaLogitBias, LlamaModelKvOverride, LlamaModelKvOverrideValue, LlamaModelParams, LlamaModelQuantizeParams, LlamaModelTensorBuftOverride, LlamaOptParams, LlamaPerfContextData, LlamaPerfSamplerData, LlamaSampler, LlamaSamplerChainParams, LlamaSamplerI, LlamaTokenData, LlamaTokenDataArray

Constant Summary collapse

LIB_NAME =
'llama'
PLATFORM =
case FFI::Platform::OS
when 'darwin'
  FFI::Platform::ARCH == 'aarch64' ? 'arm64-darwin' : 'x86_64-darwin'
when 'windows', 'mingw32'
  'x64-mingw32'
else
  FFI::Platform::ARCH == 'aarch64' ? 'aarch64-linux' : 'x86_64-linux'
end
PLATFORM_DIR =
File.join(__dir__, PLATFORM)
GGML_TYPE_F32 =

from ggml.h (ggml_type)

0
GGML_TYPE_F16 =
1
GGML_TYPE_Q4_0 =
2
GGML_TYPE_Q4_1 =
3
GGML_TYPE_Q5_0 =
6
GGML_TYPE_Q5_1 =
7
GGML_TYPE_Q8_0 =
8
GGML_TYPE_Q8_1 =
9
GGML_TYPE_Q2_K =
10
GGML_TYPE_Q3_K =
11
GGML_TYPE_Q4_K =
12
GGML_TYPE_Q5_K =
13
GGML_TYPE_Q6_K =
14
GGML_TYPE_Q8_K =
15
GGML_TYPE_IQ2_XXS =
16
GGML_TYPE_IQ2_XS =
17
GGML_TYPE_IQ3_XXS =
18
GGML_TYPE_IQ1_S =
19
GGML_TYPE_IQ4_NL =
20
GGML_TYPE_IQ3_S =
21
GGML_TYPE_IQ2_S =
22
GGML_TYPE_IQ4_XS =
23
GGML_TYPE_I8 =
24
GGML_TYPE_I16 =
25
GGML_TYPE_I32 =
26
GGML_TYPE_I64 =
27
GGML_TYPE_F64 =
28
GGML_TYPE_IQ1_M =
29
GGML_TYPE_COUNT =
30
LLAMA_MAX_DEVICES =
llama_max_devices
LLAMA_DEFAULT_SEED =
0xFFFFFFFF
LLAMA_TOKEN_NULL =
-1
LLAMA_FILE_MAGIC_GGLA =
0x67676C61
LLAMA_FILE_MAGIC_GGSN =
0x6767736E
LLAMA_FILE_MAGIC_GGSQ =
0x67677371
LLAMA_SESSION_MAGIC =
LLAMA_FILE_MAGIC_GGSN
LLAMA_SESSION_VERSION =
9
LLAMA_STATE_SEQ_MAGIC =
LLAMA_FILE_MAGIC_GGSQ
LLAMA_STATE_SEQ_VERSION =
2
LLAMA_STATE_SEQ_FLAGS_SWA_ONLY =
1
LLAMA_VOCAB_TYPE_NONE =

enum llama_vocab_type

0
LLAMA_VOCAB_TYPE_SPM =
1
LLAMA_VOCAB_TYPE_BPE =
2
LLAMA_VOCAB_TYPE_WPM =
3
LLAMA_VOCAB_TYPE_UGM =
4
LLAMA_VOCAB_TYPE_RWKV =
5
LLAMA_VOCAB_TYPE_PLAMO2 =
6
GGML_ROPE_TYPE_NEOX =

enum llama_rope_type

2
GGML_ROPE_TYPE_MROPE =
8
GGML_ROPE_TYPE_VISION =
24
LLAMA_ROPE_TYPE_NONE =
-1
LLAMA_ROPE_TYPE_NORM =
0
LLAMA_ROPE_TYPE_NEOX =
GGML_ROPE_TYPE_NEOX
LLAMA_ROPE_TYPE_MROPE =
GGML_ROPE_TYPE_MROPE
LLAMA_ROPE_TYPE_VISION =
GGML_ROPE_TYPE_VISION
LLAMA_TOKEN_TYPE_UNDEFINED =

enum llama_token_type

0
LLAMA_TOKEN_TYPE_NORMAL =
1
LLAMA_TOKEN_TYPE_UNKNOWN =
2
LLAMA_TOKEN_TYPE_CONTROL =
3
LLAMA_TOKEN_TYPE_USER_DEFINED =
4
LLAMA_TOKEN_TYPE_UNUSED =
5
LLAMA_TOKEN_TYPE_BYTE =
6
LLAMA_TOKEN_ATTR_UNDEFINED =

enum llama_token_attr

0
LLAMA_TOKEN_ATTR_UNKNOWN =
1 << 0
LLAMA_TOKEN_ATTR_UNUSED =
1 << 1
LLAMA_TOKEN_ATTR_NORMAL =
1 << 2
LLAMA_TOKEN_ATTR_CONTROL =
1 << 3
LLAMA_TOKEN_ATTR_USER_DEFINED =
1 << 4
LLAMA_TOKEN_ATTR_BYTE =
1 << 5
LLAMA_TOKEN_ATTR_NORMALIZED =
1 << 6
LLAMA_TOKEN_ATTR_LSTRIP =
1 << 7
LLAMA_TOKEN_ATTR_RSTRIP =
1 << 8
LLAMA_TOKEN_ATTR_SINGLE_WORD =
1 << 9
LLAMA_FTYPE_ALL_F32 =

enum llama_ftype

0
LLAMA_FTYPE_MOSTLY_F16 =
1
LLAMA_FTYPE_MOSTLY_Q4_0 =
2
LLAMA_FTYPE_MOSTLY_Q4_1 =
3
LLAMA_FTYPE_MOSTLY_Q8_0 =
7
LLAMA_FTYPE_MOSTLY_Q5_0 =
8
LLAMA_FTYPE_MOSTLY_Q5_1 =
9
LLAMA_FTYPE_MOSTLY_Q2_K =
10
LLAMA_FTYPE_MOSTLY_Q3_K_S =
11
LLAMA_FTYPE_MOSTLY_Q3_K_M =
12
LLAMA_FTYPE_MOSTLY_Q3_K_L =
13
LLAMA_FTYPE_MOSTLY_Q4_K_S =
14
LLAMA_FTYPE_MOSTLY_Q4_K_M =
15
LLAMA_FTYPE_MOSTLY_Q5_K_S =
16
LLAMA_FTYPE_MOSTLY_Q5_K_M =
17
LLAMA_FTYPE_MOSTLY_Q6_K =
18
LLAMA_FTYPE_MOSTLY_IQ2_XXS =
19
LLAMA_FTYPE_MOSTLY_IQ2_XS =
20
LLAMA_FTYPE_MOSTLY_Q2_K_S =
21
LLAMA_FTYPE_MOSTLY_IQ3_XS =
22
LLAMA_FTYPE_MOSTLY_IQ3_XXS =
23
LLAMA_FTYPE_MOSTLY_IQ1_S =
24
LLAMA_FTYPE_MOSTLY_IQ4_NL =
25
LLAMA_FTYPE_MOSTLY_IQ3_S =
26
LLAMA_FTYPE_MOSTLY_IQ3_M =
27
LLAMA_FTYPE_MOSTLY_IQ2_S =
28
LLAMA_FTYPE_MOSTLY_IQ2_M =
29
LLAMA_FTYPE_MOSTLY_IQ4_XS =
30
LLAMA_FTYPE_MOSTLY_IQ1_M =
31
LLAMA_FTYPE_MOSTLY_BF16 =
32
LLAMA_FTYPE_MOSTLY_TQ1_0 =
36
LLAMA_FTYPE_MOSTLY_TQ2_0 =
37
LLAMA_FTYPE_MOSTLY_MXFP4_MOE =
38
LLAMA_FTYPE_GUESSED =
1024
LLAMA_ROPE_SCALING_TYPE_UNSPECIFIED =

enum llama_rope_scaling_type

-1
LLAMA_ROPE_SCALING_TYPE_NONE =
0
LLAMA_ROPE_SCALING_TYPE_LINEAR =
1
LLAMA_ROPE_SCALING_TYPE_YARN =
2
LLAMA_ROPE_SCALING_TYPE_LONGROPE =
3
LLAMA_ROPE_SCALING_TYPE_MAX_VALUE =
LLAMA_ROPE_SCALING_TYPE_LONGROPE
LLAMA_POOLING_TYPE_UNSPECIFIED =

enum llama_pooling_type

-1
LLAMA_POOLING_TYPE_NONE =
0
LLAMA_POOLING_TYPE_MEAN =
1
LLAMA_POOLING_TYPE_CLS =
2
LLAMA_POOLING_TYPE_LAST =
3
LLAMA_POOLING_TYPE_RANK =
4
LLAMA_ATTENTION_TYPE_UNSPECIFIED =

enum llama_attention_type

-1
LLAMA_ATTENTION_TYPE_CAUSAL =
0
LLAMA_ATTENTION_TYPE_NON_CAUSAL =
1
LLAMA_FLASH_ATTN_TYPE_AUTO =

enum llama_flash_attn_type

-1
LLAMA_FLASH_ATTN_TYPE_DISABLED =
0
LLAMA_FLASH_ATTN_TYPE_ENABLED =
1
LLAMA_SPLIT_MODE_NONE =

enum llama_split_mode

0
LLAMA_SPLIT_MODE_LAYER =
1
LLAMA_SPLIT_MODE_ROW =
2
LLAMA_KV_OVERRIDE_TYPE_INT =

enum llama_model_kv_override_type

0
LLAMA_KV_OVERRIDE_TYPE_FLOAT =
1
LLAMA_KV_OVERRIDE_TYPE_BOOL =
2
LLAMA_KV_OVERRIDE_TYPE_STR =
3
GGML_NUMA_STRATEGY_DISABLED =

enum ggml_numa_strategy

0
GGML_NUMA_STRATEGY_DISTRIBUTE =
1
GGML_NUMA_STRATEGY_ISOLATE =
2
GGML_NUMA_STRATEGY_NUMACTL =
3
GGML_NUMA_STRATEGY_MIRROR =
4
GGML_NUMA_STRATEGY_COUNT =
5
SILENCE_LOG_CALLBACK =
FFI::Function.new(:void, i[int string pointer], proc {})

Class Method Summary collapse

Class Method Details

.set_log(io = $stdout) ⇒ Object



695
696
697
698
699
# File 'lib/rllama/cpp.rb', line 695

def set_log(io = $stdout)
  @log_callback = FFI::Function.new(:void, i[int string pointer]) { |_level, msg, _ud| io << msg }

  llama_log_set(@log_callback, nil)
end

.silence_log!Object



691
692
693
# File 'lib/rllama/cpp.rb', line 691

def silence_log!
  llama_log_set(SILENCE_LOG_CALLBACK, nil)
end