cui-llama.rn 1.3.3 → 1.3.4
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.
- package/android/src/main/CMakeLists.txt +5 -7
- package/android/src/main/java/com/rnllama/LlamaContext.java +4 -4
- package/android/src/main/jni.cpp +9 -9
- package/cpp/common.cpp +21 -40
- package/cpp/common.h +21 -12
- package/cpp/ggml-backend-impl.h +38 -20
- package/cpp/ggml-backend-reg.cpp +216 -87
- package/cpp/ggml-backend.h +1 -0
- package/cpp/ggml-common.h +42 -48
- package/cpp/{ggml-cpu-aarch64.c → ggml-cpu-aarch64.cpp} +591 -152
- package/cpp/ggml-cpu-aarch64.h +2 -26
- package/cpp/ggml-cpu-traits.cpp +36 -0
- package/cpp/ggml-cpu-traits.h +38 -0
- package/cpp/ggml-cpu.c +14122 -13971
- package/cpp/ggml-cpu.cpp +618 -715
- package/cpp/ggml-cpu.h +0 -17
- package/cpp/ggml-impl.h +6 -6
- package/cpp/ggml-metal.m +482 -24
- package/cpp/ggml-quants.c +0 -9
- package/cpp/ggml-threading.h +4 -2
- package/cpp/ggml.c +132 -43
- package/cpp/ggml.h +44 -13
- package/cpp/llama-sampling.cpp +35 -90
- package/cpp/llama-vocab.cpp +2 -1
- package/cpp/llama.cpp +737 -233
- package/cpp/llama.h +20 -16
- package/cpp/sampling.cpp +11 -16
- package/cpp/speculative.cpp +4 -0
- package/cpp/unicode.cpp +51 -51
- package/cpp/unicode.h +9 -10
- package/lib/commonjs/index.js +38 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +36 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/NativeRNLlama.d.ts +2 -3
- package/lib/typescript/NativeRNLlama.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +36 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeRNLlama.ts +3 -3
- package/src/index.ts +46 -2
- package/cpp/amx/amx.cpp +0 -196
- package/cpp/amx/amx.h +0 -20
- package/cpp/amx/common.h +0 -101
- package/cpp/amx/mmq.cpp +0 -2524
- package/cpp/amx/mmq.h +0 -16
- package/cpp/ggml-aarch64.c +0 -129
- package/cpp/ggml-aarch64.h +0 -19
package/cpp/llama.h
CHANGED
@@ -105,12 +105,15 @@ extern "C" {
|
|
105
105
|
LLAMA_VOCAB_PRE_TYPE_GPT3_FINNISH = 24,
|
106
106
|
LLAMA_VOCAB_PRE_TYPE_EXAONE = 25,
|
107
107
|
LLAMA_VOCAB_PRE_TYPE_CHAMELEON = 26,
|
108
|
+
LLAMA_VOCAB_PRE_TYPE_MINERVA = 27,
|
108
109
|
};
|
109
110
|
|
110
111
|
enum llama_rope_type {
|
111
|
-
LLAMA_ROPE_TYPE_NONE
|
112
|
-
LLAMA_ROPE_TYPE_NORM
|
113
|
-
LLAMA_ROPE_TYPE_NEOX
|
112
|
+
LLAMA_ROPE_TYPE_NONE = -1,
|
113
|
+
LLAMA_ROPE_TYPE_NORM = 0,
|
114
|
+
LLAMA_ROPE_TYPE_NEOX = LM_GGML_ROPE_TYPE_NEOX,
|
115
|
+
LLAMA_ROPE_TYPE_MROPE = LM_GGML_ROPE_TYPE_MROPE,
|
116
|
+
LLAMA_ROPE_TYPE_VISION = LM_GGML_ROPE_TYPE_VISION,
|
114
117
|
};
|
115
118
|
|
116
119
|
enum llama_token_type { //TODO: remove, required until per token attributes are available from GGUF file
|
@@ -172,9 +175,9 @@ extern "C" {
|
|
172
175
|
LLAMA_FTYPE_MOSTLY_IQ4_XS = 30, // except 1d tensors
|
173
176
|
LLAMA_FTYPE_MOSTLY_IQ1_M = 31, // except 1d tensors
|
174
177
|
LLAMA_FTYPE_MOSTLY_BF16 = 32, // except 1d tensors
|
175
|
-
LLAMA_FTYPE_MOSTLY_Q4_0_4_4 = 33, //
|
176
|
-
LLAMA_FTYPE_MOSTLY_Q4_0_4_8 = 34, //
|
177
|
-
LLAMA_FTYPE_MOSTLY_Q4_0_8_8 = 35, //
|
178
|
+
//LLAMA_FTYPE_MOSTLY_Q4_0_4_4 = 33, // removed from gguf files, use Q4_0 and runtime repack
|
179
|
+
//LLAMA_FTYPE_MOSTLY_Q4_0_4_8 = 34, // removed from gguf files, use Q4_0 and runtime repack
|
180
|
+
//LLAMA_FTYPE_MOSTLY_Q4_0_8_8 = 35, // removed from gguf files, use Q4_0 and runtime repack
|
178
181
|
LLAMA_FTYPE_MOSTLY_TQ1_0 = 36, // except 1d tensors
|
179
182
|
LLAMA_FTYPE_MOSTLY_TQ2_0 = 37, // except 1d tensors
|
180
183
|
|
@@ -186,7 +189,8 @@ extern "C" {
|
|
186
189
|
LLAMA_ROPE_SCALING_TYPE_NONE = 0,
|
187
190
|
LLAMA_ROPE_SCALING_TYPE_LINEAR = 1,
|
188
191
|
LLAMA_ROPE_SCALING_TYPE_YARN = 2,
|
189
|
-
|
192
|
+
LLAMA_ROPE_SCALING_TYPE_LONGROPE = 3,
|
193
|
+
LLAMA_ROPE_SCALING_TYPE_MAX_VALUE = LLAMA_ROPE_SCALING_TYPE_LONGROPE,
|
190
194
|
};
|
191
195
|
|
192
196
|
enum llama_pooling_type {
|
@@ -455,6 +459,7 @@ extern "C" {
|
|
455
459
|
// Functions to access the model's GGUF metadata scalar values
|
456
460
|
// - The functions return the length of the string on success, or -1 on failure
|
457
461
|
// - The output string is always null-terminated and cleared on failure
|
462
|
+
// - When retrieving a string, an extra byte must be allocated to account for the null terminator
|
458
463
|
// - GGUF array values are not supported by these functions
|
459
464
|
|
460
465
|
// Get metadata value as a string by key name
|
@@ -991,6 +996,9 @@ extern "C" {
|
|
991
996
|
char * buf,
|
992
997
|
int32_t length);
|
993
998
|
|
999
|
+
// Get list of built-in chat templates
|
1000
|
+
LLAMA_API int32_t llama_chat_builtin_templates(const char ** output, size_t len);
|
1001
|
+
|
994
1002
|
//
|
995
1003
|
// Sampling API
|
996
1004
|
//
|
@@ -1132,16 +1140,12 @@ extern "C" {
|
|
1132
1140
|
const char * grammar_str,
|
1133
1141
|
const char * grammar_root);
|
1134
1142
|
|
1143
|
+
/// NOTE: Avoid using on the full vocabulary as searching for repeated tokens can become slow. For example, apply top-k or top-p sampling first.
|
1135
1144
|
LLAMA_API struct llama_sampler * llama_sampler_init_penalties(
|
1136
|
-
int32_t
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
float penalty_repeat, // 1.0 = disabled
|
1141
|
-
float penalty_freq, // 0.0 = disabled
|
1142
|
-
float penalty_present, // 0.0 = disabled
|
1143
|
-
bool penalize_nl, // consider newlines as a repeatable token
|
1144
|
-
bool ignore_eos); // ignore the end-of-sequence token
|
1145
|
+
int32_t penalty_last_n, // last n tokens to penalize (0 = disable penalty, -1 = context size)
|
1146
|
+
float penalty_repeat, // 1.0 = disabled
|
1147
|
+
float penalty_freq, // 0.0 = disabled
|
1148
|
+
float penalty_present); // 0.0 = disabled
|
1145
1149
|
|
1146
1150
|
/// @details DRY sampler, designed by p-e-w, as described in: https://github.com/oobabooga/text-generation-webui/pull/5677, porting Koboldcpp implementation authored by pi6am: https://github.com/LostRuins/koboldcpp/pull/982
|
1147
1151
|
LLAMA_API struct llama_sampler * llama_sampler_init_dry(
|
package/cpp/sampling.cpp
CHANGED
@@ -161,32 +161,20 @@ struct common_sampler * common_sampler_init(const struct llama_model * model, co
|
|
161
161
|
params.logit_bias.size(),
|
162
162
|
params.logit_bias.data()));
|
163
163
|
|
164
|
-
llama_sampler_chain_add(result->chain,
|
165
|
-
llama_sampler_init_penalties(
|
166
|
-
llama_n_vocab (model),
|
167
|
-
llama_token_eos(model),
|
168
|
-
llama_token_nl (model),
|
169
|
-
params.penalty_last_n,
|
170
|
-
params.penalty_repeat,
|
171
|
-
params.penalty_freq,
|
172
|
-
params.penalty_present,
|
173
|
-
params.penalize_nl,
|
174
|
-
params.ignore_eos));
|
175
|
-
|
176
164
|
if (params.mirostat == 0) {
|
177
165
|
for (const auto & cnstr : params.samplers) {
|
178
166
|
switch (cnstr) {
|
179
|
-
|
167
|
+
case COMMON_SAMPLER_TYPE_DRY:
|
180
168
|
{
|
181
|
-
std::vector<const char*> c_breakers;
|
169
|
+
std::vector<const char *> c_breakers;
|
182
170
|
c_breakers.reserve(params.dry_sequence_breakers.size());
|
183
|
-
for (const auto& str : params.dry_sequence_breakers) {
|
171
|
+
for (const auto & str : params.dry_sequence_breakers) {
|
184
172
|
c_breakers.push_back(str.c_str());
|
185
173
|
}
|
186
174
|
|
187
175
|
llama_sampler_chain_add(result->chain, llama_sampler_init_dry (model, params.dry_multiplier, params.dry_base, params.dry_allowed_length, params.dry_penalty_last_n, c_breakers.data(), c_breakers.size()));
|
188
176
|
}
|
189
|
-
|
177
|
+
break;
|
190
178
|
case COMMON_SAMPLER_TYPE_TOP_K:
|
191
179
|
llama_sampler_chain_add(result->chain, llama_sampler_init_top_k (params.top_k));
|
192
180
|
break;
|
@@ -208,6 +196,9 @@ struct common_sampler * common_sampler_init(const struct llama_model * model, co
|
|
208
196
|
case COMMON_SAMPLER_TYPE_INFILL:
|
209
197
|
llama_sampler_chain_add(result->chain, llama_sampler_init_infill (model));
|
210
198
|
break;
|
199
|
+
case COMMON_SAMPLER_TYPE_PENALTIES:
|
200
|
+
llama_sampler_chain_add(result->chain, llama_sampler_init_penalties(params.penalty_last_n, params.penalty_repeat, params.penalty_freq, params.penalty_present));
|
201
|
+
break;
|
211
202
|
default:
|
212
203
|
LM_GGML_ASSERT(false && "unknown sampler type");
|
213
204
|
}
|
@@ -415,6 +406,7 @@ char common_sampler_type_to_chr(enum common_sampler_type cnstr) {
|
|
415
406
|
case COMMON_SAMPLER_TYPE_TEMPERATURE: return 't';
|
416
407
|
case COMMON_SAMPLER_TYPE_XTC: return 'x';
|
417
408
|
case COMMON_SAMPLER_TYPE_INFILL: return 'i';
|
409
|
+
case COMMON_SAMPLER_TYPE_PENALTIES: return 'e';
|
418
410
|
default : return '?';
|
419
411
|
}
|
420
412
|
}
|
@@ -429,6 +421,7 @@ std::string common_sampler_type_to_str(enum common_sampler_type cnstr) {
|
|
429
421
|
case COMMON_SAMPLER_TYPE_TEMPERATURE: return "temperature";
|
430
422
|
case COMMON_SAMPLER_TYPE_XTC: return "xtc";
|
431
423
|
case COMMON_SAMPLER_TYPE_INFILL: return "infill";
|
424
|
+
case COMMON_SAMPLER_TYPE_PENALTIES: return "penalties";
|
432
425
|
default : return "";
|
433
426
|
}
|
434
427
|
}
|
@@ -443,6 +436,7 @@ std::vector<common_sampler_type> common_sampler_types_from_names(const std::vect
|
|
443
436
|
{ "temperature", COMMON_SAMPLER_TYPE_TEMPERATURE },
|
444
437
|
{ "xtc", COMMON_SAMPLER_TYPE_XTC },
|
445
438
|
{ "infill", COMMON_SAMPLER_TYPE_INFILL },
|
439
|
+
{ "penalties", COMMON_SAMPLER_TYPE_PENALTIES },
|
446
440
|
};
|
447
441
|
|
448
442
|
// since samplers names are written multiple ways
|
@@ -489,6 +483,7 @@ std::vector<common_sampler_type> common_sampler_types_from_chars(const std::stri
|
|
489
483
|
{ common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_TEMPERATURE), COMMON_SAMPLER_TYPE_TEMPERATURE },
|
490
484
|
{ common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_XTC), COMMON_SAMPLER_TYPE_XTC },
|
491
485
|
{ common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_INFILL), COMMON_SAMPLER_TYPE_INFILL },
|
486
|
+
{ common_sampler_type_to_chr(COMMON_SAMPLER_TYPE_PENALTIES), COMMON_SAMPLER_TYPE_PENALTIES },
|
492
487
|
};
|
493
488
|
|
494
489
|
std::vector<common_sampler_type> samplers;
|
package/cpp/speculative.cpp
CHANGED
package/cpp/unicode.cpp
CHANGED
@@ -71,15 +71,15 @@ uint32_t unicode_cpt_from_utf8(const std::string & utf8, size_t & offset) {
|
|
71
71
|
throw std::invalid_argument("failed to convert utf8 to codepoint");
|
72
72
|
}
|
73
73
|
|
74
|
-
//static std::vector<uint16_t> unicode_cpt_to_utf16(uint32_t
|
74
|
+
//static std::vector<uint16_t> unicode_cpt_to_utf16(uint32_t cpt) {
|
75
75
|
// std::vector<uint16_t> result;
|
76
|
-
// if (/* 0x0000 <=
|
77
|
-
// result.emplace_back(
|
76
|
+
// if (/* 0x0000 <= cpt && */ cpt <= 0xffff) {
|
77
|
+
// result.emplace_back(cpt);
|
78
78
|
// return result;
|
79
79
|
// }
|
80
|
-
// if (0x10000 <=
|
81
|
-
// result.emplace_back(0xd800 | ((
|
82
|
-
// result.emplace_back(0xdc00 | ((
|
80
|
+
// if (0x10000 <= cpt && cpt <= 0x10ffff) {
|
81
|
+
// result.emplace_back(0xd800 | ((cpt - 0x10000) >> 10));
|
82
|
+
// result.emplace_back(0xdc00 | ((cpt - 0x10000) & 0x03ff));
|
83
83
|
// return result;
|
84
84
|
// }
|
85
85
|
// throw std::invalid_argument("failed to convert codepoint to utf16");
|
@@ -120,8 +120,8 @@ uint32_t unicode_cpt_from_utf8(const std::string & utf8, size_t & offset) {
|
|
120
120
|
// return result;
|
121
121
|
//}
|
122
122
|
|
123
|
-
static std::vector<
|
124
|
-
std::vector<
|
123
|
+
static std::vector<unicode_cpt_flags> unicode_cpt_flags_array() {
|
124
|
+
std::vector<unicode_cpt_flags> cpt_flags(MAX_CODEPOINTS, unicode_cpt_flags::UNDEFINED);
|
125
125
|
|
126
126
|
assert (unicode_ranges_flags.begin()[0].first == 0);
|
127
127
|
assert (unicode_ranges_flags.begin()[unicode_ranges_flags.size()-1].first == MAX_CODEPOINTS);
|
@@ -253,8 +253,8 @@ static std::vector<size_t> unicode_regex_split_custom_gpt2(const std::string & t
|
|
253
253
|
return (offset_ini <= pos && pos < offset_end) ? cpts[pos] : OUT_OF_RANGE;
|
254
254
|
};
|
255
255
|
|
256
|
-
auto _get_flags = [&] (const size_t pos) ->
|
257
|
-
return (offset_ini <= pos && pos < offset_end) ?
|
256
|
+
auto _get_flags = [&] (const size_t pos) -> unicode_cpt_flags {
|
257
|
+
return (offset_ini <= pos && pos < offset_end) ? unicode_cpt_flags_from_cpt(cpts[pos]) : unicode_cpt_flags{};
|
258
258
|
};
|
259
259
|
|
260
260
|
size_t _prev_end = offset_ini;
|
@@ -371,8 +371,8 @@ static std::vector<size_t> unicode_regex_split_custom_llama3(const std::string &
|
|
371
371
|
return (offset_ini <= pos && pos < offset_end) ? cpts[pos] : OUT_OF_RANGE;
|
372
372
|
};
|
373
373
|
|
374
|
-
auto _get_flags = [&] (const size_t pos) ->
|
375
|
-
return (offset_ini <= pos && pos < offset_end) ?
|
374
|
+
auto _get_flags = [&] (const size_t pos) -> unicode_cpt_flags {
|
375
|
+
return (offset_ini <= pos && pos < offset_end) ? unicode_cpt_flags_from_cpt(cpts[pos]) : unicode_cpt_flags{};
|
376
376
|
};
|
377
377
|
|
378
378
|
size_t _prev_end = offset_ini;
|
@@ -572,29 +572,29 @@ static std::vector<size_t> unicode_regex_split_custom(const std::string & text,
|
|
572
572
|
// interface
|
573
573
|
//
|
574
574
|
|
575
|
-
std::string unicode_cpt_to_utf8(uint32_t
|
575
|
+
std::string unicode_cpt_to_utf8(uint32_t cpt) {
|
576
576
|
std::string result;
|
577
577
|
|
578
|
-
if (/* 0x00 <=
|
579
|
-
result.push_back(
|
578
|
+
if (/* 0x00 <= cpt && */ cpt <= 0x7f) {
|
579
|
+
result.push_back(cpt);
|
580
580
|
return result;
|
581
581
|
}
|
582
|
-
if (0x80 <=
|
583
|
-
result.push_back(0xc0 | ((
|
584
|
-
result.push_back(0x80 | (
|
582
|
+
if (0x80 <= cpt && cpt <= 0x7ff) {
|
583
|
+
result.push_back(0xc0 | ((cpt >> 6) & 0x1f));
|
584
|
+
result.push_back(0x80 | (cpt & 0x3f));
|
585
585
|
return result;
|
586
586
|
}
|
587
|
-
if (0x800 <=
|
588
|
-
result.push_back(0xe0 | ((
|
589
|
-
result.push_back(0x80 | ((
|
590
|
-
result.push_back(0x80 | (
|
587
|
+
if (0x800 <= cpt && cpt <= 0xffff) {
|
588
|
+
result.push_back(0xe0 | ((cpt >> 12) & 0x0f));
|
589
|
+
result.push_back(0x80 | ((cpt >> 6) & 0x3f));
|
590
|
+
result.push_back(0x80 | (cpt & 0x3f));
|
591
591
|
return result;
|
592
592
|
}
|
593
|
-
if (0x10000 <=
|
594
|
-
result.push_back(0xf0 | ((
|
595
|
-
result.push_back(0x80 | ((
|
596
|
-
result.push_back(0x80 | ((
|
597
|
-
result.push_back(0x80 | (
|
593
|
+
if (0x10000 <= cpt && cpt <= 0x10ffff) {
|
594
|
+
result.push_back(0xf0 | ((cpt >> 18) & 0x07));
|
595
|
+
result.push_back(0x80 | ((cpt >> 12) & 0x3f));
|
596
|
+
result.push_back(0x80 | ((cpt >> 6) & 0x3f));
|
597
|
+
result.push_back(0x80 | (cpt & 0x3f));
|
598
598
|
return result;
|
599
599
|
}
|
600
600
|
|
@@ -624,19 +624,19 @@ std::vector<uint32_t> unicode_cpts_from_utf8(const std::string & utf8) {
|
|
624
624
|
return result;
|
625
625
|
}
|
626
626
|
|
627
|
-
|
628
|
-
static const
|
627
|
+
unicode_cpt_flags unicode_cpt_flags_from_cpt(const uint32_t cpt) {
|
628
|
+
static const unicode_cpt_flags undef(unicode_cpt_flags::UNDEFINED);
|
629
629
|
static const auto cpt_flags = unicode_cpt_flags_array();
|
630
|
-
return
|
630
|
+
return cpt < cpt_flags.size() ? cpt_flags[cpt] : undef;
|
631
631
|
}
|
632
632
|
|
633
|
-
|
634
|
-
static const
|
633
|
+
unicode_cpt_flags unicode_cpt_flags_from_utf8(const std::string & utf8) {
|
634
|
+
static const unicode_cpt_flags undef(unicode_cpt_flags::UNDEFINED);
|
635
635
|
if (utf8.empty()) {
|
636
636
|
return undef; // undefined
|
637
637
|
}
|
638
638
|
size_t offset = 0;
|
639
|
-
return
|
639
|
+
return unicode_cpt_flags_from_cpt(unicode_cpt_from_utf8(utf8, offset));
|
640
640
|
}
|
641
641
|
|
642
642
|
std::string unicode_byte_to_utf8(uint8_t byte) {
|
@@ -649,41 +649,41 @@ uint8_t unicode_utf8_to_byte(const std::string & utf8) {
|
|
649
649
|
return map.at(utf8);
|
650
650
|
}
|
651
651
|
|
652
|
-
uint32_t unicode_tolower(uint32_t
|
652
|
+
uint32_t unicode_tolower(uint32_t cpt) {
|
653
653
|
// binary search
|
654
|
-
auto it = std::lower_bound(unicode_map_lowercase.begin(), unicode_map_lowercase.end(),
|
654
|
+
auto it = std::lower_bound(unicode_map_lowercase.begin(), unicode_map_lowercase.end(), cpt,
|
655
655
|
[](const std::pair<uint32_t, uint32_t> & pair, uint32_t value) {
|
656
656
|
return pair.first < value;
|
657
657
|
});
|
658
|
-
if (it != unicode_map_lowercase.end() && it->first ==
|
658
|
+
if (it != unicode_map_lowercase.end() && it->first == cpt) {
|
659
659
|
return it->second;
|
660
660
|
}
|
661
|
-
return
|
661
|
+
return cpt; // Return the original code point if no lowercase mapping is found
|
662
662
|
}
|
663
663
|
|
664
664
|
std::vector<std::string> unicode_regex_split(const std::string & text, const std::vector<std::string> & regex_exprs) {
|
665
665
|
// unicode categories
|
666
666
|
static const std::map<std::string, int> k_ucat_enum = {
|
667
|
-
{ "\\p{N}",
|
668
|
-
{ "\\p{L}",
|
669
|
-
{ "\\p{P}",
|
667
|
+
{ "\\p{N}", unicode_cpt_flags::NUMBER },
|
668
|
+
{ "\\p{L}", unicode_cpt_flags::LETTER },
|
669
|
+
{ "\\p{P}", unicode_cpt_flags::PUNCTUATION },
|
670
670
|
};
|
671
671
|
|
672
672
|
static const std::map<int, int> k_ucat_cpt = {
|
673
|
-
{
|
674
|
-
{
|
675
|
-
{
|
673
|
+
{ unicode_cpt_flags::NUMBER, 0xD1 },
|
674
|
+
{ unicode_cpt_flags::LETTER, 0xD2 },
|
675
|
+
{ unicode_cpt_flags::PUNCTUATION, 0xD3 },
|
676
676
|
};
|
677
677
|
|
678
678
|
static const std::map<int, std::string> k_ucat_map = {
|
679
|
-
{
|
680
|
-
{
|
681
|
-
{
|
679
|
+
{ unicode_cpt_flags::NUMBER, "\x30-\x39" }, // 0-9
|
680
|
+
{ unicode_cpt_flags::LETTER, "\x41-\x5A\x61-\x7A" }, // A-Za-z
|
681
|
+
{ unicode_cpt_flags::PUNCTUATION, "\x21-\x23\x25-\x2A\x2C-\x2F\x3A-\x3B\x3F-\x40\\\x5B-\\\x5D\x5F\\\x7B\\\x7D" }, // !-#%-*,-/:-;?-@\[-\]_\{\}
|
682
682
|
};
|
683
683
|
|
684
684
|
// compute collapsed codepoints only if needed by at least one regex
|
685
685
|
bool need_collapse = false;
|
686
|
-
for (auto & regex_expr : regex_exprs) {
|
686
|
+
for (const auto & regex_expr : regex_exprs) {
|
687
687
|
// search for unicode categories
|
688
688
|
for (const auto & ucat : k_ucat_enum) {
|
689
689
|
if (std::string::npos != regex_expr.find(ucat.first)) {
|
@@ -709,7 +709,7 @@ std::vector<std::string> unicode_regex_split(const std::string & text, const std
|
|
709
709
|
continue;
|
710
710
|
}
|
711
711
|
|
712
|
-
const auto flags =
|
712
|
+
const auto flags = unicode_cpt_flags_from_cpt(cpts[i]);
|
713
713
|
|
714
714
|
if (flags.is_whitespace) {
|
715
715
|
//NOTE: C++ std::regex \s does not mach 0x85, Rust and Python regex does.
|
@@ -725,7 +725,7 @@ std::vector<std::string> unicode_regex_split(const std::string & text, const std
|
|
725
725
|
|
726
726
|
std::vector<size_t> bpe_offsets = { cpts.size() };
|
727
727
|
|
728
|
-
for (auto & regex_expr : regex_exprs) {
|
728
|
+
for (const auto & regex_expr : regex_exprs) {
|
729
729
|
// first, see if we have an efficient custom regex implementation
|
730
730
|
auto tmp = unicode_regex_split_custom(text, regex_expr, bpe_offsets);
|
731
731
|
|
@@ -739,7 +739,7 @@ std::vector<std::string> unicode_regex_split(const std::string & text, const std
|
|
739
739
|
// if a unicode category is used in the regex, we use the collapsed text and replace the unicode category
|
740
740
|
// with the corresponding collapsed representation
|
741
741
|
bool use_collapsed = false;
|
742
|
-
for (auto & ucat : k_ucat_enum) {
|
742
|
+
for (const auto & ucat : k_ucat_enum) {
|
743
743
|
if (std::string::npos != regex_expr.find(ucat.first)) {
|
744
744
|
use_collapsed = true;
|
745
745
|
break;
|
@@ -805,7 +805,7 @@ std::vector<std::string> unicode_regex_split(const std::string & text, const std
|
|
805
805
|
// std::wregex \s does not mach non-ASCII whitespaces, using 0x0B as fallback
|
806
806
|
std::wstring wtext(cpts.begin(), cpts.end());
|
807
807
|
for (size_t i = 0; i < wtext.size(); ++i) {
|
808
|
-
if (wtext[i] > 0x7F &&
|
808
|
+
if (wtext[i] > 0x7F && unicode_cpt_flags_from_cpt(wtext[i]).is_whitespace) {
|
809
809
|
wtext[i] = 0x0B;
|
810
810
|
}
|
811
811
|
}
|
package/cpp/unicode.h
CHANGED
@@ -4,9 +4,7 @@
|
|
4
4
|
#include <string>
|
5
5
|
#include <vector>
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
struct codepoint_flags {
|
7
|
+
struct unicode_cpt_flags {
|
10
8
|
enum {
|
11
9
|
UNDEFINED = 0x0001,
|
12
10
|
NUMBER = 0x0002, // regex: \p{N}
|
@@ -35,7 +33,7 @@ struct codepoint_flags {
|
|
35
33
|
uint16_t is_nfd : 1;
|
36
34
|
|
37
35
|
// decode from uint16
|
38
|
-
inline
|
36
|
+
inline unicode_cpt_flags(const uint16_t flags = 0) {
|
39
37
|
*reinterpret_cast<uint16_t*>(this) = flags;
|
40
38
|
}
|
41
39
|
|
@@ -50,18 +48,19 @@ struct codepoint_flags {
|
|
50
48
|
|
51
49
|
size_t unicode_len_utf8(char src);
|
52
50
|
|
53
|
-
std::string unicode_cpt_to_utf8(uint32_t
|
54
|
-
uint32_t
|
51
|
+
std::string unicode_cpt_to_utf8 (uint32_t cpt);
|
52
|
+
uint32_t unicode_cpt_from_utf8(const std::string & utf8, size_t & offset);
|
53
|
+
|
55
54
|
std::vector<uint32_t> unicode_cpts_from_utf8(const std::string & utf8);
|
56
55
|
|
57
56
|
std::vector<uint32_t> unicode_cpts_normalize_nfd(const std::vector<uint32_t> & cpts);
|
58
57
|
|
59
|
-
|
60
|
-
|
58
|
+
unicode_cpt_flags unicode_cpt_flags_from_cpt (uint32_t cpt);
|
59
|
+
unicode_cpt_flags unicode_cpt_flags_from_utf8(const std::string & utf8);
|
61
60
|
|
62
61
|
std::string unicode_byte_to_utf8(uint8_t byte);
|
63
|
-
uint8_t
|
62
|
+
uint8_t unicode_utf8_to_byte(const std::string & utf8);
|
64
63
|
|
65
|
-
uint32_t unicode_tolower(uint32_t
|
64
|
+
uint32_t unicode_tolower(uint32_t cpt);
|
66
65
|
|
67
66
|
std::vector<std::string> unicode_regex_split(const std::string & text, const std::vector<std::string> & regex_exprs);
|
package/lib/commonjs/index.js
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.LlamaContext = void 0;
|
6
|
+
exports.LlamaContext = exports.GGML_TYPE = void 0;
|
7
7
|
Object.defineProperty(exports, "SchemaGrammarConverter", {
|
8
8
|
enumerable: true,
|
9
9
|
get: function () {
|
@@ -36,6 +36,43 @@ if (_reactNative.Platform.OS === 'ios') {
|
|
36
36
|
if (_reactNative.Platform.OS === 'android') {
|
37
37
|
EventEmitter = _reactNative.DeviceEventEmitter;
|
38
38
|
}
|
39
|
+
let GGML_TYPE = /*#__PURE__*/function (GGML_TYPE) {
|
40
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_F32"] = 0] = "LM_GGML_TYPE_F32";
|
41
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_F16"] = 1] = "LM_GGML_TYPE_F16";
|
42
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q4_0"] = 2] = "LM_GGML_TYPE_Q4_0";
|
43
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q4_1"] = 3] = "LM_GGML_TYPE_Q4_1";
|
44
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q5_0"] = 6] = "LM_GGML_TYPE_Q5_0";
|
45
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q5_1"] = 7] = "LM_GGML_TYPE_Q5_1";
|
46
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q8_0"] = 8] = "LM_GGML_TYPE_Q8_0";
|
47
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q8_1"] = 9] = "LM_GGML_TYPE_Q8_1";
|
48
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q2_K"] = 10] = "LM_GGML_TYPE_Q2_K";
|
49
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q3_K"] = 11] = "LM_GGML_TYPE_Q3_K";
|
50
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q4_K"] = 12] = "LM_GGML_TYPE_Q4_K";
|
51
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q5_K"] = 13] = "LM_GGML_TYPE_Q5_K";
|
52
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q6_K"] = 14] = "LM_GGML_TYPE_Q6_K";
|
53
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q8_K"] = 15] = "LM_GGML_TYPE_Q8_K";
|
54
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ2_XXS"] = 16] = "LM_GGML_TYPE_IQ2_XXS";
|
55
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ2_XS"] = 17] = "LM_GGML_TYPE_IQ2_XS";
|
56
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ3_XXS"] = 18] = "LM_GGML_TYPE_IQ3_XXS";
|
57
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ1_S"] = 19] = "LM_GGML_TYPE_IQ1_S";
|
58
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ4_NL"] = 20] = "LM_GGML_TYPE_IQ4_NL";
|
59
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ3_S"] = 21] = "LM_GGML_TYPE_IQ3_S";
|
60
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ2_S"] = 22] = "LM_GGML_TYPE_IQ2_S";
|
61
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ4_XS"] = 23] = "LM_GGML_TYPE_IQ4_XS";
|
62
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_I8"] = 24] = "LM_GGML_TYPE_I8";
|
63
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_I16"] = 25] = "LM_GGML_TYPE_I16";
|
64
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_I32"] = 26] = "LM_GGML_TYPE_I32";
|
65
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_I64"] = 27] = "LM_GGML_TYPE_I64";
|
66
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_F64"] = 28] = "LM_GGML_TYPE_F64";
|
67
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ1_M"] = 29] = "LM_GGML_TYPE_IQ1_M";
|
68
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_BF16"] = 30] = "LM_GGML_TYPE_BF16";
|
69
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_TQ1_0"] = 34] = "LM_GGML_TYPE_TQ1_0";
|
70
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_TQ2_0"] = 35] = "LM_GGML_TYPE_TQ2_0";
|
71
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_COUNT"] = 39] = "LM_GGML_TYPE_COUNT";
|
72
|
+
return GGML_TYPE;
|
73
|
+
}({});
|
74
|
+
exports.GGML_TYPE = GGML_TYPE;
|
75
|
+
;
|
39
76
|
class LlamaContext {
|
40
77
|
gpu = false;
|
41
78
|
reasonNoGPU = '';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeRNLlama","_interopRequireDefault","_grammar","_chat","obj","__esModule","default","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EventEmitter","Platform","OS","NativeEventEmitter","RNLlama","DeviceEventEmitter","LlamaContext","gpu","reasonNoGPU","model","constructor","_ref","contextId","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","getFormattedChat","messages","template","_this$model","chat","formatChat","tmpl","isChatTemplateSupported","undefined","completion","params","callback","finalPrompt","prompt","chatTemplate","tokenListener","addListener","evt","tokenResult","Error","promise","emit_partial_completion","then","completionResult","_tokenListener","remove","catch","err","_tokenListener2","stopCompletion","tokenizeAsync","text","tokenizeSync","detokenize","tokens","embedding","bench","pp","tg","pl","nr","result","modelDesc","modelSize","modelNParams","ppAvg","ppStd","tgAvg","tgStd","JSON","parse","release","releaseContext","
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeRNLlama","_interopRequireDefault","_grammar","_chat","obj","__esModule","default","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EventEmitter","Platform","OS","NativeEventEmitter","RNLlama","DeviceEventEmitter","GGML_TYPE","exports","LlamaContext","gpu","reasonNoGPU","model","constructor","_ref","contextId","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","getFormattedChat","messages","template","_this$model","chat","formatChat","tmpl","isChatTemplateSupported","undefined","completion","params","callback","finalPrompt","prompt","chatTemplate","tokenListener","addListener","evt","tokenResult","Error","promise","emit_partial_completion","then","completionResult","_tokenListener","remove","catch","err","_tokenListener2","stopCompletion","tokenizeAsync","text","tokenizeSync","detokenize","tokens","embedding","bench","pp","tg","pl","nr","result","modelDesc","modelSize","modelNParams","ppAvg","ppStd","tgAvg","tgStd","JSON","parse","release","releaseContext","getCpuFeatures","setContextLimit","limit","contextIdCounter","contextIdRandom","process","env","NODE_ENV","Math","floor","random","modelInfoSkip","loadLlamaModelInfo","modelInfo","poolTypeMap","none","mean","cls","last","rank","initLlama","_ref2","onProgress","_loraPath","_removeProgressListen2","is_model_asset","isModelAsset","pooling_type","poolingType","lora","rest","loraPath","removeProgressListener","progress","poolType","modelDetails","initContext","use_progress_callback","_removeProgressListen","releaseAllLlama","releaseAllContexts"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
@@ -13,6 +13,42 @@ if (Platform.OS === 'ios') {
|
|
13
13
|
if (Platform.OS === 'android') {
|
14
14
|
EventEmitter = DeviceEventEmitter;
|
15
15
|
}
|
16
|
+
export let GGML_TYPE = /*#__PURE__*/function (GGML_TYPE) {
|
17
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_F32"] = 0] = "LM_GGML_TYPE_F32";
|
18
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_F16"] = 1] = "LM_GGML_TYPE_F16";
|
19
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q4_0"] = 2] = "LM_GGML_TYPE_Q4_0";
|
20
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q4_1"] = 3] = "LM_GGML_TYPE_Q4_1";
|
21
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q5_0"] = 6] = "LM_GGML_TYPE_Q5_0";
|
22
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q5_1"] = 7] = "LM_GGML_TYPE_Q5_1";
|
23
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q8_0"] = 8] = "LM_GGML_TYPE_Q8_0";
|
24
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q8_1"] = 9] = "LM_GGML_TYPE_Q8_1";
|
25
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q2_K"] = 10] = "LM_GGML_TYPE_Q2_K";
|
26
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q3_K"] = 11] = "LM_GGML_TYPE_Q3_K";
|
27
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q4_K"] = 12] = "LM_GGML_TYPE_Q4_K";
|
28
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q5_K"] = 13] = "LM_GGML_TYPE_Q5_K";
|
29
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q6_K"] = 14] = "LM_GGML_TYPE_Q6_K";
|
30
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_Q8_K"] = 15] = "LM_GGML_TYPE_Q8_K";
|
31
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ2_XXS"] = 16] = "LM_GGML_TYPE_IQ2_XXS";
|
32
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ2_XS"] = 17] = "LM_GGML_TYPE_IQ2_XS";
|
33
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ3_XXS"] = 18] = "LM_GGML_TYPE_IQ3_XXS";
|
34
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ1_S"] = 19] = "LM_GGML_TYPE_IQ1_S";
|
35
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ4_NL"] = 20] = "LM_GGML_TYPE_IQ4_NL";
|
36
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ3_S"] = 21] = "LM_GGML_TYPE_IQ3_S";
|
37
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ2_S"] = 22] = "LM_GGML_TYPE_IQ2_S";
|
38
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ4_XS"] = 23] = "LM_GGML_TYPE_IQ4_XS";
|
39
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_I8"] = 24] = "LM_GGML_TYPE_I8";
|
40
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_I16"] = 25] = "LM_GGML_TYPE_I16";
|
41
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_I32"] = 26] = "LM_GGML_TYPE_I32";
|
42
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_I64"] = 27] = "LM_GGML_TYPE_I64";
|
43
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_F64"] = 28] = "LM_GGML_TYPE_F64";
|
44
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_IQ1_M"] = 29] = "LM_GGML_TYPE_IQ1_M";
|
45
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_BF16"] = 30] = "LM_GGML_TYPE_BF16";
|
46
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_TQ1_0"] = 34] = "LM_GGML_TYPE_TQ1_0";
|
47
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_TQ2_0"] = 35] = "LM_GGML_TYPE_TQ2_0";
|
48
|
+
GGML_TYPE[GGML_TYPE["LM_GGML_TYPE_COUNT"] = 39] = "LM_GGML_TYPE_COUNT";
|
49
|
+
return GGML_TYPE;
|
50
|
+
}({});
|
51
|
+
;
|
16
52
|
export class LlamaContext {
|
17
53
|
gpu = false;
|
18
54
|
reasonNoGPU = '';
|
package/lib/module/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","RNLlama","SchemaGrammarConverter","convertJsonSchemaToGrammar","formatChat","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EventEmitter","OS","LlamaContext","gpu","reasonNoGPU","model","constructor","_ref","contextId","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","getFormattedChat","messages","template","_this$model","chat","tmpl","isChatTemplateSupported","undefined","completion","params","callback","finalPrompt","prompt","chatTemplate","tokenListener","addListener","evt","tokenResult","Error","promise","emit_partial_completion","then","completionResult","_tokenListener","remove","catch","err","_tokenListener2","stopCompletion","tokenizeAsync","text","tokenizeSync","detokenize","tokens","embedding","bench","pp","tg","pl","nr","result","modelDesc","modelSize","modelNParams","ppAvg","ppStd","tgAvg","tgStd","JSON","parse","release","releaseContext","getCpuFeatures","setContextLimit","limit","contextIdCounter","contextIdRandom","process","env","NODE_ENV","Math","floor","random","modelInfoSkip","loadLlamaModelInfo","modelInfo","poolTypeMap","none","mean","cls","last","rank","initLlama","_ref2","onProgress","_loraPath","_removeProgressListen2","is_model_asset","isModelAsset","pooling_type","poolingType","lora","rest","loraPath","removeProgressListener","progress","poolType","modelDetails","initContext","use_progress_callback","_removeProgressListen","releaseAllLlama","releaseAllContexts"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAE/E,OAAOC,OAAO,MAAM,iBAAiB;AAgBrC,SAASC,sBAAsB,EAAEC,0BAA0B,QAAQ,WAAW;AAE9E,SAASC,UAAU,QAAQ,QAAQ;AAoBnC,SAASF,sBAAsB,EAAEC,0BAA0B;AAE3D,MAAME,8BAA8B,GAAG,gCAAgC;AACvE,MAAMC,cAAc,GAAG,kBAAkB;AAEzC,IAAIC,YAA2D;AAC/D,IAAIP,QAAQ,CAACQ,EAAE,KAAK,KAAK,EAAE;EACzB;EACAD,YAAY,GAAG,IAAIT,kBAAkB,CAACG,OAAO,CAAC;AAChD;AACA,IAAID,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;EAC7BD,YAAY,GAAGR,kBAAkB;AACnC;
|
1
|
+
{"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","RNLlama","SchemaGrammarConverter","convertJsonSchemaToGrammar","formatChat","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EventEmitter","OS","GGML_TYPE","LlamaContext","gpu","reasonNoGPU","model","constructor","_ref","contextId","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","getFormattedChat","messages","template","_this$model","chat","tmpl","isChatTemplateSupported","undefined","completion","params","callback","finalPrompt","prompt","chatTemplate","tokenListener","addListener","evt","tokenResult","Error","promise","emit_partial_completion","then","completionResult","_tokenListener","remove","catch","err","_tokenListener2","stopCompletion","tokenizeAsync","text","tokenizeSync","detokenize","tokens","embedding","bench","pp","tg","pl","nr","result","modelDesc","modelSize","modelNParams","ppAvg","ppStd","tgAvg","tgStd","JSON","parse","release","releaseContext","getCpuFeatures","setContextLimit","limit","contextIdCounter","contextIdRandom","process","env","NODE_ENV","Math","floor","random","modelInfoSkip","loadLlamaModelInfo","modelInfo","poolTypeMap","none","mean","cls","last","rank","initLlama","_ref2","onProgress","_loraPath","_removeProgressListen2","is_model_asset","isModelAsset","pooling_type","poolingType","lora","rest","loraPath","removeProgressListener","progress","poolType","modelDetails","initContext","use_progress_callback","_removeProgressListen","releaseAllLlama","releaseAllContexts"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"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"}
|