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.
Files changed (66) hide show
  1. package/dist/bindings/AddonTypes.d.ts +11 -0
  2. package/dist/bindings/Llama.js +20 -2
  3. package/dist/bindings/Llama.js.map +1 -1
  4. package/dist/bindings/getLlama.d.ts +1 -1
  5. package/dist/bindings/getLlama.js +19 -8
  6. package/dist/bindings/getLlama.js.map +1 -1
  7. package/dist/bindings/utils/compileLLamaCpp.d.ts +2 -1
  8. package/dist/bindings/utils/compileLLamaCpp.js +8 -0
  9. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  10. package/dist/bindings/utils/getLlamaGpuTypes.js +2 -0
  11. package/dist/bindings/utils/getLlamaGpuTypes.js.map +1 -1
  12. package/dist/chatWrappers/QwenChatWrapper.d.ts +7 -0
  13. package/dist/chatWrappers/QwenChatWrapper.js +176 -56
  14. package/dist/chatWrappers/QwenChatWrapper.js.map +1 -1
  15. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +127 -88
  16. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
  17. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.d.ts +16 -10
  18. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js +115 -5
  19. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js.map +1 -1
  20. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js +1 -0
  21. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js.map +1 -1
  22. package/dist/cli/commands/ChatCommand.js +1 -1
  23. package/dist/cli/commands/ChatCommand.js.map +1 -1
  24. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +51 -4
  25. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  26. package/dist/cli/utils/resolveNpmrcConfig.d.ts +18 -0
  27. package/dist/cli/utils/resolveNpmrcConfig.js +129 -0
  28. package/dist/cli/utils/resolveNpmrcConfig.js.map +1 -0
  29. package/dist/config.d.ts +3 -0
  30. package/dist/config.js +4 -1
  31. package/dist/config.js.map +1 -1
  32. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +8 -2
  33. package/dist/evaluator/LlamaChat/LlamaChat.js +99 -6
  34. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  35. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +8 -2
  36. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -1
  37. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +8 -2
  38. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  39. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +88 -0
  40. package/dist/evaluator/LlamaContext/LlamaContext.js +181 -17
  41. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  42. package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.d.ts +27 -0
  43. package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.js +130 -0
  44. package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.js.map +1 -0
  45. package/dist/gguf/insights/GgufInsights.d.ts +3 -0
  46. package/dist/gguf/insights/GgufInsights.js +221 -43
  47. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  48. package/dist/gguf/types/GgufMetadataTypes.d.ts +15 -1
  49. package/dist/gguf/types/GgufMetadataTypes.js +4 -0
  50. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/dist/utils/getFirstWritableDir.d.ts +8 -0
  53. package/dist/utils/getFirstWritableDir.js +60 -0
  54. package/dist/utils/getFirstWritableDir.js.map +1 -0
  55. package/dist/utils/getTempDir.d.ts +10 -0
  56. package/dist/utils/getTempDir.js +121 -0
  57. package/dist/utils/getTempDir.js.map +1 -0
  58. package/dist/utils/resolveModelFile.js +19 -8
  59. package/dist/utils/resolveModelFile.js.map +1 -1
  60. package/llama/addon/AddonContext.cpp +168 -0
  61. package/llama/addon/AddonContext.h +27 -0
  62. package/llama/addon/addon.cpp +1 -0
  63. package/llama/binariesGithubRelease.json +1 -1
  64. package/llama/gitRelease.bundle +0 -0
  65. package/llama/llama.cpp.info.json +1 -1
  66. 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 awaitPromise;
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
- awaitPromise = this.evaluateWithoutGeneratingNewTokens(newSequenceTokens, { _skipLock: skipLock });
1035
+ if (newSequenceTokens.length > 0)
1036
+ awaitEvaluationPromise = this.evaluateWithoutGeneratingNewTokens(newSequenceTokens, { _skipLock: skipLock });
978
1037
  });
979
- if (awaitPromise != null)
980
- await awaitPromise;
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
  }