llama_cpp 0.20.1 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/ext/llama_cpp/llama_cpp.c +329 -0
- data/lib/llama_cpp/version.rb +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28d21cfaf9a14c0796cac348176745618950a8a50c6697a97038c164901dbb2b
|
4
|
+
data.tar.gz: e3ad3a9ae3b7de6817ac3095d09139656f87eba715818849cfef8e6860d112fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5c78500983f3363357be99de9968105c4f13ee1d4fd6709473624dcc752fa80d356d7b43422a61392da67f89dd6f906829bfb45b6aa243af997e7b147775c68
|
7
|
+
data.tar.gz: 5c8861198147c411374acd9fea4aa959f8c225516b1858e81640d6b5460ea0239af2fb24d13832f82d0aa647623097a2603904e7943cfa39baefbdfc53c4c149
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
## [[0.20.2](https://github.com/yoshoku/llama_cpp.rb/compare/v0.20.1...v0.20.2)] - 2025-06-07
|
2
|
+
|
3
|
+
- Change supported llama.cpp version to b5600
|
4
|
+
- Add `llama_model_n_swa` module function.
|
5
|
+
- Add `llama_model_n_cls_out` module function.
|
6
|
+
- Add `llama_model_cls_label` module function.
|
7
|
+
- Add `LlamaMemoryT` class.
|
8
|
+
- Add `llama_memory_clear` module function.
|
9
|
+
- Add `llama_memory_seq_rm` module function.
|
10
|
+
- Add `llama_memory_seq_cp` module function.
|
11
|
+
- Add `llama_memory_seq_keep` module function.
|
12
|
+
- Add `llama_memory_seq_add` module function.
|
13
|
+
- Add `llama_memory_seq_div` module function.
|
14
|
+
- Add `llama_memory_seq_pos_min` module function.
|
15
|
+
- Add `llama_memory_seq_pos_max` module function.
|
16
|
+
- Add `llama_memory_can_shift?` module function.
|
17
|
+
- Add `llama_get_memory` module function.
|
18
|
+
|
1
19
|
## [[0.20.1](https://github.com/yoshoku/llama_cpp.rb/compare/v0.20.0...v0.20.1)] - 2025-05-31
|
2
20
|
|
3
21
|
- Change supported llama.cpp version to b5530
|
data/ext/llama_cpp/llama_cpp.c
CHANGED
@@ -10,6 +10,7 @@ VALUE rb_cLlamaContextParams;
|
|
10
10
|
VALUE rb_cLlamaModelQuantizeParams;
|
11
11
|
VALUE rb_cLlamaLogitBias;
|
12
12
|
VALUE rb_cLlamaAdapterLora;
|
13
|
+
VALUE rb_cLlamaMemoryT;
|
13
14
|
VALUE rb_cLlamaKvCache;
|
14
15
|
VALUE rb_cLlamaTokenDataArray;
|
15
16
|
VALUE rb_cLlamaBatch;
|
@@ -1552,6 +1553,20 @@ static VALUE rb_llama_model_n_head_kv(VALUE self, VALUE model) {
|
|
1552
1553
|
return INT2NUM(llama_model_n_head_kv(model_wrapper->model));
|
1553
1554
|
}
|
1554
1555
|
|
1556
|
+
/**
|
1557
|
+
* @overload llama_model_n_swa(model)
|
1558
|
+
* @param [LlamaModel] model
|
1559
|
+
* @return [Integer]
|
1560
|
+
*/
|
1561
|
+
static VALUE rb_llama_model_n_swa(VALUE self, VALUE model) {
|
1562
|
+
if (!rb_obj_is_kind_of(model, rb_cLlamaModel)) {
|
1563
|
+
rb_raise(rb_eArgError, "model must be a LlamaModel");
|
1564
|
+
return Qnil;
|
1565
|
+
}
|
1566
|
+
llama_model_wrapper* model_wrapper = get_llama_model_wrapper(model);
|
1567
|
+
return INT2NUM(llama_model_n_swa(model_wrapper->model));
|
1568
|
+
}
|
1569
|
+
|
1555
1570
|
/**
|
1556
1571
|
* @overload llama_model_rope_freq_scale_train(model)
|
1557
1572
|
* @param [LlamaModel] model
|
@@ -1566,6 +1581,41 @@ static VALUE rb_llama_model_rope_freq_scale_train(VALUE self, VALUE model) {
|
|
1566
1581
|
return DBL2NUM(llama_model_rope_freq_scale_train(model_wrapper->model));
|
1567
1582
|
}
|
1568
1583
|
|
1584
|
+
/**
|
1585
|
+
* @overload llama_model_n_cls_out(model)
|
1586
|
+
* @param [LlamaModel] model
|
1587
|
+
* @return [Integer]
|
1588
|
+
*/
|
1589
|
+
static VALUE rb_llama_model_n_cls_out(VALUE self, VALUE model) {
|
1590
|
+
if (!rb_obj_is_kind_of(model, rb_cLlamaModel)) {
|
1591
|
+
rb_raise(rb_eArgError, "model must be a LlamaModel");
|
1592
|
+
return Qnil;
|
1593
|
+
}
|
1594
|
+
llama_model_wrapper* model_wrapper = get_llama_model_wrapper(model);
|
1595
|
+
return UINT2NUM(llama_model_n_cls_out(model_wrapper->model));
|
1596
|
+
}
|
1597
|
+
|
1598
|
+
/**
|
1599
|
+
* @overload llama_model_cls_label(model, id)
|
1600
|
+
* @param [LlamaModel] model
|
1601
|
+
* @param [Integer] id
|
1602
|
+
* @return [Integer]
|
1603
|
+
*/
|
1604
|
+
static VALUE rb_llama_model_cls_label(VALUE self, VALUE model, VALUE id) {
|
1605
|
+
if (!rb_obj_is_kind_of(model, rb_cLlamaModel)) {
|
1606
|
+
rb_raise(rb_eArgError, "model must be a LlamaModel");
|
1607
|
+
return Qnil;
|
1608
|
+
}
|
1609
|
+
if (!RB_INTEGER_TYPE_P(id)) {
|
1610
|
+
rb_raise(rb_eArgError, "id must be an Integer");
|
1611
|
+
return Qnil;
|
1612
|
+
}
|
1613
|
+
llama_model_wrapper* model_wrapper = get_llama_model_wrapper(model);
|
1614
|
+
const char* str = llama_model_cls_label(model_wrapper->model, NUM2UINT(id));
|
1615
|
+
RB_GC_GUARD(model);
|
1616
|
+
return rb_utf8_str_new_cstr(str);
|
1617
|
+
}
|
1618
|
+
|
1569
1619
|
/**
|
1570
1620
|
* @overload llama_vocab_type(vocab)
|
1571
1621
|
* @param [LlamaVocab] vocab
|
@@ -1853,6 +1903,239 @@ static VALUE rb_llama_adapter_lora_free(VALUE self, VALUE adapter) {
|
|
1853
1903
|
return Qnil;
|
1854
1904
|
}
|
1855
1905
|
|
1906
|
+
/* llama_memory_t wrapper */
|
1907
|
+
typedef struct {
|
1908
|
+
struct llama_memory_t* memory;
|
1909
|
+
} llama_memory_t_wrapper;
|
1910
|
+
|
1911
|
+
static void llama_memory_t_wrapper_free(void *ptr) {
|
1912
|
+
llama_memory_t_wrapper* memory_wrapper = (llama_memory_t_wrapper*)ptr;
|
1913
|
+
if (memory_wrapper) {
|
1914
|
+
if (memory_wrapper->memory != NULL) {
|
1915
|
+
llama_memory_clear(memory_wrapper->memory);
|
1916
|
+
memory_wrapper->memory = NULL;
|
1917
|
+
}
|
1918
|
+
}
|
1919
|
+
if (ptr) {
|
1920
|
+
ruby_xfree(ptr);
|
1921
|
+
}
|
1922
|
+
}
|
1923
|
+
|
1924
|
+
static size_t llama_memory_t_wrapper_size(const void *ptr) {
|
1925
|
+
return sizeof(*((llama_memory_t_wrapper*)ptr));
|
1926
|
+
}
|
1927
|
+
|
1928
|
+
static rb_data_type_t llama_memory_t_wrapper_data_type = {
|
1929
|
+
"LlamaMemory",
|
1930
|
+
{ NULL,
|
1931
|
+
llama_memory_t_wrapper_free,
|
1932
|
+
llama_memory_t_wrapper_size },
|
1933
|
+
NULL,
|
1934
|
+
NULL,
|
1935
|
+
RUBY_TYPED_FREE_IMMEDIATELY
|
1936
|
+
};
|
1937
|
+
|
1938
|
+
static VALUE llama_memory_t_wrapper_alloc(VALUE self) {
|
1939
|
+
llama_memory_t_wrapper* data = (llama_memory_t_wrapper*)ruby_xmalloc(sizeof(llama_memory_t_wrapper));
|
1940
|
+
data->memory = NULL;
|
1941
|
+
return TypedData_Wrap_Struct(self, &llama_memory_t_wrapper_data_type, data);
|
1942
|
+
}
|
1943
|
+
|
1944
|
+
static llama_memory_t_wrapper* get_llama_memory_t_wrapper(VALUE self) {
|
1945
|
+
llama_memory_t_wrapper* data = NULL;
|
1946
|
+
TypedData_Get_Struct(self, llama_memory_t_wrapper, &llama_memory_t_wrapper_data_type, data);
|
1947
|
+
return data;
|
1948
|
+
}
|
1949
|
+
|
1950
|
+
static VALUE rb_llama_memory_clear(VALUE self, VALUE memory) {
|
1951
|
+
if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
|
1952
|
+
rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
|
1953
|
+
return Qnil;
|
1954
|
+
}
|
1955
|
+
llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
|
1956
|
+
llama_memory_clear(memory_wrapper->memory);
|
1957
|
+
RB_GC_GUARD(memory);
|
1958
|
+
return Qnil;
|
1959
|
+
}
|
1960
|
+
|
1961
|
+
static VALUE rb_llama_memory_seq_rm(VALUE self, VALUE memory, VALUE seq_id, VALUE p0, VALUE p1) {
|
1962
|
+
if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
|
1963
|
+
rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
|
1964
|
+
return Qnil;
|
1965
|
+
}
|
1966
|
+
if (!RB_INTEGER_TYPE_P(seq_id)) {
|
1967
|
+
rb_raise(rb_eArgError, "seq_id must be an Integer");
|
1968
|
+
return Qnil;
|
1969
|
+
}
|
1970
|
+
if (!RB_INTEGER_TYPE_P(p0)) {
|
1971
|
+
rb_raise(rb_eArgError, "p0 must be an Integer");
|
1972
|
+
return Qnil;
|
1973
|
+
}
|
1974
|
+
if (!RB_INTEGER_TYPE_P(p1)) {
|
1975
|
+
rb_raise(rb_eArgError, "p1 must be an Integer");
|
1976
|
+
return Qnil;
|
1977
|
+
}
|
1978
|
+
llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
|
1979
|
+
const bool res = llama_memory_seq_rm(memory_wrapper->memory, NUM2INT(seq_id), NUM2INT(p0), NUM2INT(p1));
|
1980
|
+
RB_GC_GUARD(memory);
|
1981
|
+
return res ? Qtrue : Qfalse;
|
1982
|
+
}
|
1983
|
+
|
1984
|
+
static VALUE rb_llama_memory_seq_cp(VALUE self, VALUE memory, VALUE seq_id_src, VALUE seq_id_dst, VALUE p0, VALUE p1) {
|
1985
|
+
if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
|
1986
|
+
rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
|
1987
|
+
return Qnil;
|
1988
|
+
}
|
1989
|
+
if (!RB_INTEGER_TYPE_P(seq_id_src)) {
|
1990
|
+
rb_raise(rb_eArgError, "seq_id_src must be an Integer");
|
1991
|
+
return Qnil;
|
1992
|
+
}
|
1993
|
+
if (!RB_INTEGER_TYPE_P(seq_id_dst)) {
|
1994
|
+
rb_raise(rb_eArgError, "seq_id_dst must be an Integer");
|
1995
|
+
return Qnil;
|
1996
|
+
}
|
1997
|
+
if (!RB_INTEGER_TYPE_P(p0)) {
|
1998
|
+
rb_raise(rb_eArgError, "p0 must be an Integer");
|
1999
|
+
return Qnil;
|
2000
|
+
}
|
2001
|
+
if (!RB_INTEGER_TYPE_P(p1)) {
|
2002
|
+
rb_raise(rb_eArgError, "p1 must be an Integer");
|
2003
|
+
return Qnil;
|
2004
|
+
}
|
2005
|
+
llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
|
2006
|
+
llama_memory_seq_cp(memory_wrapper->memory, NUM2INT(seq_id_src), NUM2INT(seq_id_dst), NUM2INT(p0), NUM2INT(p1));
|
2007
|
+
RB_GC_GUARD(memory);
|
2008
|
+
return Qnil;
|
2009
|
+
}
|
2010
|
+
|
2011
|
+
static VALUE rb_llama_memory_seq_keep(VALUE self, VALUE memory, VALUE seq_id) {
|
2012
|
+
if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
|
2013
|
+
rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
|
2014
|
+
return Qnil;
|
2015
|
+
}
|
2016
|
+
if (!RB_INTEGER_TYPE_P(seq_id)) {
|
2017
|
+
rb_raise(rb_eArgError, "seq_id must be an Integer");
|
2018
|
+
return Qnil;
|
2019
|
+
}
|
2020
|
+
llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
|
2021
|
+
llama_memory_seq_keep(memory_wrapper->memory, NUM2INT(seq_id));
|
2022
|
+
RB_GC_GUARD(memory);
|
2023
|
+
return Qnil;
|
2024
|
+
}
|
2025
|
+
|
2026
|
+
static VALUE rb_llama_memory_seq_add(VALUE self, VALUE memory, VALUE seq_id, VALUE p0, VALUE p1, VALUE delta) {
|
2027
|
+
if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
|
2028
|
+
rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
|
2029
|
+
return Qnil;
|
2030
|
+
}
|
2031
|
+
if (!RB_INTEGER_TYPE_P(seq_id)) {
|
2032
|
+
rb_raise(rb_eArgError, "seq_id must be an Integer");
|
2033
|
+
return Qnil;
|
2034
|
+
}
|
2035
|
+
if (!RB_INTEGER_TYPE_P(p0)) {
|
2036
|
+
rb_raise(rb_eArgError, "p0 must be an Integer");
|
2037
|
+
return Qnil;
|
2038
|
+
}
|
2039
|
+
if (!RB_INTEGER_TYPE_P(p1)) {
|
2040
|
+
rb_raise(rb_eArgError, "p1 must be an Integer");
|
2041
|
+
return Qnil;
|
2042
|
+
}
|
2043
|
+
if (!RB_INTEGER_TYPE_P(delta)) {
|
2044
|
+
rb_raise(rb_eArgError, "delta must be an Integer");
|
2045
|
+
return Qnil;
|
2046
|
+
}
|
2047
|
+
llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
|
2048
|
+
llama_memory_seq_add(memory_wrapper->memory, NUM2INT(seq_id), NUM2INT(p0), NUM2INT(p1), NUM2INT(delta));
|
2049
|
+
RB_GC_GUARD(memory);
|
2050
|
+
return Qnil;
|
2051
|
+
}
|
2052
|
+
|
2053
|
+
static VALUE rb_llama_memory_seq_div(VALUE self, VALUE memory, VALUE seq_id, VALUE p0, VALUE p1, VALUE d) {
|
2054
|
+
if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
|
2055
|
+
rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
|
2056
|
+
return Qnil;
|
2057
|
+
}
|
2058
|
+
if (!RB_INTEGER_TYPE_P(seq_id)) {
|
2059
|
+
rb_raise(rb_eArgError, "seq_id must be an Integer");
|
2060
|
+
return Qnil;
|
2061
|
+
}
|
2062
|
+
if (!RB_INTEGER_TYPE_P(p0)) {
|
2063
|
+
rb_raise(rb_eArgError, "p0 must be an Integer");
|
2064
|
+
return Qnil;
|
2065
|
+
}
|
2066
|
+
if (!RB_INTEGER_TYPE_P(p1)) {
|
2067
|
+
rb_raise(rb_eArgError, "p1 must be an Integer");
|
2068
|
+
return Qnil;
|
2069
|
+
}
|
2070
|
+
if (!RB_INTEGER_TYPE_P(d)) {
|
2071
|
+
rb_raise(rb_eArgError, "d must be an Integer");
|
2072
|
+
return Qnil;
|
2073
|
+
}
|
2074
|
+
llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
|
2075
|
+
llama_memory_seq_div(memory_wrapper->memory, NUM2INT(seq_id), NUM2INT(p0), NUM2INT(p1), NUM2INT(d));
|
2076
|
+
RB_GC_GUARD(memory);
|
2077
|
+
return Qnil;
|
2078
|
+
}
|
2079
|
+
|
2080
|
+
static VALUE rb_llama_memory_seq_pos_min(VALUE self, VALUE memory, VALUE seq_id) {
|
2081
|
+
if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
|
2082
|
+
rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
|
2083
|
+
return Qnil;
|
2084
|
+
}
|
2085
|
+
if (!RB_INTEGER_TYPE_P(seq_id)) {
|
2086
|
+
rb_raise(rb_eArgError, "seq_id must be an Integer");
|
2087
|
+
return Qnil;
|
2088
|
+
}
|
2089
|
+
llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
|
2090
|
+
llama_pos pos_min = llama_memory_seq_pos_min(memory_wrapper->memory, NUM2INT(seq_id));
|
2091
|
+
RB_GC_GUARD(memory);
|
2092
|
+
return INT2NUM(pos_min);
|
2093
|
+
}
|
2094
|
+
|
2095
|
+
static VALUE rb_llama_memory_seq_pos_max(VALUE self, VALUE memory, VALUE seq_id) {
|
2096
|
+
if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
|
2097
|
+
rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
|
2098
|
+
return Qnil;
|
2099
|
+
}
|
2100
|
+
if (!RB_INTEGER_TYPE_P(seq_id)) {
|
2101
|
+
rb_raise(rb_eArgError, "seq_id must be an Integer");
|
2102
|
+
return Qnil;
|
2103
|
+
}
|
2104
|
+
llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
|
2105
|
+
llama_pos pos_max = llama_memory_seq_pos_max(memory_wrapper->memory, NUM2INT(seq_id));
|
2106
|
+
RB_GC_GUARD(memory);
|
2107
|
+
return INT2NUM(pos_max);
|
2108
|
+
}
|
2109
|
+
|
2110
|
+
static VALUE rb_llama_memory_can_shift(VALUE self, VALUE memory) {
|
2111
|
+
if (!rb_obj_is_kind_of(memory, rb_cLlamaMemoryT)) {
|
2112
|
+
rb_raise(rb_eArgError, "memory must be a LlamaMemoryT");
|
2113
|
+
return Qnil;
|
2114
|
+
}
|
2115
|
+
llama_memory_t_wrapper* memory_wrapper = get_llama_memory_t_wrapper(memory);
|
2116
|
+
const bool can_shift = llama_memory_can_shift(memory_wrapper->memory);
|
2117
|
+
RB_GC_GUARD(memory);
|
2118
|
+
return can_shift ? Qtrue : Qfalse;
|
2119
|
+
}
|
2120
|
+
|
2121
|
+
/**
|
2122
|
+
* @overload llama_get_memory(context)
|
2123
|
+
* @param [LlamaContext] context
|
2124
|
+
* @return [LlamaMemoryT]
|
2125
|
+
*/
|
2126
|
+
static VALUE rb_llama_get_memory(VALUE self, VALUE ctx) {
|
2127
|
+
if (!rb_obj_is_kind_of(ctx, rb_cLlamaContext)) {
|
2128
|
+
rb_raise(rb_eArgError, "ctx must be a LlamaContext");
|
2129
|
+
return Qnil;
|
2130
|
+
}
|
2131
|
+
llama_context_wrapper* context_wrapper = get_llama_context_wrapper(ctx);
|
2132
|
+
llama_memory_t memory = llama_get_memory(context_wrapper->context);
|
2133
|
+
llama_memory_t_wrapper* memory_wrapper = (llama_memory_t_wrapper*)ruby_xmalloc(sizeof(llama_memory_t_wrapper));
|
2134
|
+
memory_wrapper->memory = memory;
|
2135
|
+
RB_GC_GUARD(ctx);
|
2136
|
+
return TypedData_Wrap_Struct(rb_cLlamaMemoryT, &llama_memory_t_wrapper_data_type, memory_wrapper);
|
2137
|
+
}
|
2138
|
+
|
1856
2139
|
/* llama_kv_cache wrapper */
|
1857
2140
|
typedef struct {
|
1858
2141
|
struct llama_kv_cache* kv_cache;
|
@@ -4725,6 +5008,9 @@ void Init_llama_cpp(void) {
|
|
4725
5008
|
/* llama_get_kv_self */
|
4726
5009
|
rb_define_module_function(rb_mLlamaCpp, "llama_get_kv_self", rb_llama_get_kv_self, 1);
|
4727
5010
|
|
5011
|
+
/* llama_get_memory */
|
5012
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_get_memory", rb_llama_get_memory, 1);
|
5013
|
+
|
4728
5014
|
/* llama_pooling_type */
|
4729
5015
|
rb_define_module_function(rb_mLlamaCpp, "llama_pooling_type", rb_llama_pooling_type, 1);
|
4730
5016
|
|
@@ -4749,9 +5035,18 @@ void Init_llama_cpp(void) {
|
|
4749
5035
|
/* llama_model_n_head_kv */
|
4750
5036
|
rb_define_module_function(rb_mLlamaCpp, "llama_model_n_head_kv", rb_llama_model_n_head_kv, 1);
|
4751
5037
|
|
5038
|
+
/* llama_model_n_swa */
|
5039
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_model_n_swa", rb_llama_model_n_swa, 1);
|
5040
|
+
|
4752
5041
|
/* llama_model_rope_freq_scale_train */
|
4753
5042
|
rb_define_module_function(rb_mLlamaCpp, "llama_model_rope_freq_scale_train", rb_llama_model_rope_freq_scale_train, 1);
|
4754
5043
|
|
5044
|
+
/* llama_model_n_cls_out */
|
5045
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_model_n_cls_out", rb_llama_model_n_cls_out, 1);
|
5046
|
+
|
5047
|
+
/* llama_model_cls_label */
|
5048
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_model_cls_label", rb_llama_model_cls_label, 2);
|
5049
|
+
|
4755
5050
|
/* llama_vocab_type */
|
4756
5051
|
rb_define_module_function(rb_mLlamaCpp, "llama_vocab_type", rb_llama_vocab_type, 1);
|
4757
5052
|
|
@@ -4807,6 +5102,40 @@ void Init_llama_cpp(void) {
|
|
4807
5102
|
|
4808
5103
|
/* TODO: llama_apply_adapter_cvec */
|
4809
5104
|
|
5105
|
+
/**
|
5106
|
+
* Document-class: LlamaCpp::LlamaMemoryT
|
5107
|
+
* "struct llama_memory_t" wrapper class
|
5108
|
+
*/
|
5109
|
+
rb_cLlamaMemoryT = rb_define_class_under(rb_mLlamaCpp, "LlamaMemoryT", rb_cObject);
|
5110
|
+
rb_define_alloc_func(rb_cLlamaMemoryT, llama_memory_t_wrapper_alloc);
|
5111
|
+
|
5112
|
+
/* llama_memory_clear */
|
5113
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_memory_clear", rb_llama_memory_clear, 1);
|
5114
|
+
|
5115
|
+
/* llama_memory_seq_rm */
|
5116
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_rm", rb_llama_memory_seq_rm, 4);
|
5117
|
+
|
5118
|
+
/* llama_memory_seq_cp */
|
5119
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_cp", rb_llama_memory_seq_cp, 5);
|
5120
|
+
|
5121
|
+
/* llama_memory_seq_keep */
|
5122
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_keep", rb_llama_memory_seq_keep, 2);
|
5123
|
+
|
5124
|
+
/* llama_memory_seq_add */
|
5125
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_add", rb_llama_memory_seq_add, 5);
|
5126
|
+
|
5127
|
+
/* llama_memory_seq_div */
|
5128
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_div", rb_llama_memory_seq_div, 5);
|
5129
|
+
|
5130
|
+
/* llama_memory_seq_pos_min */
|
5131
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_pos_min", rb_llama_memory_seq_pos_min, 2);
|
5132
|
+
|
5133
|
+
/* llama_memory_seq_pos_max */
|
5134
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_memory_seq_pos_max", rb_llama_memory_seq_pos_max, 2);
|
5135
|
+
|
5136
|
+
/* llama_memory_can_shift */
|
5137
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_memory_can_shift?", rb_llama_memory_can_shift, 1);
|
5138
|
+
|
4810
5139
|
/**
|
4811
5140
|
* Document-class: LlamaCpp::LlamaKvCache
|
4812
5141
|
* "struct llama_kv_cache" wrapper class
|
data/lib/llama_cpp/version.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
# llama_cpp.rb provides Ruby bindings for the llama.cpp.
|
4
4
|
module LlamaCpp
|
5
5
|
# The version of llama_cpp.rb you install.
|
6
|
-
VERSION = '0.20.
|
6
|
+
VERSION = '0.20.2'
|
7
7
|
|
8
8
|
# The supported version of llama.cpp.
|
9
|
-
LLAMA_CPP_VERSION = '
|
9
|
+
LLAMA_CPP_VERSION = 'b5600'
|
10
10
|
end
|