node-llama-cpp 2.6.0 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/cli/commands/DownloadCommand.d.ts +2 -1
- package/dist/cli/commands/DownloadCommand.js +10 -4
- package/dist/cli/commands/DownloadCommand.js.map +1 -1
- package/dist/utils/cloneLlamaCppRepo.d.ts +1 -1
- package/dist/utils/cloneLlamaCppRepo.js +3 -6
- package/dist/utils/cloneLlamaCppRepo.js.map +1 -1
- package/dist/utils/gitReleaseBundles.d.ts +1 -1
- package/dist/utils/gitReleaseBundles.js +40 -1
- package/dist/utils/gitReleaseBundles.js.map +1 -1
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/mac-arm64/ggml-metal.metal +12 -6
- package/llamaBins/mac-arm64/llama-addon.node +0 -0
- package/llamaBins/mac-x64/ggml-metal.metal +12 -6
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
* [Getting started guide](https://withcatai.github.io/node-llama-cpp/guide/)
|
|
29
29
|
* [API reference](https://withcatai.github.io/node-llama-cpp/api/classes/LlamaModel)
|
|
30
30
|
* [CLI help](https://withcatai.github.io/node-llama-cpp/guide/cli/)
|
|
31
|
+
* [Changelog](https://github.com/withcatai/node-llama-cpp/releases)
|
|
31
32
|
|
|
32
33
|
## Installation
|
|
33
34
|
```bash
|
|
@@ -7,8 +7,9 @@ type DownloadCommandArgs = {
|
|
|
7
7
|
metal: boolean;
|
|
8
8
|
cuda: boolean;
|
|
9
9
|
skipBuild?: boolean;
|
|
10
|
+
noBundle?: boolean;
|
|
10
11
|
updateBinariesReleaseMetadataAndSaveGitBundle?: boolean;
|
|
11
12
|
};
|
|
12
13
|
export declare const DownloadCommand: CommandModule<object, DownloadCommandArgs>;
|
|
13
|
-
export declare function DownloadLlamaCppCommand({ repo, release, arch, nodeTarget, metal, cuda, skipBuild, updateBinariesReleaseMetadataAndSaveGitBundle }: DownloadCommandArgs): Promise<void>;
|
|
14
|
+
export declare function DownloadLlamaCppCommand({ repo, release, arch, nodeTarget, metal, cuda, skipBuild, noBundle, updateBinariesReleaseMetadataAndSaveGitBundle }: DownloadCommandArgs): Promise<void>;
|
|
14
15
|
export {};
|
|
@@ -10,7 +10,7 @@ import { setBinariesGithubRelease } from "../../utils/binariesGithubRelease.js";
|
|
|
10
10
|
import { downloadCmakeIfNeeded } from "../../utils/cmake.js";
|
|
11
11
|
import withStatusLogs from "../../utils/withStatusLogs.js";
|
|
12
12
|
import { getIsInDocumentationMode } from "../../state.js";
|
|
13
|
-
import {
|
|
13
|
+
import { unshallowAndSquashCurrentRepoAndSaveItAsReleaseBundle } from "../../utils/gitReleaseBundles.js";
|
|
14
14
|
import { cloneLlamaCppRepo } from "../../utils/cloneLlamaCppRepo.js";
|
|
15
15
|
export const DownloadCommand = {
|
|
16
16
|
command: "download",
|
|
@@ -54,6 +54,12 @@ export const DownloadCommand = {
|
|
|
54
54
|
type: "boolean",
|
|
55
55
|
default: false,
|
|
56
56
|
description: "Skip building llama.cpp after downloading it"
|
|
57
|
+
})
|
|
58
|
+
.option("noBundle", {
|
|
59
|
+
alias: "nb",
|
|
60
|
+
type: "boolean",
|
|
61
|
+
default: false,
|
|
62
|
+
description: "Download a llama.cpp only from GitHub, even if a local git bundle exists for the release"
|
|
57
63
|
})
|
|
58
64
|
.option("updateBinariesReleaseMetadataAndSaveGitBundle", {
|
|
59
65
|
type: "boolean",
|
|
@@ -64,7 +70,7 @@ export const DownloadCommand = {
|
|
|
64
70
|
},
|
|
65
71
|
handler: DownloadLlamaCppCommand
|
|
66
72
|
};
|
|
67
|
-
export async function DownloadLlamaCppCommand({ repo, release, arch, nodeTarget, metal, cuda, skipBuild, updateBinariesReleaseMetadataAndSaveGitBundle }) {
|
|
73
|
+
export async function DownloadLlamaCppCommand({ repo, release, arch, nodeTarget, metal, cuda, skipBuild, noBundle, updateBinariesReleaseMetadataAndSaveGitBundle }) {
|
|
68
74
|
const octokit = new Octokit();
|
|
69
75
|
const [githubOwner, githubRepo] = repo.split("/");
|
|
70
76
|
console.log(`${chalk.yellow("Repo:")} ${repo}`);
|
|
@@ -118,7 +124,7 @@ export async function DownloadLlamaCppCommand({ repo, release, arch, nodeTarget,
|
|
|
118
124
|
await fs.remove(llamaCppDirectory);
|
|
119
125
|
});
|
|
120
126
|
console.log(chalk.blue("Cloning llama.cpp"));
|
|
121
|
-
await cloneLlamaCppRepo(githubOwner, githubRepo, githubRelease.data.tag_name);
|
|
127
|
+
await cloneLlamaCppRepo(githubOwner, githubRepo, githubRelease.data.tag_name, noBundle != true);
|
|
122
128
|
if (!skipBuild) {
|
|
123
129
|
await downloadCmakeIfNeeded(true);
|
|
124
130
|
await withStatusLogs({
|
|
@@ -137,7 +143,7 @@ export async function DownloadLlamaCppCommand({ repo, release, arch, nodeTarget,
|
|
|
137
143
|
}
|
|
138
144
|
if (isCI && updateBinariesReleaseMetadataAndSaveGitBundle) {
|
|
139
145
|
await setBinariesGithubRelease(githubRelease.data.tag_name);
|
|
140
|
-
await
|
|
146
|
+
await unshallowAndSquashCurrentRepoAndSaveItAsReleaseBundle();
|
|
141
147
|
}
|
|
142
148
|
console.log();
|
|
143
149
|
console.log();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DownloadCommand.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACH,0BAA0B,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,IAAI,EAAE,iBAAiB,EACtI,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"DownloadCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DownloadCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function cloneLlamaCppRepo(githubOwner: string, githubRepo: string, tag: string): Promise<void>;
|
|
1
|
+
export declare function cloneLlamaCppRepo(githubOwner: string, githubRepo: string, tag: string, useBundles?: boolean): Promise<void>;
|
|
@@ -4,8 +4,8 @@ import chalk from "chalk";
|
|
|
4
4
|
import fs from "fs-extra";
|
|
5
5
|
import { llamaCppDirectory } from "../config.js";
|
|
6
6
|
import { getGitBundlePathForRelease } from "./gitReleaseBundles.js";
|
|
7
|
-
export async function cloneLlamaCppRepo(githubOwner, githubRepo, tag) {
|
|
8
|
-
const gitBundleForTag = await getGitBundlePathForRelease(githubOwner, githubRepo, tag);
|
|
7
|
+
export async function cloneLlamaCppRepo(githubOwner, githubRepo, tag, useBundles = true) {
|
|
8
|
+
const gitBundleForTag = !useBundles ? null : await getGitBundlePathForRelease(githubOwner, githubRepo, tag);
|
|
9
9
|
const remoteGitUrl = `https://github.com/${githubOwner}/${githubRepo}.git`;
|
|
10
10
|
async function withGitCloneProgress(cloneName, callback) {
|
|
11
11
|
const progressBar = new cliProgress.Bar({
|
|
@@ -39,10 +39,7 @@ export async function cloneLlamaCppRepo(githubOwner, githubRepo, tag) {
|
|
|
39
39
|
await gitWithCloneProgress.clone(gitBundleForTag, llamaCppDirectory, {
|
|
40
40
|
"--quiet": null
|
|
41
41
|
});
|
|
42
|
-
await simpleGit(llamaCppDirectory)
|
|
43
|
-
.removeRemote("origin");
|
|
44
|
-
await simpleGit(llamaCppDirectory)
|
|
45
|
-
.addRemote("origin", remoteGitUrl);
|
|
42
|
+
await simpleGit(llamaCppDirectory).removeRemote("origin");
|
|
46
43
|
});
|
|
47
44
|
return;
|
|
48
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloneLlamaCppRepo.js","sourceRoot":"","sources":["../../src/utils/cloneLlamaCppRepo.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsB,MAAM,YAAY,CAAC;AAChD,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,0BAA0B,EAAC,MAAM,wBAAwB,CAAC;AAGlE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB,EAAE,UAAkB,EAAE,GAAW;
|
|
1
|
+
{"version":3,"file":"cloneLlamaCppRepo.js","sourceRoot":"","sources":["../../src/utils/cloneLlamaCppRepo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function
|
|
1
|
+
export declare function unshallowAndSquashCurrentRepoAndSaveItAsReleaseBundle(): Promise<void>;
|
|
2
2
|
export declare function getGitBundlePathForRelease(githubOwner: string, githubRepo: string, release: string): Promise<string | null>;
|
|
@@ -2,11 +2,40 @@ import fs from "fs-extra";
|
|
|
2
2
|
import simpleGit from "simple-git";
|
|
3
3
|
import { currentReleaseGitBundlePath, defaultLlamaCppGitHubRepo, llamaCppDirectory } from "../config.js";
|
|
4
4
|
import { getBinariesGithubRelease } from "./binariesGithubRelease.js";
|
|
5
|
-
export async function
|
|
5
|
+
export async function unshallowAndSquashCurrentRepoAndSaveItAsReleaseBundle() {
|
|
6
6
|
if (!(await fs.pathExists(llamaCppDirectory)))
|
|
7
7
|
throw new Error("llama.cpp directory does not exist");
|
|
8
8
|
if (await fs.pathExists(currentReleaseGitBundlePath))
|
|
9
9
|
await fs.remove(currentReleaseGitBundlePath);
|
|
10
|
+
await simpleGit(llamaCppDirectory).addConfig("user.name", "node-llama-cpp-ci");
|
|
11
|
+
await simpleGit(llamaCppDirectory).addConfig("user.email", "node-llama-cpp-ci@node-llama-cpp-ci.node-llama-cpp-ci");
|
|
12
|
+
const currentBranch = await getCurrentTagOrBranch();
|
|
13
|
+
await simpleGit(llamaCppDirectory).fetch(["--unshallow"]);
|
|
14
|
+
const lastCommit = await simpleGit(llamaCppDirectory).log(["-1"]);
|
|
15
|
+
const lastCommitMessage = lastCommit?.all?.[0]?.message;
|
|
16
|
+
const newCommitMessage = "## SQUASHED ##\n\n" + (lastCommitMessage ?? "");
|
|
17
|
+
const newCommitSha = await simpleGit(llamaCppDirectory).raw(["commit-tree", "HEAD^{tree}", "-m", newCommitMessage]);
|
|
18
|
+
await simpleGit(llamaCppDirectory).reset(["--hard", newCommitSha.trim()]);
|
|
19
|
+
const tags = await simpleGit(llamaCppDirectory).tags();
|
|
20
|
+
for (const tag of tags.all) {
|
|
21
|
+
await simpleGit(llamaCppDirectory).tag(["--delete", tag]);
|
|
22
|
+
}
|
|
23
|
+
const branches = await simpleGit(llamaCppDirectory).branch();
|
|
24
|
+
for (const branch of branches.all) {
|
|
25
|
+
try {
|
|
26
|
+
await simpleGit(llamaCppDirectory).branch(["--delete", branch]);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
// If the branch is not found, it's fine
|
|
30
|
+
// this happens as when there are no branches git returnes an output saying so, and `simpleGit` parses it as a branch,
|
|
31
|
+
// so the list may contain branches that do not exist.
|
|
32
|
+
// Right now, the non-existent branch name returned called `(no`, but I wouldn't want to rely on this specific text,
|
|
33
|
+
// as this is a bug in `simpleGit`.
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (currentBranch != null)
|
|
37
|
+
await simpleGit(llamaCppDirectory).tag([currentBranch]);
|
|
38
|
+
await simpleGit(llamaCppDirectory).raw(["gc", "--aggressive", "--prune=all"]);
|
|
10
39
|
await simpleGit(llamaCppDirectory).raw(["bundle", "create", currentReleaseGitBundlePath, "HEAD"]);
|
|
11
40
|
}
|
|
12
41
|
export async function getGitBundlePathForRelease(githubOwner, githubRepo, release) {
|
|
@@ -22,4 +51,14 @@ export async function getGitBundlePathForRelease(githubOwner, githubRepo, releas
|
|
|
22
51
|
return null;
|
|
23
52
|
return currentReleaseGitBundlePath;
|
|
24
53
|
}
|
|
54
|
+
async function getCurrentTagOrBranch() {
|
|
55
|
+
const branch = await simpleGit(llamaCppDirectory).revparse(["--abbrev-ref", "HEAD"]);
|
|
56
|
+
if (branch !== "HEAD")
|
|
57
|
+
return branch;
|
|
58
|
+
const tags = await simpleGit(llamaCppDirectory).tag(["--points-at", "HEAD"]);
|
|
59
|
+
const tagArray = tags.split("\n").filter(Boolean);
|
|
60
|
+
if (tagArray.length > 0)
|
|
61
|
+
return tagArray[0];
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
25
64
|
//# sourceMappingURL=gitReleaseBundles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitReleaseBundles.js","sourceRoot":"","sources":["../../src/utils/gitReleaseBundles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,2BAA2B,EAAE,yBAAyB,EAAE,iBAAiB,EAAC,MAAM,cAAc,CAAC;AACvG,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AAGpE,MAAM,CAAC,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"gitReleaseBundles.js","sourceRoot":"","sources":["../../src/utils/gitReleaseBundles.ts"],"names":[],"mappings":"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"}
|
package/llama/gitRelease.bundle
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -345,10 +345,11 @@ kernel void kernel_rms_norm(
|
|
|
345
345
|
uint sgitg[[simdgroup_index_in_threadgroup]],
|
|
346
346
|
uint tiisg[[thread_index_in_simdgroup]],
|
|
347
347
|
uint ntg[[threads_per_threadgroup]]) {
|
|
348
|
-
device const float4 * x
|
|
349
|
-
device const float
|
|
350
|
-
|
|
351
|
-
|
|
348
|
+
device const float4 * x = (device const float4 *) ((device const char *) src0 + tgpig*nb01);
|
|
349
|
+
device const float * x_scalar = (device const float *) x;
|
|
350
|
+
|
|
351
|
+
float4 sumf = 0;
|
|
352
|
+
float all_sum = 0;
|
|
352
353
|
|
|
353
354
|
// parallel sum
|
|
354
355
|
for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) {
|
|
@@ -361,6 +362,7 @@ kernel void kernel_rms_norm(
|
|
|
361
362
|
}
|
|
362
363
|
|
|
363
364
|
threadgroup_barrier(mem_flags::mem_threadgroup);
|
|
365
|
+
|
|
364
366
|
// broadcast, simd group number is ntg / 32
|
|
365
367
|
for (uint i = ntg / 32 / 2; i > 0; i /= 2) {
|
|
366
368
|
if (tpitg < i) {
|
|
@@ -368,7 +370,9 @@ kernel void kernel_rms_norm(
|
|
|
368
370
|
}
|
|
369
371
|
}
|
|
370
372
|
if (tpitg == 0) {
|
|
371
|
-
for (int i = 4 * (ne00 / 4); i < ne00; i++) {
|
|
373
|
+
for (int i = 4 * (ne00 / 4); i < ne00; i++) {
|
|
374
|
+
sum[0] += x_scalar[i];
|
|
375
|
+
}
|
|
372
376
|
sum[0] /= ne00;
|
|
373
377
|
}
|
|
374
378
|
|
|
@@ -383,7 +387,9 @@ kernel void kernel_rms_norm(
|
|
|
383
387
|
y[i00] = x[i00] * scale;
|
|
384
388
|
}
|
|
385
389
|
if (tpitg == 0) {
|
|
386
|
-
for (int i00 = 4 * (ne00 / 4); i00 < ne00; i00++) {
|
|
390
|
+
for (int i00 = 4 * (ne00 / 4); i00 < ne00; i00++) {
|
|
391
|
+
y_scalar[i00] = x_scalar[i00] * scale;
|
|
392
|
+
}
|
|
387
393
|
}
|
|
388
394
|
}
|
|
389
395
|
|
|
Binary file
|
|
@@ -345,10 +345,11 @@ kernel void kernel_rms_norm(
|
|
|
345
345
|
uint sgitg[[simdgroup_index_in_threadgroup]],
|
|
346
346
|
uint tiisg[[thread_index_in_simdgroup]],
|
|
347
347
|
uint ntg[[threads_per_threadgroup]]) {
|
|
348
|
-
device const float4 * x
|
|
349
|
-
device const float
|
|
350
|
-
|
|
351
|
-
|
|
348
|
+
device const float4 * x = (device const float4 *) ((device const char *) src0 + tgpig*nb01);
|
|
349
|
+
device const float * x_scalar = (device const float *) x;
|
|
350
|
+
|
|
351
|
+
float4 sumf = 0;
|
|
352
|
+
float all_sum = 0;
|
|
352
353
|
|
|
353
354
|
// parallel sum
|
|
354
355
|
for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) {
|
|
@@ -361,6 +362,7 @@ kernel void kernel_rms_norm(
|
|
|
361
362
|
}
|
|
362
363
|
|
|
363
364
|
threadgroup_barrier(mem_flags::mem_threadgroup);
|
|
365
|
+
|
|
364
366
|
// broadcast, simd group number is ntg / 32
|
|
365
367
|
for (uint i = ntg / 32 / 2; i > 0; i /= 2) {
|
|
366
368
|
if (tpitg < i) {
|
|
@@ -368,7 +370,9 @@ kernel void kernel_rms_norm(
|
|
|
368
370
|
}
|
|
369
371
|
}
|
|
370
372
|
if (tpitg == 0) {
|
|
371
|
-
for (int i = 4 * (ne00 / 4); i < ne00; i++) {
|
|
373
|
+
for (int i = 4 * (ne00 / 4); i < ne00; i++) {
|
|
374
|
+
sum[0] += x_scalar[i];
|
|
375
|
+
}
|
|
372
376
|
sum[0] /= ne00;
|
|
373
377
|
}
|
|
374
378
|
|
|
@@ -383,7 +387,9 @@ kernel void kernel_rms_norm(
|
|
|
383
387
|
y[i00] = x[i00] * scale;
|
|
384
388
|
}
|
|
385
389
|
if (tpitg == 0) {
|
|
386
|
-
for (int i00 = 4 * (ne00 / 4); i00 < ne00; i00++) {
|
|
390
|
+
for (int i00 = 4 * (ne00 / 4); i00 < ne00; i00++) {
|
|
391
|
+
y_scalar[i00] = x_scalar[i00] * scale;
|
|
392
|
+
}
|
|
387
393
|
}
|
|
388
394
|
}
|
|
389
395
|
|
|
Binary file
|
|
Binary file
|