node-llama-cpp 3.0.0-beta.13 → 3.0.0-beta.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/ChatWrapper.js +4 -0
- package/dist/ChatWrapper.js.map +1 -1
- package/dist/bindings/AddonTypes.d.ts +35 -6
- package/dist/bindings/Llama.d.ts +12 -0
- package/dist/bindings/Llama.js +100 -7
- package/dist/bindings/Llama.js.map +1 -1
- package/dist/bindings/getLlama.d.ts +19 -1
- package/dist/bindings/getLlama.js +16 -6
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/types.d.ts +18 -0
- package/dist/bindings/types.js +31 -2
- package/dist/bindings/types.js.map +1 -1
- package/dist/bindings/utils/MemoryOrchestrator.d.ts +21 -0
- package/dist/bindings/utils/MemoryOrchestrator.js +49 -0
- package/dist/bindings/utils/MemoryOrchestrator.js.map +1 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.d.ts +1 -1
- package/dist/bindings/utils/cloneLlamaCppRepo.js +4 -3
- package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
- package/dist/bindings/utils/compileLLamaCpp.d.ts +4 -1
- package/dist/bindings/utils/compileLLamaCpp.js +133 -97
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
- package/dist/bindings/utils/detectAvailableComputeLayers.d.ts +3 -0
- package/dist/bindings/utils/detectAvailableComputeLayers.js +155 -13
- package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -1
- package/dist/bindings/utils/getLlamaWithoutBackend.d.ts +5 -0
- package/dist/bindings/utils/getLlamaWithoutBackend.js +27 -0
- package/dist/bindings/utils/getLlamaWithoutBackend.js.map +1 -0
- package/dist/bindings/utils/logDistroInstallInstruction.d.ts +1 -0
- package/dist/bindings/utils/logDistroInstallInstruction.js +16 -6
- package/dist/bindings/utils/logDistroInstallInstruction.js.map +1 -1
- package/dist/bindings/utils/resolveCustomCmakeOptions.js +2 -2
- package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -1
- package/dist/bindings/utils/testBindingBinary.js +2 -2
- package/dist/bindings/utils/testBindingBinary.js.map +1 -1
- package/dist/bindings/utils/testCmakeBinary.d.ts +5 -0
- package/dist/bindings/utils/testCmakeBinary.js +32 -0
- package/dist/bindings/utils/testCmakeBinary.js.map +1 -0
- package/dist/chatWrappers/AlpacaChatWrapper.d.ts +2 -1
- package/dist/chatWrappers/AlpacaChatWrapper.js +9 -2
- package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -1
- package/dist/chatWrappers/ChatMLChatWrapper.js +12 -10
- package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
- package/dist/chatWrappers/FalconChatWrapper.d.ts +2 -1
- package/dist/chatWrappers/FalconChatWrapper.js +28 -11
- package/dist/chatWrappers/FalconChatWrapper.js.map +1 -1
- package/dist/chatWrappers/FunctionaryChatWrapper.js +59 -45
- package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
- package/dist/chatWrappers/GemmaChatWrapper.js +9 -7
- package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -1
- package/dist/chatWrappers/GeneralChatWrapper.d.ts +2 -1
- package/dist/chatWrappers/GeneralChatWrapper.js +35 -12
- package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -1
- package/dist/chatWrappers/LlamaChatWrapper.d.ts +7 -0
- package/dist/chatWrappers/LlamaChatWrapper.js +26 -8
- package/dist/chatWrappers/LlamaChatWrapper.js.map +1 -1
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +73 -0
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +355 -0
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -0
- package/dist/{TemplateChatWrapper.d.ts → chatWrappers/generic/TemplateChatWrapper.d.ts} +16 -18
- package/dist/{TemplateChatWrapper.js → chatWrappers/generic/TemplateChatWrapper.js} +31 -69
- package/dist/chatWrappers/generic/TemplateChatWrapper.js.map +1 -0
- package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.d.ts +33 -0
- package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js +45 -0
- package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js.map +1 -0
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.d.ts +4 -0
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js +206 -0
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -0
- package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +67 -0
- package/dist/chatWrappers/utils/resolveChatWrapper.js +206 -0
- package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -0
- package/dist/cli/cli.js +1 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +7 -4
- package/dist/cli/commands/ChatCommand.js +177 -70
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/ClearCommand.d.ts +1 -1
- package/dist/cli/commands/ClearCommand.js +5 -5
- package/dist/cli/commands/ClearCommand.js.map +1 -1
- package/dist/cli/commands/CompleteCommand.d.ts +3 -2
- package/dist/cli/commands/CompleteCommand.js +115 -51
- package/dist/cli/commands/CompleteCommand.js.map +1 -1
- package/dist/cli/commands/InfillCommand.d.ts +3 -2
- package/dist/cli/commands/InfillCommand.js +115 -51
- package/dist/cli/commands/InfillCommand.js.map +1 -1
- package/dist/cli/commands/OnPostInstallCommand.js +2 -0
- package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
- package/dist/cli/commands/{InspectCommand.d.ts → inspect/InspectCommand.d.ts} +1 -4
- package/dist/cli/commands/inspect/InspectCommand.js +17 -0
- package/dist/cli/commands/inspect/InspectCommand.js.map +1 -0
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.d.ts +10 -0
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +108 -0
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -0
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.d.ts +4 -0
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +98 -0
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -0
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.d.ts +14 -0
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +577 -0
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -0
- package/dist/cli/utils/ConsoleTable.d.ts +23 -0
- package/dist/cli/utils/ConsoleTable.js +86 -0
- package/dist/cli/utils/ConsoleTable.js.map +1 -0
- package/dist/cli/utils/printCommonInfoLines.d.ts +9 -0
- package/dist/cli/utils/printCommonInfoLines.js +70 -0
- package/dist/cli/utils/printCommonInfoLines.js.map +1 -0
- package/dist/cli/utils/printInfoLine.d.ts +10 -0
- package/dist/cli/utils/printInfoLine.js +45 -0
- package/dist/cli/utils/printInfoLine.js.map +1 -0
- package/dist/cli/utils/resolveCommandGgufPath.d.ts +1 -0
- package/dist/cli/utils/resolveCommandGgufPath.js +6 -0
- package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -0
- package/dist/config.d.ts +3 -1
- package/dist/config.js +7 -1
- package/dist/config.js.map +1 -1
- package/dist/evaluator/LlamaChat/LlamaChat.js +13 -5
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
- package/dist/evaluator/LlamaCompletion.js +5 -3
- package/dist/evaluator/LlamaCompletion.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContext.d.ts +43 -9
- package/dist/evaluator/LlamaContext/LlamaContext.js +251 -60
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/evaluator/LlamaContext/types.d.ts +68 -10
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.d.ts +2 -0
- package/dist/evaluator/LlamaContext/utils/{resolveBatchItemsPrioritizingStrategy.js → resolveBatchItemsPrioritizationStrategy.js} +4 -4
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.js.map +1 -0
- package/dist/evaluator/LlamaEmbeddingContext.d.ts +29 -7
- package/dist/evaluator/LlamaEmbeddingContext.js +31 -22
- package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
- package/dist/evaluator/LlamaGrammar.js +1 -0
- package/dist/evaluator/LlamaGrammar.js.map +1 -1
- package/dist/evaluator/LlamaModel.d.ts +78 -20
- package/dist/evaluator/LlamaModel.js +385 -21
- package/dist/evaluator/LlamaModel.js.map +1 -1
- package/dist/evaluator/TokenMeter.d.ts +54 -0
- package/dist/evaluator/TokenMeter.js +86 -0
- package/dist/evaluator/TokenMeter.js.map +1 -0
- package/dist/gguf/GgufInsights.d.ts +40 -0
- package/dist/gguf/GgufInsights.js +350 -0
- package/dist/gguf/GgufInsights.js.map +1 -0
- package/dist/gguf/consts.d.ts +3 -0
- package/dist/gguf/consts.js +8 -0
- package/dist/gguf/consts.js.map +1 -0
- package/dist/gguf/errors/InvalidGgufMagicError.d.ts +3 -0
- package/dist/gguf/errors/InvalidGgufMagicError.js +6 -0
- package/dist/gguf/errors/InvalidGgufMagicError.js.map +1 -0
- package/dist/gguf/errors/UnsupportedGgufValueTypeError.d.ts +4 -0
- package/dist/gguf/errors/UnsupportedGgufValueTypeError.js +9 -0
- package/dist/gguf/errors/UnsupportedGgufValueTypeError.js.map +1 -0
- package/dist/gguf/fileReaders/GgufFileReader.d.ts +33 -0
- package/dist/gguf/fileReaders/GgufFileReader.js +76 -0
- package/dist/gguf/fileReaders/GgufFileReader.js.map +1 -0
- package/dist/gguf/fileReaders/GgufFsFileReader.d.ts +17 -0
- package/dist/gguf/fileReaders/GgufFsFileReader.js +45 -0
- package/dist/gguf/fileReaders/GgufFsFileReader.js.map +1 -0
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +22 -0
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +63 -0
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -0
- package/dist/gguf/parser/GgufV2Parser.d.ts +19 -0
- package/dist/gguf/parser/GgufV2Parser.js +115 -0
- package/dist/gguf/parser/GgufV2Parser.js.map +1 -0
- package/dist/gguf/parser/GgufV3Parser.d.ts +3 -0
- package/dist/gguf/parser/GgufV3Parser.js +4 -0
- package/dist/gguf/parser/GgufV3Parser.js.map +1 -0
- package/dist/gguf/parser/parseGguf.d.ts +8 -0
- package/dist/gguf/parser/parseGguf.js +58 -0
- package/dist/gguf/parser/parseGguf.js.map +1 -0
- package/dist/gguf/readGgufFileInfo.d.ts +30 -0
- package/dist/gguf/readGgufFileInfo.js +37 -0
- package/dist/gguf/readGgufFileInfo.js.map +1 -0
- package/dist/gguf/types/GgufFileInfoTypes.d.ts +52 -0
- package/dist/gguf/types/GgufFileInfoTypes.js +18 -0
- package/dist/gguf/types/GgufFileInfoTypes.js.map +1 -0
- package/dist/gguf/types/GgufMetadataTypes.d.ts +330 -0
- package/dist/gguf/types/GgufMetadataTypes.js +86 -0
- package/dist/gguf/types/GgufMetadataTypes.js.map +1 -0
- package/dist/gguf/types/GgufTensorInfoTypes.d.ts +37 -0
- package/dist/gguf/types/GgufTensorInfoTypes.js +33 -0
- package/dist/gguf/types/GgufTensorInfoTypes.js.map +1 -0
- package/dist/gguf/utils/GgufReadOffset.d.ts +6 -0
- package/dist/gguf/utils/GgufReadOffset.js +18 -0
- package/dist/gguf/utils/GgufReadOffset.js.map +1 -0
- package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.d.ts +5 -0
- package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js +38 -0
- package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js.map +1 -0
- package/dist/gguf/utils/getGgufFileTypeName.d.ts +4 -0
- package/dist/gguf/utils/getGgufFileTypeName.js +13 -0
- package/dist/gguf/utils/getGgufFileTypeName.js.map +1 -0
- package/dist/gguf/utils/getGgufMetadataArchitectureData.d.ts +3 -0
- package/dist/gguf/utils/getGgufMetadataArchitectureData.js +4 -0
- package/dist/gguf/utils/getGgufMetadataArchitectureData.js.map +1 -0
- package/dist/gguf/utils/normalizeGgufDownloadUrl.d.ts +1 -0
- package/dist/gguf/utils/normalizeGgufDownloadUrl.js +16 -0
- package/dist/gguf/utils/normalizeGgufDownloadUrl.js.map +1 -0
- package/dist/index.d.ts +13 -7
- package/dist/index.js +11 -6
- package/dist/index.js.map +1 -1
- package/dist/state.d.ts +2 -0
- package/dist/state.js +7 -0
- package/dist/state.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils/DisposeGuard.d.ts +13 -0
- package/dist/utils/DisposeGuard.js +120 -0
- package/dist/utils/DisposeGuard.js.map +1 -0
- package/dist/utils/InsufficientMemoryError.d.ts +3 -0
- package/dist/utils/InsufficientMemoryError.js +6 -0
- package/dist/utils/InsufficientMemoryError.js.map +1 -0
- package/dist/utils/LlamaText.d.ts +25 -10
- package/dist/utils/LlamaText.js +205 -23
- package/dist/utils/LlamaText.js.map +1 -1
- package/dist/utils/StopGenerationDetector.js +3 -1
- package/dist/utils/StopGenerationDetector.js.map +1 -1
- package/dist/utils/cmake.js +1 -1
- package/dist/utils/cmake.js.map +1 -1
- package/dist/utils/findBestOption.d.ts +4 -0
- package/dist/utils/findBestOption.js +15 -0
- package/dist/utils/findBestOption.js.map +1 -0
- package/dist/utils/getConsoleLogPrefix.js +3 -2
- package/dist/utils/getConsoleLogPrefix.js.map +1 -1
- package/dist/utils/getQueuedTokensBeforeStopTrigger.js +3 -3
- package/dist/utils/getQueuedTokensBeforeStopTrigger.js.map +1 -1
- package/dist/utils/gitReleaseBundles.js +68 -1
- package/dist/utils/gitReleaseBundles.js.map +1 -1
- package/dist/utils/mergeUnionTypes.d.ts +4 -0
- package/dist/utils/parseModelFileName.d.ts +1 -0
- package/dist/utils/parseModelFileName.js +6 -1
- package/dist/utils/parseModelFileName.js.map +1 -1
- package/dist/utils/prettyPrintObject.d.ts +10 -1
- package/dist/utils/prettyPrintObject.js +57 -13
- package/dist/utils/prettyPrintObject.js.map +1 -1
- package/dist/utils/removeNullFields.d.ts +2 -2
- package/dist/utils/removeNullFields.js.map +1 -1
- package/dist/utils/spawnCommand.d.ts +11 -1
- package/dist/utils/spawnCommand.js +55 -7
- package/dist/utils/spawnCommand.js.map +1 -1
- package/dist/utils/tokenizeInput.d.ts +1 -1
- package/dist/utils/tokenizeInput.js +3 -3
- package/dist/utils/tokenizeInput.js.map +1 -1
- package/dist/utils/withOra.d.ts +1 -0
- package/dist/utils/withOra.js +2 -2
- package/dist/utils/withOra.js.map +1 -1
- package/llama/CMakeLists.txt +5 -5
- package/llama/addon.cpp +793 -88
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/gpuInfo/cuda-gpu-info.cu +21 -0
- package/llama/gpuInfo/cuda-gpu-info.h +3 -0
- package/llama/gpuInfo/metal-gpu-info.h +4 -1
- package/llama/gpuInfo/metal-gpu-info.mm +14 -1
- package/llama/gpuInfo/vulkan-gpu-info.cpp +20 -2
- package/llama/gpuInfo/vulkan-gpu-info.h +2 -0
- package/llama/grammars/json.gbnf +1 -1
- package/llama/grammars/json_arr.gbnf +1 -1
- package/llama/llama.cpp.info.json +1 -1
- package/llama/toolchains/win32.host-x64.target-arm64.cmake +41 -0
- package/llamaBins/linux-arm64/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/linux-x64-cuda/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/linux-x64-vulkan/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
- package/llamaBins/mac-arm64-metal/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/mac-arm64-metal/default.metallib +0 -0
- package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
- package/llamaBins/mac-x64/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-arm64/_nlcBuildMetadata.json +1 -0
- package/llamaBins/win-arm64/llama-addon.exp +0 -0
- package/llamaBins/win-arm64/llama-addon.lib +0 -0
- package/llamaBins/win-arm64/llama-addon.node +0 -0
- package/llamaBins/win-x64/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/win-x64/llama-addon.exp +0 -0
- package/llamaBins/win-x64/llama-addon.lib +0 -0
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64-cuda/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
- package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
- package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/win-x64-vulkan/{.buildMetadata.json → _nlcBuildMetadata.json} +1 -1
- package/llamaBins/win-x64-vulkan/llama-addon.exp +0 -0
- package/llamaBins/win-x64-vulkan/llama-addon.lib +0 -0
- package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
- package/package.json +16 -11
- package/dist/TemplateChatWrapper.js.map +0 -1
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.d.ts +0 -33
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js +0 -49
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js.map +0 -1
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +0 -13
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +0 -63
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +0 -1
- package/dist/cli/commands/InspectCommand.js +0 -113
- package/dist/cli/commands/InspectCommand.js.map +0 -1
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +0 -1
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +0 -1
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +0 -2
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +0 -1
- package/dist/gguf/GGUFInsights.d.ts +0 -28
- package/dist/gguf/GGUFInsights.js +0 -58
- package/dist/gguf/GGUFInsights.js.map +0 -1
- package/dist/gguf/GGUFMetadata.d.ts +0 -19
- package/dist/gguf/GGUFMetadata.js +0 -38
- package/dist/gguf/GGUFMetadata.js.map +0 -1
- package/dist/gguf/errors/InvalidGGUFMagicError.d.ts +0 -3
- package/dist/gguf/errors/InvalidGGUFMagicError.js +0 -6
- package/dist/gguf/errors/InvalidGGUFMagicError.js.map +0 -1
- package/dist/gguf/errors/MetadataNotParsedYetError.d.ts +0 -3
- package/dist/gguf/errors/MetadataNotParsedYetError.js +0 -6
- package/dist/gguf/errors/MetadataNotParsedYetError.js.map +0 -1
- package/dist/gguf/errors/MissingNodeLlamaError.d.ts +0 -3
- package/dist/gguf/errors/MissingNodeLlamaError.js +0 -6
- package/dist/gguf/errors/MissingNodeLlamaError.js.map +0 -1
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.d.ts +0 -5
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js +0 -12
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js.map +0 -1
- package/dist/gguf/errors/UnsupportedMetadataTypeError.d.ts +0 -4
- package/dist/gguf/errors/UnsupportedMetadataTypeError.js +0 -8
- package/dist/gguf/errors/UnsupportedMetadataTypeError.js.map +0 -1
- package/dist/gguf/ggufParser/GGUFParser.d.ts +0 -18
- package/dist/gguf/ggufParser/GGUFParser.js +0 -123
- package/dist/gguf/ggufParser/GGUFParser.js.map +0 -1
- package/dist/gguf/ggufParser/GGUFTypes.d.ts +0 -257
- package/dist/gguf/ggufParser/GGUFTypes.js +0 -2
- package/dist/gguf/ggufParser/GGUFTypes.js.map +0 -1
- package/dist/gguf/ggufParser/checkArchitecture.d.ts +0 -14
- package/dist/gguf/ggufParser/checkArchitecture.js +0 -74
- package/dist/gguf/ggufParser/checkArchitecture.js.map +0 -1
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.d.ts +0 -38
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.js +0 -83
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.js.map +0 -1
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.d.ts +0 -14
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.js +0 -35
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.js.map +0 -1
- package/dist/gguf/ggufParser/stream/GGUFReadStream.d.ts +0 -15
- package/dist/gguf/ggufParser/stream/GGUFReadStream.js +0 -40
- package/dist/gguf/ggufParser/stream/GGUFReadStream.js.map +0 -1
- package/dist/utils/parseModelTypeDescription.d.ts +0 -6
- package/dist/utils/parseModelTypeDescription.js +0 -9
- package/dist/utils/parseModelTypeDescription.js.map +0 -1
- package/dist/utils/resolveChatWrapper.d.ts +0 -4
- package/dist/utils/resolveChatWrapper.js +0 -16
- package/dist/utils/resolveChatWrapper.js.map +0 -1
- package/llamaBins/mac-arm64-metal/ggml-metal.metal +0 -7731
- /package/dist/evaluator/LlamaContext/utils/{batchItemsPrioritizingStrategies → batchItemsPrioritizationStrategies}/firstInFirstOutStrategy.d.ts +0 -0
- /package/dist/evaluator/LlamaContext/utils/{batchItemsPrioritizingStrategies → batchItemsPrioritizationStrategies}/firstInFirstOutStrategy.js +0 -0
- /package/dist/evaluator/LlamaContext/utils/{batchItemsPrioritizingStrategies → batchItemsPrioritizationStrategies}/maximumParallelismStrategy.d.ts +0 -0
- /package/dist/evaluator/LlamaContext/utils/{batchItemsPrioritizingStrategies → batchItemsPrioritizationStrategies}/maximumParallelismStrategy.js +0 -0
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import os from "os";
|
|
2
|
-
import bytes from "bytes";
|
|
3
|
-
import chalk from "chalk";
|
|
4
|
-
import { getLlamaForOptions } from "../../bindings/getLlama.js";
|
|
5
|
-
import { detectAvailableComputeLayers } from "../../bindings/utils/detectAvailableComputeLayers.js";
|
|
6
|
-
import { getPlatform } from "../../bindings/utils/getPlatform.js";
|
|
7
|
-
import { LlamaLogLevel } from "../../bindings/types.js";
|
|
8
|
-
import { getPrettyBuildGpuName } from "../../bindings/consts.js";
|
|
9
|
-
const inspectFunctions = ["gpu"];
|
|
10
|
-
export const InspectCommand = {
|
|
11
|
-
command: "inspect [function]",
|
|
12
|
-
describe: "Inspect the inner workings of node-llama-cpp",
|
|
13
|
-
builder(yargs) {
|
|
14
|
-
return yargs
|
|
15
|
-
.option("function", {
|
|
16
|
-
type: "string",
|
|
17
|
-
choices: inspectFunctions,
|
|
18
|
-
demandOption: true,
|
|
19
|
-
description: "inspect function to run"
|
|
20
|
-
});
|
|
21
|
-
},
|
|
22
|
-
async handler({ function: func }) {
|
|
23
|
-
if (func === "gpu")
|
|
24
|
-
await InspectGpuFunction();
|
|
25
|
-
else
|
|
26
|
-
void (func);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
async function InspectGpuFunction() {
|
|
30
|
-
const platform = getPlatform();
|
|
31
|
-
const arch = process.arch;
|
|
32
|
-
const availableComputeLayers = await detectAvailableComputeLayers({ platform });
|
|
33
|
-
const gpusToLogVramUsageOf = [];
|
|
34
|
-
if (platform === "mac" && arch === "arm64") {
|
|
35
|
-
console.info(`${chalk.yellow("Metal:")} ${chalk.green("available")}`);
|
|
36
|
-
gpusToLogVramUsageOf.push("metal");
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
console.info(`${chalk.yellow("Metal:")} ${chalk.red("not supported by llama.cpp on Intel Macs")}`);
|
|
40
|
-
}
|
|
41
|
-
if (availableComputeLayers.cuda.hasNvidiaDriver && !availableComputeLayers.cuda.hasCudaRuntime) {
|
|
42
|
-
console.info(`${chalk.yellow("CUDA:")} ${chalk.red("NVIDIA driver is installed, but CUDA runtime is not")}`);
|
|
43
|
-
}
|
|
44
|
-
else if (availableComputeLayers.cuda.hasCudaRuntime && !availableComputeLayers.cuda.hasNvidiaDriver) {
|
|
45
|
-
console.info(`${chalk.yellow("CUDA:")} ${chalk.red("CUDA runtime is installed, but NVIDIA driver is not")}`);
|
|
46
|
-
}
|
|
47
|
-
else if (availableComputeLayers.cuda.hasCudaRuntime && availableComputeLayers.cuda.hasNvidiaDriver) {
|
|
48
|
-
console.info(`${chalk.yellow("CUDA:")} ${chalk.green("available")}`);
|
|
49
|
-
gpusToLogVramUsageOf.push("cuda");
|
|
50
|
-
}
|
|
51
|
-
if (availableComputeLayers.vulkan) {
|
|
52
|
-
console.info(`${chalk.yellow("Vulkan:")} ${chalk.green("available")}`);
|
|
53
|
-
gpusToLogVramUsageOf.push("vulkan");
|
|
54
|
-
}
|
|
55
|
-
for (const gpu of gpusToLogVramUsageOf) {
|
|
56
|
-
console.info();
|
|
57
|
-
await logGpuVramUsage(gpu);
|
|
58
|
-
}
|
|
59
|
-
console.info();
|
|
60
|
-
await logRamUsage();
|
|
61
|
-
}
|
|
62
|
-
async function logGpuVramUsage(gpu) {
|
|
63
|
-
try {
|
|
64
|
-
const llama = await getLlamaForOptions({
|
|
65
|
-
gpu: gpu,
|
|
66
|
-
build: "never",
|
|
67
|
-
progressLogs: false,
|
|
68
|
-
logLevel: LlamaLogLevel.warn
|
|
69
|
-
}, {
|
|
70
|
-
skipLlamaInit: true
|
|
71
|
-
});
|
|
72
|
-
const gpuName = getPrettyBuildGpuName(gpu);
|
|
73
|
-
const vramStatus = llama.getVramState();
|
|
74
|
-
console.info(`${chalk.yellow(`${gpuName} used VRAM:`)} ${getPercentageString(vramStatus.used, vramStatus.total)}% ${chalk.grey("(" + bytes(vramStatus.used) + "/" + bytes(vramStatus.total) + ")")}`);
|
|
75
|
-
console.info(`${chalk.yellow(`${gpuName} free VRAM:`)} ${getPercentageString(vramStatus.free, vramStatus.total)}% ${chalk.grey("(" + bytes(vramStatus.free) + "/" + bytes(vramStatus.total) + ")")}`);
|
|
76
|
-
}
|
|
77
|
-
catch (err) { }
|
|
78
|
-
}
|
|
79
|
-
async function logRamUsage() {
|
|
80
|
-
const totalMemory = os.totalmem();
|
|
81
|
-
const freeMemory = os.freemem();
|
|
82
|
-
const usedMemory = totalMemory - freeMemory;
|
|
83
|
-
console.info(`${chalk.yellow("Used RAM:")} ${getPercentageString(usedMemory, totalMemory)}% ${chalk.grey("(" + bytes(usedMemory) + "/" + bytes(totalMemory) + ")")}`);
|
|
84
|
-
console.info(`${chalk.yellow("Free RAM:")} ${getPercentageString(freeMemory, totalMemory)}% ${chalk.grey("(" + bytes(freeMemory) + "/" + bytes(totalMemory) + ")")}`);
|
|
85
|
-
}
|
|
86
|
-
function getPercentageString(amount, total) {
|
|
87
|
-
if (total === 0)
|
|
88
|
-
return "0";
|
|
89
|
-
return String(Math.floor((amount / total) * 100 * 100) / 100);
|
|
90
|
-
}
|
|
91
|
-
// // simple script to copy console logs as ansi to clipboard. Used to update the documentation
|
|
92
|
-
// import {spawn} from "child_process";
|
|
93
|
-
// const pendingLog: string[] = [];
|
|
94
|
-
// const originalConsoleInfo = console.info;
|
|
95
|
-
// console.info = function info(...args: any[]) {
|
|
96
|
-
// originalConsoleInfo.call(console, ...args);
|
|
97
|
-
// pendingLog.push(args.join(" "));
|
|
98
|
-
// };
|
|
99
|
-
//
|
|
100
|
-
// function copyLogs() {
|
|
101
|
-
// const res = pendingLog.join("\n");
|
|
102
|
-
//
|
|
103
|
-
// pbcopy(res);
|
|
104
|
-
// originalConsoleInfo.call(console, "Copied logs to clipboard");
|
|
105
|
-
// }
|
|
106
|
-
// function pbcopy(text: string) {
|
|
107
|
-
// const pbcopyProcess = spawn("pbcopy");
|
|
108
|
-
// pbcopyProcess.stdin.write(text);
|
|
109
|
-
// pbcopyProcess.stdin.end();
|
|
110
|
-
// }
|
|
111
|
-
//
|
|
112
|
-
// process.on("exit", copyLogs);
|
|
113
|
-
//# sourceMappingURL=InspectCommand.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InspectCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/InspectCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"firstInFirstOutStrategy.js","sourceRoot":"","sources":["../../../../../src/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,EAAC,KAAK,EAAE,IAAI,EAAgD;IAChG,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,MAAM,WAAW,GAAG,KAAK;SACpB,KAAK,EAAE;SACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAEjE,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC;QAChC,cAAc,IAAI,aAAa,CAAC;QAEhC,IAAI,cAAc,KAAK,CAAC;YACpB,MAAM;KACb;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"maximumParallelismStrategy.js","sourceRoot":"","sources":["../../../../../src/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CAAC,EAAC,KAAK,EAAE,IAAI,EAAgD;IACnG,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEvE,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,MAAM,YAAY,GAA2B,EAAE,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACtB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC;QACzF,MAAM,cAAc,GAAG,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzB,cAAc,IAAI,aAAa,CAAC;QAEhC,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;YAClC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEtC,IAAI,cAAc,KAAK,CAAC;YACpB,MAAM;KACb;IAED,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE;QACpG,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAE1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAChE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC;YAC3F,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;YACtF,cAAc,CAAC,aAAa,IAAI,cAAc,CAAC;YAE/C,IAAI,cAAc,KAAK,iBAAiB,EAAE;gBACtC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,CAAC,EAAE,CAAC;aACP;SACJ;KACJ;IAED,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAChE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC;QAC3F,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACnE,cAAc,CAAC,aAAa,IAAI,cAAc,CAAC;QAE/C,IAAI,cAAc,KAAK,iBAAiB,EAAE;YACtC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC;SACP;KACJ;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolveBatchItemsPrioritizingStrategy.js","sourceRoot":"","sources":["../../../../src/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,0BAA0B,EAAC,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EAAC,uBAAuB,EAAC,MAAM,+DAA+D,CAAC;AAEtG,MAAM,UAAU,qCAAqC,CAAC,QAAgE;IAClH,IAAI,QAAQ,YAAY,QAAQ;QAC5B,OAAO,QAAQ,CAAC;SACf,IAAI,QAAQ,KAAK,oBAAoB;QACtC,OAAO,0BAA0B,CAAC;SACjC,IAAI,QAAQ,KAAK,iBAAiB;QACnC,OAAO,uBAAuB,CAAC;IAEnC,KAAK,CAAC,QAAwB,CAAC,CAAC;IAEhC,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,EAAE,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Llama } from "../bindings/Llama.js";
|
|
2
|
-
import { GGUFMetadataResponse } from "./ggufParser/GGUFParser.js";
|
|
3
|
-
export type GGUFInsightsOptions = {
|
|
4
|
-
contextCount?: number;
|
|
5
|
-
nodeLlama?: Llama;
|
|
6
|
-
modelSize?: number;
|
|
7
|
-
};
|
|
8
|
-
export default class GGUFInsights {
|
|
9
|
-
readonly metadataResponse: GGUFMetadataResponse;
|
|
10
|
-
readonly options: GGUFInsightsOptions;
|
|
11
|
-
get metadata(): import("./ggufParser/GGUFTypes.js").GGUFMetadataAny;
|
|
12
|
-
get architectureMetadata(): import("./ggufParser/GGUFTypes.js").GGUFMetadataArchitectureProperties;
|
|
13
|
-
/**
|
|
14
|
-
* fp16 k,v matrices
|
|
15
|
-
*/
|
|
16
|
-
get kvMatrices(): number;
|
|
17
|
-
/**
|
|
18
|
-
* This amount is the overhead + tensors in memory
|
|
19
|
-
*/
|
|
20
|
-
get graphSize(): number;
|
|
21
|
-
get VRAMUsage(): number;
|
|
22
|
-
protected get _availableVRam(): number;
|
|
23
|
-
constructor(metadataResponse: GGUFMetadataResponse, options?: GGUFInsightsOptions);
|
|
24
|
-
/**
|
|
25
|
-
* The score of the model by how much it's compatible to the current system
|
|
26
|
-
*/
|
|
27
|
-
modelScore(): number;
|
|
28
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import MissingNodeLlamaError from "./errors/MissingNodeLlamaError.js";
|
|
2
|
-
import NotEnoughVRamError from "./errors/ModelScore/NotEnoughVRamError.js";
|
|
3
|
-
const PAD_AVAILABLE_VRAM = 1024 ** 2 * 500; // 500MB
|
|
4
|
-
export default class GGUFInsights {
|
|
5
|
-
metadataResponse;
|
|
6
|
-
options = {};
|
|
7
|
-
get metadata() {
|
|
8
|
-
return this.metadataResponse.metadata;
|
|
9
|
-
}
|
|
10
|
-
get architectureMetadata() {
|
|
11
|
-
return this.metadata[this.metadata.general.architecture];
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* fp16 k,v matrices
|
|
15
|
-
*/
|
|
16
|
-
get kvMatrices() {
|
|
17
|
-
// 2 bytes each * 2 key and value
|
|
18
|
-
return (2 * 2 *
|
|
19
|
-
this.architectureMetadata.context_length *
|
|
20
|
-
this.architectureMetadata.block_count *
|
|
21
|
-
this.architectureMetadata.embedding_length *
|
|
22
|
-
this.architectureMetadata.attention.head_count_kv /
|
|
23
|
-
this.architectureMetadata.attention.head_count);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* This amount is the overhead + tensors in memory
|
|
27
|
-
*/
|
|
28
|
-
get graphSize() {
|
|
29
|
-
// TODO: get this from the llama.cpp's graph calculations instead of
|
|
30
|
-
// estimating it's 1/6 * kv_cache_size * num_gqa
|
|
31
|
-
return ((this.architectureMetadata.attention.head_count_kv /
|
|
32
|
-
this.architectureMetadata.attention.head_count) * this.kvMatrices / 6);
|
|
33
|
-
}
|
|
34
|
-
get VRAMUsage() {
|
|
35
|
-
return this.graphSize + this.kvMatrices + this.metadataResponse.metadataSize;
|
|
36
|
-
}
|
|
37
|
-
get _availableVRam() {
|
|
38
|
-
if (!this.options?.nodeLlama) {
|
|
39
|
-
throw new MissingNodeLlamaError("GGUFInsights Calculations");
|
|
40
|
-
}
|
|
41
|
-
return this.options.nodeLlama.getVramState().total - PAD_AVAILABLE_VRAM;
|
|
42
|
-
}
|
|
43
|
-
constructor(metadataResponse, options = {}) {
|
|
44
|
-
this.options = options;
|
|
45
|
-
this.metadataResponse = metadataResponse;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* The score of the model by how much it's compatible to the current system
|
|
49
|
-
*/
|
|
50
|
-
modelScore() {
|
|
51
|
-
const vramScore = this.VRAMUsage / this._availableVRam;
|
|
52
|
-
if (vramScore >= 1) {
|
|
53
|
-
throw new NotEnoughVRamError(this.VRAMUsage, this._availableVRam);
|
|
54
|
-
}
|
|
55
|
-
return vramScore;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=GGUFInsights.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GGUFInsights.js","sourceRoot":"","sources":["../../src/gguf/GGUFInsights.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,mCAAmC,CAAC;AAEtE,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAE3E,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ;AAQpD,MAAM,CAAC,OAAO,OAAO,YAAY;IACb,gBAAgB,CAAuB;IACvC,OAAO,GAAwB,EAAE,CAAC;IAElD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACjB,iCAAiC;QACjC,OAAO,CACH,CAAC,GAAG,CAAC;YACL,IAAI,CAAC,oBAAoB,CAAC,cAAc;YACxC,IAAI,CAAC,oBAAoB,CAAC,WAAW;YACrC,IAAI,CAAC,oBAAoB,CAAC,gBAAgB;YAC1C,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa;YACjD,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CACjD,CAAC;IACN,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAChB,oEAAoE;QACpE,gDAAgD;QAChD,OAAO,CACH,CAAC,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa;YAClD,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CACxE,CAAC;IACN,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;IACjF,CAAC;IAED,IAAc,cAAc;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAC;YACzB,MAAM,IAAI,qBAAqB,CAAC,2BAA2B,CAAC,CAAC;SAChE;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,GAAG,kBAAkB,CAAC;IAC5E,CAAC;IAED,YAAmB,gBAAsC,EAAE,UAA+B,EAAE;QACxF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAE7C,CAAC;IAGD;;OAEG;IACI,UAAU;QACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QACvD,IAAI,SAAS,IAAI,CAAC,EAAC;YACf,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACrE;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CAEJ"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import retry from "async-retry";
|
|
2
|
-
import GGUFInsights, { GGUFInsightsOptions } from "./GGUFInsights.js";
|
|
3
|
-
import { GGUFMetadataResponse } from "./ggufParser/GGUFParser.js";
|
|
4
|
-
export type GGUFMetadataOptions = {
|
|
5
|
-
source?: "network" | "local";
|
|
6
|
-
retry?: retry.Options;
|
|
7
|
-
ignoreKeys?: string[];
|
|
8
|
-
insights?: GGUFInsightsOptions;
|
|
9
|
-
};
|
|
10
|
-
export default class GGUFMetadata {
|
|
11
|
-
protected _metadata?: GGUFMetadataResponse;
|
|
12
|
-
readonly path: string;
|
|
13
|
-
readonly options: Partial<GGUFMetadataOptions>;
|
|
14
|
-
get metadata(): GGUFMetadataResponse;
|
|
15
|
-
get insights(): GGUFInsights;
|
|
16
|
-
constructor(path: string, options?: Partial<GGUFMetadataOptions>);
|
|
17
|
-
parse(): Promise<GGUFMetadataResponse>;
|
|
18
|
-
private _createStream;
|
|
19
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import MetadataNotParsedYetError from "./errors/MetadataNotParsedYetError.js";
|
|
2
|
-
import GGUFInsights from "./GGUFInsights.js";
|
|
3
|
-
import GGUFParser from "./ggufParser/GGUFParser.js";
|
|
4
|
-
import GGUFFetchStream from "./ggufParser/stream/GGUFFetchStream.js";
|
|
5
|
-
import GGUFReadStream from "./ggufParser/stream/GGUFReadStream.js";
|
|
6
|
-
export default class GGUFMetadata {
|
|
7
|
-
_metadata;
|
|
8
|
-
path;
|
|
9
|
-
options = {};
|
|
10
|
-
get metadata() {
|
|
11
|
-
if (!this._metadata) {
|
|
12
|
-
throw new MetadataNotParsedYetError(this.path);
|
|
13
|
-
}
|
|
14
|
-
return this._metadata;
|
|
15
|
-
}
|
|
16
|
-
get insights() {
|
|
17
|
-
return new GGUFInsights(this.metadata, this.options.insights);
|
|
18
|
-
}
|
|
19
|
-
constructor(path, options = {}) {
|
|
20
|
-
this.options = options;
|
|
21
|
-
this.path = path;
|
|
22
|
-
}
|
|
23
|
-
async parse() {
|
|
24
|
-
const stream = this._createStream();
|
|
25
|
-
const parser = new GGUFParser(stream, this.options.ignoreKeys);
|
|
26
|
-
return this._metadata = await parser.parseMetadata();
|
|
27
|
-
}
|
|
28
|
-
_createStream() {
|
|
29
|
-
switch (this.options.source) {
|
|
30
|
-
case "network":
|
|
31
|
-
return new GGUFFetchStream(this.path, { retry: this.options.retry });
|
|
32
|
-
case "local":
|
|
33
|
-
default:
|
|
34
|
-
return new GGUFReadStream(this.path, { retry: this.options.retry });
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=GGUFMetadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GGUFMetadata.js","sourceRoot":"","sources":["../../src/gguf/GGUFMetadata.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,MAAM,uCAAuC,CAAC;AAC9E,OAAO,YAAmC,MAAM,mBAAmB,CAAC;AACpE,OAAO,UAAkC,MAAM,4BAA4B,CAAC;AAC5E,OAAO,eAAe,MAAM,wCAAwC,CAAC;AACrE,OAAO,cAAc,MAAM,uCAAuC,CAAC;AASnE,MAAM,CAAC,OAAO,OAAO,YAAY;IACnB,SAAS,CAAwB;IAC3B,IAAI,CAAS;IACb,OAAO,GAAiC,EAAE,CAAC;IAE3D,IAAW,QAAQ;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,MAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,YAAmB,IAAY,EAAE,UAAwC,EAAE;QACvE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC;IAEO,aAAa;QACjB,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACzB,KAAK,SAAS;gBACV,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC;YACvE,KAAK,OAAO,CAAC;YACb;gBACI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC;SACzE;IACL,CAAC;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InvalidGGUFMagicError.js","sourceRoot":"","sources":["../../../src/gguf/errors/InvalidGGUFMagicError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,KAAK;IACpD,YAAmB,OAAO,GAAG,oBAAoB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataNotParsedYetError.js","sourceRoot":"","sources":["../../../src/gguf/errors/MetadataNotParsedYetError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,KAAK;IACxD,YAAmB,IAAY;QAC3B,KAAK,CAAC,6BAA6B,IAAI,GAAG,CAAC,CAAC;IAChD,CAAC;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MissingNodeLlamaError.js","sourceRoot":"","sources":["../../../src/gguf/errors/MissingNodeLlamaError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,KAAK;IACpD,YAAmB,OAAe;QAC9B,KAAK,CAAC,mDAAmD,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;CACJ"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import prettyBytes from "pretty-bytes";
|
|
2
|
-
export default class NotEnoughVRamError extends Error {
|
|
3
|
-
requiredVRAM;
|
|
4
|
-
availableVRAM;
|
|
5
|
-
constructor(requiredVRAM, availableVRAM) {
|
|
6
|
-
super();
|
|
7
|
-
this.availableVRAM = availableVRAM;
|
|
8
|
-
this.requiredVRAM = requiredVRAM;
|
|
9
|
-
this.message = `Not enough VRAM, require ${prettyBytes(requiredVRAM)}, but only ${prettyBytes(availableVRAM)} available`;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=NotEnoughVRamError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NotEnoughVRamError.js","sourceRoot":"","sources":["../../../../src/gguf/errors/ModelScore/NotEnoughVRamError.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,KAAK;IACjC,YAAY,CAAS;IACrB,aAAa,CAAS;IAEtC,YAAmB,YAAoB,EAAE,aAAqB;QAC1D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,4BAA4B,WAAW,CAAC,YAAY,CAAC,cAAc,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC;IAC7H,CAAC;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UnsupportedMetadataTypeError.js","sourceRoot":"","sources":["../../../src/gguf/errors/UnsupportedMetadataTypeError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,KAAK;IAC3C,IAAI,CAAS;IAE7B,YAAmB,IAAY;QAC3B,KAAK,CAAC,+BAA+B,IAAI,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { GGUFMetadataAny } from "./GGUFTypes.js";
|
|
2
|
-
import GGUFBaseStream from "./stream/GGUFBaseStream.js";
|
|
3
|
-
export type GGUFMetadataResponse = {
|
|
4
|
-
metadataSize: number;
|
|
5
|
-
metadata: GGUFMetadataAny;
|
|
6
|
-
};
|
|
7
|
-
export default class GGUFParser {
|
|
8
|
-
protected readonly _stream: GGUFBaseStream;
|
|
9
|
-
ignoreKeys: string[];
|
|
10
|
-
constructor(_stream: GGUFBaseStream, ignoreKeys?: string[]);
|
|
11
|
-
private _readMetadataValue;
|
|
12
|
-
private _parseMetadataRaw;
|
|
13
|
-
parseMetadata(): Promise<GGUFMetadataResponse>;
|
|
14
|
-
protected static _getNestedObject(key: string, currentNestedObject: any): {
|
|
15
|
-
lastObject: any;
|
|
16
|
-
lastKey: string;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import InvalidGGUFMagicError from "../errors/InvalidGGUFMagicError.js";
|
|
2
|
-
import UnsupportedMetadataTypeError from "../errors/UnsupportedMetadataTypeError.js";
|
|
3
|
-
import { fileTypeIntToString } from "./checkArchitecture.js";
|
|
4
|
-
import GGUFBaseStream, { METHOD_TO_BYTE_COUNT } from "./stream/GGUFBaseStream.js";
|
|
5
|
-
const METADATA_VALUE_TO_METHOD = {
|
|
6
|
-
0: "readUint8",
|
|
7
|
-
1: "readInt8",
|
|
8
|
-
2: "readUint16",
|
|
9
|
-
3: "readInt16",
|
|
10
|
-
4: "readUint32",
|
|
11
|
-
5: "readInt32",
|
|
12
|
-
6: "readFloat32",
|
|
13
|
-
7: "readBool"
|
|
14
|
-
};
|
|
15
|
-
const METADATA_STRING = 8;
|
|
16
|
-
const METADATA_ARRAY = 9;
|
|
17
|
-
const GGUF_MAGIC = "GGUF";
|
|
18
|
-
const DEFAULT_IGNORE_METADATA_KEYS = ["tokenizer.ggml.tokens", "tokenizer.ggml.scores", "tokenizer.ggml.token_type", "tokenizer.ggml.merges"];
|
|
19
|
-
export default class GGUFParser {
|
|
20
|
-
_stream;
|
|
21
|
-
ignoreKeys = DEFAULT_IGNORE_METADATA_KEYS;
|
|
22
|
-
constructor(_stream, ignoreKeys = DEFAULT_IGNORE_METADATA_KEYS) {
|
|
23
|
-
this.ignoreKeys = ignoreKeys;
|
|
24
|
-
this._stream = _stream;
|
|
25
|
-
}
|
|
26
|
-
async _readMetadataValue(type, offset) {
|
|
27
|
-
const numberMethod = METADATA_VALUE_TO_METHOD[type];
|
|
28
|
-
if (numberMethod) {
|
|
29
|
-
return {
|
|
30
|
-
value: await this._stream[numberMethod](offset),
|
|
31
|
-
newOffset: offset + METHOD_TO_BYTE_COUNT[numberMethod]
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
if (METADATA_STRING === type) {
|
|
35
|
-
const { string, newOffset } = await this._stream.readString(offset);
|
|
36
|
-
return { value: string, newOffset };
|
|
37
|
-
}
|
|
38
|
-
if (METADATA_ARRAY === type) {
|
|
39
|
-
const arrayType = await this._stream.readUint32(offset);
|
|
40
|
-
offset += METHOD_TO_BYTE_COUNT.readUint32;
|
|
41
|
-
const arrayLength = await this._stream.readUint64(offset);
|
|
42
|
-
offset += METHOD_TO_BYTE_COUNT.readUint64;
|
|
43
|
-
const arrayValues = [];
|
|
44
|
-
for (let i = 0; i < arrayLength; i++) {
|
|
45
|
-
const { value, newOffset } = await this._readMetadataValue(arrayType, offset);
|
|
46
|
-
arrayValues.push(value);
|
|
47
|
-
offset = newOffset;
|
|
48
|
-
}
|
|
49
|
-
return { value: arrayValues, newOffset: offset };
|
|
50
|
-
}
|
|
51
|
-
throw new UnsupportedMetadataTypeError(type);
|
|
52
|
-
}
|
|
53
|
-
async _parseMetadataRaw() {
|
|
54
|
-
let offset = 0;
|
|
55
|
-
const readMagicBytesLength = METHOD_TO_BYTE_COUNT.readUint8 * GGUF_MAGIC.length;
|
|
56
|
-
const magicBytes = await this._stream.readNBytes(readMagicBytesLength);
|
|
57
|
-
offset += readMagicBytesLength;
|
|
58
|
-
const magicText = String.fromCharCode(...magicBytes);
|
|
59
|
-
if (magicText !== GGUF_MAGIC) {
|
|
60
|
-
throw new InvalidGGUFMagicError();
|
|
61
|
-
}
|
|
62
|
-
const version = await this._stream.readUint32(offset);
|
|
63
|
-
offset += METHOD_TO_BYTE_COUNT.readUint32;
|
|
64
|
-
const tensorCount = await this._stream.readUint64(offset);
|
|
65
|
-
offset += METHOD_TO_BYTE_COUNT.readUint64;
|
|
66
|
-
const metadataKVCount = await this._stream.readUint64(offset);
|
|
67
|
-
offset += METHOD_TO_BYTE_COUNT.readUint64;
|
|
68
|
-
const metadata = {
|
|
69
|
-
version,
|
|
70
|
-
tensorCount: GGUFBaseStream.castNumber(tensorCount)
|
|
71
|
-
};
|
|
72
|
-
for (let i = 0; i < Number(metadataKVCount); i++) {
|
|
73
|
-
// read key
|
|
74
|
-
const keyResult = await this._stream.readString(offset);
|
|
75
|
-
offset = keyResult.newOffset;
|
|
76
|
-
// read the value type
|
|
77
|
-
const valueType = await this._stream.readUint32(offset);
|
|
78
|
-
offset += METHOD_TO_BYTE_COUNT.readUint32;
|
|
79
|
-
// read value
|
|
80
|
-
const valueResult = await this._readMetadataValue(valueType, offset);
|
|
81
|
-
offset = valueResult.newOffset;
|
|
82
|
-
metadata[keyResult.string] = valueResult.value;
|
|
83
|
-
}
|
|
84
|
-
return {
|
|
85
|
-
metadata: metadata,
|
|
86
|
-
metadataSize: offset
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
async parseMetadata() {
|
|
90
|
-
const metadataRaw = await this._parseMetadataRaw();
|
|
91
|
-
const metadata = {};
|
|
92
|
-
for (const [key, value] of Object.entries(metadataRaw.metadata)) {
|
|
93
|
-
if (this.ignoreKeys.includes(key)) {
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
const { lastObject, lastKey } = GGUFParser._getNestedObject(key, metadata);
|
|
97
|
-
lastObject[lastKey] = value;
|
|
98
|
-
}
|
|
99
|
-
if (typeof metadata?.general?.file_type === "number") {
|
|
100
|
-
metadata.general["file_type"] = fileTypeIntToString(metadata.general.file_type) || metadata.general.file_type;
|
|
101
|
-
}
|
|
102
|
-
return {
|
|
103
|
-
metadata: metadata,
|
|
104
|
-
metadataSize: metadataRaw.metadataSize
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
static _getNestedObject(key, currentNestedObject) {
|
|
108
|
-
const nestedKey = key.split(".");
|
|
109
|
-
const lastKey = nestedKey.pop();
|
|
110
|
-
while (nestedKey.length > 0) {
|
|
111
|
-
const currentKey = nestedKey.shift();
|
|
112
|
-
if (!currentNestedObject[currentKey]) {
|
|
113
|
-
currentNestedObject[currentKey] = {};
|
|
114
|
-
}
|
|
115
|
-
currentNestedObject = currentNestedObject[currentKey];
|
|
116
|
-
}
|
|
117
|
-
return {
|
|
118
|
-
lastObject: currentNestedObject,
|
|
119
|
-
lastKey
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=GGUFParser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GGUFParser.js","sourceRoot":"","sources":["../../../src/gguf/ggufParser/GGUFParser.ts"],"names":[],"mappings":"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"}
|