cui-llama.rn 1.3.6 → 1.4.1
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/README.md +22 -1
- package/android/src/main/CMakeLists.txt +25 -26
- package/android/src/main/java/com/rnllama/LlamaContext.java +31 -9
- package/android/src/main/java/com/rnllama/RNLlama.java +98 -0
- package/android/src/main/jni-utils.h +94 -0
- package/android/src/main/jni.cpp +133 -63
- package/android/src/newarch/java/com/rnllama/RNLlamaModule.java +15 -0
- package/android/src/oldarch/java/com/rnllama/RNLlamaModule.java +15 -0
- package/cpp/common.cpp +2085 -1982
- package/cpp/common.h +696 -664
- package/cpp/ggml-alloc.c +1042 -1037
- package/cpp/ggml-backend-impl.h +255 -256
- package/cpp/ggml-backend-reg.cpp +582 -582
- package/cpp/ggml-backend.cpp +2002 -2002
- package/cpp/ggml-backend.h +354 -352
- package/cpp/ggml-common.h +1853 -1853
- package/cpp/ggml-cpp.h +39 -39
- package/cpp/ggml-cpu-aarch64.cpp +4247 -4247
- package/cpp/ggml-cpu-aarch64.h +8 -8
- package/cpp/ggml-cpu-impl.h +386 -386
- package/cpp/ggml-cpu-quants.c +10920 -10839
- package/cpp/ggml-cpu-traits.cpp +36 -36
- package/cpp/ggml-cpu-traits.h +38 -38
- package/cpp/ggml-cpu.c +14391 -14122
- package/cpp/ggml-cpu.cpp +635 -627
- package/cpp/ggml-cpu.h +135 -135
- package/cpp/ggml-impl.h +567 -567
- package/cpp/ggml-metal-impl.h +288 -0
- package/cpp/ggml-metal.m +4884 -4884
- package/cpp/ggml-opt.cpp +854 -0
- package/cpp/ggml-opt.h +216 -0
- package/cpp/ggml-quants.c +5238 -5238
- package/cpp/ggml-threading.h +14 -14
- package/cpp/ggml.c +6514 -6448
- package/cpp/ggml.h +2194 -2163
- package/cpp/gguf.cpp +1329 -1325
- package/cpp/gguf.h +202 -202
- package/cpp/json-schema-to-grammar.cpp +1045 -1045
- package/cpp/json-schema-to-grammar.h +8 -8
- package/cpp/json.hpp +24766 -24766
- package/cpp/llama-adapter.cpp +347 -346
- package/cpp/llama-adapter.h +74 -73
- package/cpp/llama-arch.cpp +1487 -1434
- package/cpp/llama-arch.h +400 -395
- package/cpp/llama-batch.cpp +368 -368
- package/cpp/llama-batch.h +88 -88
- package/cpp/llama-chat.cpp +578 -567
- package/cpp/llama-chat.h +52 -51
- package/cpp/llama-context.cpp +1775 -1771
- package/cpp/llama-context.h +128 -128
- package/cpp/llama-cparams.cpp +1 -1
- package/cpp/llama-cparams.h +37 -37
- package/cpp/llama-cpp.h +30 -30
- package/cpp/llama-grammar.cpp +1139 -1139
- package/cpp/llama-grammar.h +143 -143
- package/cpp/llama-hparams.cpp +71 -71
- package/cpp/llama-hparams.h +139 -140
- package/cpp/llama-impl.cpp +167 -167
- package/cpp/llama-impl.h +61 -61
- package/cpp/llama-kv-cache.cpp +718 -718
- package/cpp/llama-kv-cache.h +218 -218
- package/cpp/llama-mmap.cpp +590 -589
- package/cpp/llama-mmap.h +67 -67
- package/cpp/llama-model-loader.cpp +1124 -1011
- package/cpp/llama-model-loader.h +167 -158
- package/cpp/llama-model.cpp +3997 -2202
- package/cpp/llama-model.h +370 -391
- package/cpp/llama-sampling.cpp +2408 -2406
- package/cpp/llama-sampling.h +32 -48
- package/cpp/llama-vocab.cpp +3247 -1982
- package/cpp/llama-vocab.h +125 -182
- package/cpp/llama.cpp +10077 -12544
- package/cpp/llama.h +1323 -1285
- package/cpp/log.cpp +401 -401
- package/cpp/log.h +121 -121
- package/cpp/rn-llama.hpp +123 -116
- package/cpp/sampling.cpp +505 -500
- package/cpp/sgemm.cpp +2597 -2597
- package/cpp/sgemm.h +14 -14
- package/cpp/speculative.cpp +277 -274
- package/cpp/speculative.h +28 -28
- package/cpp/unicode.cpp +2 -3
- package/ios/RNLlama.mm +47 -0
- package/ios/RNLlamaContext.h +3 -1
- package/ios/RNLlamaContext.mm +71 -14
- package/jest/mock.js +15 -3
- package/lib/commonjs/NativeRNLlama.js.map +1 -1
- package/lib/commonjs/index.js +33 -37
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeRNLlama.js.map +1 -1
- package/lib/module/index.js +31 -35
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/NativeRNLlama.d.ts +26 -6
- package/lib/typescript/NativeRNLlama.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +21 -36
- package/lib/typescript/index.d.ts.map +1 -1
- package/llama-rn.podspec +4 -18
- package/package.json +2 -3
- package/src/NativeRNLlama.ts +32 -13
- package/src/index.ts +52 -47
- package/cpp/llama.cpp.rej +0 -23
package/cpp/unicode.cpp
CHANGED
@@ -7,18 +7,17 @@
|
|
7
7
|
|
8
8
|
#include <algorithm>
|
9
9
|
#include <cassert>
|
10
|
+
#include <codecvt>
|
10
11
|
#include <cstddef>
|
11
12
|
#include <cstdint>
|
13
|
+
#include <locale>
|
12
14
|
#include <map>
|
13
15
|
#include <regex>
|
14
16
|
#include <stdexcept>
|
15
17
|
#include <string>
|
16
18
|
#include <unordered_map>
|
17
|
-
#include <unordered_set>
|
18
19
|
#include <utility>
|
19
20
|
#include <vector>
|
20
|
-
#include <locale>
|
21
|
-
#include <codecvt>
|
22
21
|
|
23
22
|
size_t unicode_len_utf8(char src) {
|
24
23
|
const size_t lookup[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 4 };
|
package/ios/RNLlama.mm
CHANGED
@@ -271,6 +271,53 @@ RCT_EXPORT_METHOD(bench:(double)contextId
|
|
271
271
|
}
|
272
272
|
}
|
273
273
|
|
274
|
+
RCT_EXPORT_METHOD(applyLoraAdapters:(double)contextId
|
275
|
+
withLoraAdapters:(NSArray *)loraAdapters
|
276
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
277
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
278
|
+
{
|
279
|
+
RNLlamaContext *context = llamaContexts[[NSNumber numberWithDouble:contextId]];
|
280
|
+
if (context == nil) {
|
281
|
+
reject(@"llama_error", @"Context not found", nil);
|
282
|
+
return;
|
283
|
+
}
|
284
|
+
if ([context isPredicting]) {
|
285
|
+
reject(@"llama_error", @"Context is busy", nil);
|
286
|
+
return;
|
287
|
+
}
|
288
|
+
[context applyLoraAdapters:loraAdapters];
|
289
|
+
resolve(nil);
|
290
|
+
}
|
291
|
+
|
292
|
+
RCT_EXPORT_METHOD(removeLoraAdapters:(double)contextId
|
293
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
294
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
295
|
+
{
|
296
|
+
RNLlamaContext *context = llamaContexts[[NSNumber numberWithDouble:contextId]];
|
297
|
+
if (context == nil) {
|
298
|
+
reject(@"llama_error", @"Context not found", nil);
|
299
|
+
return;
|
300
|
+
}
|
301
|
+
if ([context isPredicting]) {
|
302
|
+
reject(@"llama_error", @"Context is busy", nil);
|
303
|
+
return;
|
304
|
+
}
|
305
|
+
[context removeLoraAdapters];
|
306
|
+
resolve(nil);
|
307
|
+
}
|
308
|
+
|
309
|
+
RCT_EXPORT_METHOD(getLoadedLoraAdapters:(double)contextId
|
310
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
311
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
312
|
+
{
|
313
|
+
RNLlamaContext *context = llamaContexts[[NSNumber numberWithDouble:contextId]];
|
314
|
+
if (context == nil) {
|
315
|
+
reject(@"llama_error", @"Context not found", nil);
|
316
|
+
return;
|
317
|
+
}
|
318
|
+
resolve([context getLoadedLoraAdapters]);
|
319
|
+
}
|
320
|
+
|
274
321
|
RCT_EXPORT_METHOD(releaseContext:(double)contextId
|
275
322
|
withResolver:(RCTPromiseResolveBlock)resolve
|
276
323
|
withRejecter:(RCTPromiseRejectBlock)reject)
|
package/ios/RNLlamaContext.h
CHANGED
@@ -33,7 +33,9 @@
|
|
33
33
|
- (NSDictionary *)loadSession:(NSString *)path;
|
34
34
|
- (int)saveSession:(NSString *)path size:(int)size;
|
35
35
|
- (NSString *)bench:(int)pp tg:(int)tg pl:(int)pl nr:(int)nr;
|
36
|
-
|
36
|
+
- (void)applyLoraAdapters:(NSArray *)loraAdapters;
|
37
|
+
- (void)removeLoraAdapters;
|
38
|
+
- (NSArray *)getLoadedLoraAdapters;
|
37
39
|
- (void)invalidate;
|
38
40
|
|
39
41
|
@end
|
package/ios/RNLlamaContext.mm
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
if (skip && [skip containsObject:[NSString stringWithUTF8String:key]]) {
|
33
33
|
continue;
|
34
34
|
}
|
35
|
-
const std::string value =
|
35
|
+
const std::string value = lm_gguf_kv_to_str(ctx, i);
|
36
36
|
info[[NSString stringWithUTF8String:key]] = [NSString stringWithUTF8String:value.c_str()];
|
37
37
|
}
|
38
38
|
}
|
@@ -94,6 +94,7 @@
|
|
94
94
|
#endif
|
95
95
|
}
|
96
96
|
if (params[@"n_batch"]) defaultParams.n_batch = [params[@"n_batch"] intValue];
|
97
|
+
if (params[@"n_ubatch"]) defaultParams.n_ubatch = [params[@"n_ubatch"] intValue];
|
97
98
|
if (params[@"use_mmap"]) defaultParams.use_mmap = [params[@"use_mmap"] boolValue];
|
98
99
|
|
99
100
|
if (params[@"pooling_type"] && [params[@"pooling_type"] isKindOfClass:[NSNumber class]]) {
|
@@ -110,19 +111,13 @@
|
|
110
111
|
}
|
111
112
|
}
|
112
113
|
|
113
|
-
if (params[@"lora"]) {
|
114
|
-
float lora_scaled = 1.0f;
|
115
|
-
if (params[@"lora_scaled"]) lora_scaled = [params[@"lora_scaled"] floatValue];
|
116
|
-
defaultParams.lora_adapters.push_back({[params[@"lora"] UTF8String], lora_scaled});
|
117
|
-
}
|
118
|
-
|
119
114
|
if (params[@"rope_freq_base"]) defaultParams.rope_freq_base = [params[@"rope_freq_base"] floatValue];
|
120
115
|
if (params[@"rope_freq_scale"]) defaultParams.rope_freq_scale = [params[@"rope_freq_scale"] floatValue];
|
121
116
|
|
122
117
|
if (params[@"flash_attn"] && [params[@"flash_attn"] boolValue]) defaultParams.flash_attn = true;
|
123
118
|
|
124
|
-
if (params[@"cache_type_k"]) defaultParams.cache_type_k = [params[@"cache_type_k"] UTF8String];
|
125
|
-
if (params[@"cache_type_v"]) defaultParams.cache_type_v = [params[@"cache_type_v"] UTF8String];
|
119
|
+
if (params[@"cache_type_k"]) defaultParams.cache_type_k = rnllama::kv_cache_type_from_str([params[@"cache_type_k"] UTF8String]);
|
120
|
+
if (params[@"cache_type_v"]) defaultParams.cache_type_v = rnllama::kv_cache_type_from_str([params[@"cache_type_v"] UTF8String]);
|
126
121
|
|
127
122
|
int nThreads = params[@"n_threads"] ? [params[@"n_threads"] intValue] : 0;
|
128
123
|
const int maxThreads = (int) [[NSProcessInfo processInfo] processorCount];
|
@@ -130,6 +125,7 @@
|
|
130
125
|
const int defaultNThreads = nThreads == 4 ? 2 : MIN(4, maxThreads);
|
131
126
|
defaultParams.cpuparams.n_threads = nThreads > 0 ? nThreads : defaultNThreads;
|
132
127
|
|
128
|
+
|
133
129
|
RNLlamaContext *context = [[RNLlamaContext alloc] init];
|
134
130
|
context->llama = new rnllama::llama_rn_context();
|
135
131
|
context->llama->is_load_interrupted = false;
|
@@ -159,6 +155,34 @@
|
|
159
155
|
@throw [NSException exceptionWithName:@"LlamaException" reason:@"Embedding is not supported in encoder-decoder models" userInfo:nil];
|
160
156
|
}
|
161
157
|
|
158
|
+
std::vector<common_lora_adapter_info> lora;
|
159
|
+
if (params[@"lora"]) {
|
160
|
+
common_lora_adapter_info la;
|
161
|
+
la.path = [params[@"lora"] UTF8String];
|
162
|
+
la.scale = 1.0f;
|
163
|
+
if (params[@"lora_scaled"]) la.scale = [params[@"lora_scaled"] floatValue];
|
164
|
+
lora.push_back(la);
|
165
|
+
}
|
166
|
+
if (params[@"lora_list"] && [params[@"lora_list"] isKindOfClass:[NSArray class]]) {
|
167
|
+
NSArray *lora_list = params[@"lora_list"];
|
168
|
+
for (NSDictionary *lora_adapter in lora_list) {
|
169
|
+
NSString *path = lora_adapter[@"path"];
|
170
|
+
if (!path) continue;
|
171
|
+
float scale = [lora_adapter[@"scaled"] floatValue];
|
172
|
+
common_lora_adapter_info la;
|
173
|
+
la.path = [path UTF8String];
|
174
|
+
la.scale = scale;
|
175
|
+
lora.push_back(la);
|
176
|
+
}
|
177
|
+
}
|
178
|
+
if (lora.size() > 0) {
|
179
|
+
int result = context->llama->applyLoraAdapters(lora);
|
180
|
+
if (result != 0) {
|
181
|
+
delete context->llama;
|
182
|
+
@throw [NSException exceptionWithName:@"LlamaException" reason:@"Failed to apply lora adapters" userInfo:nil];
|
183
|
+
}
|
184
|
+
}
|
185
|
+
|
162
186
|
context->is_metal_enabled = isMetalEnabled;
|
163
187
|
context->reason_no_metal = reasonNoMetal;
|
164
188
|
|
@@ -257,7 +281,7 @@
|
|
257
281
|
NSString *prompt = [params objectForKey:@"prompt"];
|
258
282
|
|
259
283
|
llama->params.prompt = [prompt UTF8String];
|
260
|
-
llama->params.
|
284
|
+
llama->params.sampling.seed = params[@"seed"] ? [params[@"seed"] intValue] : -1;
|
261
285
|
|
262
286
|
if (params[@"n_threads"]) {
|
263
287
|
int nThreads = params[@"n_threads"] ? [params[@"n_threads"] intValue] : llama->params.cpuparams.n_threads;
|
@@ -267,9 +291,9 @@
|
|
267
291
|
llama->params.cpuparams.n_threads = nThreads > 0 ? nThreads : defaultNThreads;
|
268
292
|
}
|
269
293
|
if (params[@"n_predict"]) llama->params.n_predict = [params[@"n_predict"] intValue];
|
270
|
-
if (params[@"ignore_eos"]) llama->params.
|
294
|
+
if (params[@"ignore_eos"]) llama->params.sampling.ignore_eos = [params[@"ignore_eos"] boolValue];
|
271
295
|
|
272
|
-
auto & sparams = llama->params.
|
296
|
+
auto & sparams = llama->params.sampling;
|
273
297
|
|
274
298
|
if (params[@"temperature"]) sparams.temp = [params[@"temperature"] doubleValue];
|
275
299
|
|
@@ -283,7 +307,6 @@
|
|
283
307
|
if (params[@"mirostat"]) sparams.mirostat = [params[@"mirostat"] intValue];
|
284
308
|
if (params[@"mirostat_tau"]) sparams.mirostat_tau = [params[@"mirostat_tau"] doubleValue];
|
285
309
|
if (params[@"mirostat_eta"]) sparams.mirostat_eta = [params[@"mirostat_eta"] doubleValue];
|
286
|
-
if (params[@"penalize_nl"]) sparams.penalize_nl = [params[@"penalize_nl"] boolValue];
|
287
310
|
|
288
311
|
if (params[@"top_k"]) sparams.top_k = [params[@"top_k"] intValue];
|
289
312
|
if (params[@"top_p"]) sparams.top_p = [params[@"top_p"] doubleValue];
|
@@ -387,7 +410,7 @@
|
|
387
410
|
NSMutableDictionary *tokenResult = [[NSMutableDictionary alloc] init];
|
388
411
|
tokenResult[@"token"] = [NSString stringWithUTF8String:to_send.c_str()];
|
389
412
|
|
390
|
-
if (llama->params.
|
413
|
+
if (llama->params.sampling.n_probs > 0) {
|
391
414
|
const std::vector<llama_token> to_send_toks = common_tokenize(llama->ctx, to_send, false);
|
392
415
|
size_t probs_pos = std::min(sent_token_probs_index, llama->generated_token_probs.size());
|
393
416
|
size_t probs_stop_pos = std::min(sent_token_probs_index + to_send_toks.size(), llama->generated_token_probs.size());
|
@@ -538,6 +561,40 @@
|
|
538
561
|
return [NSString stringWithUTF8String:llama->bench(pp, tg, pl, nr).c_str()];
|
539
562
|
}
|
540
563
|
|
564
|
+
- (void)applyLoraAdapters:(NSArray *)loraAdapters {
|
565
|
+
std::vector<common_lora_adapter_info> lora_adapters;
|
566
|
+
for (NSDictionary *loraAdapter in loraAdapters) {
|
567
|
+
common_lora_adapter_info la;
|
568
|
+
la.path = [loraAdapter[@"path"] UTF8String];
|
569
|
+
la.scale = [loraAdapter[@"scaled"] doubleValue];
|
570
|
+
la.ptr = llama_lora_adapter_init(llama->model, la.path.c_str());
|
571
|
+
if (la.ptr == nullptr) {
|
572
|
+
@throw [NSException exceptionWithName:@"LlamaException" reason:@"Failed to apply lora adapter" userInfo:nil];
|
573
|
+
}
|
574
|
+
lora_adapters.push_back(la);
|
575
|
+
}
|
576
|
+
int result = llama->applyLoraAdapters(lora_adapters);
|
577
|
+
if (result != 0) {
|
578
|
+
@throw [NSException exceptionWithName:@"LlamaException" reason:@"Failed to apply lora adapters" userInfo:nil];
|
579
|
+
}
|
580
|
+
}
|
581
|
+
|
582
|
+
- (void)removeLoraAdapters {
|
583
|
+
llama->removeLoraAdapters();
|
584
|
+
}
|
585
|
+
|
586
|
+
- (NSArray *)getLoadedLoraAdapters {
|
587
|
+
std::vector<common_lora_adapter_info> loaded_lora_adapters = llama->getLoadedLoraAdapters();
|
588
|
+
NSMutableArray *result = [[NSMutableArray alloc] init];
|
589
|
+
for (common_lora_adapter_info &la : loaded_lora_adapters) {
|
590
|
+
[result addObject:@{
|
591
|
+
@"path": [NSString stringWithUTF8String:la.path.c_str()],
|
592
|
+
@"scale": @(la.scale)
|
593
|
+
}];
|
594
|
+
}
|
595
|
+
return result;
|
596
|
+
}
|
597
|
+
|
541
598
|
- (void)invalidate {
|
542
599
|
delete llama;
|
543
600
|
// llama_backend_free();
|
package/jest/mock.js
CHANGED
@@ -1,11 +1,23 @@
|
|
1
1
|
const { NativeModules, DeviceEventEmitter } = require('react-native')
|
2
2
|
|
3
3
|
if (!NativeModules.RNLlama) {
|
4
|
+
const demoEmbedding = new Array(768).fill(0.01)
|
5
|
+
|
4
6
|
NativeModules.RNLlama = {
|
5
|
-
|
7
|
+
setContextLimit: jest.fn(),
|
8
|
+
|
9
|
+
modelInfo: jest.fn(async () => ({})),
|
10
|
+
|
11
|
+
initContext: jest.fn((_, params) =>
|
6
12
|
Promise.resolve({
|
7
13
|
gpu: false,
|
8
14
|
reasonNoGPU: 'Test',
|
15
|
+
model: {
|
16
|
+
metadata: {
|
17
|
+
'general.architecture': 'llama',
|
18
|
+
'llama.embedding_length': params.embedding ? 768 : undefined,
|
19
|
+
},
|
20
|
+
},
|
9
21
|
}),
|
10
22
|
),
|
11
23
|
|
@@ -144,9 +156,9 @@ if (!NativeModules.RNLlama) {
|
|
144
156
|
|
145
157
|
stopCompletion: jest.fn(),
|
146
158
|
|
147
|
-
tokenize: jest.fn(async () =>
|
159
|
+
tokenize: jest.fn(async (_, content) => ({ tokens: content.split('') })),
|
148
160
|
detokenize: jest.fn(async () => ''),
|
149
|
-
embedding: jest.fn(async () =>
|
161
|
+
embedding: jest.fn(async () => ({ embedding: demoEmbedding })),
|
150
162
|
|
151
163
|
loadSession: jest.fn(async () => ({
|
152
164
|
tokens_loaded: 1,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","get","exports","default"],"sourceRoot":"..\\..\\src","sources":["NativeRNLlama.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAkD,IAAAC,QAAA,
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","get","exports","default"],"sourceRoot":"..\\..\\src","sources":["NativeRNLlama.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAkD,IAAAC,QAAA,GAkTnCC,gCAAmB,CAACC,GAAG,CAAO,SAAS,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
|
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 = exports.
|
6
|
+
exports.LlamaContext = exports.CACHE_TYPE = void 0;
|
7
7
|
Object.defineProperty(exports, "SchemaGrammarConverter", {
|
8
8
|
enumerable: true,
|
9
9
|
get: function () {
|
@@ -36,43 +36,18 @@ if (_reactNative.Platform.OS === 'ios') {
|
|
36
36
|
if (_reactNative.Platform.OS === 'android') {
|
37
37
|
EventEmitter = _reactNative.DeviceEventEmitter;
|
38
38
|
}
|
39
|
-
let
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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;
|
39
|
+
let CACHE_TYPE = /*#__PURE__*/function (CACHE_TYPE) {
|
40
|
+
CACHE_TYPE["F16"] = "f16";
|
41
|
+
CACHE_TYPE["F32"] = "f32";
|
42
|
+
CACHE_TYPE["Q8_0"] = "q8_0";
|
43
|
+
CACHE_TYPE["Q4_0"] = "q4_0";
|
44
|
+
CACHE_TYPE["Q4_1"] = "q4_1";
|
45
|
+
CACHE_TYPE["IQ4_NL"] = "iq4_nl";
|
46
|
+
CACHE_TYPE["Q5_0"] = "q5_0";
|
47
|
+
CACHE_TYPE["Q5_1"] = "q5_1";
|
48
|
+
return CACHE_TYPE;
|
73
49
|
}({});
|
74
|
-
exports.
|
75
|
-
;
|
50
|
+
exports.CACHE_TYPE = CACHE_TYPE;
|
76
51
|
class LlamaContext {
|
77
52
|
gpu = false;
|
78
53
|
reasonNoGPU = '';
|
@@ -172,6 +147,20 @@ class LlamaContext {
|
|
172
147
|
tgStd
|
173
148
|
};
|
174
149
|
}
|
150
|
+
async applyLoraAdapters(loraList) {
|
151
|
+
let loraAdapters = [];
|
152
|
+
if (loraList) loraAdapters = loraList.map(l => ({
|
153
|
+
path: l.path.replace(/file:\/\//, ''),
|
154
|
+
scaled: l.scaled
|
155
|
+
}));
|
156
|
+
return _NativeRNLlama.default.applyLoraAdapters(this.id, loraAdapters);
|
157
|
+
}
|
158
|
+
async removeLoraAdapters() {
|
159
|
+
return _NativeRNLlama.default.removeLoraAdapters(this.id);
|
160
|
+
}
|
161
|
+
async getLoadedLoraAdapters() {
|
162
|
+
return _NativeRNLlama.default.getLoadedLoraAdapters(this.id);
|
163
|
+
}
|
175
164
|
async release() {
|
176
165
|
return _NativeRNLlama.default.releaseContext(this.id);
|
177
166
|
}
|
@@ -208,12 +197,18 @@ async function initLlama(_ref2, onProgress) {
|
|
208
197
|
is_model_asset: isModelAsset,
|
209
198
|
pooling_type: poolingType,
|
210
199
|
lora,
|
200
|
+
lora_list: loraList,
|
211
201
|
...rest
|
212
202
|
} = _ref2;
|
213
203
|
let path = model;
|
214
204
|
if (path.startsWith('file://')) path = path.slice(7);
|
215
205
|
let loraPath = lora;
|
216
206
|
if ((_loraPath = loraPath) !== null && _loraPath !== void 0 && _loraPath.startsWith('file://')) loraPath = loraPath.slice(7);
|
207
|
+
let loraAdapters = [];
|
208
|
+
if (loraList) loraAdapters = loraList.map(l => ({
|
209
|
+
path: l.path.replace(/file:\/\//, ''),
|
210
|
+
scaled: l.scaled
|
211
|
+
}));
|
217
212
|
const contextId = contextIdCounter + contextIdRandom();
|
218
213
|
contextIdCounter += 1;
|
219
214
|
let removeProgressListener = null;
|
@@ -234,6 +229,7 @@ async function initLlama(_ref2, onProgress) {
|
|
234
229
|
use_progress_callback: !!onProgress,
|
235
230
|
pooling_type: poolType,
|
236
231
|
lora: loraPath,
|
232
|
+
lora_list: loraAdapters,
|
237
233
|
...rest
|
238
234
|
}).catch(err => {
|
239
235
|
var _removeProgressListen;
|
@@ -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","
|
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","CACHE_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","applyLoraAdapters","loraList","loraAdapters","map","l","replace","scaled","removeLoraAdapters","getLoadedLoraAdapters","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","lora_list","rest","loraPath","removeProgressListener","progress","poolType","modelDetails","initContext","use_progress_callback","_removeProgressListen","releaseAllLlama","releaseAllContexts"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"..\\..\\src","sources":["NativeRNLlama.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"..\\..\\src","sources":["NativeRNLlama.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAkTlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,SAAS,CAAC"}
|
package/lib/module/index.js
CHANGED
@@ -13,42 +13,17 @@ if (Platform.OS === 'ios') {
|
|
13
13
|
if (Platform.OS === 'android') {
|
14
14
|
EventEmitter = DeviceEventEmitter;
|
15
15
|
}
|
16
|
-
export let
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
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;
|
16
|
+
export let CACHE_TYPE = /*#__PURE__*/function (CACHE_TYPE) {
|
17
|
+
CACHE_TYPE["F16"] = "f16";
|
18
|
+
CACHE_TYPE["F32"] = "f32";
|
19
|
+
CACHE_TYPE["Q8_0"] = "q8_0";
|
20
|
+
CACHE_TYPE["Q4_0"] = "q4_0";
|
21
|
+
CACHE_TYPE["Q4_1"] = "q4_1";
|
22
|
+
CACHE_TYPE["IQ4_NL"] = "iq4_nl";
|
23
|
+
CACHE_TYPE["Q5_0"] = "q5_0";
|
24
|
+
CACHE_TYPE["Q5_1"] = "q5_1";
|
25
|
+
return CACHE_TYPE;
|
50
26
|
}({});
|
51
|
-
;
|
52
27
|
export class LlamaContext {
|
53
28
|
gpu = false;
|
54
29
|
reasonNoGPU = '';
|
@@ -148,6 +123,20 @@ export class LlamaContext {
|
|
148
123
|
tgStd
|
149
124
|
};
|
150
125
|
}
|
126
|
+
async applyLoraAdapters(loraList) {
|
127
|
+
let loraAdapters = [];
|
128
|
+
if (loraList) loraAdapters = loraList.map(l => ({
|
129
|
+
path: l.path.replace(/file:\/\//, ''),
|
130
|
+
scaled: l.scaled
|
131
|
+
}));
|
132
|
+
return RNLlama.applyLoraAdapters(this.id, loraAdapters);
|
133
|
+
}
|
134
|
+
async removeLoraAdapters() {
|
135
|
+
return RNLlama.removeLoraAdapters(this.id);
|
136
|
+
}
|
137
|
+
async getLoadedLoraAdapters() {
|
138
|
+
return RNLlama.getLoadedLoraAdapters(this.id);
|
139
|
+
}
|
151
140
|
async release() {
|
152
141
|
return RNLlama.releaseContext(this.id);
|
153
142
|
}
|
@@ -183,12 +172,18 @@ export async function initLlama(_ref2, onProgress) {
|
|
183
172
|
is_model_asset: isModelAsset,
|
184
173
|
pooling_type: poolingType,
|
185
174
|
lora,
|
175
|
+
lora_list: loraList,
|
186
176
|
...rest
|
187
177
|
} = _ref2;
|
188
178
|
let path = model;
|
189
179
|
if (path.startsWith('file://')) path = path.slice(7);
|
190
180
|
let loraPath = lora;
|
191
181
|
if ((_loraPath = loraPath) !== null && _loraPath !== void 0 && _loraPath.startsWith('file://')) loraPath = loraPath.slice(7);
|
182
|
+
let loraAdapters = [];
|
183
|
+
if (loraList) loraAdapters = loraList.map(l => ({
|
184
|
+
path: l.path.replace(/file:\/\//, ''),
|
185
|
+
scaled: l.scaled
|
186
|
+
}));
|
192
187
|
const contextId = contextIdCounter + contextIdRandom();
|
193
188
|
contextIdCounter += 1;
|
194
189
|
let removeProgressListener = null;
|
@@ -209,6 +204,7 @@ export async function initLlama(_ref2, onProgress) {
|
|
209
204
|
use_progress_callback: !!onProgress,
|
210
205
|
pooling_type: poolType,
|
211
206
|
lora: loraPath,
|
207
|
+
lora_list: loraAdapters,
|
212
208
|
...rest
|
213
209
|
}).catch(err => {
|
214
210
|
var _removeProgressListen;
|
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","
|
1
|
+
{"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","RNLlama","SchemaGrammarConverter","convertJsonSchemaToGrammar","formatChat","EVENT_ON_INIT_CONTEXT_PROGRESS","EVENT_ON_TOKEN","EventEmitter","OS","CACHE_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","applyLoraAdapters","loraList","loraAdapters","map","l","replace","scaled","removeLoraAdapters","getLoadedLoraAdapters","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","lora_list","rest","loraPath","removeProgressListener","progress","poolType","modelDetails","initContext","use_progress_callback","_removeProgressListen","releaseAllLlama","releaseAllContexts"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"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"}
|