node-llama-cpp 2.8.0 → 3.0.0-beta.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 +1 -1
- package/dist/chatWrappers/generateContextTextFromConversationHistory.d.ts +0 -8
- package/dist/chatWrappers/generateContextTextFromConversationHistory.js +0 -8
- package/dist/chatWrappers/generateContextTextFromConversationHistory.js.map +1 -1
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +13 -0
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +49 -0
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -0
- package/dist/cli/cli.js +1 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/ChatCommand.js +20 -10
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/llamaEvaluator/LlamaBins.d.ts +19 -4
- package/dist/llamaEvaluator/LlamaBins.js +3 -3
- package/dist/llamaEvaluator/LlamaChatSession.d.ts +24 -23
- package/dist/llamaEvaluator/LlamaChatSession.js +90 -36
- package/dist/llamaEvaluator/LlamaChatSession.js.map +1 -1
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.d.ts +112 -0
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.js +640 -0
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +1 -0
- package/dist/llamaEvaluator/LlamaContext/types.d.ts +90 -0
- package/dist/llamaEvaluator/LlamaContext/types.js +2 -0
- package/dist/llamaEvaluator/LlamaContext/types.js.map +1 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.d.ts +5 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js +16 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +1 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.d.ts +5 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js +42 -0
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +1 -0
- package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +2 -0
- package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js +13 -0
- package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +1 -0
- package/dist/llamaEvaluator/LlamaGrammar.d.ts +5 -5
- package/dist/llamaEvaluator/LlamaGrammar.js +7 -7
- package/dist/llamaEvaluator/LlamaGrammarEvaluationState.d.ts +6 -5
- package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js +8 -7
- package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js.map +1 -1
- package/dist/llamaEvaluator/LlamaModel.d.ts +93 -112
- package/dist/llamaEvaluator/LlamaModel.js +294 -59
- package/dist/llamaEvaluator/LlamaModel.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/utils/ReplHistory.js +1 -1
- package/dist/utils/ReplHistory.js.map +1 -1
- package/dist/utils/getBin.d.ts +71 -39
- package/dist/utils/getBin.js.map +1 -1
- package/dist/utils/getReleaseInfo.d.ts +1 -1
- package/dist/utils/getReleaseInfo.js.map +1 -1
- package/dist/utils/parseModelFileName.d.ts +9 -0
- package/dist/utils/parseModelFileName.js +68 -0
- package/dist/utils/parseModelFileName.js.map +1 -0
- package/dist/utils/parseModelTypeDescription.d.ts +6 -0
- package/dist/utils/parseModelTypeDescription.js +9 -0
- package/dist/utils/parseModelTypeDescription.js.map +1 -0
- package/llama/.clang-format +10 -9
- package/llama/addon.cpp +689 -356
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/grammars/README.md +2 -2
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/mac-arm64/ggml-metal.metal +107 -1
- package/llamaBins/mac-arm64/llama-addon.node +0 -0
- package/llamaBins/mac-x64/ggml-metal.metal +107 -1
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64/llama-addon.exp +0 -0
- package/llamaBins/win-x64/llama-addon.lib +0 -0
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/package.json +13 -7
- package/dist/chatWrappers/createChatWrapperByBos.d.ts +0 -2
- package/dist/chatWrappers/createChatWrapperByBos.js +0 -14
- package/dist/chatWrappers/createChatWrapperByBos.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext.d.ts +0 -100
- package/dist/llamaEvaluator/LlamaContext.js +0 -141
- package/dist/llamaEvaluator/LlamaContext.js.map +0 -1
- package/dist/utils/withLock.d.ts +0 -1
- package/dist/utils/withLock.js +0 -19
- package/dist/utils/withLock.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LlamaContext.js","sourceRoot":"","sources":["../../../src/llamaEvaluator/LlamaContext/LlamaContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Token } from "../../types.js";
|
|
2
|
+
import { LlamaModel } from "../LlamaModel.js";
|
|
3
|
+
import { LlamaContextSequence } from "./LlamaContext.js";
|
|
4
|
+
export type LlamaContextOptions = {
|
|
5
|
+
model: LlamaModel;
|
|
6
|
+
/**
|
|
7
|
+
* number of sequences for the context.
|
|
8
|
+
* Each sequence is a different "text generation process" that can run in parallel to other sequences in the same context.
|
|
9
|
+
* Although a single context has multiple sequences, the sequences are separate from each other and do not share data with each other.
|
|
10
|
+
* This is beneficial for performance, as multiple sequences can be evaluated in parallel (on the same batch).
|
|
11
|
+
*/
|
|
12
|
+
sequences?: number;
|
|
13
|
+
/** If null, a random seed will be used */
|
|
14
|
+
seed?: number | null;
|
|
15
|
+
/** text context size */
|
|
16
|
+
contextSize?: number;
|
|
17
|
+
/** prompt processing batch size */
|
|
18
|
+
batchSize?: number;
|
|
19
|
+
/** use fp16 for KV cache */
|
|
20
|
+
f16Kv?: boolean;
|
|
21
|
+
/** the llama_eval() call computes all logits, not just the last one */
|
|
22
|
+
logitsAll?: boolean;
|
|
23
|
+
/** embedding mode only */
|
|
24
|
+
embedding?: boolean;
|
|
25
|
+
/** number of threads to use to evaluate tokens */
|
|
26
|
+
threads?: number;
|
|
27
|
+
/** control the parallel sequences processing behavior */
|
|
28
|
+
batching?: BatchingOptions;
|
|
29
|
+
};
|
|
30
|
+
export type LlamaContextSequenceRepeatPenalty = {
|
|
31
|
+
/** Tokens to lower the predication probability of to be the next predicted token */
|
|
32
|
+
punishTokens: Uint32Array | (() => Uint32Array);
|
|
33
|
+
/**
|
|
34
|
+
* The relative amount to lower the probability of the tokens in `punishTokens` by
|
|
35
|
+
* Defaults to `1.1`.
|
|
36
|
+
* Set to `1` to disable.
|
|
37
|
+
*/
|
|
38
|
+
penalty?: number;
|
|
39
|
+
/**
|
|
40
|
+
* For n time a token is in the `punishTokens` array, lower its probability by `n * frequencyPenalty`
|
|
41
|
+
* Disabled by default (`0`).
|
|
42
|
+
* Set to a value between `0` and `1` to enable.
|
|
43
|
+
*/
|
|
44
|
+
frequencyPenalty?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Lower the probability of all the tokens in the `punishTokens` array by `presencePenalty`
|
|
47
|
+
* Disabled by default (`0`).
|
|
48
|
+
* Set to a value between `0` and `1` to enable.
|
|
49
|
+
*/
|
|
50
|
+
presencePenalty?: number;
|
|
51
|
+
};
|
|
52
|
+
export type BatchingOptions = {
|
|
53
|
+
dispatchSchedule?: "nextTick" | CustomBatchingDispatchSchedule;
|
|
54
|
+
itemsPrioritizingStrategy?: "maximumParallelism" | "firstInFirstOut" | CustomBatchingPrioritizeStrategy;
|
|
55
|
+
};
|
|
56
|
+
export type CustomBatchingDispatchSchedule = (dispatch: () => void) => void;
|
|
57
|
+
export type CustomBatchingPrioritizeStrategy = (options: {
|
|
58
|
+
items: readonly BatchItem[];
|
|
59
|
+
size: number;
|
|
60
|
+
}) => PrioritizedBatchItem[];
|
|
61
|
+
export type ContextShiftOptions = {
|
|
62
|
+
size?: number | ((sequence: LlamaContextSequence) => number | Promise<number>);
|
|
63
|
+
strategy?: "eraseLowestTokenPriorityBeginning" | "eraseBeginning" | ((options: {
|
|
64
|
+
sequence: LlamaContextSequence;
|
|
65
|
+
size: number;
|
|
66
|
+
}) => ContextTokensDeleteRange[] | Promise<ContextTokensDeleteRange[]>);
|
|
67
|
+
};
|
|
68
|
+
export type ContextTokensDeleteRange = {
|
|
69
|
+
start: number;
|
|
70
|
+
end: number;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* 1 - low
|
|
74
|
+
*
|
|
75
|
+
* 5 - high
|
|
76
|
+
*/
|
|
77
|
+
export type EvaluationPriority = 1 | 2 | 3 | 4 | 5;
|
|
78
|
+
/**
|
|
79
|
+
* 1 - low, minimum
|
|
80
|
+
* Infinity - high, maximum
|
|
81
|
+
*/
|
|
82
|
+
export type TokenPriority = number;
|
|
83
|
+
export type BatchItem = {
|
|
84
|
+
readonly tokens: readonly Token[];
|
|
85
|
+
readonly evaluationPriority: EvaluationPriority;
|
|
86
|
+
};
|
|
87
|
+
export type PrioritizedBatchItem = {
|
|
88
|
+
item: BatchItem;
|
|
89
|
+
processAmount: number;
|
|
90
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/llamaEvaluator/LlamaContext/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function firstInFirstOutStrategy({ items, size }) {
|
|
2
|
+
const res = [];
|
|
3
|
+
const sortedItems = items
|
|
4
|
+
.slice()
|
|
5
|
+
.sort((a, b) => b.evaluationPriority - a.evaluationPriority);
|
|
6
|
+
let leftFreeTokens = size;
|
|
7
|
+
for (const item of sortedItems) {
|
|
8
|
+
const processAmount = Math.min(item.tokens.length, leftFreeTokens);
|
|
9
|
+
res.push({ item, processAmount });
|
|
10
|
+
leftFreeTokens -= processAmount;
|
|
11
|
+
if (leftFreeTokens === 0)
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
return res;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=firstInFirstOutStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firstInFirstOutStrategy.js","sourceRoot":"","sources":["../../../../../src/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,EAAC,KAAK,EAAE,IAAI,EAAgD;IAChG,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,MAAM,WAAW,GAAG,KAAK;SACpB,KAAK,EAAE;SACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAEjE,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;QAChC,cAAc,IAAI,aAAa,CAAC;QAEhC,IAAI,cAAc,KAAK,CAAC;YACpB,MAAM;KACb;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export function maximumParallelismStrategy({ items, size }) {
|
|
2
|
+
let leftFreeTokens = size;
|
|
3
|
+
const minTokensForEachItem = Math.floor(leftFreeTokens / items.length);
|
|
4
|
+
const res = [];
|
|
5
|
+
const clippedItems = [];
|
|
6
|
+
for (const item of items) {
|
|
7
|
+
const processAmount = Math.min(item.tokens.length, leftFreeTokens, minTokensForEachItem);
|
|
8
|
+
const prioritizeItem = { item, processAmount };
|
|
9
|
+
res.push(prioritizeItem);
|
|
10
|
+
leftFreeTokens -= processAmount;
|
|
11
|
+
if (processAmount < item.tokens.length)
|
|
12
|
+
clippedItems.push(prioritizeItem);
|
|
13
|
+
if (leftFreeTokens === 0)
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
for (let passesLeft = 3; leftFreeTokens > 0 && clippedItems.length > 0 && passesLeft > 0; passesLeft--) {
|
|
17
|
+
const minIncreaseAmount = Math.ceil(leftFreeTokens / clippedItems.length);
|
|
18
|
+
for (let i = 0; i < clippedItems.length && leftFreeTokens > 0; i++) {
|
|
19
|
+
const prioritizeItem = clippedItems[i];
|
|
20
|
+
const unprocessedAmount = prioritizeItem.item.tokens.length - prioritizeItem.processAmount;
|
|
21
|
+
const increaseAmount = Math.min(unprocessedAmount, leftFreeTokens, minIncreaseAmount);
|
|
22
|
+
prioritizeItem.processAmount += increaseAmount;
|
|
23
|
+
if (increaseAmount === unprocessedAmount) {
|
|
24
|
+
clippedItems.splice(i, 1);
|
|
25
|
+
i--;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
clippedItems.sort((a, b) => b.item.evaluationPriority - a.item.evaluationPriority);
|
|
30
|
+
for (let i = 0; i < clippedItems.length && leftFreeTokens > 0; i++) {
|
|
31
|
+
const prioritizeItem = clippedItems[i];
|
|
32
|
+
const unprocessedAmount = prioritizeItem.item.tokens.length - prioritizeItem.processAmount;
|
|
33
|
+
const increaseAmount = Math.min(unprocessedAmount, leftFreeTokens);
|
|
34
|
+
prioritizeItem.processAmount += increaseAmount;
|
|
35
|
+
if (increaseAmount === unprocessedAmount) {
|
|
36
|
+
clippedItems.splice(i, 1);
|
|
37
|
+
i--;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return res;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=maximumParallelismStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maximumParallelismStrategy.js","sourceRoot":"","sources":["../../../../../src/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CAAC,EAAC,KAAK,EAAE,IAAI,EAAgD;IACnG,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEvE,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,MAAM,YAAY,GAA2B,EAAE,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACtB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC;QACzF,MAAM,cAAc,GAAG,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzB,cAAc,IAAI,aAAa,CAAC;QAEhC,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;YAClC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEtC,IAAI,cAAc,KAAK,CAAC;YACpB,MAAM;KACb;IAED,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE;QACpG,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAChE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC;YAC3F,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;YACtF,cAAc,CAAC,aAAa,IAAI,cAAc,CAAC;YAE/C,IAAI,cAAc,KAAK,iBAAiB,EAAE;gBACtC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,CAAC,EAAE,CAAC;aACP;SACJ;KACJ;IAED,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAChE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC;QAC3F,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACnE,cAAc,CAAC,aAAa,IAAI,cAAc,CAAC;QAE/C,IAAI,cAAc,KAAK,iBAAiB,EAAE;YACtC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC;SACP;KACJ;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { maximumParallelismStrategy } from "./batchItemsPrioritizingStrategies/maximumParallelismStrategy.js";
|
|
2
|
+
import { firstInFirstOutStrategy } from "./batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js";
|
|
3
|
+
export function resolveBatchItemsPrioritizingStrategy(strategy) {
|
|
4
|
+
if (strategy instanceof Function)
|
|
5
|
+
return strategy;
|
|
6
|
+
else if (strategy === "maximumParallelism")
|
|
7
|
+
return maximumParallelismStrategy;
|
|
8
|
+
else if (strategy === "firstInFirstOut")
|
|
9
|
+
return firstInFirstOutStrategy;
|
|
10
|
+
void (strategy);
|
|
11
|
+
throw new Error(`Unknown batch items prioritize strategy: ${strategy}`);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=resolveBatchItemsPrioritizingStrategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveBatchItemsPrioritizingStrategy.js","sourceRoot":"","sources":["../../../../src/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,0BAA0B,EAAC,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EAAC,uBAAuB,EAAC,MAAM,+DAA+D,CAAC;AAEtG,MAAM,UAAU,qCAAqC,CAAC,QAAgE;IAClH,IAAI,QAAQ,YAAY,QAAQ;QAC5B,OAAO,QAAQ,CAAC;SACf,IAAI,QAAQ,KAAK,oBAAoB;QACtC,OAAO,0BAA0B,CAAC;SACjC,IAAI,QAAQ,KAAK,iBAAiB;QACnC,OAAO,uBAAuB,CAAC;IAEnC,KAAK,CAAC,QAAwB,CAAC,CAAC;IAEhC,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -16,13 +16,13 @@ export declare class LlamaGrammar {
|
|
|
16
16
|
* > GBNF files are supported.
|
|
17
17
|
* > More info here: [github:ggerganov/llama.cpp:grammars/README.md](
|
|
18
18
|
* > https://github.com/ggerganov/llama.cpp/blob/f5fe98d11bdf9e7797bcfb05c0c3601ffc4b9d26/grammars/README.md)
|
|
19
|
-
* @param
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
19
|
+
* @param options
|
|
20
|
+
* @param options.grammar - GBNF grammar
|
|
21
|
+
* @param [options.stopStrings] - Consider any of these texts as EOS for the generated out.
|
|
22
22
|
* Only supported by `LlamaChatSession`
|
|
23
|
-
* @param
|
|
23
|
+
* @param [options.trimWhitespaceSuffix] - Trim whitespace from the end of the generated text.
|
|
24
24
|
* Only supported by `LlamaChatSession`
|
|
25
|
-
* @param
|
|
25
|
+
* @param [options.printGrammar] - print the grammar to stdout
|
|
26
26
|
*/
|
|
27
27
|
constructor({ grammar, stopStrings, trimWhitespaceSuffix, printGrammar }: LlamaGrammarOptions);
|
|
28
28
|
get grammar(): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import fs from "fs-extra";
|
|
3
3
|
import { getGrammarsFolder } from "../utils/getGrammarsFolder.js";
|
|
4
|
-
import {
|
|
4
|
+
import { AddonGrammar } from "./LlamaBins.js";
|
|
5
5
|
export class LlamaGrammar {
|
|
6
6
|
/** @internal */
|
|
7
7
|
_grammar;
|
|
@@ -12,16 +12,16 @@ export class LlamaGrammar {
|
|
|
12
12
|
* > GBNF files are supported.
|
|
13
13
|
* > More info here: [github:ggerganov/llama.cpp:grammars/README.md](
|
|
14
14
|
* > https://github.com/ggerganov/llama.cpp/blob/f5fe98d11bdf9e7797bcfb05c0c3601ffc4b9d26/grammars/README.md)
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
15
|
+
* @param options
|
|
16
|
+
* @param options.grammar - GBNF grammar
|
|
17
|
+
* @param [options.stopStrings] - Consider any of these texts as EOS for the generated out.
|
|
18
18
|
* Only supported by `LlamaChatSession`
|
|
19
|
-
* @param
|
|
19
|
+
* @param [options.trimWhitespaceSuffix] - Trim whitespace from the end of the generated text.
|
|
20
20
|
* Only supported by `LlamaChatSession`
|
|
21
|
-
* @param
|
|
21
|
+
* @param [options.printGrammar] - print the grammar to stdout
|
|
22
22
|
*/
|
|
23
23
|
constructor({ grammar, stopStrings = [], trimWhitespaceSuffix = false, printGrammar = false }) {
|
|
24
|
-
this._grammar = new
|
|
24
|
+
this._grammar = new AddonGrammar(grammar, {
|
|
25
25
|
printGrammar
|
|
26
26
|
});
|
|
27
27
|
this._stopStrings = stopStrings ?? [];
|
|
@@ -2,13 +2,14 @@ import { LlamaGrammar } from "./LlamaGrammar.js";
|
|
|
2
2
|
export type LlamaGrammarEvaluationStateOptions = {
|
|
3
3
|
grammar: LlamaGrammar;
|
|
4
4
|
};
|
|
5
|
+
/**
|
|
6
|
+
* Grammar evaluation state is used to track the model response to determine the next allowed characters for the model to generate.
|
|
7
|
+
* Create a new grammar evaluation state for every response you generate with the model.
|
|
8
|
+
* This is only needed when using the `LlamaContext` class directly, as `LlamaChatSession` already handles this for you.
|
|
9
|
+
*/
|
|
5
10
|
export declare class LlamaGrammarEvaluationState {
|
|
6
11
|
/**
|
|
7
|
-
*
|
|
8
|
-
* Create a new grammar evaluation state for every response you generate with the model.
|
|
9
|
-
* This is only needed when using the `LlamaContext` class directly, as `LlamaChatSession` already handles this for you.
|
|
10
|
-
* @param {object} options
|
|
11
|
-
* @param {LlamaGrammar} options.grammar
|
|
12
|
+
* @param options
|
|
12
13
|
*/
|
|
13
14
|
constructor({ grammar }: LlamaGrammarEvaluationStateOptions);
|
|
14
15
|
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AddonGrammarEvaluationState } from "./LlamaBins.js";
|
|
2
|
+
/**
|
|
3
|
+
* Grammar evaluation state is used to track the model response to determine the next allowed characters for the model to generate.
|
|
4
|
+
* Create a new grammar evaluation state for every response you generate with the model.
|
|
5
|
+
* This is only needed when using the `LlamaContext` class directly, as `LlamaChatSession` already handles this for you.
|
|
6
|
+
*/
|
|
2
7
|
export class LlamaGrammarEvaluationState {
|
|
3
8
|
/** @internal */
|
|
4
9
|
_state;
|
|
5
10
|
/**
|
|
6
|
-
*
|
|
7
|
-
* Create a new grammar evaluation state for every response you generate with the model.
|
|
8
|
-
* This is only needed when using the `LlamaContext` class directly, as `LlamaChatSession` already handles this for you.
|
|
9
|
-
* @param {object} options
|
|
10
|
-
* @param {LlamaGrammar} options.grammar
|
|
11
|
+
* @param options
|
|
11
12
|
*/
|
|
12
13
|
constructor({ grammar }) {
|
|
13
|
-
this._state = new
|
|
14
|
+
this._state = new AddonGrammarEvaluationState(grammar._grammar);
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=LlamaGrammarEvaluationState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaGrammarEvaluationState.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaGrammarEvaluationState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAC,MAAM,gBAAgB,CAAC;AAQ3D,MAAM,OAAO,2BAA2B;IACpC,gBAAgB;IACA,MAAM,CAA8B;IAEpD
|
|
1
|
+
{"version":3,"file":"LlamaGrammarEvaluationState.js","sourceRoot":"","sources":["../../src/llamaEvaluator/LlamaGrammarEvaluationState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAC,MAAM,gBAAgB,CAAC;AAQ3D;;;;GAIG;AACH,MAAM,OAAO,2BAA2B;IACpC,gBAAgB;IACA,MAAM,CAA8B;IAEpD;;OAEG;IACH,YAAmB,EAAC,OAAO,EAAqC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,2BAA2B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;CACJ"}
|
|
@@ -1,130 +1,111 @@
|
|
|
1
|
+
import { EventRelay } from "lifecycle-utils";
|
|
2
|
+
import { Token } from "../types.js";
|
|
3
|
+
import { ModelTypeDescription } from "../utils/getBin.js";
|
|
1
4
|
export type LlamaModelOptions = {
|
|
2
5
|
/** path to the model on the filesystem */
|
|
3
6
|
modelPath: string;
|
|
4
|
-
/**
|
|
5
|
-
* If null, a random seed will be used
|
|
6
|
-
* @deprecated use the `seed` option on `LlamaContext` instead
|
|
7
|
-
* @hidden
|
|
8
|
-
* */
|
|
9
|
-
seed?: number | null;
|
|
10
|
-
/**
|
|
11
|
-
* text context size
|
|
12
|
-
* @deprecated use the `contextSize` option on `LlamaContext` instead
|
|
13
|
-
* @hidden
|
|
14
|
-
* */
|
|
15
|
-
contextSize?: number;
|
|
16
|
-
/**
|
|
17
|
-
* prompt processing batch size
|
|
18
|
-
* @deprecated use the `batchSize` option on `LlamaContext` instead
|
|
19
|
-
* @hidden
|
|
20
|
-
* */
|
|
21
|
-
batchSize?: number;
|
|
22
7
|
/** number of layers to store in VRAM */
|
|
23
8
|
gpuLayers?: number;
|
|
24
|
-
/**
|
|
25
|
-
* number of threads to use to evaluate tokens
|
|
26
|
-
* @deprecated use the `threads` option on `LlamaContext` instead
|
|
27
|
-
* @hidden
|
|
28
|
-
* */
|
|
29
|
-
threads?: number;
|
|
30
|
-
/**
|
|
31
|
-
* Temperature is a hyperparameter that controls the randomness of the generated text.
|
|
32
|
-
* It affects the probability distribution of the model's output tokens.
|
|
33
|
-
* A higher temperature (e.g., 1.5) makes the output more random and creative,
|
|
34
|
-
* while a lower temperature (e.g., 0.5) makes the output more focused, deterministic, and conservative.
|
|
35
|
-
* The suggested temperature is 0.8, which provides a balance between randomness and determinism.
|
|
36
|
-
* At the extreme, a temperature of 0 will always pick the most likely next token, leading to identical outputs in each run.
|
|
37
|
-
*
|
|
38
|
-
* Set to `0` to disable.
|
|
39
|
-
* @deprecated use the `temperature` option on `LlamaChatSession`'s `prompt` function or `LlamaContext`'s `evaluate` function instead
|
|
40
|
-
* @hidden
|
|
41
|
-
*/
|
|
42
|
-
temperature?: number;
|
|
43
|
-
/**
|
|
44
|
-
* Limits the model to consider only the K most likely next tokens for sampling at each step of sequence generation.
|
|
45
|
-
* An integer number between `1` and the size of the vocabulary.
|
|
46
|
-
* Set to `0` to disable (which uses the full vocabulary).
|
|
47
|
-
*
|
|
48
|
-
* Only relevant when `temperature` is set to a value greater than 0.
|
|
49
|
-
* @deprecated use the `topK` option on `LlamaChatSession`'s `prompt` function or `LlamaContext`'s `evaluate` function instead
|
|
50
|
-
* @hidden
|
|
51
|
-
* */
|
|
52
|
-
topK?: number;
|
|
53
|
-
/**
|
|
54
|
-
* Dynamically selects the smallest set of tokens whose cumulative probability exceeds the threshold P,
|
|
55
|
-
* and samples the next token only from this set.
|
|
56
|
-
* A float number between `0` and `1`.
|
|
57
|
-
* Set to `1` to disable.
|
|
58
|
-
*
|
|
59
|
-
* Only relevant when `temperature` is set to a value greater than `0`.
|
|
60
|
-
* @deprecated use the `topP` option on `LlamaChatSession`'s `prompt` function or `LlamaContext`'s `evaluate` function instead
|
|
61
|
-
* @hidden
|
|
62
|
-
*/
|
|
63
|
-
topP?: number;
|
|
64
|
-
/**
|
|
65
|
-
* use fp16 for KV cache
|
|
66
|
-
* @deprecated use the `f16Kv` option on `LlamaContext` instead
|
|
67
|
-
* @hidden
|
|
68
|
-
*/
|
|
69
|
-
f16Kv?: boolean;
|
|
70
|
-
/**
|
|
71
|
-
* the llama_eval() call computes all logits, not just the last one
|
|
72
|
-
* @deprecated use the `logitsAll` option on `LlamaContext` instead
|
|
73
|
-
* @hidden
|
|
74
|
-
*/
|
|
75
|
-
logitsAll?: boolean;
|
|
76
9
|
/** only load the vocabulary, no weights */
|
|
77
10
|
vocabOnly?: boolean;
|
|
78
11
|
/** use mmap if possible */
|
|
79
12
|
useMmap?: boolean;
|
|
80
13
|
/** force system to keep model in RAM */
|
|
81
14
|
useMlock?: boolean;
|
|
82
|
-
/**
|
|
83
|
-
* embedding mode only
|
|
84
|
-
* @deprecated use the `embedding` option on `LlamaContext` instead
|
|
85
|
-
* @hidden
|
|
86
|
-
*/
|
|
87
|
-
embedding?: boolean;
|
|
88
15
|
};
|
|
89
16
|
export declare class LlamaModel {
|
|
17
|
+
readonly onDispose: EventRelay<void>;
|
|
90
18
|
/**
|
|
91
19
|
* > options source:
|
|
92
20
|
* > [github:ggerganov/llama.cpp/llama.h](
|
|
93
|
-
* > https://github.com/ggerganov/llama.cpp/blob/
|
|
94
|
-
* @param
|
|
95
|
-
* @param
|
|
96
|
-
* @param
|
|
97
|
-
* @param
|
|
98
|
-
* @param
|
|
99
|
-
* @param
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
* and samples the next token only from this set.
|
|
117
|
-
* A float number between `0` and `1`.
|
|
118
|
-
* Set to `1` to disable.
|
|
119
|
-
*
|
|
120
|
-
* Only relevant when `temperature` is set to a value greater than `0`.
|
|
121
|
-
* @param {boolean} [options.f16Kv] - use fp16 for KV cache
|
|
122
|
-
* @param {boolean} [options.logitsAll] - the llama_eval() call computes all logits, not just the last one
|
|
123
|
-
* @param {boolean} [options.vocabOnly] - only load the vocabulary, no weights
|
|
124
|
-
* @param {boolean} [options.useMmap] - use mmap if possible
|
|
125
|
-
* @param {boolean} [options.useMlock] - force system to keep model in RAM
|
|
126
|
-
* @param {boolean} [options.embedding] - embedding mode only
|
|
127
|
-
*/
|
|
128
|
-
constructor({ modelPath, seed, contextSize, batchSize, gpuLayers, threads, temperature, topK, topP, f16Kv, logitsAll, vocabOnly, useMmap, useMlock, embedding }: LlamaModelOptions);
|
|
21
|
+
* > https://github.com/ggerganov/llama.cpp/blob/05816027d649f977468fc804cdb54e99eac246d1/llama.h#L161) (`struct llama_model_params`)
|
|
22
|
+
* @param options
|
|
23
|
+
* @param options.modelPath - path to the model on the filesystem
|
|
24
|
+
* @param [options.gpuLayers] - number of layers to store in VRAM
|
|
25
|
+
* @param [options.vocabOnly] - only load the vocabulary, no weights
|
|
26
|
+
* @param [options.useMmap] - use mmap if possible
|
|
27
|
+
* @param [options.useMlock] - force system to keep model in RAM
|
|
28
|
+
*/
|
|
29
|
+
constructor({ modelPath, gpuLayers, vocabOnly, useMmap, useMlock }: LlamaModelOptions);
|
|
30
|
+
dispose(): void;
|
|
31
|
+
/** @hidden */
|
|
32
|
+
[Symbol.dispose](): void;
|
|
33
|
+
get disposed(): boolean;
|
|
34
|
+
get tokens(): LlamaModelTokens;
|
|
35
|
+
get filename(): string | undefined;
|
|
36
|
+
/** Transform text into tokens that can be fed to the model */
|
|
37
|
+
tokenize(text: string): Token[];
|
|
38
|
+
/** Transform tokens into text */
|
|
39
|
+
detokenize(tokens: readonly Token[]): string;
|
|
40
|
+
/** @hidden `ModelTypeDescription` type alias is too long in the documentation */
|
|
41
|
+
get typeDescription(): ModelTypeDescription;
|
|
42
|
+
/** The context size the model was trained on */
|
|
43
|
+
get trainContextSize(): number;
|
|
129
44
|
static get systemInfo(): string;
|
|
130
45
|
}
|
|
46
|
+
export declare class LlamaModelTokens {
|
|
47
|
+
private constructor();
|
|
48
|
+
/**
|
|
49
|
+
* @returns infill tokens
|
|
50
|
+
*/
|
|
51
|
+
get infill(): LlamaModelInfillTokens;
|
|
52
|
+
/**
|
|
53
|
+
* @returns The BOS (Beginning Of Sequence) token.
|
|
54
|
+
*/
|
|
55
|
+
get bos(): Token | null;
|
|
56
|
+
/**
|
|
57
|
+
* @returns The EOS (End Of Sequence) token.
|
|
58
|
+
*/
|
|
59
|
+
get eos(): Token | null;
|
|
60
|
+
/**
|
|
61
|
+
* @returns The NL (New Line) token.
|
|
62
|
+
*/
|
|
63
|
+
get nl(): Token | null;
|
|
64
|
+
/**
|
|
65
|
+
* @returns The BOS (Beginning Of Sequence) token as a string.
|
|
66
|
+
*/
|
|
67
|
+
get bosString(): string | null;
|
|
68
|
+
/**
|
|
69
|
+
* @returns The EOS (End Of Sequence) token as a string.
|
|
70
|
+
*/
|
|
71
|
+
get eosString(): string | null;
|
|
72
|
+
/**
|
|
73
|
+
* @returns The NL (New Line) token as a string.
|
|
74
|
+
*/
|
|
75
|
+
get nlString(): string | null;
|
|
76
|
+
}
|
|
77
|
+
export declare class LlamaModelInfillTokens {
|
|
78
|
+
private constructor();
|
|
79
|
+
/**
|
|
80
|
+
* @returns The beginning of infill prefix token.
|
|
81
|
+
*/
|
|
82
|
+
get prefix(): Token | null;
|
|
83
|
+
/**
|
|
84
|
+
* @returns The beginning of infill middle token.
|
|
85
|
+
*/
|
|
86
|
+
get middle(): Token | null;
|
|
87
|
+
/**
|
|
88
|
+
* @returns The beginning of infill suffix token.
|
|
89
|
+
*/
|
|
90
|
+
get suffix(): Token | null;
|
|
91
|
+
/**
|
|
92
|
+
* @returns End of infill middle token (End Of Text).
|
|
93
|
+
*/
|
|
94
|
+
get eot(): Token | null;
|
|
95
|
+
/**
|
|
96
|
+
* @returns The beginning of infill prefix token as a string.
|
|
97
|
+
*/
|
|
98
|
+
get prefixString(): string | null;
|
|
99
|
+
/**
|
|
100
|
+
* @returns The beginning of infill middle token as a string.
|
|
101
|
+
*/
|
|
102
|
+
get middleString(): string | null;
|
|
103
|
+
/**
|
|
104
|
+
* @returns The beginning of infill suffix token as a string.
|
|
105
|
+
*/
|
|
106
|
+
get suffixString(): string | null;
|
|
107
|
+
/**
|
|
108
|
+
* @returns End of infill middle token (End Of Text) as a string.
|
|
109
|
+
*/
|
|
110
|
+
get eotString(): string | null;
|
|
111
|
+
}
|