llama_cpp 0.20.0 → 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 +23 -0
- data/ext/llama_cpp/llama_cpp.c +340 -0
- data/lib/llama_cpp/version.rb +2 -2
- metadata +2 -2
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,26 @@
|
|
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
|
+
|
19
|
+
## [[0.20.1](https://github.com/yoshoku/llama_cpp.rb/compare/v0.20.0...v0.20.1)] - 2025-05-31
|
20
|
+
|
21
|
+
- Change supported llama.cpp version to b5530
|
22
|
+
- Add `llama_max_parallel_sequences` module function.
|
23
|
+
|
1
24
|
## [[0.20.0](https://github.com/yoshoku/llama_cpp.rb/compare/v0.19.6...v0.20.0)] - 2025-05-23
|
2
25
|
|
3
26
|
- Change supported llama.cpp version to b5460
|
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;
|
@@ -1322,6 +1323,14 @@ static VALUE rb_llama_max_devices(VALUE self) {
|
|
1322
1323
|
return SIZET2NUM(llama_max_devices());
|
1323
1324
|
}
|
1324
1325
|
|
1326
|
+
/**
|
1327
|
+
* @overload llama_max_parallel_sequences
|
1328
|
+
* @return [Integer]
|
1329
|
+
*/
|
1330
|
+
static VALUE rb_llama_max_parallel_sequences(VALUE self) {
|
1331
|
+
return SIZET2NUM(llama_max_parallel_sequences());
|
1332
|
+
}
|
1333
|
+
|
1325
1334
|
/**
|
1326
1335
|
* @overload llama_supports_mmap?
|
1327
1336
|
* @return [Boolean]
|
@@ -1544,6 +1553,20 @@ static VALUE rb_llama_model_n_head_kv(VALUE self, VALUE model) {
|
|
1544
1553
|
return INT2NUM(llama_model_n_head_kv(model_wrapper->model));
|
1545
1554
|
}
|
1546
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
|
+
|
1547
1570
|
/**
|
1548
1571
|
* @overload llama_model_rope_freq_scale_train(model)
|
1549
1572
|
* @param [LlamaModel] model
|
@@ -1558,6 +1581,41 @@ static VALUE rb_llama_model_rope_freq_scale_train(VALUE self, VALUE model) {
|
|
1558
1581
|
return DBL2NUM(llama_model_rope_freq_scale_train(model_wrapper->model));
|
1559
1582
|
}
|
1560
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
|
+
|
1561
1619
|
/**
|
1562
1620
|
* @overload llama_vocab_type(vocab)
|
1563
1621
|
* @param [LlamaVocab] vocab
|
@@ -1845,6 +1903,239 @@ static VALUE rb_llama_adapter_lora_free(VALUE self, VALUE adapter) {
|
|
1845
1903
|
return Qnil;
|
1846
1904
|
}
|
1847
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
|
+
|
1848
2139
|
/* llama_kv_cache wrapper */
|
1849
2140
|
typedef struct {
|
1850
2141
|
struct llama_kv_cache* kv_cache;
|
@@ -4684,6 +4975,9 @@ void Init_llama_cpp(void) {
|
|
4684
4975
|
/* llama_max_devices */
|
4685
4976
|
rb_define_module_function(rb_mLlamaCpp, "llama_max_devices", rb_llama_max_devices, 0);
|
4686
4977
|
|
4978
|
+
/* llama_max_parallel_sequences */
|
4979
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_max_parallel_sequences", rb_llama_max_parallel_sequences, 0);
|
4980
|
+
|
4687
4981
|
/* llama_supports_mmap */
|
4688
4982
|
rb_define_module_function(rb_mLlamaCpp, "llama_supports_mmap?", rb_llama_supports_mmap, 0);
|
4689
4983
|
|
@@ -4714,6 +5008,9 @@ void Init_llama_cpp(void) {
|
|
4714
5008
|
/* llama_get_kv_self */
|
4715
5009
|
rb_define_module_function(rb_mLlamaCpp, "llama_get_kv_self", rb_llama_get_kv_self, 1);
|
4716
5010
|
|
5011
|
+
/* llama_get_memory */
|
5012
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_get_memory", rb_llama_get_memory, 1);
|
5013
|
+
|
4717
5014
|
/* llama_pooling_type */
|
4718
5015
|
rb_define_module_function(rb_mLlamaCpp, "llama_pooling_type", rb_llama_pooling_type, 1);
|
4719
5016
|
|
@@ -4738,9 +5035,18 @@ void Init_llama_cpp(void) {
|
|
4738
5035
|
/* llama_model_n_head_kv */
|
4739
5036
|
rb_define_module_function(rb_mLlamaCpp, "llama_model_n_head_kv", rb_llama_model_n_head_kv, 1);
|
4740
5037
|
|
5038
|
+
/* llama_model_n_swa */
|
5039
|
+
rb_define_module_function(rb_mLlamaCpp, "llama_model_n_swa", rb_llama_model_n_swa, 1);
|
5040
|
+
|
4741
5041
|
/* llama_model_rope_freq_scale_train */
|
4742
5042
|
rb_define_module_function(rb_mLlamaCpp, "llama_model_rope_freq_scale_train", rb_llama_model_rope_freq_scale_train, 1);
|
4743
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
|
+
|
4744
5050
|
/* llama_vocab_type */
|
4745
5051
|
rb_define_module_function(rb_mLlamaCpp, "llama_vocab_type", rb_llama_vocab_type, 1);
|
4746
5052
|
|
@@ -4796,6 +5102,40 @@ void Init_llama_cpp(void) {
|
|
4796
5102
|
|
4797
5103
|
/* TODO: llama_apply_adapter_cvec */
|
4798
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
|
+
|
4799
5139
|
/**
|
4800
5140
|
* Document-class: LlamaCpp::LlamaKvCache
|
4801
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
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: llama_cpp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.20.
|
4
|
+
version: 0.20.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yoshoku
|
@@ -49,7 +49,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
49
49
|
- !ruby/object:Gem::Version
|
50
50
|
version: '0'
|
51
51
|
requirements: []
|
52
|
-
rubygems_version: 3.6.
|
52
|
+
rubygems_version: 3.6.7
|
53
53
|
specification_version: 4
|
54
54
|
summary: Ruby bindings for the llama.cpp.
|
55
55
|
test_files: []
|