cui-llama.rn 0.2.0 → 1.0.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/android/src/main/java/com/rnllama/LlamaContext.java +3 -0
- package/android/src/main/java/com/rnllama/RNLlama.java +11 -1
- package/android/src/main/jni.cpp +6 -0
- package/android/src/newarch/java/com/rnllama/RNLlamaModule.java +8 -2
- package/android/src/oldarch/java/com/rnllama/RNLlamaModule.java +9 -3
- package/cpp/common.cpp +3238 -3237
- package/cpp/common.h +468 -467
- package/cpp/ggml.c +22034 -22034
- package/cpp/llama.cpp +21789 -21789
- package/cpp/llama.h +1201 -1201
- package/cpp/rn-llama.hpp +7 -0
- package/lib/commonjs/NativeRNLlama.js.map +1 -1
- package/lib/commonjs/index.js +8 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeRNLlama.js.map +1 -1
- package/lib/module/index.js +8 -3
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/NativeRNLlama.d.ts +3 -1
- package/lib/typescript/NativeRNLlama.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +3 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeRNLlama.ts +36 -18
- package/src/index.ts +40 -32
package/cpp/rn-llama.hpp
CHANGED
@@ -358,6 +358,13 @@ struct llama_rn_context
|
|
358
358
|
return result;
|
359
359
|
}
|
360
360
|
n_past += n_eval;
|
361
|
+
|
362
|
+
if(is_interrupted) {
|
363
|
+
LOG("Decoding Interrupted");
|
364
|
+
embd.resize(n_past);
|
365
|
+
has_next_token = false;
|
366
|
+
return result;
|
367
|
+
}
|
361
368
|
}
|
362
369
|
|
363
370
|
if (params.n_predict == 0)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","TurboModuleRegistry","get","exports","default"],"sourceRoot":"..\\..\\src","sources":["NativeRNLlama.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;
|
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,GAoJnCC,gCAAmB,CAACC,GAAG,CAAO,SAAS,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAJ,QAAA"}
|
package/lib/commonjs/index.js
CHANGED
@@ -53,7 +53,9 @@ class LlamaContext {
|
|
53
53
|
* Load cached prompt & completion state from a file.
|
54
54
|
*/
|
55
55
|
async loadSession(filepath) {
|
56
|
-
|
56
|
+
let path = filepath;
|
57
|
+
if (filepath.startsWith(`file://`)) path = path.slice(7);
|
58
|
+
return _NativeRNLlama.default.loadSession(this.id, path);
|
57
59
|
}
|
58
60
|
|
59
61
|
/**
|
@@ -90,8 +92,11 @@ class LlamaContext {
|
|
90
92
|
stopCompletion() {
|
91
93
|
return _NativeRNLlama.default.stopCompletion(this.id);
|
92
94
|
}
|
93
|
-
|
94
|
-
return _NativeRNLlama.default.
|
95
|
+
tokenizeAsync(text) {
|
96
|
+
return _NativeRNLlama.default.tokenizeAsync(this.id, text);
|
97
|
+
}
|
98
|
+
tokenizeSync(text) {
|
99
|
+
return _NativeRNLlama.default.tokenizeSync(this.id, text);
|
95
100
|
}
|
96
101
|
detokenize(tokens) {
|
97
102
|
return _NativeRNLlama.default.detokenize(this.id, tokens);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeRNLlama","_interopRequireDefault","_grammar","obj","__esModule","default","EVENT_ON_TOKEN","EventEmitter","Platform","OS","NativeEventEmitter","RNLlama","DeviceEventEmitter","LlamaContext","gpu","reasonNoGPU","model","constructor","_ref","contextId","id","loadSession","filepath","saveSession","options","tokenSize","completion","params","callback","tokenListener","addListener","evt","tokenResult","promise","emit_partial_completion","then","completionResult","_tokenListener","remove","catch","err","_tokenListener2","stopCompletion","
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeRNLlama","_interopRequireDefault","_grammar","obj","__esModule","default","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","completion","params","callback","tokenListener","addListener","evt","tokenResult","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","exports","setContextLimit","limit","initLlama","_ref2","is_model_asset","isModelAsset","rest","modelDetails","initContext","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;AAoJlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,SAAS,CAAC"}
|
package/lib/module/index.js
CHANGED
@@ -32,7 +32,9 @@ export class LlamaContext {
|
|
32
32
|
* Load cached prompt & completion state from a file.
|
33
33
|
*/
|
34
34
|
async loadSession(filepath) {
|
35
|
-
|
35
|
+
let path = filepath;
|
36
|
+
if (filepath.startsWith(`file://`)) path = path.slice(7);
|
37
|
+
return RNLlama.loadSession(this.id, path);
|
36
38
|
}
|
37
39
|
|
38
40
|
/**
|
@@ -69,8 +71,11 @@ export class LlamaContext {
|
|
69
71
|
stopCompletion() {
|
70
72
|
return RNLlama.stopCompletion(this.id);
|
71
73
|
}
|
72
|
-
|
73
|
-
return RNLlama.
|
74
|
+
tokenizeAsync(text) {
|
75
|
+
return RNLlama.tokenizeAsync(this.id, text);
|
76
|
+
}
|
77
|
+
tokenizeSync(text) {
|
78
|
+
return RNLlama.tokenizeSync(this.id, text);
|
74
79
|
}
|
75
80
|
detokenize(tokens) {
|
76
81
|
return RNLlama.detokenize(this.id, tokens);
|
package/lib/module/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","RNLlama","SchemaGrammarConverter","convertJsonSchemaToGrammar","EVENT_ON_TOKEN","EventEmitter","OS","LlamaContext","gpu","reasonNoGPU","model","constructor","_ref","contextId","id","loadSession","filepath","saveSession","options","tokenSize","completion","params","callback","tokenListener","addListener","evt","tokenResult","promise","emit_partial_completion","then","completionResult","_tokenListener","remove","catch","err","_tokenListener2","stopCompletion","
|
1
|
+
{"version":3,"names":["NativeEventEmitter","DeviceEventEmitter","Platform","RNLlama","SchemaGrammarConverter","convertJsonSchemaToGrammar","EVENT_ON_TOKEN","EventEmitter","OS","LlamaContext","gpu","reasonNoGPU","model","constructor","_ref","contextId","id","loadSession","filepath","path","startsWith","slice","saveSession","options","tokenSize","completion","params","callback","tokenListener","addListener","evt","tokenResult","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","setContextLimit","limit","initLlama","_ref2","is_model_asset","isModelAsset","rest","modelDetails","initContext","releaseAllLlama","releaseAllContexts"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"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"}
|
@@ -9,6 +9,7 @@ export type NativeContextParams = {
|
|
9
9
|
n_gpu_layers?: number;
|
10
10
|
use_mlock?: boolean;
|
11
11
|
use_mmap?: boolean;
|
12
|
+
vocab_only?: boolean;
|
12
13
|
lora?: string;
|
13
14
|
lora_scaled?: number;
|
14
15
|
lora_base?: string;
|
@@ -95,7 +96,8 @@ export interface Spec extends TurboModule {
|
|
95
96
|
saveSession(contextId: number, filepath: string, size: number): Promise<number>;
|
96
97
|
completion(contextId: number, params: NativeCompletionParams): Promise<NativeCompletionResult>;
|
97
98
|
stopCompletion(contextId: number): Promise<void>;
|
98
|
-
|
99
|
+
tokenizeAsync(contextId: number, text: string): Promise<NativeTokenizeResult>;
|
100
|
+
tokenizeSync(contextId: number, text: string): NativeTokenizeResult;
|
99
101
|
detokenize(contextId: number, tokens: number[]): Promise<string>;
|
100
102
|
embedding(contextId: number, text: string): Promise<NativeEmbeddingResult>;
|
101
103
|
bench(contextId: number, pp: number, tg: number, pl: number, nr: number): Promise<string>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NativeRNLlama.d.ts","sourceRoot":"","sources":["../../src/NativeRNLlama.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,
|
1
|
+
{"version":3,"file":"NativeRNLlama.d.ts","sourceRoot":"","sources":["../../src/NativeRNLlama.ts"],"names":[],"mappings":"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"}
|
@@ -21,7 +21,7 @@ export declare class LlamaContext {
|
|
21
21
|
gpu: boolean;
|
22
22
|
reasonNoGPU: string;
|
23
23
|
model: Object;
|
24
|
-
constructor({ contextId, gpu, reasonNoGPU, model
|
24
|
+
constructor({ contextId, gpu, reasonNoGPU, model }: NativeLlamaContext);
|
25
25
|
/**
|
26
26
|
* Load cached prompt & completion state from a file.
|
27
27
|
*/
|
@@ -34,7 +34,8 @@ export declare class LlamaContext {
|
|
34
34
|
}): Promise<number>;
|
35
35
|
completion(params: CompletionParams, callback?: (data: TokenData) => void): Promise<NativeCompletionResult>;
|
36
36
|
stopCompletion(): Promise<void>;
|
37
|
-
|
37
|
+
tokenizeAsync(text: string): Promise<NativeTokenizeResult>;
|
38
|
+
tokenizeSync(text: string): NativeTokenizeResult;
|
38
39
|
detokenize(tokens: number[]): Promise<string>;
|
39
40
|
embedding(text: string): Promise<NativeEmbeddingResult>;
|
40
41
|
bench(pp: number, tg: number, pl: number, nr: number): Promise<BenchResult>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAE9E,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,CAAA;AAa7D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,wBAAwB,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAA;CAC5D,CAAA;AAOD,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG,IAAI,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAE9E,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,CAAA;AAa7D,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,wBAAwB,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAA;CAC5D,CAAA;AAOD,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,sBAAsB,EACtB,yBAAyB,CAC1B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,qBAAa,YAAY;IACvB,EAAE,EAAE,MAAM,CAAA;IAEV,GAAG,EAAE,OAAO,CAAQ;IAEpB,WAAW,EAAE,MAAM,CAAK;IAExB,KAAK,EAAE,MAAM,CAAK;gBAEN,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,kBAAkB;IAOtE;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAMrE;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,MAAM,CAAC;IAIZ,UAAU,CACd,MAAM,EAAE,gBAAgB,EACxB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GACnC,OAAO,CAAC,sBAAsB,CAAC;IAyBlC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI1D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB;IAIhD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIjD,KAAK,CACT,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,WAAW,CAAC;IAejB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE;AAED,wBAAsB,SAAS,CAAC,EAC9B,KAAK,EACL,cAAc,EAAE,YAAY,EAC5B,GAAG,IAAI,EACR,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAcvC;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAErD"}
|
package/package.json
CHANGED
package/src/NativeRNLlama.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import type { TurboModule } from 'react-native'
|
2
|
-
import { TurboModuleRegistry } from 'react-native'
|
1
|
+
import type { TurboModule } from 'react-native'
|
2
|
+
import { TurboModuleRegistry } from 'react-native'
|
3
3
|
|
4
4
|
export type NativeContextParams = {
|
5
5
|
model: string
|
@@ -15,6 +15,7 @@ export type NativeContextParams = {
|
|
15
15
|
|
16
16
|
use_mlock?: boolean
|
17
17
|
use_mmap?: boolean
|
18
|
+
vocab_only?: boolean
|
18
19
|
|
19
20
|
lora?: string // lora_adaptor
|
20
21
|
lora_scaled?: number
|
@@ -112,21 +113,38 @@ export type NativeSessionLoadResult = {
|
|
112
113
|
}
|
113
114
|
|
114
115
|
export interface Spec extends TurboModule {
|
115
|
-
setContextLimit(limit: number): Promise<void
|
116
|
-
initContext(params: NativeContextParams): Promise<NativeLlamaContext
|
117
|
-
|
118
|
-
loadSession(
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
116
|
+
setContextLimit(limit: number): Promise<void>
|
117
|
+
initContext(params: NativeContextParams): Promise<NativeLlamaContext>
|
118
|
+
|
119
|
+
loadSession(
|
120
|
+
contextId: number,
|
121
|
+
filepath: string,
|
122
|
+
): Promise<NativeSessionLoadResult>
|
123
|
+
saveSession(
|
124
|
+
contextId: number,
|
125
|
+
filepath: string,
|
126
|
+
size: number,
|
127
|
+
): Promise<number>
|
128
|
+
completion(
|
129
|
+
contextId: number,
|
130
|
+
params: NativeCompletionParams,
|
131
|
+
): Promise<NativeCompletionResult>
|
132
|
+
stopCompletion(contextId: number): Promise<void>
|
133
|
+
tokenizeAsync(contextId: number, text: string): Promise<NativeTokenizeResult>
|
134
|
+
tokenizeSync(contextId: number, text: string): NativeTokenizeResult
|
135
|
+
detokenize(contextId: number, tokens: number[]): Promise<string>
|
136
|
+
embedding(contextId: number, text: string): Promise<NativeEmbeddingResult>
|
137
|
+
bench(
|
138
|
+
contextId: number,
|
139
|
+
pp: number,
|
140
|
+
tg: number,
|
141
|
+
pl: number,
|
142
|
+
nr: number,
|
143
|
+
): Promise<string>
|
144
|
+
|
145
|
+
releaseContext(contextId: number): Promise<void>
|
146
|
+
|
147
|
+
releaseAllContexts(): Promise<void>
|
130
148
|
}
|
131
149
|
|
132
|
-
export default TurboModuleRegistry.get<Spec>('RNLlama') as Spec
|
150
|
+
export default TurboModuleRegistry.get<Spec>('RNLlama') as Spec
|
package/src/index.ts
CHANGED
@@ -38,7 +38,10 @@ type TokenNativeEvent = {
|
|
38
38
|
|
39
39
|
export type ContextParams = NativeContextParams
|
40
40
|
|
41
|
-
export type CompletionParams = Omit<
|
41
|
+
export type CompletionParams = Omit<
|
42
|
+
NativeCompletionParams,
|
43
|
+
'emit_partial_completion'
|
44
|
+
>
|
42
45
|
|
43
46
|
export type BenchResult = {
|
44
47
|
modelDesc: string
|
@@ -59,12 +62,7 @@ export class LlamaContext {
|
|
59
62
|
|
60
63
|
model: Object = {}
|
61
64
|
|
62
|
-
constructor({
|
63
|
-
contextId,
|
64
|
-
gpu,
|
65
|
-
reasonNoGPU,
|
66
|
-
model,
|
67
|
-
}: NativeLlamaContext) {
|
65
|
+
constructor({ contextId, gpu, reasonNoGPU, model }: NativeLlamaContext) {
|
68
66
|
this.id = contextId
|
69
67
|
this.gpu = gpu
|
70
68
|
this.reasonNoGPU = reasonNoGPU
|
@@ -75,13 +73,18 @@ export class LlamaContext {
|
|
75
73
|
* Load cached prompt & completion state from a file.
|
76
74
|
*/
|
77
75
|
async loadSession(filepath: string): Promise<NativeSessionLoadResult> {
|
78
|
-
|
76
|
+
let path = filepath
|
77
|
+
if (filepath.startsWith(`file://`)) path = path.slice(7)
|
78
|
+
return RNLlama.loadSession(this.id, path)
|
79
79
|
}
|
80
80
|
|
81
81
|
/**
|
82
82
|
* Save current cached prompt & completion state to a file.
|
83
83
|
*/
|
84
|
-
async saveSession(
|
84
|
+
async saveSession(
|
85
|
+
filepath: string,
|
86
|
+
options?: { tokenSize: number },
|
87
|
+
): Promise<number> {
|
85
88
|
return RNLlama.saveSession(this.id, filepath, options?.tokenSize || -1)
|
86
89
|
}
|
87
90
|
|
@@ -89,14 +92,13 @@ export class LlamaContext {
|
|
89
92
|
params: CompletionParams,
|
90
93
|
callback?: (data: TokenData) => void,
|
91
94
|
): Promise<NativeCompletionResult> {
|
92
|
-
let tokenListener: any =
|
93
|
-
|
94
|
-
(evt: TokenNativeEvent) => {
|
95
|
+
let tokenListener: any =
|
96
|
+
callback &&
|
97
|
+
EventEmitter.addListener(EVENT_ON_TOKEN, (evt: TokenNativeEvent) => {
|
95
98
|
const { contextId, tokenResult } = evt
|
96
99
|
if (contextId !== this.id) return
|
97
100
|
callback(tokenResult)
|
98
|
-
}
|
99
|
-
)
|
101
|
+
})
|
100
102
|
const promise = RNLlama.completion(this.id, {
|
101
103
|
...params,
|
102
104
|
emit_partial_completion: !!callback,
|
@@ -118,8 +120,12 @@ export class LlamaContext {
|
|
118
120
|
return RNLlama.stopCompletion(this.id)
|
119
121
|
}
|
120
122
|
|
121
|
-
|
122
|
-
return RNLlama.
|
123
|
+
tokenizeAsync(text: string): Promise<NativeTokenizeResult> {
|
124
|
+
return RNLlama.tokenizeAsync(this.id, text)
|
125
|
+
}
|
126
|
+
|
127
|
+
tokenizeSync(text: string): NativeTokenizeResult {
|
128
|
+
return RNLlama.tokenizeSync(this.id, text)
|
123
129
|
}
|
124
130
|
|
125
131
|
detokenize(tokens: number[]): Promise<string> {
|
@@ -130,17 +136,15 @@ export class LlamaContext {
|
|
130
136
|
return RNLlama.embedding(this.id, text)
|
131
137
|
}
|
132
138
|
|
133
|
-
async bench(
|
139
|
+
async bench(
|
140
|
+
pp: number,
|
141
|
+
tg: number,
|
142
|
+
pl: number,
|
143
|
+
nr: number,
|
144
|
+
): Promise<BenchResult> {
|
134
145
|
const result = await RNLlama.bench(this.id, pp, tg, pl, nr)
|
135
|
-
const [
|
136
|
-
|
137
|
-
modelSize,
|
138
|
-
modelNParams,
|
139
|
-
ppAvg,
|
140
|
-
ppStd,
|
141
|
-
tgAvg,
|
142
|
-
tgStd,
|
143
|
-
] = JSON.parse(result)
|
146
|
+
const [modelDesc, modelSize, modelNParams, ppAvg, ppStd, tgAvg, tgStd] =
|
147
|
+
JSON.parse(result)
|
144
148
|
return {
|
145
149
|
modelDesc,
|
146
150
|
modelSize,
|
@@ -168,12 +172,16 @@ export async function initLlama({
|
|
168
172
|
}: ContextParams): Promise<LlamaContext> {
|
169
173
|
let path = model
|
170
174
|
if (path.startsWith('file://')) path = path.slice(7)
|
171
|
-
const {
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
175
|
+
const {
|
176
|
+
contextId,
|
177
|
+
gpu,
|
178
|
+
reasonNoGPU,
|
179
|
+
model: modelDetails,
|
180
|
+
} = await RNLlama.initContext({
|
181
|
+
model: path,
|
182
|
+
is_model_asset: !!isModelAsset,
|
183
|
+
...rest,
|
184
|
+
})
|
177
185
|
return new LlamaContext({ contextId, gpu, reasonNoGPU, model: modelDetails })
|
178
186
|
}
|
179
187
|
|