@huggingface/tasks 0.20.11 → 0.20.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/eval.d.ts +5 -0
- package/dist/commonjs/eval.d.ts.map +1 -1
- package/dist/commonjs/eval.js +5 -0
- package/dist/commonjs/hardware-nvidia.d.ts.map +1 -1
- package/dist/commonjs/hardware-nvidia.js +15 -5
- package/dist/commonjs/local-apps.d.ts.map +1 -1
- package/dist/commonjs/local-apps.js +16 -10
- package/dist/commonjs/local-apps.spec.js +15 -11
- package/dist/esm/eval.d.ts +5 -0
- package/dist/esm/eval.d.ts.map +1 -1
- package/dist/esm/eval.js +5 -0
- package/dist/esm/hardware-nvidia.d.ts.map +1 -1
- package/dist/esm/hardware-nvidia.js +15 -5
- package/dist/esm/local-apps.d.ts.map +1 -1
- package/dist/esm/local-apps.js +16 -10
- package/dist/esm/local-apps.spec.js +15 -11
- package/package.json +1 -1
- package/src/eval.ts +5 -0
- package/src/hardware-nvidia.ts +15 -5
- package/src/local-apps.spec.ts +15 -11
- package/src/local-apps.ts +18 -10
package/dist/commonjs/eval.d.ts
CHANGED
|
@@ -32,6 +32,11 @@ export declare const EVALUATION_FRAMEWORKS: {
|
|
|
32
32
|
readonly description: "Archipelago is a system for running and evaluating AI agents against MCP applications.";
|
|
33
33
|
readonly url: "https://github.com/Mercor-Intelligence/archipelago";
|
|
34
34
|
};
|
|
35
|
+
readonly "apex-evals": {
|
|
36
|
+
readonly name: "apex-evals";
|
|
37
|
+
readonly description: "APEX Evals is a benchmark suite and evaluation harness for evaluating large language models.";
|
|
38
|
+
readonly url: "https://github.com/Mercor-Intelligence/apex-evals";
|
|
39
|
+
};
|
|
35
40
|
readonly "screenspot-pro": {
|
|
36
41
|
readonly name: "screenspot-pro";
|
|
37
42
|
readonly description: "ScreenSpot-Pro is a GUI grounding benchmark designed to evaluate how well AI agents can locate and identify UI elements across professional software applications in high-resolution screenshots, covering 1,585 annotated images from 26 professional tools.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/eval.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/eval.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsExB,CAAC"}
|
package/dist/commonjs/eval.js
CHANGED
|
@@ -35,6 +35,11 @@ exports.EVALUATION_FRAMEWORKS = {
|
|
|
35
35
|
description: "Archipelago is a system for running and evaluating AI agents against MCP applications.",
|
|
36
36
|
url: "https://github.com/Mercor-Intelligence/archipelago",
|
|
37
37
|
},
|
|
38
|
+
"apex-evals": {
|
|
39
|
+
name: "apex-evals",
|
|
40
|
+
description: "APEX Evals is a benchmark suite and evaluation harness for evaluating large language models.",
|
|
41
|
+
url: "https://github.com/Mercor-Intelligence/apex-evals",
|
|
42
|
+
},
|
|
38
43
|
"screenspot-pro": {
|
|
39
44
|
name: "screenspot-pro",
|
|
40
45
|
description: "ScreenSpot-Pro is a GUI grounding benchmark designed to evaluate how well AI agents can locate and identify UI elements across professional software applications in high-resolution screenshots, covering 1,585 annotated images from 26 professional tools.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hardware-nvidia.d.ts","sourceRoot":"","sources":["../../src/hardware-nvidia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED,oBAAY,yBAAyB;IACpC,eAAe,OAAO;IACtB,aAAa,KAAO;IACpB,SAAS,KAAO;IAChB,MAAM,IAAM;IACZ,YAAY,MAAM;IAClB,IAAI,MAAM;IACV,UAAU,MAAM;IAChB,MAAM,IAAM;IACZ,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,KAAK,IAAM;IACX,YAAY,MAAM;IAClB,MAAM,MAAM;IACZ,iBAAiB,IAAM;IACvB,OAAO,MAAM;CACb;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"hardware-nvidia.d.ts","sourceRoot":"","sources":["../../src/hardware-nvidia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED,oBAAY,yBAAyB;IACpC,eAAe,OAAO;IACtB,aAAa,KAAO;IACpB,SAAS,KAAO;IAChB,MAAM,IAAM;IACZ,YAAY,MAAM;IAClB,IAAI,MAAM;IACV,UAAU,MAAM;IAChB,MAAM,IAAM;IACZ,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,KAAK,IAAM;IACX,YAAY,MAAM;IAClB,MAAM,MAAM;IACZ,iBAAiB,IAAM;IACvB,OAAO,MAAM;CACb;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAwhB1D,CAAC"}
|
|
@@ -186,7 +186,7 @@ exports.NVIDIA_SKUS = {
|
|
|
186
186
|
computeCapability: 8.6,
|
|
187
187
|
},
|
|
188
188
|
A2: {
|
|
189
|
-
tflops: 4.531,
|
|
189
|
+
tflops: 4.531,
|
|
190
190
|
memory: [16],
|
|
191
191
|
computeCapability: 8.6,
|
|
192
192
|
},
|
|
@@ -211,7 +211,7 @@ exports.NVIDIA_SKUS = {
|
|
|
211
211
|
computeCapability: 12.0,
|
|
212
212
|
},
|
|
213
213
|
"RTX 5080 Mobile": {
|
|
214
|
-
tflops:
|
|
214
|
+
tflops: 23.04,
|
|
215
215
|
memory: [16],
|
|
216
216
|
computeCapability: 12.0,
|
|
217
217
|
},
|
|
@@ -221,7 +221,7 @@ exports.NVIDIA_SKUS = {
|
|
|
221
221
|
computeCapability: 12.0,
|
|
222
222
|
},
|
|
223
223
|
"RTX 5070 Mobile": {
|
|
224
|
-
tflops:
|
|
224
|
+
tflops: 13.13,
|
|
225
225
|
memory: [8],
|
|
226
226
|
computeCapability: 12.0,
|
|
227
227
|
},
|
|
@@ -230,13 +230,23 @@ exports.NVIDIA_SKUS = {
|
|
|
230
230
|
memory: [16],
|
|
231
231
|
computeCapability: 12.0,
|
|
232
232
|
},
|
|
233
|
+
"RTX 5070 Ti Mobile": {
|
|
234
|
+
tflops: 17.04,
|
|
235
|
+
memory: [12],
|
|
236
|
+
computeCapability: 12.0,
|
|
237
|
+
},
|
|
233
238
|
"RTX 5060 Ti": {
|
|
234
|
-
tflops: 23.7,
|
|
239
|
+
tflops: 23.7,
|
|
235
240
|
memory: [16, 8],
|
|
236
241
|
computeCapability: 12.0,
|
|
237
242
|
},
|
|
238
243
|
"RTX 5060": {
|
|
239
|
-
tflops: 19.18,
|
|
244
|
+
tflops: 19.18,
|
|
245
|
+
memory: [8],
|
|
246
|
+
computeCapability: 12.0,
|
|
247
|
+
},
|
|
248
|
+
"RTX 5060 Mobile": {
|
|
249
|
+
tflops: 9.684,
|
|
240
250
|
memory: [8],
|
|
241
251
|
computeCapability: 12.0,
|
|
242
252
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-apps.d.ts","sourceRoot":"","sources":["../../src/local-apps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;CAClD,GAAG,CACD;IACA;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;CACtD,GACD;IACA;;;;OAIG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;CACzG,CACH,CAAC;AAsBF,iBAAS,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE7C;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,SAAS,WAE5C;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAU9C;AAED,iBAAS,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE3D;AA0BD,iBAAS,cAAc,CAAC,KAAK,EAAE,SAAS,WAEvC;
|
|
1
|
+
{"version":3,"file":"local-apps.d.ts","sourceRoot":"","sources":["../../src/local-apps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;CAClD,GAAG,CACD;IACA;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;CACtD,GACD;IACA;;;;OAIG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;CACzG,CACH,CAAC;AAsBF,iBAAS,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE7C;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,SAAS,WAE5C;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAU9C;AAED,iBAAS,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE3D;AA0BD,iBAAS,cAAc,CAAC,KAAK,EAAE,SAAS,WAEvC;AAqaD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;yBAnaS,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;yBAiDzC,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;yBA2F3D,SAAS,KAAG,eAAe,EAAE;;;;;;oCAiT3B,SAAS;yBA3PT,SAAS,KAAG,eAAe,EAAE;;;;;;;yBAoF9B,SAAS,KAAG,eAAe,EAAE;;;;;;;yBA7B/B,SAAS,KAAG,eAAe,EAAE;;;;;;;;;;;;;;yBApIzB,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAtDjD,SAAS,aAAa,MAAM,KAAG,MAAM;;;;;;;yBAIpC,SAAS,KAAG,eAAe,EAAE;;;;;;;yBAqSnB,SAAS,aAAa,MAAM,KAAG,MAAM;;;;;;;yBAM9C,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;yBArDtD,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;CAuStC,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,UAAU,CAAC"}
|
|
@@ -134,15 +134,21 @@ const snippetOllama = (model, filepath) => {
|
|
|
134
134
|
};
|
|
135
135
|
const snippetUnsloth = (model) => {
|
|
136
136
|
const isGguf = isLlamaCppGgufModel(model);
|
|
137
|
+
const studio_content = [
|
|
138
|
+
"# Run unsloth studio",
|
|
139
|
+
"unsloth studio -H 0.0.0.0 -p 8888",
|
|
140
|
+
"# Then open http://localhost:8888 in your browser",
|
|
141
|
+
"# Search for " + model.id + " to start chatting",
|
|
142
|
+
].join("\n");
|
|
137
143
|
const studio_instructions = {
|
|
138
|
-
title: "
|
|
139
|
-
setup:
|
|
140
|
-
content:
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
title: "Install Unsloth Studio (macOS, Linux, WSL)",
|
|
145
|
+
setup: "curl -fsSL https://unsloth.ai/install.sh | sh",
|
|
146
|
+
content: studio_content,
|
|
147
|
+
};
|
|
148
|
+
const studio_instructions_windows = {
|
|
149
|
+
title: "Install Unsloth Studio (Windows)",
|
|
150
|
+
setup: "irm https://unsloth.ai/install.ps1 | iex",
|
|
151
|
+
content: studio_content,
|
|
146
152
|
};
|
|
147
153
|
const hf_spaces_instructions = {
|
|
148
154
|
title: "Using HuggingFace Spaces for Unsloth",
|
|
@@ -163,10 +169,10 @@ const snippetUnsloth = (model) => {
|
|
|
163
169
|
].join("\n"),
|
|
164
170
|
};
|
|
165
171
|
if (isGguf) {
|
|
166
|
-
return [studio_instructions, hf_spaces_instructions];
|
|
172
|
+
return [studio_instructions, studio_instructions_windows, hf_spaces_instructions];
|
|
167
173
|
}
|
|
168
174
|
else {
|
|
169
|
-
return [studio_instructions, hf_spaces_instructions, fastmodel_instructions];
|
|
175
|
+
return [studio_instructions, studio_instructions_windows, hf_spaces_instructions, fastmodel_instructions];
|
|
170
176
|
}
|
|
171
177
|
};
|
|
172
178
|
const snippetLocalAI = (model, filepath) => {
|
|
@@ -167,12 +167,14 @@ curl -X POST "http://localhost:8000/v1/chat/completions" \\
|
|
|
167
167
|
};
|
|
168
168
|
(0, vitest_1.expect)(displayOnModelPage(model)).toBe(true);
|
|
169
169
|
const snippet = snippetFunc(model);
|
|
170
|
-
(0, vitest_1.expect)(snippet[0].setup).toBe("
|
|
171
|
-
(0, vitest_1.expect)(snippet[0].content).toBe("# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p
|
|
172
|
-
(0, vitest_1.expect)(snippet[1].setup).toBe("
|
|
173
|
-
(0, vitest_1.expect)(snippet[1].content).toBe(
|
|
174
|
-
(0, vitest_1.expect)(snippet[2].setup).toBe("
|
|
175
|
-
(0, vitest_1.expect)(snippet[2].content).toBe(
|
|
170
|
+
(0, vitest_1.expect)(snippet[0].setup).toBe("curl -fsSL https://unsloth.ai/install.sh | sh");
|
|
171
|
+
(0, vitest_1.expect)(snippet[0].content).toBe("# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p 8888\n# Then open http://localhost:8888 in your browser\n# Search for some-user/my-unsloth-finetune to start chatting");
|
|
172
|
+
(0, vitest_1.expect)(snippet[1].setup).toBe("irm https://unsloth.ai/install.ps1 | iex");
|
|
173
|
+
(0, vitest_1.expect)(snippet[1].content).toBe(snippet[0].content);
|
|
174
|
+
(0, vitest_1.expect)(snippet[2].setup).toBe("# No setup required");
|
|
175
|
+
(0, vitest_1.expect)(snippet[2].content).toBe("# Open https://huggingface.co/spaces/unsloth/studio in your browser\n# Search for some-user/my-unsloth-finetune to start chatting");
|
|
176
|
+
(0, vitest_1.expect)(snippet[3].setup).toBe("pip install unsloth");
|
|
177
|
+
(0, vitest_1.expect)(snippet[3].content).toBe('from unsloth import FastModel\nmodel, tokenizer = FastModel.from_pretrained(\n model_name="some-user/my-unsloth-finetune",\n max_seq_length=2048,\n)');
|
|
176
178
|
});
|
|
177
179
|
(0, vitest_1.it)("unsloth namespace gguf model", async () => {
|
|
178
180
|
const { displayOnModelPage, snippet: snippetFunc } = local_apps_js_1.LOCAL_APPS.unsloth;
|
|
@@ -184,11 +186,13 @@ curl -X POST "http://localhost:8000/v1/chat/completions" \\
|
|
|
184
186
|
};
|
|
185
187
|
(0, vitest_1.expect)(displayOnModelPage(model)).toBe(true);
|
|
186
188
|
const snippet = snippetFunc(model);
|
|
187
|
-
(0, vitest_1.expect)(snippet[0].setup).toBe("
|
|
188
|
-
(0, vitest_1.expect)(snippet[0].content).toBe("# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p
|
|
189
|
-
(0, vitest_1.expect)(snippet[1].setup).toBe("
|
|
190
|
-
(0, vitest_1.expect)(snippet[1].content).toBe(
|
|
191
|
-
(0, vitest_1.expect)(snippet).
|
|
189
|
+
(0, vitest_1.expect)(snippet[0].setup).toBe("curl -fsSL https://unsloth.ai/install.sh | sh");
|
|
190
|
+
(0, vitest_1.expect)(snippet[0].content).toBe("# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p 8888\n# Then open http://localhost:8888 in your browser\n# Search for unsloth/Llama-3.2-3B-Instruct-GGUF to start chatting");
|
|
191
|
+
(0, vitest_1.expect)(snippet[1].setup).toBe("irm https://unsloth.ai/install.ps1 | iex");
|
|
192
|
+
(0, vitest_1.expect)(snippet[1].content).toBe(snippet[0].content);
|
|
193
|
+
(0, vitest_1.expect)(snippet[2].setup).toBe("# No setup required");
|
|
194
|
+
(0, vitest_1.expect)(snippet[2].content).toBe("# Open https://huggingface.co/spaces/unsloth/studio in your browser\n# Search for unsloth/Llama-3.2-3B-Instruct-GGUF to start chatting");
|
|
195
|
+
(0, vitest_1.expect)(snippet).toHaveLength(3); // GGUF models only get 3 snippets
|
|
192
196
|
});
|
|
193
197
|
(0, vitest_1.it)("non unsloth namespace gguf model", async () => {
|
|
194
198
|
const { displayOnModelPage } = local_apps_js_1.LOCAL_APPS.unsloth;
|
package/dist/esm/eval.d.ts
CHANGED
|
@@ -32,6 +32,11 @@ export declare const EVALUATION_FRAMEWORKS: {
|
|
|
32
32
|
readonly description: "Archipelago is a system for running and evaluating AI agents against MCP applications.";
|
|
33
33
|
readonly url: "https://github.com/Mercor-Intelligence/archipelago";
|
|
34
34
|
};
|
|
35
|
+
readonly "apex-evals": {
|
|
36
|
+
readonly name: "apex-evals";
|
|
37
|
+
readonly description: "APEX Evals is a benchmark suite and evaluation harness for evaluating large language models.";
|
|
38
|
+
readonly url: "https://github.com/Mercor-Intelligence/apex-evals";
|
|
39
|
+
};
|
|
35
40
|
readonly "screenspot-pro": {
|
|
36
41
|
readonly name: "screenspot-pro";
|
|
37
42
|
readonly description: "ScreenSpot-Pro is a GUI grounding benchmark designed to evaluate how well AI agents can locate and identify UI elements across professional software applications in high-resolution screenshots, covering 1,585 annotated images from 26 professional tools.";
|
package/dist/esm/eval.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/eval.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/eval.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsExB,CAAC"}
|
package/dist/esm/eval.js
CHANGED
|
@@ -32,6 +32,11 @@ export const EVALUATION_FRAMEWORKS = {
|
|
|
32
32
|
description: "Archipelago is a system for running and evaluating AI agents against MCP applications.",
|
|
33
33
|
url: "https://github.com/Mercor-Intelligence/archipelago",
|
|
34
34
|
},
|
|
35
|
+
"apex-evals": {
|
|
36
|
+
name: "apex-evals",
|
|
37
|
+
description: "APEX Evals is a benchmark suite and evaluation harness for evaluating large language models.",
|
|
38
|
+
url: "https://github.com/Mercor-Intelligence/apex-evals",
|
|
39
|
+
},
|
|
35
40
|
"screenspot-pro": {
|
|
36
41
|
name: "screenspot-pro",
|
|
37
42
|
description: "ScreenSpot-Pro is a GUI grounding benchmark designed to evaluate how well AI agents can locate and identify UI elements across professional software applications in high-resolution screenshots, covering 1,585 annotated images from 26 professional tools.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hardware-nvidia.d.ts","sourceRoot":"","sources":["../../src/hardware-nvidia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED,oBAAY,yBAAyB;IACpC,eAAe,OAAO;IACtB,aAAa,KAAO;IACpB,SAAS,KAAO;IAChB,MAAM,IAAM;IACZ,YAAY,MAAM;IAClB,IAAI,MAAM;IACV,UAAU,MAAM;IAChB,MAAM,IAAM;IACZ,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,KAAK,IAAM;IACX,YAAY,MAAM;IAClB,MAAM,MAAM;IACZ,iBAAiB,IAAM;IACvB,OAAO,MAAM;CACb;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"hardware-nvidia.d.ts","sourceRoot":"","sources":["../../src/hardware-nvidia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED,oBAAY,yBAAyB;IACpC,eAAe,OAAO;IACtB,aAAa,KAAO;IACpB,SAAS,KAAO;IAChB,MAAM,IAAM;IACZ,YAAY,MAAM;IAClB,IAAI,MAAM;IACV,UAAU,MAAM;IAChB,MAAM,IAAM;IACZ,MAAM,MAAM;IACZ,MAAM,MAAM;IACZ,KAAK,IAAM;IACX,YAAY,MAAM;IAClB,MAAM,MAAM;IACZ,iBAAiB,IAAM;IACvB,OAAO,MAAM;CACb;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAwhB1D,CAAC"}
|
|
@@ -183,7 +183,7 @@ export const NVIDIA_SKUS = {
|
|
|
183
183
|
computeCapability: 8.6,
|
|
184
184
|
},
|
|
185
185
|
A2: {
|
|
186
|
-
tflops: 4.531,
|
|
186
|
+
tflops: 4.531,
|
|
187
187
|
memory: [16],
|
|
188
188
|
computeCapability: 8.6,
|
|
189
189
|
},
|
|
@@ -208,7 +208,7 @@ export const NVIDIA_SKUS = {
|
|
|
208
208
|
computeCapability: 12.0,
|
|
209
209
|
},
|
|
210
210
|
"RTX 5080 Mobile": {
|
|
211
|
-
tflops:
|
|
211
|
+
tflops: 23.04,
|
|
212
212
|
memory: [16],
|
|
213
213
|
computeCapability: 12.0,
|
|
214
214
|
},
|
|
@@ -218,7 +218,7 @@ export const NVIDIA_SKUS = {
|
|
|
218
218
|
computeCapability: 12.0,
|
|
219
219
|
},
|
|
220
220
|
"RTX 5070 Mobile": {
|
|
221
|
-
tflops:
|
|
221
|
+
tflops: 13.13,
|
|
222
222
|
memory: [8],
|
|
223
223
|
computeCapability: 12.0,
|
|
224
224
|
},
|
|
@@ -227,13 +227,23 @@ export const NVIDIA_SKUS = {
|
|
|
227
227
|
memory: [16],
|
|
228
228
|
computeCapability: 12.0,
|
|
229
229
|
},
|
|
230
|
+
"RTX 5070 Ti Mobile": {
|
|
231
|
+
tflops: 17.04,
|
|
232
|
+
memory: [12],
|
|
233
|
+
computeCapability: 12.0,
|
|
234
|
+
},
|
|
230
235
|
"RTX 5060 Ti": {
|
|
231
|
-
tflops: 23.7,
|
|
236
|
+
tflops: 23.7,
|
|
232
237
|
memory: [16, 8],
|
|
233
238
|
computeCapability: 12.0,
|
|
234
239
|
},
|
|
235
240
|
"RTX 5060": {
|
|
236
|
-
tflops: 19.18,
|
|
241
|
+
tflops: 19.18,
|
|
242
|
+
memory: [8],
|
|
243
|
+
computeCapability: 12.0,
|
|
244
|
+
},
|
|
245
|
+
"RTX 5060 Mobile": {
|
|
246
|
+
tflops: 9.684,
|
|
237
247
|
memory: [8],
|
|
238
248
|
computeCapability: 12.0,
|
|
239
249
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-apps.d.ts","sourceRoot":"","sources":["../../src/local-apps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;CAClD,GAAG,CACD;IACA;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;CACtD,GACD;IACA;;;;OAIG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;CACzG,CACH,CAAC;AAsBF,iBAAS,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE7C;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,SAAS,WAE5C;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAU9C;AAED,iBAAS,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE3D;AA0BD,iBAAS,cAAc,CAAC,KAAK,EAAE,SAAS,WAEvC;
|
|
1
|
+
{"version":3,"file":"local-apps.d.ts","sourceRoot":"","sources":["../../src/local-apps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAKnD,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;CAClD,GAAG,CACD;IACA;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;CACtD,GACD;IACA;;;;OAIG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;CACzG,CACH,CAAC;AAsBF,iBAAS,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE7C;AAED,iBAAS,mBAAmB,CAAC,KAAK,EAAE,SAAS,WAE5C;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAU9C;AAED,iBAAS,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE3D;AA0BD,iBAAS,cAAc,CAAC,KAAK,EAAE,SAAS,WAEvC;AAqaD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU;;;;;;yBAnaS,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;yBAiDzC,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;yBA2F3D,SAAS,KAAG,eAAe,EAAE;;;;;;oCAiT3B,SAAS;yBA3PT,SAAS,KAAG,eAAe,EAAE;;;;;;;yBAoF9B,SAAS,KAAG,eAAe,EAAE;;;;;;;yBA7B/B,SAAS,KAAG,eAAe,EAAE;;;;;;;;;;;;;;yBApIzB,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAtDjD,SAAS,aAAa,MAAM,KAAG,MAAM;;;;;;;yBAIpC,SAAS,KAAG,eAAe,EAAE;;;;;;;yBAqSnB,SAAS,aAAa,MAAM,KAAG,MAAM;;;;;;;yBAM9C,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;;;;;;yBArDtD,SAAS,aAAa,MAAM,KAAG,eAAe,EAAE;;CAuStC,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/esm/local-apps.js
CHANGED
|
@@ -131,15 +131,21 @@ const snippetOllama = (model, filepath) => {
|
|
|
131
131
|
};
|
|
132
132
|
const snippetUnsloth = (model) => {
|
|
133
133
|
const isGguf = isLlamaCppGgufModel(model);
|
|
134
|
+
const studio_content = [
|
|
135
|
+
"# Run unsloth studio",
|
|
136
|
+
"unsloth studio -H 0.0.0.0 -p 8888",
|
|
137
|
+
"# Then open http://localhost:8888 in your browser",
|
|
138
|
+
"# Search for " + model.id + " to start chatting",
|
|
139
|
+
].join("\n");
|
|
134
140
|
const studio_instructions = {
|
|
135
|
-
title: "
|
|
136
|
-
setup:
|
|
137
|
-
content:
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
141
|
+
title: "Install Unsloth Studio (macOS, Linux, WSL)",
|
|
142
|
+
setup: "curl -fsSL https://unsloth.ai/install.sh | sh",
|
|
143
|
+
content: studio_content,
|
|
144
|
+
};
|
|
145
|
+
const studio_instructions_windows = {
|
|
146
|
+
title: "Install Unsloth Studio (Windows)",
|
|
147
|
+
setup: "irm https://unsloth.ai/install.ps1 | iex",
|
|
148
|
+
content: studio_content,
|
|
143
149
|
};
|
|
144
150
|
const hf_spaces_instructions = {
|
|
145
151
|
title: "Using HuggingFace Spaces for Unsloth",
|
|
@@ -160,10 +166,10 @@ const snippetUnsloth = (model) => {
|
|
|
160
166
|
].join("\n"),
|
|
161
167
|
};
|
|
162
168
|
if (isGguf) {
|
|
163
|
-
return [studio_instructions, hf_spaces_instructions];
|
|
169
|
+
return [studio_instructions, studio_instructions_windows, hf_spaces_instructions];
|
|
164
170
|
}
|
|
165
171
|
else {
|
|
166
|
-
return [studio_instructions, hf_spaces_instructions, fastmodel_instructions];
|
|
172
|
+
return [studio_instructions, studio_instructions_windows, hf_spaces_instructions, fastmodel_instructions];
|
|
167
173
|
}
|
|
168
174
|
};
|
|
169
175
|
const snippetLocalAI = (model, filepath) => {
|
|
@@ -165,12 +165,14 @@ curl -X POST "http://localhost:8000/v1/chat/completions" \\
|
|
|
165
165
|
};
|
|
166
166
|
expect(displayOnModelPage(model)).toBe(true);
|
|
167
167
|
const snippet = snippetFunc(model);
|
|
168
|
-
expect(snippet[0].setup).toBe("
|
|
169
|
-
expect(snippet[0].content).toBe("# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p
|
|
170
|
-
expect(snippet[1].setup).toBe("
|
|
171
|
-
expect(snippet[1].content).toBe(
|
|
172
|
-
expect(snippet[2].setup).toBe("
|
|
173
|
-
expect(snippet[2].content).toBe(
|
|
168
|
+
expect(snippet[0].setup).toBe("curl -fsSL https://unsloth.ai/install.sh | sh");
|
|
169
|
+
expect(snippet[0].content).toBe("# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p 8888\n# Then open http://localhost:8888 in your browser\n# Search for some-user/my-unsloth-finetune to start chatting");
|
|
170
|
+
expect(snippet[1].setup).toBe("irm https://unsloth.ai/install.ps1 | iex");
|
|
171
|
+
expect(snippet[1].content).toBe(snippet[0].content);
|
|
172
|
+
expect(snippet[2].setup).toBe("# No setup required");
|
|
173
|
+
expect(snippet[2].content).toBe("# Open https://huggingface.co/spaces/unsloth/studio in your browser\n# Search for some-user/my-unsloth-finetune to start chatting");
|
|
174
|
+
expect(snippet[3].setup).toBe("pip install unsloth");
|
|
175
|
+
expect(snippet[3].content).toBe('from unsloth import FastModel\nmodel, tokenizer = FastModel.from_pretrained(\n model_name="some-user/my-unsloth-finetune",\n max_seq_length=2048,\n)');
|
|
174
176
|
});
|
|
175
177
|
it("unsloth namespace gguf model", async () => {
|
|
176
178
|
const { displayOnModelPage, snippet: snippetFunc } = LOCAL_APPS.unsloth;
|
|
@@ -182,11 +184,13 @@ curl -X POST "http://localhost:8000/v1/chat/completions" \\
|
|
|
182
184
|
};
|
|
183
185
|
expect(displayOnModelPage(model)).toBe(true);
|
|
184
186
|
const snippet = snippetFunc(model);
|
|
185
|
-
expect(snippet[0].setup).toBe("
|
|
186
|
-
expect(snippet[0].content).toBe("# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p
|
|
187
|
-
expect(snippet[1].setup).toBe("
|
|
188
|
-
expect(snippet[1].content).toBe(
|
|
189
|
-
expect(snippet).
|
|
187
|
+
expect(snippet[0].setup).toBe("curl -fsSL https://unsloth.ai/install.sh | sh");
|
|
188
|
+
expect(snippet[0].content).toBe("# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p 8888\n# Then open http://localhost:8888 in your browser\n# Search for unsloth/Llama-3.2-3B-Instruct-GGUF to start chatting");
|
|
189
|
+
expect(snippet[1].setup).toBe("irm https://unsloth.ai/install.ps1 | iex");
|
|
190
|
+
expect(snippet[1].content).toBe(snippet[0].content);
|
|
191
|
+
expect(snippet[2].setup).toBe("# No setup required");
|
|
192
|
+
expect(snippet[2].content).toBe("# Open https://huggingface.co/spaces/unsloth/studio in your browser\n# Search for unsloth/Llama-3.2-3B-Instruct-GGUF to start chatting");
|
|
193
|
+
expect(snippet).toHaveLength(3); // GGUF models only get 3 snippets
|
|
190
194
|
});
|
|
191
195
|
it("non unsloth namespace gguf model", async () => {
|
|
192
196
|
const { displayOnModelPage } = LOCAL_APPS.unsloth;
|
package/package.json
CHANGED
package/src/eval.ts
CHANGED
|
@@ -32,6 +32,11 @@ export const EVALUATION_FRAMEWORKS = {
|
|
|
32
32
|
description: "Archipelago is a system for running and evaluating AI agents against MCP applications.",
|
|
33
33
|
url: "https://github.com/Mercor-Intelligence/archipelago",
|
|
34
34
|
},
|
|
35
|
+
"apex-evals": {
|
|
36
|
+
name: "apex-evals",
|
|
37
|
+
description: "APEX Evals is a benchmark suite and evaluation harness for evaluating large language models.",
|
|
38
|
+
url: "https://github.com/Mercor-Intelligence/apex-evals",
|
|
39
|
+
},
|
|
35
40
|
"screenspot-pro": {
|
|
36
41
|
name: "screenspot-pro",
|
|
37
42
|
description:
|
package/src/hardware-nvidia.ts
CHANGED
|
@@ -194,7 +194,7 @@ export const NVIDIA_SKUS: Record<string, NvidiaHardwareSpec> = {
|
|
|
194
194
|
computeCapability: 8.6,
|
|
195
195
|
},
|
|
196
196
|
A2: {
|
|
197
|
-
tflops: 4.531,
|
|
197
|
+
tflops: 4.531,
|
|
198
198
|
memory: [16],
|
|
199
199
|
computeCapability: 8.6,
|
|
200
200
|
},
|
|
@@ -219,7 +219,7 @@ export const NVIDIA_SKUS: Record<string, NvidiaHardwareSpec> = {
|
|
|
219
219
|
computeCapability: 12.0,
|
|
220
220
|
},
|
|
221
221
|
"RTX 5080 Mobile": {
|
|
222
|
-
tflops:
|
|
222
|
+
tflops: 23.04,
|
|
223
223
|
memory: [16],
|
|
224
224
|
computeCapability: 12.0,
|
|
225
225
|
},
|
|
@@ -229,7 +229,7 @@ export const NVIDIA_SKUS: Record<string, NvidiaHardwareSpec> = {
|
|
|
229
229
|
computeCapability: 12.0,
|
|
230
230
|
},
|
|
231
231
|
"RTX 5070 Mobile": {
|
|
232
|
-
tflops:
|
|
232
|
+
tflops: 13.13,
|
|
233
233
|
memory: [8],
|
|
234
234
|
computeCapability: 12.0,
|
|
235
235
|
},
|
|
@@ -238,13 +238,23 @@ export const NVIDIA_SKUS: Record<string, NvidiaHardwareSpec> = {
|
|
|
238
238
|
memory: [16],
|
|
239
239
|
computeCapability: 12.0,
|
|
240
240
|
},
|
|
241
|
+
"RTX 5070 Ti Mobile": {
|
|
242
|
+
tflops: 17.04,
|
|
243
|
+
memory: [12],
|
|
244
|
+
computeCapability: 12.0,
|
|
245
|
+
},
|
|
241
246
|
"RTX 5060 Ti": {
|
|
242
|
-
tflops: 23.7,
|
|
247
|
+
tflops: 23.7,
|
|
243
248
|
memory: [16, 8],
|
|
244
249
|
computeCapability: 12.0,
|
|
245
250
|
},
|
|
246
251
|
"RTX 5060": {
|
|
247
|
-
tflops: 19.18,
|
|
252
|
+
tflops: 19.18,
|
|
253
|
+
memory: [8],
|
|
254
|
+
computeCapability: 12.0,
|
|
255
|
+
},
|
|
256
|
+
"RTX 5060 Mobile": {
|
|
257
|
+
tflops: 9.684,
|
|
248
258
|
memory: [8],
|
|
249
259
|
computeCapability: 12.0,
|
|
250
260
|
},
|
package/src/local-apps.spec.ts
CHANGED
|
@@ -184,16 +184,18 @@ curl -X POST "http://localhost:8000/v1/chat/completions" \\
|
|
|
184
184
|
|
|
185
185
|
expect(displayOnModelPage(model)).toBe(true);
|
|
186
186
|
const snippet = snippetFunc(model);
|
|
187
|
-
expect(snippet[0].setup).toBe("
|
|
187
|
+
expect(snippet[0].setup).toBe("curl -fsSL https://unsloth.ai/install.sh | sh");
|
|
188
188
|
expect(snippet[0].content).toBe(
|
|
189
|
-
"# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p
|
|
189
|
+
"# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p 8888\n# Then open http://localhost:8888 in your browser\n# Search for some-user/my-unsloth-finetune to start chatting",
|
|
190
190
|
);
|
|
191
|
-
expect(snippet[1].setup).toBe("
|
|
192
|
-
expect(snippet[1].content).toBe(
|
|
191
|
+
expect(snippet[1].setup).toBe("irm https://unsloth.ai/install.ps1 | iex");
|
|
192
|
+
expect(snippet[1].content).toBe(snippet[0].content);
|
|
193
|
+
expect(snippet[2].setup).toBe("# No setup required");
|
|
194
|
+
expect(snippet[2].content).toBe(
|
|
193
195
|
"# Open https://huggingface.co/spaces/unsloth/studio in your browser\n# Search for some-user/my-unsloth-finetune to start chatting",
|
|
194
196
|
);
|
|
195
|
-
expect(snippet[
|
|
196
|
-
expect(snippet[
|
|
197
|
+
expect(snippet[3].setup).toBe("pip install unsloth");
|
|
198
|
+
expect(snippet[3].content).toBe(
|
|
197
199
|
'from unsloth import FastModel\nmodel, tokenizer = FastModel.from_pretrained(\n model_name="some-user/my-unsloth-finetune",\n max_seq_length=2048,\n)',
|
|
198
200
|
);
|
|
199
201
|
});
|
|
@@ -209,15 +211,17 @@ curl -X POST "http://localhost:8000/v1/chat/completions" \\
|
|
|
209
211
|
|
|
210
212
|
expect(displayOnModelPage(model)).toBe(true);
|
|
211
213
|
const snippet = snippetFunc(model);
|
|
212
|
-
expect(snippet[0].setup).toBe("
|
|
214
|
+
expect(snippet[0].setup).toBe("curl -fsSL https://unsloth.ai/install.sh | sh");
|
|
213
215
|
expect(snippet[0].content).toBe(
|
|
214
|
-
"# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p
|
|
216
|
+
"# Run unsloth studio\nunsloth studio -H 0.0.0.0 -p 8888\n# Then open http://localhost:8888 in your browser\n# Search for unsloth/Llama-3.2-3B-Instruct-GGUF to start chatting",
|
|
215
217
|
);
|
|
216
|
-
expect(snippet[1].setup).toBe("
|
|
217
|
-
expect(snippet[1].content).toBe(
|
|
218
|
+
expect(snippet[1].setup).toBe("irm https://unsloth.ai/install.ps1 | iex");
|
|
219
|
+
expect(snippet[1].content).toBe(snippet[0].content);
|
|
220
|
+
expect(snippet[2].setup).toBe("# No setup required");
|
|
221
|
+
expect(snippet[2].content).toBe(
|
|
218
222
|
"# Open https://huggingface.co/spaces/unsloth/studio in your browser\n# Search for unsloth/Llama-3.2-3B-Instruct-GGUF to start chatting",
|
|
219
223
|
);
|
|
220
|
-
expect(snippet).toHaveLength(
|
|
224
|
+
expect(snippet).toHaveLength(3); // GGUF models only get 3 snippets
|
|
221
225
|
});
|
|
222
226
|
|
|
223
227
|
it("non unsloth namespace gguf model", async () => {
|
package/src/local-apps.ts
CHANGED
|
@@ -216,15 +216,23 @@ const snippetOllama = (model: ModelData, filepath?: string): string => {
|
|
|
216
216
|
const snippetUnsloth = (model: ModelData): LocalAppSnippet[] => {
|
|
217
217
|
const isGguf = isLlamaCppGgufModel(model);
|
|
218
218
|
|
|
219
|
+
const studio_content = [
|
|
220
|
+
"# Run unsloth studio",
|
|
221
|
+
"unsloth studio -H 0.0.0.0 -p 8888",
|
|
222
|
+
"# Then open http://localhost:8888 in your browser",
|
|
223
|
+
"# Search for " + model.id + " to start chatting",
|
|
224
|
+
].join("\n");
|
|
225
|
+
|
|
219
226
|
const studio_instructions: LocalAppSnippet = {
|
|
220
|
-
title: "
|
|
221
|
-
setup:
|
|
222
|
-
content:
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
227
|
+
title: "Install Unsloth Studio (macOS, Linux, WSL)",
|
|
228
|
+
setup: "curl -fsSL https://unsloth.ai/install.sh | sh",
|
|
229
|
+
content: studio_content,
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
const studio_instructions_windows: LocalAppSnippet = {
|
|
233
|
+
title: "Install Unsloth Studio (Windows)",
|
|
234
|
+
setup: "irm https://unsloth.ai/install.ps1 | iex",
|
|
235
|
+
content: studio_content,
|
|
228
236
|
};
|
|
229
237
|
|
|
230
238
|
const hf_spaces_instructions: LocalAppSnippet = {
|
|
@@ -249,9 +257,9 @@ const snippetUnsloth = (model: ModelData): LocalAppSnippet[] => {
|
|
|
249
257
|
};
|
|
250
258
|
|
|
251
259
|
if (isGguf) {
|
|
252
|
-
return [studio_instructions, hf_spaces_instructions];
|
|
260
|
+
return [studio_instructions, studio_instructions_windows, hf_spaces_instructions];
|
|
253
261
|
} else {
|
|
254
|
-
return [studio_instructions, hf_spaces_instructions, fastmodel_instructions];
|
|
262
|
+
return [studio_instructions, studio_instructions_windows, hf_spaces_instructions, fastmodel_instructions];
|
|
255
263
|
}
|
|
256
264
|
};
|
|
257
265
|
|