node-llama-cpp 3.0.0-beta.44 → 3.0.0-beta.46
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 +33 -21
- package/bins/_linux-arm64.moved.txt +1 -0
- package/bins/_linux-armv7l.moved.txt +1 -0
- package/bins/_linux-x64-vulkan.moved.txt +1 -0
- package/bins/_linux-x64.moved.txt +1 -0
- package/bins/_mac-arm64-metal.moved.txt +1 -0
- package/bins/_mac-x64.moved.txt +1 -0
- package/bins/_win-arm64.moved.txt +1 -0
- package/bins/_win-x64-vulkan.moved.txt +1 -0
- package/bins/_win-x64.moved.txt +1 -0
- package/dist/ChatWrapper.d.ts +11 -1
- package/dist/ChatWrapper.js +1 -1
- package/dist/ChatWrapper.js.map +1 -1
- package/dist/bindings/AddonTypes.d.ts +30 -19
- package/dist/bindings/Llama.d.ts +11 -0
- package/dist/bindings/Llama.js +37 -6
- package/dist/bindings/Llama.js.map +1 -1
- package/dist/bindings/consts.d.ts +1 -1
- package/dist/bindings/consts.js +2 -0
- package/dist/bindings/consts.js.map +1 -1
- package/dist/bindings/getLlama.d.ts +41 -5
- package/dist/bindings/getLlama.js +14 -3
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/types.d.ts +2 -2
- package/dist/bindings/types.js +2 -0
- package/dist/bindings/types.js.map +1 -1
- package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
- package/dist/bindings/utils/compileLLamaCpp.d.ts +0 -1
- package/dist/bindings/utils/compileLLamaCpp.js +45 -7
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
- package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +0 -1
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +2 -2
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -1
- package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +0 -1
- package/dist/bindings/utils/testCmakeBinary.d.ts +0 -1
- package/dist/chatWrappers/AlpacaChatWrapper.js +4 -3
- package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -1
- package/dist/chatWrappers/ChatMLChatWrapper.js +1 -1
- package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
- package/dist/chatWrappers/FalconChatWrapper.js +5 -4
- package/dist/chatWrappers/FalconChatWrapper.js.map +1 -1
- package/dist/chatWrappers/FunctionaryChatWrapper.d.ts +2 -2
- package/dist/chatWrappers/FunctionaryChatWrapper.js +200 -12
- package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
- package/dist/chatWrappers/GemmaChatWrapper.js +1 -1
- package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -1
- package/dist/chatWrappers/GeneralChatWrapper.js +5 -4
- package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -1
- package/dist/chatWrappers/Llama2ChatWrapper.js +5 -6
- package/dist/chatWrappers/Llama2ChatWrapper.js.map +1 -1
- package/dist/chatWrappers/Llama3ChatWrapper.js +1 -1
- package/dist/chatWrappers/Llama3ChatWrapper.js.map +1 -1
- package/dist/chatWrappers/Llama3_1ChatWrapper.d.ts +13 -9
- package/dist/chatWrappers/Llama3_1ChatWrapper.js +92 -38
- package/dist/chatWrappers/Llama3_1ChatWrapper.js.map +1 -1
- package/dist/chatWrappers/MistralChatWrapper.d.ts +15 -0
- package/dist/chatWrappers/MistralChatWrapper.js +169 -0
- package/dist/chatWrappers/MistralChatWrapper.js.map +1 -0
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +25 -1
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +50 -12
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
- package/dist/chatWrappers/generic/TemplateChatWrapper.d.ts +22 -16
- package/dist/chatWrappers/generic/TemplateChatWrapper.js +28 -24
- package/dist/chatWrappers/generic/TemplateChatWrapper.js.map +1 -1
- package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.d.ts +1 -1
- package/dist/chatWrappers/utils/chunkChatItems.d.ts +10 -0
- package/dist/chatWrappers/utils/chunkChatItems.js +44 -0
- package/dist/chatWrappers/utils/chunkChatItems.js.map +1 -0
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js +37 -26
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -1
- package/dist/chatWrappers/utils/jsonDumps.d.ts +1 -1
- package/dist/chatWrappers/utils/jsonDumps.js +2 -2
- package/dist/chatWrappers/utils/jsonDumps.js.map +1 -1
- package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +30 -6
- package/dist/chatWrappers/utils/resolveChatWrapper.js +71 -25
- package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
- package/dist/cli/cli.js +2 -6
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +2 -1
- package/dist/cli/commands/ChatCommand.js +83 -53
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/CompleteCommand.d.ts +2 -1
- package/dist/cli/commands/CompleteCommand.js +58 -30
- package/dist/cli/commands/CompleteCommand.js.map +1 -1
- package/dist/cli/commands/DebugCommand.js +1 -1
- package/dist/cli/commands/DebugCommand.js.map +1 -1
- package/dist/cli/commands/InfillCommand.d.ts +2 -1
- package/dist/cli/commands/InfillCommand.js +58 -30
- package/dist/cli/commands/InfillCommand.js.map +1 -1
- package/dist/cli/commands/InitCommand.js +1 -1
- package/dist/cli/commands/PullCommand.d.ts +2 -1
- package/dist/cli/commands/PullCommand.js +85 -44
- package/dist/cli/commands/PullCommand.js.map +1 -1
- package/dist/cli/commands/inspect/InspectCommand.js +5 -3
- package/dist/cli/commands/inspect/InspectCommand.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectEstimateCommand.d.ts +12 -0
- package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js +225 -0
- package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js.map +1 -0
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +17 -4
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +31 -9
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +7 -4
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -1
- package/dist/cli/commands/source/SourceCommand.d.ts +4 -0
- package/dist/cli/commands/source/SourceCommand.js +19 -0
- package/dist/cli/commands/source/SourceCommand.js.map +1 -0
- package/dist/cli/commands/{BuildCommand.d.ts → source/commands/BuildCommand.d.ts} +1 -2
- package/dist/cli/commands/{BuildCommand.js → source/commands/BuildCommand.js} +21 -19
- package/dist/cli/commands/source/commands/BuildCommand.js.map +1 -0
- package/dist/cli/commands/{ClearCommand.js → source/commands/ClearCommand.js} +6 -6
- package/dist/cli/commands/source/commands/ClearCommand.js.map +1 -0
- package/dist/cli/commands/{DownloadCommand.d.ts → source/commands/DownloadCommand.d.ts} +1 -2
- package/dist/cli/commands/{DownloadCommand.js → source/commands/DownloadCommand.js} +26 -22
- package/dist/cli/commands/source/commands/DownloadCommand.js.map +1 -0
- package/dist/cli/recommendedModels.js +192 -23
- package/dist/cli/recommendedModels.js.map +1 -1
- package/dist/cli/utils/ConsoleInteraction.d.ts +0 -1
- package/dist/cli/utils/ConsoleTable.js.map +1 -1
- package/dist/cli/utils/basicChooseFromListConsoleInteraction.js.map +1 -1
- package/dist/cli/utils/interactivelyAskForModel.js +6 -17
- package/dist/cli/utils/interactivelyAskForModel.js.map +1 -1
- package/dist/cli/utils/printCommonInfoLines.js +6 -3
- package/dist/cli/utils/printCommonInfoLines.js.map +1 -1
- package/dist/cli/utils/renderModelCompatibilityPercentageWithColors.d.ts +6 -0
- package/dist/cli/utils/renderModelCompatibilityPercentageWithColors.js +14 -0
- package/dist/cli/utils/renderModelCompatibilityPercentageWithColors.js.map +1 -0
- package/dist/cli/utils/resolveModelRecommendationFileOptions.d.ts +1 -1
- package/dist/cli/utils/withCliCommandDescriptionDocsUrl.js.map +1 -1
- package/dist/commands.d.ts +3 -3
- package/dist/commands.js +3 -3
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts +7 -3
- package/dist/config.js +10 -6
- package/dist/config.js.map +1 -1
- package/dist/evaluator/LlamaChat/LlamaChat.d.ts +17 -2
- package/dist/evaluator/LlamaChat/LlamaChat.js +24 -12
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
- package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +3 -1
- package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +21 -13
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +15 -14
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.d.ts +1 -0
- package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +7 -2
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js +5 -0
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
- package/dist/evaluator/LlamaCompletion.d.ts +18 -4
- package/dist/evaluator/LlamaCompletion.js +51 -22
- package/dist/evaluator/LlamaCompletion.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContext.d.ts +21 -0
- package/dist/evaluator/LlamaContext/LlamaContext.js +261 -133
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaSampler.d.ts +1 -0
- package/dist/evaluator/LlamaContext/LlamaSampler.js +31 -0
- package/dist/evaluator/LlamaContext/LlamaSampler.js.map +1 -0
- package/dist/evaluator/LlamaContext/types.d.ts +77 -9
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.js.map +1 -1
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.js +1 -1
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.js.map +1 -1
- package/dist/evaluator/LlamaEmbedding.d.ts +21 -0
- package/dist/evaluator/LlamaEmbedding.js +53 -0
- package/dist/evaluator/LlamaEmbedding.js.map +1 -0
- package/dist/evaluator/LlamaEmbeddingContext.d.ts +1 -5
- package/dist/evaluator/LlamaEmbeddingContext.js +6 -8
- package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
- package/dist/evaluator/LlamaGrammar.d.ts +9 -10
- package/dist/evaluator/LlamaGrammar.js +10 -5
- package/dist/evaluator/LlamaGrammar.js.map +1 -1
- package/dist/evaluator/LlamaGrammarEvaluationState.d.ts +7 -3
- package/dist/evaluator/LlamaGrammarEvaluationState.js +8 -4
- package/dist/evaluator/LlamaGrammarEvaluationState.js.map +1 -1
- package/dist/evaluator/LlamaJsonSchemaGrammar.d.ts +3 -0
- package/dist/evaluator/LlamaJsonSchemaGrammar.js +3 -0
- package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -1
- package/dist/evaluator/LlamaModel/LlamaModel.d.ts +28 -15
- package/dist/evaluator/LlamaModel/LlamaModel.js +66 -51
- package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
- package/dist/evaluator/LlamaModel/utils/TokenAttributes.d.ts +10 -10
- package/dist/evaluator/LlamaModel/utils/TokenAttributes.js +10 -10
- package/dist/evaluator/LlamaModel/utils/TokenAttributes.js.map +1 -1
- package/dist/evaluator/TokenBias.d.ts +20 -8
- package/dist/evaluator/TokenBias.js +44 -12
- package/dist/evaluator/TokenBias.js.map +1 -1
- package/dist/evaluator/TokenMeter.d.ts +3 -12
- package/dist/evaluator/TokenMeter.js +4 -16
- package/dist/evaluator/TokenMeter.js.map +1 -1
- package/dist/gguf/fileReaders/GgufFileReader.d.ts +0 -1
- package/dist/gguf/fileReaders/GgufFileReader.js.map +1 -1
- package/dist/gguf/fileReaders/GgufFsFileReader.d.ts +0 -2
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +5 -3
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +26 -13
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -1
- package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +57 -1
- package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +86 -4
- package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -1
- package/dist/gguf/insights/utils/scoreLevels.js.map +1 -1
- package/dist/gguf/readGgufFileInfo.d.ts +18 -6
- package/dist/gguf/readGgufFileInfo.js +8 -3
- package/dist/gguf/readGgufFileInfo.js.map +1 -1
- package/dist/gguf/types/GgufMetadataTypes.d.ts +18 -2
- package/dist/gguf/types/GgufMetadataTypes.js +16 -1
- package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
- package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js +2 -0
- package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js.map +1 -1
- package/dist/gguf/utils/getGgufFileTypeName.d.ts +1 -1
- package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js +1 -1
- package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/LlamaText.d.ts +3 -0
- package/dist/utils/LlamaText.js +7 -4
- package/dist/utils/LlamaText.js.map +1 -1
- package/dist/utils/LruCache.d.ts +2 -2
- package/dist/utils/LruCache.js.map +1 -1
- package/dist/utils/OverridesObject.d.ts +7 -0
- package/dist/utils/OverridesObject.js +2 -0
- package/dist/utils/OverridesObject.js.map +1 -0
- package/dist/utils/StopGenerationDetector.js.map +1 -1
- package/dist/utils/ThreadsSplitter.d.ts +32 -0
- package/dist/utils/ThreadsSplitter.js +177 -0
- package/dist/utils/ThreadsSplitter.js.map +1 -0
- package/dist/utils/TokenStreamRegulator.js.map +1 -1
- package/dist/utils/appendUserMessageToChatHistory.d.ts +4 -0
- package/dist/utils/appendUserMessageToChatHistory.js +4 -0
- package/dist/utils/appendUserMessageToChatHistory.js.map +1 -1
- package/dist/utils/compareTokens.d.ts +1 -1
- package/dist/utils/compareTokens.js.map +1 -1
- package/dist/utils/createModelDownloader.d.ts +94 -6
- package/dist/utils/createModelDownloader.js +174 -46
- package/dist/utils/createModelDownloader.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +1 -1
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
- package/dist/utils/getGrammarsFolder.js +1 -1
- package/dist/utils/getGrammarsFolder.js.map +1 -1
- package/dist/utils/gitReleaseBundles.js.map +1 -1
- package/dist/utils/modelFileAccesTokens.d.ts +4 -0
- package/dist/utils/modelFileAccesTokens.js +40 -0
- package/dist/utils/modelFileAccesTokens.js.map +1 -0
- package/dist/utils/parseModelFileName.js.map +1 -1
- package/dist/utils/parseTextTemplate.js.map +1 -1
- package/dist/utils/resolveGithubRelease.d.ts +1 -1
- package/dist/utils/resolveLastTokens.js.map +1 -1
- package/dist/utils/spawnCommand.d.ts +0 -1
- package/dist/utils/truncateTextAndRoundToWords.js +3 -1
- package/dist/utils/truncateTextAndRoundToWords.js.map +1 -1
- package/dist/utils/withOra.js +1 -1
- package/dist/utils/withOra.js.map +1 -1
- package/dist/utils/withProgressLog.d.ts +0 -1
- package/dist/utils/wrapAbortSignal.d.ts +0 -1
- package/llama/CMakeLists.txt +20 -12
- package/llama/addon/AddonContext.cpp +69 -202
- package/llama/addon/AddonContext.h +4 -5
- package/llama/addon/AddonGrammar.cpp +8 -11
- package/llama/addon/AddonGrammar.h +4 -3
- package/llama/addon/AddonGrammarEvaluationState.cpp +9 -10
- package/llama/addon/AddonGrammarEvaluationState.h +3 -1
- package/llama/addon/AddonModel.cpp +6 -5
- package/llama/addon/AddonSampler.cpp +513 -0
- package/llama/addon/AddonSampler.h +65 -0
- package/llama/addon/RingBuffer.h +109 -0
- package/llama/addon/addon.cpp +7 -0
- package/llama/addon/globals/addonLog.cpp +2 -1
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/grammars/README.md +1 -1
- package/llama/llama.cpp.info.json +1 -1
- package/package.json +71 -46
- package/templates/packed/electron-typescript-react.json +1 -1
- package/templates/packed/node-typescript.json +1 -1
- package/bins/linux-arm64/_nlcBuildMetadata.json +0 -1
- package/bins/linux-arm64/libggml.so +0 -0
- package/bins/linux-arm64/libllama.so +0 -0
- package/bins/linux-arm64/llama-addon.node +0 -0
- package/bins/linux-armv7l/_nlcBuildMetadata.json +0 -1
- package/bins/linux-armv7l/libggml.so +0 -0
- package/bins/linux-armv7l/libllama.so +0 -0
- package/bins/linux-armv7l/llama-addon.node +0 -0
- package/bins/linux-x64/_nlcBuildMetadata.json +0 -1
- package/bins/linux-x64/libggml.so +0 -0
- package/bins/linux-x64/libllama.so +0 -0
- package/bins/linux-x64/llama-addon.node +0 -0
- package/bins/linux-x64-vulkan/_nlcBuildMetadata.json +0 -1
- package/bins/linux-x64-vulkan/libggml.so +0 -0
- package/bins/linux-x64-vulkan/libllama.so +0 -0
- package/bins/linux-x64-vulkan/llama-addon.node +0 -0
- package/bins/linux-x64-vulkan/vulkan-shaders-gen +0 -0
- package/bins/mac-arm64-metal/_nlcBuildMetadata.json +0 -1
- package/bins/mac-arm64-metal/ggml-common.h +0 -1833
- package/bins/mac-arm64-metal/ggml-metal.metal +0 -6168
- package/bins/mac-arm64-metal/libggml.dylib +0 -0
- package/bins/mac-arm64-metal/libllama.dylib +0 -0
- package/bins/mac-arm64-metal/llama-addon.node +0 -0
- package/bins/mac-x64/_nlcBuildMetadata.json +0 -1
- package/bins/mac-x64/libggml.dylib +0 -0
- package/bins/mac-x64/libllama.dylib +0 -0
- package/bins/mac-x64/llama-addon.node +0 -0
- package/bins/win-arm64/_nlcBuildMetadata.json +0 -1
- package/bins/win-arm64/ggml.dll +0 -0
- package/bins/win-arm64/llama-addon.exp +0 -0
- package/bins/win-arm64/llama-addon.lib +0 -0
- package/bins/win-arm64/llama-addon.node +0 -0
- package/bins/win-arm64/llama.dll +0 -0
- package/bins/win-x64/_nlcBuildMetadata.json +0 -1
- package/bins/win-x64/ggml.dll +0 -0
- package/bins/win-x64/llama-addon.exp +0 -0
- package/bins/win-x64/llama-addon.lib +0 -0
- package/bins/win-x64/llama-addon.node +0 -0
- package/bins/win-x64/llama.dll +0 -0
- package/bins/win-x64-vulkan/_nlcBuildMetadata.json +0 -1
- package/bins/win-x64-vulkan/ggml.dll +0 -0
- package/bins/win-x64-vulkan/llama-addon.exp +0 -0
- package/bins/win-x64-vulkan/llama-addon.lib +0 -0
- package/bins/win-x64-vulkan/llama-addon.node +0 -0
- package/bins/win-x64-vulkan/llama.dll +0 -0
- package/bins/win-x64-vulkan/vulkan-shaders-gen.exe +0 -0
- package/dist/cli/commands/BuildCommand.js.map +0 -1
- package/dist/cli/commands/ClearCommand.js.map +0 -1
- package/dist/cli/commands/DownloadCommand.js.map +0 -1
- package/dist/utils/DeepPartialObject.d.ts +0 -3
- package/dist/utils/DeepPartialObject.js +0 -2
- package/dist/utils/DeepPartialObject.js.map +0 -1
- /package/dist/cli/commands/{ClearCommand.d.ts → source/commands/ClearCommand.d.ts} +0 -0
|
@@ -1,22 +1,34 @@
|
|
|
1
|
-
import { Token } from "../types.js";
|
|
1
|
+
import { Token, Tokenizer } from "../types.js";
|
|
2
2
|
import { LlamaText } from "../utils/LlamaText.js";
|
|
3
|
-
import { LlamaModel } from "./LlamaModel/LlamaModel.js";
|
|
3
|
+
import type { LlamaModel } from "./LlamaModel/LlamaModel.js";
|
|
4
4
|
export declare class TokenBias {
|
|
5
|
-
constructor(
|
|
5
|
+
constructor(tokenizer: Tokenizer);
|
|
6
6
|
/**
|
|
7
7
|
* Adjust the bias of the given token(s).
|
|
8
|
+
*
|
|
8
9
|
* If a text is provided, the bias will be applied to each individual token in the text.
|
|
10
|
+
*
|
|
9
11
|
* Setting a bias to `"never"` will prevent the token from being generated, unless it is required to comply with a grammar.
|
|
12
|
+
*
|
|
10
13
|
* Setting the bias of the EOS or EOT tokens to `"never"` has no effect and will be ignored.
|
|
11
14
|
* @param input - The token(s) to apply the bias to
|
|
12
|
-
* @param bias - The bias to apply to the token(s).
|
|
15
|
+
* @param bias - The probability bias to apply to the token(s).
|
|
16
|
+
*
|
|
13
17
|
* Setting to a positive number increases the probability of the token(s) being generated.
|
|
18
|
+
*
|
|
14
19
|
* Setting to a negative number decreases the probability of the token(s) being generated.
|
|
20
|
+
*
|
|
15
21
|
* Setting to `0` has no effect.
|
|
22
|
+
*
|
|
23
|
+
* For example, setting to `0.5` will increase the probability of the token(s) being generated by 50%.
|
|
24
|
+
* Setting to `-0.5` will decrease the probability of the token(s) being generated by 50%.
|
|
25
|
+
*
|
|
16
26
|
* Setting to `"never"` will prevent the token from being generated, unless it is required to comply with a grammar.
|
|
17
|
-
*
|
|
18
|
-
*
|
|
27
|
+
*
|
|
28
|
+
* Try to play around with values between `0.9` and `-0.9` to see what works for your use case.
|
|
19
29
|
*/
|
|
20
|
-
set(input: Token | Token[] | string | LlamaText, bias: "never" | number
|
|
21
|
-
|
|
30
|
+
set(input: Token | Token[] | string | LlamaText, bias: "never" | number | {
|
|
31
|
+
logit: number;
|
|
32
|
+
}): this;
|
|
33
|
+
static for(modelOrTokenizer: LlamaModel | Tokenizer): TokenBias;
|
|
22
34
|
}
|
|
@@ -1,33 +1,65 @@
|
|
|
1
1
|
import { tokenizeInput } from "../utils/tokenizeInput.js";
|
|
2
2
|
export class TokenBias {
|
|
3
|
-
/** @internal */
|
|
3
|
+
/** @internal */ _tokenizer;
|
|
4
4
|
/** @internal */ _biases = new Map();
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
5
|
+
constructor(tokenizer) {
|
|
6
|
+
this._tokenizer = tokenizer;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
9
9
|
* Adjust the bias of the given token(s).
|
|
10
|
+
*
|
|
10
11
|
* If a text is provided, the bias will be applied to each individual token in the text.
|
|
12
|
+
*
|
|
11
13
|
* Setting a bias to `"never"` will prevent the token from being generated, unless it is required to comply with a grammar.
|
|
14
|
+
*
|
|
12
15
|
* Setting the bias of the EOS or EOT tokens to `"never"` has no effect and will be ignored.
|
|
13
16
|
* @param input - The token(s) to apply the bias to
|
|
14
|
-
* @param bias - The bias to apply to the token(s).
|
|
17
|
+
* @param bias - The probability bias to apply to the token(s).
|
|
18
|
+
*
|
|
15
19
|
* Setting to a positive number increases the probability of the token(s) being generated.
|
|
20
|
+
*
|
|
16
21
|
* Setting to a negative number decreases the probability of the token(s) being generated.
|
|
22
|
+
*
|
|
17
23
|
* Setting to `0` has no effect.
|
|
24
|
+
*
|
|
25
|
+
* For example, setting to `0.5` will increase the probability of the token(s) being generated by 50%.
|
|
26
|
+
* Setting to `-0.5` will decrease the probability of the token(s) being generated by 50%.
|
|
27
|
+
*
|
|
18
28
|
* Setting to `"never"` will prevent the token from being generated, unless it is required to comply with a grammar.
|
|
19
|
-
*
|
|
20
|
-
*
|
|
29
|
+
*
|
|
30
|
+
* Try to play around with values between `0.9` and `-0.9` to see what works for your use case.
|
|
21
31
|
*/
|
|
22
32
|
set(input, bias) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
33
|
+
const resolvedLogit = bias === "never"
|
|
34
|
+
? -Infinity
|
|
35
|
+
: typeof bias === "number"
|
|
36
|
+
? probabilityToLogit(bias)
|
|
37
|
+
: bias.logit;
|
|
38
|
+
for (const token of tokenizeInput(input, this._tokenizer)) {
|
|
39
|
+
if (this._tokenizer.isEogToken(token))
|
|
40
|
+
continue;
|
|
41
|
+
this._biases.set(token, resolvedLogit);
|
|
42
|
+
}
|
|
43
|
+
for (const token of tokenizeInput(input, this._tokenizer, "trimLeadingSpace")) {
|
|
44
|
+
if (this._tokenizer.isEogToken(token))
|
|
45
|
+
continue;
|
|
46
|
+
this._biases.set(token, resolvedLogit);
|
|
47
|
+
}
|
|
27
48
|
return this;
|
|
28
49
|
}
|
|
29
|
-
static for(
|
|
30
|
-
|
|
50
|
+
static for(modelOrTokenizer) {
|
|
51
|
+
if (modelOrTokenizer.tokenizer != null)
|
|
52
|
+
return new TokenBias(modelOrTokenizer.tokenizer);
|
|
53
|
+
return new TokenBias(modelOrTokenizer);
|
|
31
54
|
}
|
|
32
55
|
}
|
|
56
|
+
function probabilityToLogit(probability) {
|
|
57
|
+
if (probability <= -1)
|
|
58
|
+
return -Infinity;
|
|
59
|
+
else if (probability >= 1)
|
|
60
|
+
return Infinity;
|
|
61
|
+
else if (probability === 0)
|
|
62
|
+
return 0;
|
|
63
|
+
return Math.log(probability / (1 - probability));
|
|
64
|
+
}
|
|
33
65
|
//# sourceMappingURL=TokenBias.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenBias.js","sourceRoot":"","sources":["../../src/evaluator/TokenBias.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGxD,MAAM,OAAO,SAAS;IAClB,gBAAgB,CAAiB,
|
|
1
|
+
{"version":3,"file":"TokenBias.js","sourceRoot":"","sources":["../../src/evaluator/TokenBias.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGxD,MAAM,OAAO,SAAS;IAClB,gBAAgB,CAAiB,UAAU,CAAY;IACvD,gBAAgB,CAAiB,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEpE,YAAmB,SAAoB;QACnC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,GAAG,CAAC,KAA2C,EAAE,IAAwC;QAC5F,MAAM,aAAa,GAAG,IAAI,KAAK,OAAO;YAClC,CAAC,CAAC,CAAC,QAAQ;YACX,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ;gBACtB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAErB,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;gBACjC,SAAS;YAEb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC3C,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAC5E,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;gBACjC,SAAS;YAEb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,gBAAwC;QACtD,IAAK,gBAA+B,CAAC,SAAS,IAAI,IAAI;YAClD,OAAO,IAAI,SAAS,CAAE,gBAA+B,CAAC,SAAS,CAAC,CAAC;QAErE,OAAO,IAAI,SAAS,CAAC,gBAA6B,CAAC,CAAC;IACxD,CAAC;CACJ;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC3C,IAAI,WAAW,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,QAAQ,CAAC;SAChB,IAAI,WAAW,IAAI,CAAC;QACrB,OAAO,QAAQ,CAAC;SACf,IAAI,WAAW,KAAK,CAAC;QACtB,OAAO,CAAC,CAAC;IAEb,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tracks the
|
|
2
|
+
* Tracks the usage of tokens.
|
|
3
3
|
*/
|
|
4
4
|
export declare class TokenMeter {
|
|
5
5
|
private _inputTokens;
|
|
6
6
|
private _outputTokens;
|
|
7
|
-
private _restoreStateTokens;
|
|
8
7
|
/**
|
|
9
8
|
* The number of input tokens used
|
|
10
9
|
*/
|
|
@@ -13,11 +12,6 @@ export declare class TokenMeter {
|
|
|
13
12
|
* The number of tokens generated by a model
|
|
14
13
|
*/
|
|
15
14
|
get usedOutputTokens(): number;
|
|
16
|
-
/**
|
|
17
|
-
* The number of tokens used as input to restore a context sequence state to continue previous evaluation.
|
|
18
|
-
* This may be consumed by virtual context sequences.
|
|
19
|
-
*/
|
|
20
|
-
get usedRestoreStateTokens(): number;
|
|
21
15
|
/**
|
|
22
16
|
* Get the current state of the token meter
|
|
23
17
|
*/
|
|
@@ -25,30 +19,27 @@ export declare class TokenMeter {
|
|
|
25
19
|
/**
|
|
26
20
|
* Log the usage of tokens
|
|
27
21
|
*/
|
|
28
|
-
useTokens(tokens: number, type: "input" | "output"
|
|
22
|
+
useTokens(tokens: number, type: "input" | "output"): void;
|
|
29
23
|
/**
|
|
30
24
|
* Get the difference between the current meter and another meter
|
|
31
25
|
*/
|
|
32
26
|
diff(meter: TokenMeter | TokenMeterState): {
|
|
33
27
|
usedInputTokens: number;
|
|
34
28
|
usedOutputTokens: number;
|
|
35
|
-
usedRestoreStateTokens: number;
|
|
36
29
|
};
|
|
37
30
|
/**
|
|
38
31
|
* Log the usage of tokens on multiple meters
|
|
39
32
|
*/
|
|
40
|
-
static useTokens(meters: null | undefined | TokenMeter | readonly TokenMeter[] | ReadonlySet<TokenMeter>, tokens: number, type: "input" | "output"
|
|
33
|
+
static useTokens(meters: null | undefined | TokenMeter | readonly TokenMeter[] | ReadonlySet<TokenMeter>, tokens: number, type: "input" | "output"): void;
|
|
41
34
|
/**
|
|
42
35
|
* Get the difference between two meters
|
|
43
36
|
*/
|
|
44
37
|
static diff(meter1: TokenMeter | TokenMeterState, meter2: TokenMeter | TokenMeterState): {
|
|
45
38
|
usedInputTokens: number;
|
|
46
39
|
usedOutputTokens: number;
|
|
47
|
-
usedRestoreStateTokens: number;
|
|
48
40
|
};
|
|
49
41
|
}
|
|
50
42
|
export type TokenMeterState = {
|
|
51
43
|
usedInputTokens: number;
|
|
52
44
|
usedOutputTokens: number;
|
|
53
|
-
usedRestoreStateTokens: number;
|
|
54
45
|
};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tracks the
|
|
2
|
+
* Tracks the usage of tokens.
|
|
3
3
|
*/
|
|
4
4
|
export class TokenMeter {
|
|
5
5
|
_inputTokens = 0;
|
|
6
6
|
_outputTokens = 0;
|
|
7
|
-
_restoreStateTokens = 0;
|
|
8
7
|
/**
|
|
9
8
|
* The number of input tokens used
|
|
10
9
|
*/
|
|
@@ -17,21 +16,13 @@ export class TokenMeter {
|
|
|
17
16
|
get usedOutputTokens() {
|
|
18
17
|
return this._outputTokens;
|
|
19
18
|
}
|
|
20
|
-
/**
|
|
21
|
-
* The number of tokens used as input to restore a context sequence state to continue previous evaluation.
|
|
22
|
-
* This may be consumed by virtual context sequences.
|
|
23
|
-
*/
|
|
24
|
-
get usedRestoreStateTokens() {
|
|
25
|
-
return this._restoreStateTokens;
|
|
26
|
-
}
|
|
27
19
|
/**
|
|
28
20
|
* Get the current state of the token meter
|
|
29
21
|
*/
|
|
30
22
|
getState() {
|
|
31
23
|
return {
|
|
32
24
|
usedInputTokens: this.usedInputTokens,
|
|
33
|
-
usedOutputTokens: this.usedOutputTokens
|
|
34
|
-
usedRestoreStateTokens: this.usedRestoreStateTokens
|
|
25
|
+
usedOutputTokens: this.usedOutputTokens
|
|
35
26
|
};
|
|
36
27
|
}
|
|
37
28
|
/**
|
|
@@ -46,10 +37,8 @@ export class TokenMeter {
|
|
|
46
37
|
this._inputTokens += tokens;
|
|
47
38
|
else if (type === "output")
|
|
48
39
|
this._outputTokens += tokens;
|
|
49
|
-
else if (type === "restoreState")
|
|
50
|
-
this._restoreStateTokens += tokens;
|
|
51
40
|
else {
|
|
52
|
-
void
|
|
41
|
+
void type;
|
|
53
42
|
throw new TypeError(`Unknown token type: ${type}`);
|
|
54
43
|
}
|
|
55
44
|
}
|
|
@@ -78,8 +67,7 @@ export class TokenMeter {
|
|
|
78
67
|
static diff(meter1, meter2) {
|
|
79
68
|
return {
|
|
80
69
|
usedInputTokens: meter1.usedInputTokens - meter2.usedInputTokens,
|
|
81
|
-
usedOutputTokens: meter1.usedOutputTokens - meter2.usedOutputTokens
|
|
82
|
-
usedRestoreStateTokens: meter1.usedRestoreStateTokens - meter2.usedRestoreStateTokens
|
|
70
|
+
usedOutputTokens: meter1.usedOutputTokens - meter2.usedOutputTokens
|
|
83
71
|
};
|
|
84
72
|
}
|
|
85
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenMeter.js","sourceRoot":"","sources":["../../src/evaluator/TokenMeter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,UAAU;IACX,YAAY,GAAW,CAAC,CAAC;IACzB,aAAa,GAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenMeter.js","sourceRoot":"","sources":["../../src/evaluator/TokenMeter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,UAAU;IACX,YAAY,GAAW,CAAC,CAAC;IACzB,aAAa,GAAW,CAAC,CAAC;IAElC;;OAEG;IACH,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,OAAO;YACH,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SAC1C,CAAC;IACN,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,MAAc,EAAE,IAAwB;QACrD,IAAI,MAAM,GAAG,CAAC;YACV,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;aACjD,IAAI,MAAM,KAAK,CAAC;YACjB,OAAO;QAEX,IAAI,IAAI,KAAK,OAAO;YAChB,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC;aAC3B,IAAI,IAAI,KAAK,QAAQ;YACtB,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC;aAC5B,CAAC;YACF,KAAM,IAAqB,CAAC;YAC5B,MAAM,IAAI,SAAS,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,KAAmC;QAC3C,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAS,CACnB,MAAuF,EACvF,MAAc,EACd,IAAwB;QAExB,IAAI,MAAM,IAAI,IAAI;YACd,OAAO;QAEX,IAAI,MAAM,YAAY,UAAU;YAC5B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aAC9B,CAAC;YACF,KAAK,MAAM,KAAK,IAAI,MAAM;gBACtB,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,IAAI,CACd,MAAoC,EACpC,MAAoC;QAEpC,OAAO;YACH,eAAe,EAAE,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe;YAChE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB;SACtE,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GgufFileReader.js","sourceRoot":"","sources":["../../../src/gguf/fileReaders/GgufFileReader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GgufFileReader.js","sourceRoot":"","sources":["../../../src/gguf/fileReaders/GgufFileReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import retry from "async-retry";
|
|
4
2
|
import { GgufReadOffset } from "../utils/GgufReadOffset.js";
|
|
3
|
+
import { ModelFileAccessTokens } from "../../utils/modelFileAccesTokens.js";
|
|
5
4
|
import { GgufFileReader } from "./GgufFileReader.js";
|
|
6
5
|
type GgufFetchFileReaderOptions = {
|
|
7
6
|
url: string;
|
|
8
7
|
retryOptions?: retry.Options;
|
|
9
8
|
headers?: Record<string, string>;
|
|
10
9
|
signal?: AbortSignal;
|
|
10
|
+
tokens?: ModelFileAccessTokens;
|
|
11
11
|
};
|
|
12
12
|
export declare class GgufNetworkFetchFileReader extends GgufFileReader {
|
|
13
13
|
readonly url: string;
|
|
14
14
|
readonly retryOptions: retry.Options;
|
|
15
15
|
readonly headers: Record<string, string>;
|
|
16
|
+
readonly tokens?: ModelFileAccessTokens;
|
|
16
17
|
private readonly _signal?;
|
|
17
|
-
|
|
18
|
+
private _tryHeaders;
|
|
19
|
+
constructor({ url, retryOptions, headers, tokens, signal }: GgufFetchFileReaderOptions);
|
|
18
20
|
readByteRange(offset: number | GgufReadOffset, length: number): Buffer | Promise<Buffer>;
|
|
19
21
|
protected ensureHasByteRange(offset: number | GgufReadOffset, length: number): Promise<void> | undefined;
|
|
20
22
|
private _fetchToExpandBufferUpToOffset;
|
|
@@ -2,17 +2,21 @@ import retry from "async-retry";
|
|
|
2
2
|
import { withLock } from "lifecycle-utils";
|
|
3
3
|
import { GgufReadOffset } from "../utils/GgufReadOffset.js";
|
|
4
4
|
import { defaultExtraAllocationSize, ggufDefaultFetchRetryOptions } from "../consts.js";
|
|
5
|
+
import { resolveModelFileAccessTokensTryHeaders } from "../../utils/modelFileAccesTokens.js";
|
|
5
6
|
import { GgufFileReader } from "./GgufFileReader.js";
|
|
6
7
|
export class GgufNetworkFetchFileReader extends GgufFileReader {
|
|
7
8
|
url;
|
|
8
9
|
retryOptions;
|
|
9
10
|
headers;
|
|
11
|
+
tokens;
|
|
10
12
|
_signal;
|
|
11
|
-
|
|
13
|
+
_tryHeaders = undefined;
|
|
14
|
+
constructor({ url, retryOptions = ggufDefaultFetchRetryOptions, headers, tokens, signal }) {
|
|
12
15
|
super();
|
|
13
16
|
this.url = url;
|
|
14
17
|
this.retryOptions = retryOptions;
|
|
15
18
|
this.headers = headers ?? {};
|
|
19
|
+
this.tokens = tokens;
|
|
16
20
|
this._signal = signal;
|
|
17
21
|
}
|
|
18
22
|
readByteRange(offset, length) {
|
|
@@ -62,18 +66,27 @@ export class GgufNetworkFetchFileReader extends GgufFileReader {
|
|
|
62
66
|
});
|
|
63
67
|
}
|
|
64
68
|
async _fetchByteRange(start, length) {
|
|
65
|
-
|
|
66
|
-
headers
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
if (this._tryHeaders == null)
|
|
70
|
+
this._tryHeaders = await resolveModelFileAccessTokensTryHeaders(this.url, this.tokens, this.headers);
|
|
71
|
+
const headersToTry = [this.headers, ...this._tryHeaders];
|
|
72
|
+
while (headersToTry.length > 0) {
|
|
73
|
+
const headers = headersToTry.shift();
|
|
74
|
+
const response = await fetch(this.url, {
|
|
75
|
+
headers: {
|
|
76
|
+
...headers,
|
|
77
|
+
Range: `bytes=${start}-${start + length}`,
|
|
78
|
+
accept: "*/*"
|
|
79
|
+
},
|
|
80
|
+
signal: this._signal
|
|
81
|
+
});
|
|
82
|
+
if ((response.status >= 500 || response.status === 429) && headersToTry.length > 0)
|
|
83
|
+
continue;
|
|
84
|
+
if (!response.ok)
|
|
85
|
+
throw new Error(`Failed to fetch byte range: ${response.status} ${response.statusText}`);
|
|
86
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
87
|
+
return Buffer.from(arrayBuffer);
|
|
88
|
+
}
|
|
89
|
+
throw new Error("Failed to fetch byte range: no more headers to try");
|
|
77
90
|
}
|
|
78
91
|
}
|
|
79
92
|
//# sourceMappingURL=GgufNetworkFetchFileReader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GgufNetworkFetchFileReader.js","sourceRoot":"","sources":["../../../src/gguf/fileReaders/GgufNetworkFetchFileReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAC,0BAA0B,EAAE,4BAA4B,EAAC,MAAM,cAAc,CAAC;AACtF,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"GgufNetworkFetchFileReader.js","sourceRoot":"","sources":["../../../src/gguf/fileReaders/GgufNetworkFetchFileReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,65 @@ import { BuildGpu } from "../../bindings/types.js";
|
|
|
2
2
|
import { LlamaModelOptions } from "../../evaluator/LlamaModel/LlamaModel.js";
|
|
3
3
|
import { LlamaContextOptions } from "../../evaluator/LlamaContext/types.js";
|
|
4
4
|
import type { GgufInsights } from "./GgufInsights.js";
|
|
5
|
+
export declare const defaultTrainContextSizeForEstimationPurposes = 4096;
|
|
5
6
|
export declare class GgufInsightsConfigurationResolver {
|
|
6
7
|
private constructor();
|
|
7
8
|
get ggufInsights(): GgufInsights;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve the best configuration for loading a model and creating a context using the current hardware.
|
|
11
|
+
*
|
|
12
|
+
* Specifying a `targetGpuLayers` and/or `targetContextSize` will ensure the resolved configuration matches those values,
|
|
13
|
+
* but note it can lower the compatibility score if the hardware doesn't support it.
|
|
14
|
+
*
|
|
15
|
+
* Overriding hardware values it possible by configuring `hardwareOverrides`.
|
|
16
|
+
* @param options
|
|
17
|
+
* @param hardwareOverrides
|
|
18
|
+
*/
|
|
19
|
+
resolveAndScoreConfig({ targetGpuLayers, targetContextSize, embeddingContext, flashAttention }?: {
|
|
20
|
+
targetGpuLayers?: number | "max";
|
|
21
|
+
targetContextSize?: number;
|
|
22
|
+
embeddingContext?: boolean;
|
|
23
|
+
flashAttention?: boolean;
|
|
24
|
+
}, { getVramState, getRamState, llamaVramPaddingSize, llamaGpu, llamaSupportsGpuOffloading }?: {
|
|
25
|
+
getVramState?(): Promise<{
|
|
26
|
+
total: number;
|
|
27
|
+
free: number;
|
|
28
|
+
}>;
|
|
29
|
+
getRamState?(): Promise<{
|
|
30
|
+
total: number;
|
|
31
|
+
free: number;
|
|
32
|
+
}>;
|
|
33
|
+
llamaVramPaddingSize?: number;
|
|
34
|
+
llamaGpu?: BuildGpu;
|
|
35
|
+
llamaSupportsGpuOffloading?: boolean;
|
|
36
|
+
}): Promise<{
|
|
37
|
+
/**
|
|
38
|
+
* A number between `0` (inclusive) and `1` (inclusive) representing the compatibility score.
|
|
39
|
+
*/
|
|
40
|
+
compatibilityScore: number;
|
|
41
|
+
/**
|
|
42
|
+
* A number starting at `0` with no upper limit representing the bonus score.
|
|
43
|
+
* For each multiplier of the specified `contextSize` that the resolved context size is larger by, 1 bonus point is given.
|
|
44
|
+
*/
|
|
45
|
+
bonusScore: number;
|
|
46
|
+
/**
|
|
47
|
+
* The total score, which is the sum of the compatibility and bonus scores.
|
|
48
|
+
*/
|
|
49
|
+
totalScore: number;
|
|
50
|
+
/**
|
|
51
|
+
* The resolved values used to calculate the scores.
|
|
52
|
+
*/
|
|
53
|
+
resolvedValues: {
|
|
54
|
+
gpuLayers: number;
|
|
55
|
+
contextSize: number;
|
|
56
|
+
modelRamUsage: number;
|
|
57
|
+
contextRamUsage: number;
|
|
58
|
+
totalRamUsage: number;
|
|
59
|
+
modelVramUsage: number;
|
|
60
|
+
contextVramUsage: number;
|
|
61
|
+
totalVramUsage: number;
|
|
62
|
+
};
|
|
63
|
+
}>;
|
|
8
64
|
/**
|
|
9
65
|
* Score the compatibility of the model configuration with the current GPU and VRAM state.
|
|
10
66
|
* Assumes a model is loaded with the default `"auto"` configurations.
|
|
@@ -62,7 +118,7 @@ export declare class GgufInsightsConfigurationResolver {
|
|
|
62
118
|
totalVramUsage: number;
|
|
63
119
|
};
|
|
64
120
|
}>;
|
|
65
|
-
resolveModelGpuLayers(gpuLayers
|
|
121
|
+
resolveModelGpuLayers(gpuLayers?: LlamaModelOptions["gpuLayers"], { ignoreMemorySafetyChecks, getVramState, llamaVramPaddingSize, llamaGpu, llamaSupportsGpuOffloading, defaultContextFlashAttention }?: {
|
|
66
122
|
ignoreMemorySafetyChecks?: boolean;
|
|
67
123
|
getVramState?(): Promise<{
|
|
68
124
|
total: number;
|
|
@@ -3,6 +3,7 @@ import { getDefaultContextSequences } from "../../evaluator/LlamaContext/LlamaCo
|
|
|
3
3
|
import { resolveModelGpuLayersOption } from "./utils/resolveModelGpuLayersOption.js";
|
|
4
4
|
import { resolveContextContextSizeOption } from "./utils/resolveContextContextSizeOption.js";
|
|
5
5
|
import { scoreLevels } from "./utils/scoreLevels.js";
|
|
6
|
+
export const defaultTrainContextSizeForEstimationPurposes = 4096;
|
|
6
7
|
export class GgufInsightsConfigurationResolver {
|
|
7
8
|
/** @internal */ _ggufInsights;
|
|
8
9
|
constructor(ggufInsights) {
|
|
@@ -11,6 +12,84 @@ export class GgufInsightsConfigurationResolver {
|
|
|
11
12
|
get ggufInsights() {
|
|
12
13
|
return this._ggufInsights;
|
|
13
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the best configuration for loading a model and creating a context using the current hardware.
|
|
17
|
+
*
|
|
18
|
+
* Specifying a `targetGpuLayers` and/or `targetContextSize` will ensure the resolved configuration matches those values,
|
|
19
|
+
* but note it can lower the compatibility score if the hardware doesn't support it.
|
|
20
|
+
*
|
|
21
|
+
* Overriding hardware values it possible by configuring `hardwareOverrides`.
|
|
22
|
+
* @param options
|
|
23
|
+
* @param hardwareOverrides
|
|
24
|
+
*/
|
|
25
|
+
async resolveAndScoreConfig({ targetGpuLayers, targetContextSize, embeddingContext = false, flashAttention = false } = {}, { getVramState = (() => this._ggufInsights._llama._vramOrchestrator.getMemoryState()), getRamState = (async () => ({ total: os.totalmem(), free: os.freemem() })), llamaVramPaddingSize = this._ggufInsights._llama.vramPaddingSize, llamaGpu = this._ggufInsights._llama.gpu, llamaSupportsGpuOffloading = this._ggufInsights._llama.supportsGpuOffloading } = {}) {
|
|
26
|
+
const compatibilityScore = await this.scoreModelConfigurationCompatibility({
|
|
27
|
+
flashAttention,
|
|
28
|
+
contextSize: targetContextSize,
|
|
29
|
+
embeddingContext
|
|
30
|
+
}, {
|
|
31
|
+
getVramState,
|
|
32
|
+
getRamState,
|
|
33
|
+
llamaVramPaddingSize,
|
|
34
|
+
llamaGpu,
|
|
35
|
+
llamaSupportsGpuOffloading
|
|
36
|
+
});
|
|
37
|
+
if (targetContextSize != null || targetGpuLayers != null) {
|
|
38
|
+
const vramState = await getVramState();
|
|
39
|
+
const resolvedGpuLayers = await this.resolveModelGpuLayers(targetGpuLayers == null
|
|
40
|
+
? {
|
|
41
|
+
fitContext: {
|
|
42
|
+
contextSize: targetContextSize,
|
|
43
|
+
embeddingContext
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
: targetGpuLayers, {
|
|
47
|
+
getVramState: async () => vramState,
|
|
48
|
+
defaultContextFlashAttention: flashAttention,
|
|
49
|
+
ignoreMemorySafetyChecks: targetGpuLayers != null,
|
|
50
|
+
llamaGpu,
|
|
51
|
+
llamaSupportsGpuOffloading,
|
|
52
|
+
llamaVramPaddingSize
|
|
53
|
+
});
|
|
54
|
+
const estimatedModelResourceUsage = this._ggufInsights.estimateModelResourceRequirements({
|
|
55
|
+
gpuLayers: resolvedGpuLayers
|
|
56
|
+
});
|
|
57
|
+
const resolvedContextSize = await this._ggufInsights.configurationResolver.resolveContextContextSize(targetContextSize ?? "auto", {
|
|
58
|
+
getVramState: async () => ({
|
|
59
|
+
total: vramState.total,
|
|
60
|
+
free: Math.max(0, vramState.free - estimatedModelResourceUsage.gpuVram)
|
|
61
|
+
}),
|
|
62
|
+
isEmbeddingContext: embeddingContext,
|
|
63
|
+
modelGpuLayers: resolvedGpuLayers,
|
|
64
|
+
modelTrainContextSize: this._ggufInsights.trainContextSize ?? defaultTrainContextSizeForEstimationPurposes,
|
|
65
|
+
flashAttention,
|
|
66
|
+
ignoreMemorySafetyChecks: targetContextSize != null,
|
|
67
|
+
llamaGpu
|
|
68
|
+
});
|
|
69
|
+
const estimatedContextResourceUsage = this._ggufInsights.estimateContextResourceRequirements({
|
|
70
|
+
contextSize: resolvedContextSize,
|
|
71
|
+
isEmbeddingContext: embeddingContext,
|
|
72
|
+
modelGpuLayers: resolvedGpuLayers,
|
|
73
|
+
flashAttention
|
|
74
|
+
});
|
|
75
|
+
compatibilityScore.resolvedValues = {
|
|
76
|
+
gpuLayers: resolvedGpuLayers,
|
|
77
|
+
contextSize: resolvedContextSize,
|
|
78
|
+
modelRamUsage: estimatedModelResourceUsage.cpuRam,
|
|
79
|
+
contextRamUsage: estimatedContextResourceUsage.cpuRam,
|
|
80
|
+
totalRamUsage: estimatedModelResourceUsage.cpuRam + estimatedContextResourceUsage.cpuRam,
|
|
81
|
+
modelVramUsage: estimatedModelResourceUsage.gpuVram,
|
|
82
|
+
contextVramUsage: estimatedContextResourceUsage.gpuVram,
|
|
83
|
+
totalVramUsage: estimatedModelResourceUsage.gpuVram + estimatedContextResourceUsage.gpuVram
|
|
84
|
+
};
|
|
85
|
+
if (compatibilityScore.resolvedValues.totalVramUsage > vramState.total) {
|
|
86
|
+
compatibilityScore.compatibilityScore = 0;
|
|
87
|
+
compatibilityScore.bonusScore = 0;
|
|
88
|
+
compatibilityScore.totalScore = 0;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return compatibilityScore;
|
|
92
|
+
}
|
|
14
93
|
/**
|
|
15
94
|
* Score the compatibility of the model configuration with the current GPU and VRAM state.
|
|
16
95
|
* Assumes a model is loaded with the default `"auto"` configurations.
|
|
@@ -25,16 +104,18 @@ export class GgufInsightsConfigurationResolver {
|
|
|
25
104
|
* `contextSize` defaults to `4096` (if the model train context size is lower than this, the model train context size is used instead).
|
|
26
105
|
*/
|
|
27
106
|
async scoreModelConfigurationCompatibility({ contextSize = Math.min(4096, this._ggufInsights.trainContextSize ?? 4096), embeddingContext = false, flashAttention = false } = {}, { getVramState = (() => this._ggufInsights._llama._vramOrchestrator.getMemoryState()), getRamState = (async () => ({ total: os.totalmem(), free: os.freemem() })), llamaVramPaddingSize = this._ggufInsights._llama.vramPaddingSize, llamaGpu = this._ggufInsights._llama.gpu, llamaSupportsGpuOffloading = this._ggufInsights._llama.supportsGpuOffloading } = {}) {
|
|
28
|
-
const defaultTrainContextSize = 4096;
|
|
29
107
|
const [vramState, ramState] = await Promise.all([
|
|
30
108
|
getVramState(),
|
|
31
109
|
getRamState()
|
|
32
110
|
]);
|
|
33
|
-
const resolvedGpuLayers = await this.resolveModelGpuLayers(
|
|
111
|
+
const resolvedGpuLayers = await this.resolveModelGpuLayers(embeddingContext
|
|
112
|
+
? { fitContext: { embeddingContext: true } }
|
|
113
|
+
: "auto", {
|
|
34
114
|
getVramState: async () => vramState,
|
|
35
115
|
llamaVramPaddingSize,
|
|
36
116
|
llamaGpu,
|
|
37
|
-
llamaSupportsGpuOffloading
|
|
117
|
+
llamaSupportsGpuOffloading,
|
|
118
|
+
defaultContextFlashAttention: flashAttention
|
|
38
119
|
});
|
|
39
120
|
const canUseGpu = llamaSupportsGpuOffloading && llamaGpu !== false;
|
|
40
121
|
const estimatedModelResourceUsage = this._ggufInsights.estimateModelResourceRequirements({
|
|
@@ -48,7 +129,8 @@ export class GgufInsightsConfigurationResolver {
|
|
|
48
129
|
llamaGpu,
|
|
49
130
|
isEmbeddingContext: embeddingContext,
|
|
50
131
|
modelGpuLayers: resolvedGpuLayers,
|
|
51
|
-
modelTrainContextSize: this._ggufInsights.trainContextSize ??
|
|
132
|
+
modelTrainContextSize: this._ggufInsights.trainContextSize ?? defaultTrainContextSizeForEstimationPurposes,
|
|
133
|
+
flashAttention
|
|
52
134
|
});
|
|
53
135
|
const estimatedContextResourceUsage = this._ggufInsights.estimateContextResourceRequirements({
|
|
54
136
|
contextSize: resolvedContextSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GgufInsightsConfigurationResolver.js","sourceRoot":"","sources":["../../../src/gguf/insights/GgufInsightsConfigurationResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAIpB,OAAO,EAAC,0BAA0B,EAAC,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAC,2BAA2B,EAAC,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAC,+BAA+B,EAAC,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"GgufInsightsConfigurationResolver.js","sourceRoot":"","sources":["../../../src/gguf/insights/GgufInsightsConfigurationResolver.ts"],"names":[],"mappings":"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"}
|