node-llama-cpp 3.17.1 → 3.18.0
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/dist/bindings/AddonTypes.d.ts +11 -0
- package/dist/bindings/Llama.js +20 -2
- package/dist/bindings/Llama.js.map +1 -1
- package/dist/bindings/getLlama.d.ts +1 -1
- package/dist/bindings/getLlama.js +19 -8
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/utils/compileLLamaCpp.d.ts +2 -1
- package/dist/bindings/utils/compileLLamaCpp.js +8 -0
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
- package/dist/bindings/utils/getLlamaGpuTypes.js +2 -0
- package/dist/bindings/utils/getLlamaGpuTypes.js.map +1 -1
- package/dist/chatWrappers/QwenChatWrapper.d.ts +7 -0
- package/dist/chatWrappers/QwenChatWrapper.js +176 -56
- package/dist/chatWrappers/QwenChatWrapper.js.map +1 -1
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +127 -88
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
- package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.d.ts +16 -10
- package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js +115 -5
- package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js.map +1 -1
- package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js +1 -0
- package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js.map +1 -1
- package/dist/cli/commands/ChatCommand.js +1 -1
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +51 -4
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
- package/dist/cli/utils/resolveNpmrcConfig.d.ts +18 -0
- package/dist/cli/utils/resolveNpmrcConfig.js +129 -0
- package/dist/cli/utils/resolveNpmrcConfig.js.map +1 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.js +4 -1
- package/dist/config.js.map +1 -1
- package/dist/evaluator/LlamaChat/LlamaChat.d.ts +8 -2
- package/dist/evaluator/LlamaChat/LlamaChat.js +99 -6
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
- package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +8 -2
- package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +8 -2
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContext.d.ts +88 -0
- package/dist/evaluator/LlamaContext/LlamaContext.js +181 -17
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.d.ts +27 -0
- package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.js +130 -0
- package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.js.map +1 -0
- package/dist/gguf/insights/GgufInsights.d.ts +3 -0
- package/dist/gguf/insights/GgufInsights.js +221 -43
- package/dist/gguf/insights/GgufInsights.js.map +1 -1
- package/dist/gguf/types/GgufMetadataTypes.d.ts +15 -1
- package/dist/gguf/types/GgufMetadataTypes.js +4 -0
- package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/getFirstWritableDir.d.ts +8 -0
- package/dist/utils/getFirstWritableDir.js +60 -0
- package/dist/utils/getFirstWritableDir.js.map +1 -0
- package/dist/utils/getTempDir.d.ts +10 -0
- package/dist/utils/getTempDir.js +121 -0
- package/dist/utils/getTempDir.js.map +1 -0
- package/dist/utils/resolveModelFile.js +19 -8
- package/dist/utils/resolveModelFile.js.map +1 -1
- package/llama/addon/AddonContext.cpp +168 -0
- package/llama/addon/AddonContext.h +27 -0
- package/llama/addon/addon.cpp +1 -0
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/llama.cpp.info.json +1 -1
- package/package.json +24 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../../src/evaluator/LlamaChatSession/LlamaChatSession.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LlamaChatSession.js","sourceRoot":"","sources":["../../../src/evaluator/LlamaChatSession/LlamaChatSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,20 @@ import { TokenMeter } from "../TokenMeter.js";
|
|
|
4
4
|
import { LlamaModel } from "../LlamaModel/LlamaModel.js";
|
|
5
5
|
import { ContextShiftOptions, ContextTokensDeleteRange, ControlledEvaluateIndexOutput, ControlledEvaluateInputItem, EvaluationPriority, SequenceEvaluateMetadataOptions, SequenceEvaluateOptions, SequenceEvaluateOutput } from "./types.js";
|
|
6
6
|
import { TokenPredictor } from "./TokenPredictor.js";
|
|
7
|
+
export declare const internalCheckpoints: {
|
|
8
|
+
speculative: {
|
|
9
|
+
name: string;
|
|
10
|
+
maxCheckpoints: number;
|
|
11
|
+
};
|
|
12
|
+
chatSequenceStart: {
|
|
13
|
+
name: string;
|
|
14
|
+
maxCheckpoints: number;
|
|
15
|
+
};
|
|
16
|
+
chatGrammarEnd: {
|
|
17
|
+
name: string;
|
|
18
|
+
maxCheckpoints: number;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
7
21
|
export declare class LlamaContext {
|
|
8
22
|
readonly onDispose: EventRelay<void>;
|
|
9
23
|
private constructor();
|
|
@@ -53,6 +67,47 @@ export declare class LlamaContext {
|
|
|
53
67
|
* @see [Using Token Predictors](https://node-llama-cpp.withcat.ai/guide/token-prediction)
|
|
54
68
|
*/
|
|
55
69
|
tokenPredictor?: TokenPredictor;
|
|
70
|
+
/**
|
|
71
|
+
* The maximum number of checkpoint to keep for the sequence when needed.
|
|
72
|
+
*
|
|
73
|
+
* When reusing a prefix evaluation state is not possible for the context sequence
|
|
74
|
+
* (like in contexts from recurrent and hybrid models,
|
|
75
|
+
* or with models that use SWA (Sliding Window Attention) when the `swaFullCache` option is not enabled on the context),
|
|
76
|
+
* storing checkpoints allows reusing the context state at certain points in the sequence
|
|
77
|
+
* to speed up the evaluation when erasing parts of the context state that come after those points.
|
|
78
|
+
* Those checkpoints will automatically be used when trying to erase parts of the context state that
|
|
79
|
+
* come after a checkpointed state, and be freed from memory when no longer relevant.
|
|
80
|
+
*
|
|
81
|
+
* Those checkpoints are relatively lightweight compared to saving the entire state,
|
|
82
|
+
* but taking too many checkpoints can increase memory usage.
|
|
83
|
+
* Checkpoints are stored in the RAM (not VRAM).
|
|
84
|
+
*
|
|
85
|
+
* See {@link LlamaContextSequence.takeCheckpoint} for more details on how checkpoints are taken and used.
|
|
86
|
+
*/
|
|
87
|
+
checkpoints?: {
|
|
88
|
+
/**
|
|
89
|
+
* The maximum number of checkpoints to keep for the sequence when needed.
|
|
90
|
+
*
|
|
91
|
+
* Defaults to `32`.
|
|
92
|
+
*/
|
|
93
|
+
max?: number;
|
|
94
|
+
/**
|
|
95
|
+
* Take a checkpoint every `interval` tokens when the sequence needs taking checkpoints.
|
|
96
|
+
*
|
|
97
|
+
* Defaults to `8192`.
|
|
98
|
+
*/
|
|
99
|
+
interval?: number | false;
|
|
100
|
+
/**
|
|
101
|
+
* The maximum memory in bytes to use for checkpoints for the sequence when needed.
|
|
102
|
+
*
|
|
103
|
+
* When taking a checkpoint causes the checkpoints pool memory to exceed this value,
|
|
104
|
+
* older checkpoints will be pruned until the total checkpoints memory usage is under this limit,
|
|
105
|
+
* while ensuring that at least one checkpoint is kept.
|
|
106
|
+
*
|
|
107
|
+
* Defaults to `null` (no memory limit).
|
|
108
|
+
*/
|
|
109
|
+
maxMemory?: number | null;
|
|
110
|
+
};
|
|
56
111
|
}): LlamaContextSequence;
|
|
57
112
|
dispatchPendingBatch(): void;
|
|
58
113
|
/**
|
|
@@ -234,6 +289,39 @@ export declare class LlamaContextSequence {
|
|
|
234
289
|
*/
|
|
235
290
|
acceptRisk: true;
|
|
236
291
|
}): Promise<void>;
|
|
292
|
+
/**
|
|
293
|
+
* When reusing a prefix evaluation state is not possible for the current context sequence
|
|
294
|
+
* (like in contexts from recurrent and hybrid models,
|
|
295
|
+
* or with models that use SWA (Sliding Window Attention) when the `swaFullCache` option is not enabled on the context),
|
|
296
|
+
* you can use this method to checkpoint the current context sequence state.
|
|
297
|
+
* Those checkpoints will automatically be used when trying to erase parts of the context state that come after a checkpointed state,
|
|
298
|
+
* and be freed from memory when no longer relevant.
|
|
299
|
+
*
|
|
300
|
+
* Those checkpoints are relatively lightweight compared to saving the entire state,
|
|
301
|
+
* but taking too many checkpoints can increase memory usage.
|
|
302
|
+
* Checkpoints are stored in the RAM (not VRAM).
|
|
303
|
+
*
|
|
304
|
+
* Calling this method on a context sequence from a model that natively supports prefix evaluation state reuse will have no effect.
|
|
305
|
+
*
|
|
306
|
+
* > **Note:** to check whether the current context sequence needs taking checkpoints,
|
|
307
|
+
* > you can use the {@link needsCheckpoints `.needsCheckpoints`} property.
|
|
308
|
+
*/
|
|
309
|
+
takeCheckpoint(): Promise<void>;
|
|
310
|
+
/**
|
|
311
|
+
* Whether the current context sequence needs taking checkpoints of the context state to be able to reuse
|
|
312
|
+
* it as a prefix evaluation state in the future.
|
|
313
|
+
*
|
|
314
|
+
* See {@link takeCheckpoint `.takeCheckpoint()`} for more details.
|
|
315
|
+
*/
|
|
316
|
+
get needsCheckpoints(): boolean;
|
|
317
|
+
/**
|
|
318
|
+
* The index of the last taken checkpoint that's available for prefix reuse
|
|
319
|
+
*/
|
|
320
|
+
get lastCheckpointIndex(): number;
|
|
321
|
+
/**
|
|
322
|
+
* The total memory usage in bytes of all the checkpoints currently held for this context sequence
|
|
323
|
+
*/
|
|
324
|
+
get checkpointsMemoryUsage(): number;
|
|
237
325
|
}
|
|
238
326
|
export declare function getDefaultContextBatchSize({ contextSize, sequences }: {
|
|
239
327
|
contextSize: number;
|
|
@@ -8,9 +8,11 @@ import { UnsupportedError } from "../../utils/UnsupportedError.js";
|
|
|
8
8
|
import { pushAll } from "../../utils/pushAll.js";
|
|
9
9
|
import { safeEventCallback } from "../../utils/safeEventCallback.js";
|
|
10
10
|
import { GgufArchitectureType } from "../../gguf/types/GgufMetadataTypes.js";
|
|
11
|
+
import { LlamaLogLevel } from "../../bindings/types.js";
|
|
11
12
|
import { resolveBatchItemsPrioritizationStrategy } from "./utils/resolveBatchItemsPrioritizationStrategy.js";
|
|
12
13
|
import { LlamaSampler } from "./LlamaSampler.js";
|
|
13
14
|
import { padSafeContextSize } from "./utils/padSafeContextSize.js";
|
|
15
|
+
import { LlamaContextSequenceCheckpoints } from "./LlamaContextSequenceCheckpoints.js";
|
|
14
16
|
const defaultLoraScale = 1;
|
|
15
17
|
const shrinkRetriesMinContextSize = 4096;
|
|
16
18
|
const defaultMaxPunishTokens = 64;
|
|
@@ -20,6 +22,25 @@ const defaultFailedCreationRemedy = {
|
|
|
20
22
|
};
|
|
21
23
|
const defaultEvaluationPriority = 5;
|
|
22
24
|
const defaultDryRepeatPenalitySequenceBreakers = ["\n", ":", '"', "*"];
|
|
25
|
+
const defaultCheckpointOptions = {
|
|
26
|
+
max: 32,
|
|
27
|
+
interval: 8192,
|
|
28
|
+
maxMemory: null
|
|
29
|
+
};
|
|
30
|
+
export const internalCheckpoints = {
|
|
31
|
+
speculative: {
|
|
32
|
+
name: "speculative",
|
|
33
|
+
maxCheckpoints: 2
|
|
34
|
+
},
|
|
35
|
+
chatSequenceStart: {
|
|
36
|
+
name: "sequenceStart",
|
|
37
|
+
maxCheckpoints: 1
|
|
38
|
+
},
|
|
39
|
+
chatGrammarEnd: {
|
|
40
|
+
name: "grammarEnd",
|
|
41
|
+
maxCheckpoints: 1
|
|
42
|
+
}
|
|
43
|
+
};
|
|
23
44
|
const decodeSyncWorkaround = {
|
|
24
45
|
vulkanLock: {}
|
|
25
46
|
};
|
|
@@ -168,7 +189,7 @@ export class LlamaContext {
|
|
|
168
189
|
* When there are no sequences left, this method will throw an error.
|
|
169
190
|
*/
|
|
170
191
|
getSequence(options = {}) {
|
|
171
|
-
const { contextShift: { size: contextShiftSize = Math.min(100, Math.ceil(this.contextSize / 2)), strategy: contextShiftStrategy = "eraseBeginning" } = {}, tokenPredictor, _tokenMeter } = options;
|
|
192
|
+
const { contextShift: { size: contextShiftSize = Math.min(100, Math.ceil(this.contextSize / 2)), strategy: contextShiftStrategy = "eraseBeginning" } = {}, tokenPredictor, checkpoints, _tokenMeter } = options;
|
|
172
193
|
this._ensureNotDisposed();
|
|
173
194
|
const nextSequenceId = this._popSequenceId();
|
|
174
195
|
if (nextSequenceId == null)
|
|
@@ -181,7 +202,8 @@ export class LlamaContext {
|
|
|
181
202
|
size: contextShiftSize,
|
|
182
203
|
strategy: contextShiftStrategy
|
|
183
204
|
},
|
|
184
|
-
tokenPredictor
|
|
205
|
+
tokenPredictor,
|
|
206
|
+
checkpoints
|
|
185
207
|
});
|
|
186
208
|
}
|
|
187
209
|
dispatchPendingBatch() {
|
|
@@ -293,16 +315,18 @@ export class LlamaContext {
|
|
|
293
315
|
batchLogitIndexes,
|
|
294
316
|
batchLogitTokenIndexes: tokenIndexesWithLogitsToProcess,
|
|
295
317
|
firstTokenIndex: queuedDecode.firstTokenSequenceIndex,
|
|
318
|
+
sequenceStateLength: queuedDecode.firstTokenSequenceIndex + processAmount + 1,
|
|
296
319
|
returnResults: true
|
|
297
320
|
});
|
|
298
321
|
}
|
|
299
322
|
else {
|
|
300
|
-
if (batchLogitIndexes.length > 0)
|
|
323
|
+
if (batchLogitIndexes.length > 0 || queuedDecode.afterBatchAction != null)
|
|
301
324
|
afterDecodeActions.push({
|
|
302
325
|
queuedDecode,
|
|
303
326
|
batchLogitIndexes,
|
|
304
327
|
batchLogitTokenIndexes: tokenIndexesWithLogitsToProcess,
|
|
305
|
-
firstTokenIndex: queuedDecode.firstTokenSequenceIndex
|
|
328
|
+
firstTokenIndex: queuedDecode.firstTokenSequenceIndex,
|
|
329
|
+
sequenceStateLength: queuedDecode.firstTokenSequenceIndex + processAmount + 1
|
|
306
330
|
});
|
|
307
331
|
queuedDecode.tokens = queuedDecode.tokens.slice(processAmount);
|
|
308
332
|
queuedDecode.logits = queuedDecode.logits.slice(processAmount);
|
|
@@ -378,6 +402,11 @@ export class LlamaContext {
|
|
|
378
402
|
return undefined;
|
|
379
403
|
});
|
|
380
404
|
await Promise.all(afterDecodeActionResults);
|
|
405
|
+
for (const action of afterDecodeActions) {
|
|
406
|
+
const resPromise = action.queuedDecode.afterBatchAction?.(action.sequenceStateLength);
|
|
407
|
+
if (resPromise instanceof Promise)
|
|
408
|
+
await resPromise;
|
|
409
|
+
}
|
|
381
410
|
};
|
|
382
411
|
const prioritizationStrategy = resolvePrioritizationStrategy();
|
|
383
412
|
if (prioritizationStrategy == null)
|
|
@@ -432,7 +461,7 @@ export class LlamaContext {
|
|
|
432
461
|
await new Promise((accept) => setTimeout(accept, 0)); // wait for the logs to finish printing
|
|
433
462
|
}
|
|
434
463
|
/** @internal */
|
|
435
|
-
async _decodeTokens({ sequenceId, firstTokenSequenceIndex, tokens, logits, evaluationPriority = defaultEvaluationPriority, tokenMeter }, logitDataMapper) {
|
|
464
|
+
async _decodeTokens({ sequenceId, firstTokenSequenceIndex, tokens, logits, evaluationPriority = defaultEvaluationPriority, tokenMeter, afterBatchAction }, logitDataMapper) {
|
|
436
465
|
return await new Promise((accept, reject) => {
|
|
437
466
|
this._queuedDecodes.push({
|
|
438
467
|
sequenceId,
|
|
@@ -442,7 +471,8 @@ export class LlamaContext {
|
|
|
442
471
|
evaluationPriority,
|
|
443
472
|
tokenMeter,
|
|
444
473
|
response: [accept, reject],
|
|
445
|
-
logitDataMapper
|
|
474
|
+
logitDataMapper,
|
|
475
|
+
afterBatchAction
|
|
446
476
|
});
|
|
447
477
|
this._queuedDecodeSequenceIds.add(sequenceId);
|
|
448
478
|
this._scheduleDecode();
|
|
@@ -697,6 +727,8 @@ export class LlamaContextSequence {
|
|
|
697
727
|
/** @internal */ _context;
|
|
698
728
|
/** @internal */ _contextShift;
|
|
699
729
|
/** @internal */ _tokenPredictor;
|
|
730
|
+
/** @internal */ _checkpoints = new LlamaContextSequenceCheckpoints();
|
|
731
|
+
/** @internal */ _checkpointOptions;
|
|
700
732
|
/** @internal */ _tokenMeter;
|
|
701
733
|
/** @internal */ _disposeAggregator = new DisposeAggregator();
|
|
702
734
|
/** @internal */ _lock = {};
|
|
@@ -711,22 +743,29 @@ export class LlamaContextSequence {
|
|
|
711
743
|
/** @internal */ _refutedTokenPredictions = 0;
|
|
712
744
|
/** @internal */ _disposed = false;
|
|
713
745
|
onDispose = new EventRelay();
|
|
714
|
-
constructor({ sequenceId, context, tokenMeter, contextShift, tokenPredictor }) {
|
|
746
|
+
constructor({ sequenceId, context, tokenMeter, contextShift, tokenPredictor, checkpoints }) {
|
|
715
747
|
this._sequenceId = sequenceId;
|
|
716
748
|
this._context = context;
|
|
717
749
|
this._tokenMeter = tokenMeter ?? new TokenMeter();
|
|
718
750
|
this._contextShift = contextShift;
|
|
719
751
|
this._tokenPredictor = tokenPredictor;
|
|
752
|
+
this._checkpointOptions = {
|
|
753
|
+
max: checkpoints?.max ?? defaultCheckpointOptions.max,
|
|
754
|
+
interval: checkpoints?.interval ?? defaultCheckpointOptions.interval,
|
|
755
|
+
maxMemory: checkpoints?.maxMemory ?? defaultCheckpointOptions.maxMemory
|
|
756
|
+
};
|
|
720
757
|
this._gcRegistry = new FinalizationRegistry(this._context._reclaimUnusedSequenceId);
|
|
721
758
|
this._gcRegistry.register(this, sequenceId);
|
|
722
759
|
this._disposeAggregator.add(() => this._gcRegistry.unregister(this));
|
|
723
760
|
this._disposeAggregator.add(this.onDispose.dispatchEvent);
|
|
724
761
|
this._disposeAggregator.add(this.model.onDispose.createListener(disposeContextSequenceIfReferenced.bind(null, new WeakRef(this))));
|
|
725
762
|
this._disposeAggregator.add(() => {
|
|
763
|
+
this._checkpoints.clearAllCheckpoints();
|
|
726
764
|
this._context._reclaimUnusedSequenceId(this._sequenceId);
|
|
727
765
|
});
|
|
728
766
|
if (this._tokenPredictor != null)
|
|
729
767
|
this._disposeAggregator.add(this._tokenPredictor);
|
|
768
|
+
this._takeIntervalCheckpointIfNeededAfterBatch = this._takeIntervalCheckpointIfNeededAfterBatch.bind(this);
|
|
730
769
|
}
|
|
731
770
|
dispose() {
|
|
732
771
|
if (this._disposed)
|
|
@@ -892,7 +931,7 @@ export class LlamaContextSequence {
|
|
|
892
931
|
/** @internal */
|
|
893
932
|
async _eraseContextTokenRanges(ranges, { canResetTokenPredictor = true, canRemovePredictionTokens = true, skipLock = false } = {}) {
|
|
894
933
|
this._ensureNotDisposed();
|
|
895
|
-
let
|
|
934
|
+
let awaitEvaluationPromise;
|
|
896
935
|
await withLock([this._context, "context"], async () => {
|
|
897
936
|
this._ensureNotDisposed();
|
|
898
937
|
if (ranges.length === 0)
|
|
@@ -968,16 +1007,39 @@ export class LlamaContextSequence {
|
|
|
968
1007
|
this._nextTokenIndex -= removedTokens;
|
|
969
1008
|
if (canResetTokenPredictor && removedTokens > 0)
|
|
970
1009
|
await this._abortTokenPredictor(true);
|
|
1010
|
+
this._checkpoints.pruneFromEndToIndex(this._contextTokens.length - 1);
|
|
971
1011
|
if (deletionSuccessful)
|
|
972
1012
|
return;
|
|
1013
|
+
let restoreCheckpointIndex = this._contextTokens.length - 1;
|
|
1014
|
+
const existingCheckpoint = this._checkpoints.getLastCheckpoint(restoreCheckpointIndex, this.contextSize);
|
|
1015
|
+
if (existingCheckpoint != null &&
|
|
1016
|
+
restoreCheckpointIndex >= existingCheckpoint.minPos &&
|
|
1017
|
+
existingCheckpoint.maxPos <= this.contextSize) {
|
|
1018
|
+
restoreCheckpointIndex = Math.min(restoreCheckpointIndex, existingCheckpoint.maxPos);
|
|
1019
|
+
const restoredSuccessfully = await this._context._ctx.restoreCheckpoint(existingCheckpoint, restoreCheckpointIndex);
|
|
1020
|
+
if (restoredSuccessfully) {
|
|
1021
|
+
const tokensToEvaluate = this._contextTokens.slice(restoreCheckpointIndex + 1);
|
|
1022
|
+
this._contextTokens = this._contextTokens.slice(0, restoreCheckpointIndex + 1);
|
|
1023
|
+
this._nextTokenIndex = restoreCheckpointIndex + 1;
|
|
1024
|
+
// wait for the evaluation outside the "context" lock to avoid deadlocks
|
|
1025
|
+
if (tokensToEvaluate.length > 0)
|
|
1026
|
+
awaitEvaluationPromise = this.evaluateWithoutGeneratingNewTokens(tokensToEvaluate, { _skipLock: skipLock });
|
|
1027
|
+
return;
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
973
1030
|
const newSequenceTokens = this._contextTokens.slice();
|
|
974
1031
|
this._nextTokenIndex = 0;
|
|
975
1032
|
this._context._ctx.disposeSequence(this._sequenceId);
|
|
1033
|
+
this._contextTokens = [];
|
|
976
1034
|
// wait for the evaluation outside the "context" lock to avoid deadlocks
|
|
977
|
-
|
|
1035
|
+
if (newSequenceTokens.length > 0)
|
|
1036
|
+
awaitEvaluationPromise = this.evaluateWithoutGeneratingNewTokens(newSequenceTokens, { _skipLock: skipLock });
|
|
978
1037
|
});
|
|
979
|
-
if (
|
|
980
|
-
await
|
|
1038
|
+
if (awaitEvaluationPromise != null) {
|
|
1039
|
+
await awaitEvaluationPromise;
|
|
1040
|
+
if (this.needsCheckpoints && this._checkpoints.lastCheckpointIndex !== this._nextTokenIndex - 1)
|
|
1041
|
+
await this.takeCheckpoint();
|
|
1042
|
+
}
|
|
981
1043
|
}
|
|
982
1044
|
/**
|
|
983
1045
|
* Evaluate the provided tokens into the context sequence, and continue generating new tokens on iterator iterations.
|
|
@@ -1168,7 +1230,7 @@ export class LlamaContextSequence {
|
|
|
1168
1230
|
onTokenResult?.(tokenIndex, output);
|
|
1169
1231
|
return output;
|
|
1170
1232
|
});
|
|
1171
|
-
});
|
|
1233
|
+
}, this._takeIntervalCheckpointIfNeededAfterBatch);
|
|
1172
1234
|
}
|
|
1173
1235
|
finally {
|
|
1174
1236
|
evaluatorLock.dispose();
|
|
@@ -1188,6 +1250,7 @@ export class LlamaContextSequence {
|
|
|
1188
1250
|
const contextLock = await acquireLock([this._context, "context"]);
|
|
1189
1251
|
try {
|
|
1190
1252
|
this._ensureNotDisposed();
|
|
1253
|
+
// TODO: save checkpoints to disk
|
|
1191
1254
|
const fileSize = await this._context._ctx.saveSequenceStateToFile(resolvedPath, this._sequenceId, Uint32Array.from(this.contextTokens));
|
|
1192
1255
|
return { fileSize };
|
|
1193
1256
|
}
|
|
@@ -1235,6 +1298,97 @@ export class LlamaContextSequence {
|
|
|
1235
1298
|
evaluatorLock.dispose();
|
|
1236
1299
|
}
|
|
1237
1300
|
}
|
|
1301
|
+
/**
|
|
1302
|
+
* When reusing a prefix evaluation state is not possible for the current context sequence
|
|
1303
|
+
* (like in contexts from recurrent and hybrid models,
|
|
1304
|
+
* or with models that use SWA (Sliding Window Attention) when the `swaFullCache` option is not enabled on the context),
|
|
1305
|
+
* you can use this method to checkpoint the current context sequence state.
|
|
1306
|
+
* Those checkpoints will automatically be used when trying to erase parts of the context state that come after a checkpointed state,
|
|
1307
|
+
* and be freed from memory when no longer relevant.
|
|
1308
|
+
*
|
|
1309
|
+
* Those checkpoints are relatively lightweight compared to saving the entire state,
|
|
1310
|
+
* but taking too many checkpoints can increase memory usage.
|
|
1311
|
+
* Checkpoints are stored in the RAM (not VRAM).
|
|
1312
|
+
*
|
|
1313
|
+
* Calling this method on a context sequence from a model that natively supports prefix evaluation state reuse will have no effect.
|
|
1314
|
+
*
|
|
1315
|
+
* > **Note:** to check whether the current context sequence needs taking checkpoints,
|
|
1316
|
+
* > you can use the {@link needsCheckpoints `.needsCheckpoints`} property.
|
|
1317
|
+
*/
|
|
1318
|
+
async takeCheckpoint() {
|
|
1319
|
+
if (!this.needsCheckpoints)
|
|
1320
|
+
return;
|
|
1321
|
+
return await withLock([this._context, "context"], () => {
|
|
1322
|
+
return this._takeCheckpoint(undefined, this._checkpointOptions.max);
|
|
1323
|
+
});
|
|
1324
|
+
}
|
|
1325
|
+
/** @internal */
|
|
1326
|
+
async _takeNamedCheckpoint(name, maxNamedCheckpoints) {
|
|
1327
|
+
if (!this.needsCheckpoints)
|
|
1328
|
+
return;
|
|
1329
|
+
return await withLock([this._context, "context"], () => {
|
|
1330
|
+
return this._takeCheckpoint(name, maxNamedCheckpoints);
|
|
1331
|
+
});
|
|
1332
|
+
}
|
|
1333
|
+
/**
|
|
1334
|
+
* Whether the current context sequence needs taking checkpoints of the context state to be able to reuse
|
|
1335
|
+
* it as a prefix evaluation state in the future.
|
|
1336
|
+
*
|
|
1337
|
+
* See {@link takeCheckpoint `.takeCheckpoint()`} for more details.
|
|
1338
|
+
*/
|
|
1339
|
+
get needsCheckpoints() {
|
|
1340
|
+
if (this.model.fileInsights.isHybrid || this.model.fileInsights.isRecurrent)
|
|
1341
|
+
return true;
|
|
1342
|
+
else if (this.model.fileInsights.swaSize != null && !this._context._swaFullCache)
|
|
1343
|
+
return true;
|
|
1344
|
+
return false;
|
|
1345
|
+
}
|
|
1346
|
+
/**
|
|
1347
|
+
* The index of the last taken checkpoint that's available for prefix reuse
|
|
1348
|
+
*/
|
|
1349
|
+
get lastCheckpointIndex() {
|
|
1350
|
+
return Math.max(0, Math.min(this._checkpoints.lastCheckpointIndex, this.nextTokenIndex - 1));
|
|
1351
|
+
}
|
|
1352
|
+
/**
|
|
1353
|
+
* The total memory usage in bytes of all the checkpoints currently held for this context sequence
|
|
1354
|
+
*/
|
|
1355
|
+
get checkpointsMemoryUsage() {
|
|
1356
|
+
return this._checkpoints.memoryUsage;
|
|
1357
|
+
}
|
|
1358
|
+
/** @internal */
|
|
1359
|
+
async _takeCheckpoint(name, maxNamedCheckpoints) {
|
|
1360
|
+
if (!this.needsCheckpoints || this._nextTokenIndex === 0 || this._checkpoints.hasCheckpoint(name, this._nextTokenIndex - 1))
|
|
1361
|
+
return;
|
|
1362
|
+
if (this._checkpointOptions.maxMemory != null)
|
|
1363
|
+
this._checkpoints.prepareMemoryForIncomingCheckpoint(this._checkpointOptions.maxMemory);
|
|
1364
|
+
const checkpoint = new this.model._llama._bindings.AddonContextSequenceCheckpoint();
|
|
1365
|
+
await checkpoint.init(this._context._ctx, this._sequenceId);
|
|
1366
|
+
if (this._nextTokenIndex - 1 !== checkpoint.maxPos)
|
|
1367
|
+
this.model._llama._log(LlamaLogLevel.warn, `Checkpoint max position mismatch: expected ${this._nextTokenIndex - 1}, got ${checkpoint.maxPos}`);
|
|
1368
|
+
this._checkpoints.storeCheckpoint({
|
|
1369
|
+
name,
|
|
1370
|
+
maxNamedCheckpoints,
|
|
1371
|
+
checkpoint,
|
|
1372
|
+
currentMaxPos: checkpoint.maxPos
|
|
1373
|
+
});
|
|
1374
|
+
if (this._checkpointOptions.maxMemory != null)
|
|
1375
|
+
this._checkpoints.pruneToKeepUnderMemoryUsage(this._checkpointOptions.maxMemory);
|
|
1376
|
+
}
|
|
1377
|
+
/** @internal */
|
|
1378
|
+
_takeIntervalCheckpointIfNeeded(currentIndex = this._nextTokenIndex - 1) {
|
|
1379
|
+
if (!this.needsCheckpoints)
|
|
1380
|
+
return;
|
|
1381
|
+
const lastCheckpointIndex = this._checkpoints.getLastNamedCheckpointIndex(undefined);
|
|
1382
|
+
if (this._checkpointOptions.interval === false || currentIndex - lastCheckpointIndex < this._checkpointOptions.interval)
|
|
1383
|
+
return;
|
|
1384
|
+
return this._takeCheckpoint(undefined, this._checkpointOptions.max);
|
|
1385
|
+
}
|
|
1386
|
+
/** @internal */
|
|
1387
|
+
_takeIntervalCheckpointIfNeededAfterBatch(sequenceStateLength) {
|
|
1388
|
+
if (sequenceStateLength === 0)
|
|
1389
|
+
return;
|
|
1390
|
+
return this._takeIntervalCheckpointIfNeeded(sequenceStateLength - 1);
|
|
1391
|
+
}
|
|
1238
1392
|
/** @internal */
|
|
1239
1393
|
async *_evaluate(tokens, metadata, { temperature, minP, topK, topP, seed, xtc, grammarEvaluationState, repeatPenalty, dryRepeatPenalty, tokenBias, evaluationPriority = defaultEvaluationPriority, generateNewTokens = true, contextShiftOptions, yieldEogToken = false, _noSampling = false, _skipLock = false }) {
|
|
1240
1394
|
this._ensureNotDisposed();
|
|
@@ -1282,7 +1436,7 @@ export class LlamaContextSequence {
|
|
|
1282
1436
|
else
|
|
1283
1437
|
return this._context._ctx.sampleToken(batchLogitIndex, sampler._sampler);
|
|
1284
1438
|
});
|
|
1285
|
-
});
|
|
1439
|
+
}, this._takeIntervalCheckpointIfNeededAfterBatch);
|
|
1286
1440
|
const lastDecodeResult = decodeResult[evalTokens.length - 1];
|
|
1287
1441
|
if (lastDecodeResult instanceof Array) {
|
|
1288
1442
|
const [token, probabilities, confidence] = lastDecodeResult;
|
|
@@ -1366,6 +1520,14 @@ export class LlamaContextSequence {
|
|
|
1366
1520
|
const deleteStartIndex = Math.max(0, this._nextTokenIndex - this._loadedTokenPredictions.length);
|
|
1367
1521
|
await this._eraseContextTokenRanges([{ start: deleteStartIndex, end: this._nextTokenIndex }], { canResetTokenPredictor: true, canRemovePredictionTokens: true, skipLock: true });
|
|
1368
1522
|
this._loadedTokenPredictions.length = 0;
|
|
1523
|
+
if (this.needsCheckpoints) {
|
|
1524
|
+
await this._takeCheckpoint(internalCheckpoints.speculative.name, internalCheckpoints.speculative.maxCheckpoints);
|
|
1525
|
+
await this._takeIntervalCheckpointIfNeeded();
|
|
1526
|
+
}
|
|
1527
|
+
}
|
|
1528
|
+
else if (this._tokenPredictorOwner === tokenPredictorOwner && this.needsCheckpoints) {
|
|
1529
|
+
await this._takeCheckpoint(internalCheckpoints.speculative.name, internalCheckpoints.speculative.maxCheckpoints);
|
|
1530
|
+
await this._takeIntervalCheckpointIfNeeded();
|
|
1369
1531
|
}
|
|
1370
1532
|
if (this._resetTokenPredictor) {
|
|
1371
1533
|
await tokenPredictor.reset({
|
|
@@ -1578,7 +1740,7 @@ export class LlamaContextSequence {
|
|
|
1578
1740
|
* The caller of this function has to wrap it with a lock to ensure this function doesn't run concurrently.
|
|
1579
1741
|
* @internal
|
|
1580
1742
|
*/
|
|
1581
|
-
async _decodeTokens(tokens, logits, evaluationPriority, tokenMeter, contextShiftOptions, logitDataMapper) {
|
|
1743
|
+
async _decodeTokens(tokens, logits, evaluationPriority, tokenMeter, contextShiftOptions, logitDataMapper, afterBatchAction) {
|
|
1582
1744
|
this._ensureNotDisposed();
|
|
1583
1745
|
const tokensLeftToDecode = tokens.slice();
|
|
1584
1746
|
const tokenLogitsLeftToDecode = logits.slice();
|
|
@@ -1604,7 +1766,8 @@ export class LlamaContextSequence {
|
|
|
1604
1766
|
firstTokenSequenceIndex: this._nextTokenIndex,
|
|
1605
1767
|
logits: tokensLogits,
|
|
1606
1768
|
evaluationPriority,
|
|
1607
|
-
tokenMeter
|
|
1769
|
+
tokenMeter,
|
|
1770
|
+
afterBatchAction
|
|
1608
1771
|
}, normalizedLogitDataMapper);
|
|
1609
1772
|
for (const [index, value] of generatedLogits)
|
|
1610
1773
|
res[currentTokenIndex + (index - this._nextTokenIndex)] = value;
|
|
@@ -1648,7 +1811,7 @@ export class LlamaContextSequence {
|
|
|
1648
1811
|
* We need this to make it impossible to manually create instances of this class outside the code of this library
|
|
1649
1812
|
* @internal
|
|
1650
1813
|
*/
|
|
1651
|
-
static _create({ sequenceId, context, tokenMeter, contextShift: { size: contextShiftSize = Math.min(100, Math.ceil(context.contextSize / 2)), strategy: contextShiftStrategy = "eraseBeginning" } = {}, tokenPredictor }) {
|
|
1814
|
+
static _create({ sequenceId, context, tokenMeter, contextShift: { size: contextShiftSize = Math.min(100, Math.ceil(context.contextSize / 2)), strategy: contextShiftStrategy = "eraseBeginning" } = {}, tokenPredictor, checkpoints }) {
|
|
1652
1815
|
return new LlamaContextSequence({
|
|
1653
1816
|
sequenceId,
|
|
1654
1817
|
context,
|
|
@@ -1657,7 +1820,8 @@ export class LlamaContextSequence {
|
|
|
1657
1820
|
size: contextShiftSize,
|
|
1658
1821
|
strategy: contextShiftStrategy
|
|
1659
1822
|
},
|
|
1660
|
-
tokenPredictor
|
|
1823
|
+
tokenPredictor,
|
|
1824
|
+
checkpoints
|
|
1661
1825
|
});
|
|
1662
1826
|
}
|
|
1663
1827
|
}
|