inference-server 1.0.0-beta.21 → 1.0.0-beta.23
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/engines/node-llama-cpp/engine.d.ts +1 -1
- package/dist/engines/node-llama-cpp/engine.js +12 -23
- package/dist/engines/node-llama-cpp/engine.js.map +1 -1
- package/dist/lib/validateModelFile.d.ts +7 -1
- package/dist/lib/validateModelFile.js +40 -6
- package/dist/lib/validateModelFile.js.map +1 -1
- package/dist/server.d.ts +78 -0
- package/dist/server.js +35 -0
- package/dist/server.js.map +1 -1
- package/dist/standalone.js +14 -23
- package/dist/standalone.js.map +1 -1
- package/docs/cli.md +17 -0
- package/package.json +1 -1
- package/src/engines/node-llama-cpp/engine.ts +14 -24
- package/src/lib/validateModelFile.ts +51 -8
- package/src/server.ts +92 -13
- package/src/standalone.ts +13 -23
|
@@ -40,7 +40,7 @@ export interface NodeLlamaCppModelConfig extends ModelConfig {
|
|
|
40
40
|
}
|
|
41
41
|
export declare const autoGpu = true;
|
|
42
42
|
export declare function prepareModel({ config, log }: EngineContext<NodeLlamaCppModelConfig>, onProgress?: (progress: FileDownloadProgress) => void, signal?: AbortSignal): Promise<{
|
|
43
|
-
gguf
|
|
43
|
+
gguf?: any;
|
|
44
44
|
} | undefined>;
|
|
45
45
|
export declare function createInstance({ config, log }: EngineContext<NodeLlamaCppModelConfig>, signal?: AbortSignal): Promise<NodeLlamaCppInstance>;
|
|
46
46
|
export declare function disposeInstance(instance: NodeLlamaCppInstance): Promise<void>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import { nanoid } from 'nanoid';
|
|
4
|
-
import { getLlama, LlamaChat, LlamaCompletion, LlamaLogLevel, TokenBias, LlamaGrammar, defineChatSessionFunction, createModelDownloader,
|
|
4
|
+
import { getLlama, LlamaChat, LlamaCompletion, LlamaLogLevel, TokenBias, LlamaGrammar, defineChatSessionFunction, createModelDownloader, LlamaJsonSchemaGrammar, } from 'node-llama-cpp';
|
|
5
5
|
import { LogLevels } from '../../lib/logger.js';
|
|
6
6
|
import { flattenMessageTextContent } from '../../lib/flattenMessageTextContent.js';
|
|
7
7
|
import { acquireFileLock } from '../../lib/acquireFileLock.js';
|
|
@@ -47,34 +47,23 @@ export async function prepareModel({ config, log }, onProgress, signal) {
|
|
|
47
47
|
if (signal?.aborted) {
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
|
-
const
|
|
50
|
+
const validationRes = await validateModelFile(config);
|
|
51
|
+
let modelMeta = validationRes.meta;
|
|
51
52
|
if (signal?.aborted) {
|
|
52
53
|
return;
|
|
53
54
|
}
|
|
54
|
-
if (
|
|
55
|
-
if (config.url) {
|
|
56
|
-
|
|
55
|
+
if (validationRes.error) {
|
|
56
|
+
if (!config.url) {
|
|
57
|
+
throw new Error(`${validationRes.error} - No URL provided`);
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
await downloadModel(config.url, validationRes.error);
|
|
60
|
+
const revalidationRes = await validateModelFile(config);
|
|
61
|
+
if (revalidationRes.error) {
|
|
62
|
+
throw new Error(`Downloaded files are invalid: ${revalidationRes.error}`);
|
|
60
63
|
}
|
|
64
|
+
modelMeta = revalidationRes.meta;
|
|
61
65
|
}
|
|
62
|
-
|
|
63
|
-
if (finalValidationError) {
|
|
64
|
-
throw new Error(`Downloaded files are invalid: ${finalValidationError}`);
|
|
65
|
-
}
|
|
66
|
-
const gguf = await readGgufFileInfo(config.location, {
|
|
67
|
-
signal,
|
|
68
|
-
ignoreKeys: [
|
|
69
|
-
'gguf.tokenizer.ggml.merges',
|
|
70
|
-
'gguf.tokenizer.ggml.tokens',
|
|
71
|
-
'gguf.tokenizer.ggml.scores',
|
|
72
|
-
'gguf.tokenizer.ggml.token_type',
|
|
73
|
-
],
|
|
74
|
-
});
|
|
75
|
-
return {
|
|
76
|
-
gguf,
|
|
77
|
-
};
|
|
66
|
+
return modelMeta;
|
|
78
67
|
}
|
|
79
68
|
catch (err) {
|
|
80
69
|
throw err;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/engines/node-llama-cpp/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/engines/node-llama-cpp/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,11 @@ interface ValidatableModelConfig {
|
|
|
5
5
|
sha256?: string;
|
|
6
6
|
md5?: string;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
interface ValidationResult {
|
|
9
|
+
error?: string;
|
|
10
|
+
meta?: {
|
|
11
|
+
gguf?: any;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function validateModelFile(config: ValidatableModelConfig, signal?: AbortSignal): Promise<ValidationResult>;
|
|
9
15
|
export {};
|
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import { calculateFileChecksum } from '../lib/calculateFileChecksum.js';
|
|
3
3
|
import { resolveModelFileLocation } from '../lib/resolveModelFileLocation.js';
|
|
4
|
-
|
|
4
|
+
import { readGgufFileInfo } from 'node-llama-cpp';
|
|
5
|
+
export async function validateModelFile(config, signal) {
|
|
5
6
|
const fileLocation = resolveModelFileLocation({
|
|
6
7
|
url: config.url,
|
|
7
8
|
filePath: config.location,
|
|
8
9
|
modelsCachePath: config.modelsCachePath,
|
|
9
10
|
});
|
|
10
11
|
if (!fs.existsSync(fileLocation)) {
|
|
11
|
-
return
|
|
12
|
+
return {
|
|
13
|
+
error: `Model file missing at ${fileLocation}`,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const stats = fs.statSync(fileLocation);
|
|
17
|
+
if (stats.size === 0) {
|
|
18
|
+
return {
|
|
19
|
+
error: `Model file at ${fileLocation} is empty`,
|
|
20
|
+
};
|
|
12
21
|
}
|
|
13
22
|
const hasChecksum = config.sha256 || config.md5;
|
|
14
23
|
let validatedChecksum = false;
|
|
@@ -40,23 +49,48 @@ export async function validateModelFile(config) {
|
|
|
40
49
|
}
|
|
41
50
|
}
|
|
42
51
|
if (!validatedChecksum) {
|
|
43
|
-
return
|
|
52
|
+
return {
|
|
53
|
+
error: `Model file with incomplete download`,
|
|
54
|
+
};
|
|
44
55
|
}
|
|
45
56
|
}
|
|
46
57
|
if (!validatedChecksum && hasChecksum) {
|
|
47
58
|
if (config.sha256) {
|
|
48
59
|
const fileHash = await calculateFileChecksum(fileLocation, 'sha256');
|
|
49
60
|
if (fileHash !== config.sha256) {
|
|
50
|
-
return
|
|
61
|
+
return {
|
|
62
|
+
error: `File sha256 checksum mismatch: expected ${config.sha256} got ${fileHash} at ${fileLocation}`,
|
|
63
|
+
};
|
|
51
64
|
}
|
|
52
65
|
}
|
|
53
66
|
else if (config.md5) {
|
|
54
67
|
const fileHash = await calculateFileChecksum(fileLocation, 'md5');
|
|
55
68
|
if (fileHash !== config.md5) {
|
|
56
|
-
return
|
|
69
|
+
return {
|
|
70
|
+
error: `File md5 checksum mismatch: expected ${config.md5} got ${fileHash} at ${fileLocation}`,
|
|
71
|
+
};
|
|
57
72
|
}
|
|
58
73
|
}
|
|
59
74
|
}
|
|
60
|
-
|
|
75
|
+
if (config.location?.endsWith('.gguf')) {
|
|
76
|
+
try {
|
|
77
|
+
const ggufMeta = await readGgufFileInfo(config.location, {
|
|
78
|
+
signal,
|
|
79
|
+
ignoreKeys: [
|
|
80
|
+
'gguf.tokenizer.ggml.merges',
|
|
81
|
+
'gguf.tokenizer.ggml.tokens',
|
|
82
|
+
'gguf.tokenizer.ggml.scores',
|
|
83
|
+
'gguf.tokenizer.ggml.token_type',
|
|
84
|
+
],
|
|
85
|
+
});
|
|
86
|
+
return { meta: { gguf: ggufMeta } };
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
return {
|
|
90
|
+
error: `Invalid GGUF: ${err}`,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return { meta: {} };
|
|
61
95
|
}
|
|
62
96
|
//# sourceMappingURL=validateModelFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateModelFile.js","sourceRoot":"","sources":["../../src/lib/validateModelFile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validateModelFile.js","sourceRoot":"","sources":["../../src/lib/validateModelFile.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -2,23 +2,96 @@ import { ModelPool } from './pool.js';
|
|
|
2
2
|
import { ModelStore } from './store.js';
|
|
3
3
|
import { ModelOptions, InferenceRequest, CompletionProcessingOptions, ChatCompletionRequest, EmbeddingRequest, ProcessingOptions, TextCompletionRequest, ModelEngine, ImageToTextRequest, TextToSpeechRequest, TextToSpeechProcessingOptions, SpeechToTextRequest, SpeechToTextProcessingOptions, TextToImageRequest, ImageToImageRequest, ObjectRecognitionRequest } from './types/index.js';
|
|
4
4
|
import { Logger, LogLevel } from './lib/logger.js';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration options for initializing a `ModelServer`.
|
|
7
|
+
* The example provided starts a model server using gpt4all as the engine, with the task of text-completion.
|
|
8
|
+
* @interface ModelServerOptions
|
|
9
|
+
* @example
|
|
10
|
+
* const modelServer = await startModelServer({
|
|
11
|
+
* log: 'info',
|
|
12
|
+
* concurrency: 2,
|
|
13
|
+
* models: {
|
|
14
|
+
* 'phi3-mini-4k': {
|
|
15
|
+
* task: 'text-completion',
|
|
16
|
+
* url: 'https://gpt4all.io/models/gguf/Phi-3-mini-4k-instruct.Q4_0.gguf',
|
|
17
|
+
* engine: 'gpt4all',
|
|
18
|
+
* maxInstances: 2,
|
|
19
|
+
* },
|
|
20
|
+
* },
|
|
21
|
+
* })
|
|
22
|
+
*/
|
|
5
23
|
export interface ModelServerOptions {
|
|
24
|
+
/**
|
|
25
|
+
* A record of custom engines to be used for processing tasks. Each engine is identified by a unique name.
|
|
26
|
+
* @type {Record<string, ModelEngine>}
|
|
27
|
+
* @optional
|
|
28
|
+
*/
|
|
6
29
|
engines?: Record<string, ModelEngine>;
|
|
30
|
+
/**
|
|
31
|
+
* A record of model configurations, where each model is identified by a unique ID, defined by the user.
|
|
32
|
+
* @type {Record<string, ModelOptions>}
|
|
33
|
+
*/
|
|
7
34
|
models: Record<string, ModelOptions>;
|
|
35
|
+
/**
|
|
36
|
+
* The maximum number of concurrent tasks allowed in the model pool.
|
|
37
|
+
* @type {number}
|
|
38
|
+
* @optional
|
|
39
|
+
*/
|
|
8
40
|
concurrency?: number;
|
|
41
|
+
/**
|
|
42
|
+
* The path to the cache directory where model files and related data will be stored.
|
|
43
|
+
* @type {string}
|
|
44
|
+
* @optional
|
|
45
|
+
*/
|
|
9
46
|
cachePath?: string;
|
|
47
|
+
/**
|
|
48
|
+
* A logger instance or log level to control logging for the server. If a log level is provided,
|
|
49
|
+
* a default logger will be created with that level.
|
|
50
|
+
* @type {Logger | LogLevel}
|
|
51
|
+
* @optional
|
|
52
|
+
*/
|
|
10
53
|
log?: Logger | LogLevel;
|
|
11
54
|
}
|
|
12
55
|
export declare function startModelServer(options: ModelServerOptions): ModelServer;
|
|
56
|
+
/**
|
|
57
|
+
* Represents a server for managing and serving machine learning models, including model initialization,
|
|
58
|
+
* request handling, and task processing.
|
|
59
|
+
*
|
|
60
|
+
* @class ModelServer
|
|
61
|
+
*/
|
|
13
62
|
export declare class ModelServer {
|
|
63
|
+
/** @property {ModelPool} pool - A pool for managing model instances and concurrency. */
|
|
14
64
|
pool: ModelPool;
|
|
65
|
+
/** @property {ModelStore} store - A store for managing model metadata, preparation, and storage. */
|
|
15
66
|
store: ModelStore;
|
|
67
|
+
/** @property {Record<string, ModelEngine>} engines - A record of engines (custom and built-in) used for processing tasks. */
|
|
16
68
|
engines: Record<string, ModelEngine>;
|
|
69
|
+
/** @property {Logger} log - Logger for tracking the server's activities and errors. */
|
|
17
70
|
log: Logger;
|
|
71
|
+
/**
|
|
72
|
+
* Constructs a `ModelServer` instance with the specified options.
|
|
73
|
+
* @param {ModelServerOptions} options - Configuration options for the server.
|
|
74
|
+
*/
|
|
18
75
|
constructor(options: ModelServerOptions);
|
|
19
76
|
modelExists(modelId: string): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Starts the model server, initializing engines and preparing the model store and pool.
|
|
79
|
+
* Usually you would not need to call this method. startModelServer() will do this for you.
|
|
80
|
+
* @returns {Promise<void>} Resolves when the server is fully started.
|
|
81
|
+
*/
|
|
20
82
|
start(): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Stops the server. disposes all resources. Clears the queue of working tasks.
|
|
85
|
+
**/
|
|
21
86
|
stop(): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Requests an available model instance from the pool for a specific task.
|
|
89
|
+
* There is not much need to call this method unless you are creating a custom task pipeline.
|
|
90
|
+
* This method is called internally by the processXTask methods.
|
|
91
|
+
* @param {InferenceRequest} request - The inference request details.
|
|
92
|
+
* @param {AbortSignal} [signal] - Optional signal to cancel the request.
|
|
93
|
+
* @returns {Promise<ModelInstance>} The requested model instance.
|
|
94
|
+
*/
|
|
22
95
|
requestInstance(request: InferenceRequest, signal?: AbortSignal): Promise<import("./pool.js").ModelInstanceHandle>;
|
|
23
96
|
private prepareInstance;
|
|
24
97
|
processChatCompletionTask(args: ChatCompletionRequest, options?: CompletionProcessingOptions): Promise<import("./types/index.js").EngineChatCompletionResult>;
|
|
@@ -30,6 +103,11 @@ export declare class ModelServer {
|
|
|
30
103
|
processTextToImageTask(args: TextToImageRequest, options?: ProcessingOptions): Promise<import("./types/index.js").EngineTextToImageResult>;
|
|
31
104
|
processImageToImageTask(args: ImageToImageRequest, options?: ProcessingOptions): Promise<import("./types/index.js").EngineImageToImageResult>;
|
|
32
105
|
processObjectRecognitionTask(args: ObjectRecognitionRequest, options?: ProcessingOptions): Promise<import("./types/index.js").EngineObjectRecognitionResult>;
|
|
106
|
+
/**
|
|
107
|
+
* Retrieves the current status of the model server, including pool and store status.
|
|
108
|
+
*
|
|
109
|
+
* @returns {Object} The status object containing pool and store information.
|
|
110
|
+
*/
|
|
33
111
|
getStatus(): {
|
|
34
112
|
pool: {
|
|
35
113
|
processing: number;
|
package/dist/server.js
CHANGED
|
@@ -11,11 +11,25 @@ export function startModelServer(options) {
|
|
|
11
11
|
server.start();
|
|
12
12
|
return server;
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Represents a server for managing and serving machine learning models, including model initialization,
|
|
16
|
+
* request handling, and task processing.
|
|
17
|
+
*
|
|
18
|
+
* @class ModelServer
|
|
19
|
+
*/
|
|
14
20
|
export class ModelServer {
|
|
21
|
+
/** @property {ModelPool} pool - A pool for managing model instances and concurrency. */
|
|
15
22
|
pool;
|
|
23
|
+
/** @property {ModelStore} store - A store for managing model metadata, preparation, and storage. */
|
|
16
24
|
store;
|
|
25
|
+
/** @property {Record<string, ModelEngine>} engines - A record of engines (custom and built-in) used for processing tasks. */
|
|
17
26
|
engines = {};
|
|
27
|
+
/** @property {Logger} log - Logger for tracking the server's activities and errors. */
|
|
18
28
|
log;
|
|
29
|
+
/**
|
|
30
|
+
* Constructs a `ModelServer` instance with the specified options.
|
|
31
|
+
* @param {ModelServerOptions} options - Configuration options for the server.
|
|
32
|
+
*/
|
|
19
33
|
constructor(options) {
|
|
20
34
|
this.log = createSublogger(options.log);
|
|
21
35
|
let modelsCachePath = getCacheDirPath('models');
|
|
@@ -86,6 +100,11 @@ export class ModelServer {
|
|
|
86
100
|
modelExists(modelId) {
|
|
87
101
|
return !!this.pool.config.models[modelId];
|
|
88
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Starts the model server, initializing engines and preparing the model store and pool.
|
|
105
|
+
* Usually you would not need to call this method. startModelServer() will do this for you.
|
|
106
|
+
* @returns {Promise<void>} Resolves when the server is fully started.
|
|
107
|
+
*/
|
|
89
108
|
async start() {
|
|
90
109
|
const engineStartPromises = [];
|
|
91
110
|
// call startEngine on custom engines
|
|
@@ -118,6 +137,9 @@ export class ModelServer {
|
|
|
118
137
|
await Promise.all(engineStartPromises);
|
|
119
138
|
await Promise.all([this.store.init(this.engines), this.pool.init(this.engines)]);
|
|
120
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Stops the server. disposes all resources. Clears the queue of working tasks.
|
|
142
|
+
**/
|
|
121
143
|
async stop() {
|
|
122
144
|
this.log(LogLevels.info, 'Stopping model server');
|
|
123
145
|
this.pool.queue.clear();
|
|
@@ -132,6 +154,14 @@ export class ModelServer {
|
|
|
132
154
|
}
|
|
133
155
|
this.log(LogLevels.debug, 'Model server stopped');
|
|
134
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Requests an available model instance from the pool for a specific task.
|
|
159
|
+
* There is not much need to call this method unless you are creating a custom task pipeline.
|
|
160
|
+
* This method is called internally by the processXTask methods.
|
|
161
|
+
* @param {InferenceRequest} request - The inference request details.
|
|
162
|
+
* @param {AbortSignal} [signal] - Optional signal to cancel the request.
|
|
163
|
+
* @returns {Promise<ModelInstance>} The requested model instance.
|
|
164
|
+
*/
|
|
135
165
|
async requestInstance(request, signal) {
|
|
136
166
|
return this.pool.requestInstance(request, signal);
|
|
137
167
|
}
|
|
@@ -223,6 +253,11 @@ export class ModelServer {
|
|
|
223
253
|
await lock.release();
|
|
224
254
|
return result;
|
|
225
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* Retrieves the current status of the model server, including pool and store status.
|
|
258
|
+
*
|
|
259
|
+
* @returns {Object} The status object containing pool and store information.
|
|
260
|
+
*/
|
|
226
261
|
getStatus() {
|
|
227
262
|
const poolStatus = this.pool.getStatus();
|
|
228
263
|
const storeStatus = this.store.getStatus();
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAA;AAsB3D,OAAO,EAAoB,eAAe,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/standalone.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { format as formatURL } from 'node:url';
|
|
2
2
|
import { ModelHTTPServer } from './http.js';
|
|
3
|
+
import { WhisperForConditionalGeneration, } from '@huggingface/transformers';
|
|
3
4
|
// Currently only used for debugging. Do not use.
|
|
4
5
|
const serverOptions = {
|
|
5
6
|
listen: {
|
|
@@ -302,30 +303,20 @@ const serverOptions = {
|
|
|
302
303
|
// prepare: 'async',
|
|
303
304
|
// dtype: 'fp16',
|
|
304
305
|
// },
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
// engine: 'transformers-js',
|
|
308
|
-
// task: 'speech-to-text',
|
|
309
|
-
// prepare: 'async',
|
|
310
|
-
// minInstances: 1,
|
|
311
|
-
// modelClass: WhisperForConditionalGeneration,
|
|
312
|
-
// dtype: {
|
|
313
|
-
// encoder_model: 'fp16',
|
|
314
|
-
// decoder_model_merged: 'q4',
|
|
315
|
-
// },
|
|
316
|
-
// device: {
|
|
317
|
-
// gpu: false,
|
|
318
|
-
// },
|
|
319
|
-
// },
|
|
320
|
-
mobilellm: {
|
|
321
|
-
// url: 'https://huggingface.co/onnx-community/MobileLLM-600M'
|
|
322
|
-
// url: 'https://huggingface.co/onnx-community/MobileLLM-350M',
|
|
323
|
-
url: 'https://huggingface.co/onnx-community/MobileLLM-125M',
|
|
306
|
+
'whisper-base': {
|
|
307
|
+
url: 'https://huggingface.co/onnx-community/whisper-base',
|
|
324
308
|
engine: 'transformers-js',
|
|
325
|
-
task: 'text
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
309
|
+
task: 'speech-to-text',
|
|
310
|
+
prepare: 'async',
|
|
311
|
+
minInstances: 1,
|
|
312
|
+
modelClass: WhisperForConditionalGeneration,
|
|
313
|
+
dtype: {
|
|
314
|
+
encoder_model: 'fp16',
|
|
315
|
+
decoder_model_merged: 'q4',
|
|
316
|
+
},
|
|
317
|
+
device: {
|
|
318
|
+
gpu: false,
|
|
319
|
+
},
|
|
329
320
|
},
|
|
330
321
|
},
|
|
331
322
|
};
|
package/dist/standalone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standalone.js","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,eAAe,EAA0B,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"standalone.js","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"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"}
|
package/docs/cli.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
### CLI
|
|
3
|
+
|
|
4
|
+
The package comes with a few CLI commands to help you manage model files.
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
$ infs --help
|
|
8
|
+
infs <command>
|
|
9
|
+
|
|
10
|
+
Commands:
|
|
11
|
+
infs list [configPath] List stored models [aliases: ls, dir]
|
|
12
|
+
infs show <modelName> Print details of a model [aliases: info, details]
|
|
13
|
+
infs prepare <configPath> Prepare models defined in configuration
|
|
14
|
+
[aliases: prep, download]
|
|
15
|
+
infs remove <pattern> Delete models matching the pattern
|
|
16
|
+
[aliases: rm, del]
|
|
17
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "inference-server",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.23",
|
|
4
4
|
"description": "Libraries and server to build AI applications. Adapters to various native bindings allowing local inference. Integrate it with your application, or use as a microservice.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"source": "src/index.ts",
|
|
@@ -142,34 +142,24 @@ export async function prepareModel(
|
|
|
142
142
|
return
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
const
|
|
145
|
+
const validationRes = await validateModelFile(config)
|
|
146
|
+
let modelMeta = validationRes.meta
|
|
146
147
|
if (signal?.aborted) {
|
|
147
148
|
return
|
|
148
149
|
}
|
|
149
|
-
if (
|
|
150
|
-
if (config.url) {
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
|
|
150
|
+
if (validationRes.error) {
|
|
151
|
+
if (!config.url) {
|
|
152
|
+
throw new Error(`${validationRes.error} - No URL provided`)
|
|
153
|
+
}
|
|
154
|
+
await downloadModel(config.url, validationRes.error)
|
|
155
|
+
const revalidationRes = await validateModelFile(config)
|
|
156
|
+
if (revalidationRes.error) {
|
|
157
|
+
throw new Error(`Downloaded files are invalid: ${revalidationRes.error}`)
|
|
154
158
|
}
|
|
159
|
+
modelMeta = revalidationRes.meta
|
|
155
160
|
}
|
|
156
161
|
|
|
157
|
-
|
|
158
|
-
if (finalValidationError) {
|
|
159
|
-
throw new Error(`Downloaded files are invalid: ${finalValidationError}`)
|
|
160
|
-
}
|
|
161
|
-
const gguf = await readGgufFileInfo(config.location, {
|
|
162
|
-
signal,
|
|
163
|
-
ignoreKeys: [
|
|
164
|
-
'gguf.tokenizer.ggml.merges',
|
|
165
|
-
'gguf.tokenizer.ggml.tokens',
|
|
166
|
-
'gguf.tokenizer.ggml.scores',
|
|
167
|
-
'gguf.tokenizer.ggml.token_type',
|
|
168
|
-
],
|
|
169
|
-
})
|
|
170
|
-
return {
|
|
171
|
-
gguf,
|
|
172
|
-
}
|
|
162
|
+
return modelMeta
|
|
173
163
|
} catch (err) {
|
|
174
164
|
throw err
|
|
175
165
|
} finally {
|
|
@@ -474,10 +464,10 @@ export async function processChatCompletionTask(
|
|
|
474
464
|
onFunctionCall: (functionCall: LlamaChatResponseFunctionCall<any>) => {
|
|
475
465
|
// log(LogLevels.debug, 'Called function', functionCall)
|
|
476
466
|
},
|
|
477
|
-
|
|
467
|
+
}
|
|
478
468
|
: {
|
|
479
469
|
grammar: inputGrammar,
|
|
480
|
-
|
|
470
|
+
}
|
|
481
471
|
|
|
482
472
|
const initialTokenMeterState = instance.chat.sequence.tokenMeter.getState()
|
|
483
473
|
let completionResult: LlamaChatResult
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
1
|
import fs from 'node:fs'
|
|
4
2
|
import { calculateFileChecksum } from '#package/lib/calculateFileChecksum.js'
|
|
5
3
|
import { resolveModelFileLocation } from '#package/lib/resolveModelFileLocation.js'
|
|
4
|
+
import { readGgufFileInfo } from 'node-llama-cpp'
|
|
6
5
|
|
|
7
6
|
interface ValidatableModelConfig {
|
|
8
7
|
url?: string
|
|
@@ -12,14 +11,32 @@ interface ValidatableModelConfig {
|
|
|
12
11
|
md5?: string
|
|
13
12
|
}
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
interface ValidationResult {
|
|
15
|
+
error?: string
|
|
16
|
+
meta?: {
|
|
17
|
+
gguf?: any
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export async function validateModelFile(
|
|
22
|
+
config: ValidatableModelConfig,
|
|
23
|
+
signal?: AbortSignal,
|
|
24
|
+
): Promise<ValidationResult> {
|
|
16
25
|
const fileLocation = resolveModelFileLocation({
|
|
17
26
|
url: config.url,
|
|
18
27
|
filePath: config.location,
|
|
19
28
|
modelsCachePath: config.modelsCachePath,
|
|
20
29
|
})
|
|
21
30
|
if (!fs.existsSync(fileLocation)) {
|
|
22
|
-
return
|
|
31
|
+
return {
|
|
32
|
+
error: `Model file missing at ${fileLocation}`,
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const stats = fs.statSync(fileLocation)
|
|
36
|
+
if (stats.size === 0) {
|
|
37
|
+
return {
|
|
38
|
+
error: `Model file at ${fileLocation} is empty`,
|
|
39
|
+
}
|
|
23
40
|
}
|
|
24
41
|
const hasChecksum = config.sha256 || config.md5
|
|
25
42
|
let validatedChecksum = false
|
|
@@ -50,7 +67,9 @@ export async function validateModelFile(config: ValidatableModelConfig): Promise
|
|
|
50
67
|
}
|
|
51
68
|
}
|
|
52
69
|
if (!validatedChecksum) {
|
|
53
|
-
return
|
|
70
|
+
return {
|
|
71
|
+
error: `Model file with incomplete download`,
|
|
72
|
+
}
|
|
54
73
|
}
|
|
55
74
|
}
|
|
56
75
|
|
|
@@ -58,14 +77,38 @@ export async function validateModelFile(config: ValidatableModelConfig): Promise
|
|
|
58
77
|
if (config.sha256) {
|
|
59
78
|
const fileHash = await calculateFileChecksum(fileLocation, 'sha256')
|
|
60
79
|
if (fileHash !== config.sha256) {
|
|
61
|
-
return
|
|
80
|
+
return {
|
|
81
|
+
error: `File sha256 checksum mismatch: expected ${config.sha256} got ${fileHash} at ${fileLocation}`,
|
|
82
|
+
}
|
|
62
83
|
}
|
|
63
84
|
} else if (config.md5) {
|
|
64
85
|
const fileHash = await calculateFileChecksum(fileLocation, 'md5')
|
|
65
86
|
if (fileHash !== config.md5) {
|
|
66
|
-
return
|
|
87
|
+
return {
|
|
88
|
+
error: `File md5 checksum mismatch: expected ${config.md5} got ${fileHash} at ${fileLocation}`,
|
|
89
|
+
}
|
|
67
90
|
}
|
|
68
91
|
}
|
|
69
92
|
}
|
|
70
|
-
|
|
93
|
+
|
|
94
|
+
if (config.location?.endsWith('.gguf')) {
|
|
95
|
+
try {
|
|
96
|
+
const ggufMeta = await readGgufFileInfo(config.location!, {
|
|
97
|
+
signal,
|
|
98
|
+
ignoreKeys: [
|
|
99
|
+
'gguf.tokenizer.ggml.merges',
|
|
100
|
+
'gguf.tokenizer.ggml.tokens',
|
|
101
|
+
'gguf.tokenizer.ggml.scores',
|
|
102
|
+
'gguf.tokenizer.ggml.token_type',
|
|
103
|
+
],
|
|
104
|
+
})
|
|
105
|
+
return { meta: { gguf: ggufMeta } }
|
|
106
|
+
} catch (err) {
|
|
107
|
+
return {
|
|
108
|
+
error: `Invalid GGUF: ${err}`,
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return { meta: {} }
|
|
71
114
|
}
|
package/src/server.ts
CHANGED
|
@@ -29,26 +29,88 @@ import { resolveModelFileLocation } from '#package/lib/resolveModelFileLocation.
|
|
|
29
29
|
import { validateModelOptions } from '#package/lib/validateModelOptions.js'
|
|
30
30
|
import { getCacheDirPath } from '#package/lib/getCacheDirPath.js'
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Configuration options for initializing a `ModelServer`.
|
|
34
|
+
* The example provided starts a model server using gpt4all as the engine, with the task of text-completion.
|
|
35
|
+
* @interface ModelServerOptions
|
|
36
|
+
* @example
|
|
37
|
+
* const modelServer = await startModelServer({
|
|
38
|
+
* log: 'info',
|
|
39
|
+
* concurrency: 2,
|
|
40
|
+
* models: {
|
|
41
|
+
* 'phi3-mini-4k': {
|
|
42
|
+
* task: 'text-completion',
|
|
43
|
+
* url: 'https://gpt4all.io/models/gguf/Phi-3-mini-4k-instruct.Q4_0.gguf',
|
|
44
|
+
* engine: 'gpt4all',
|
|
45
|
+
* maxInstances: 2,
|
|
46
|
+
* },
|
|
47
|
+
* },
|
|
48
|
+
* })
|
|
49
|
+
*/
|
|
32
50
|
export interface ModelServerOptions {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
51
|
+
/**
|
|
52
|
+
* A record of custom engines to be used for processing tasks. Each engine is identified by a unique name.
|
|
53
|
+
* @type {Record<string, ModelEngine>}
|
|
54
|
+
* @optional
|
|
55
|
+
*/
|
|
56
|
+
engines?: Record<string, ModelEngine>;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* A record of model configurations, where each model is identified by a unique ID, defined by the user.
|
|
60
|
+
* @type {Record<string, ModelOptions>}
|
|
61
|
+
*/
|
|
62
|
+
models: Record<string, ModelOptions>;
|
|
63
|
+
/**
|
|
64
|
+
* The maximum number of concurrent tasks allowed in the model pool.
|
|
65
|
+
* @type {number}
|
|
66
|
+
* @optional
|
|
67
|
+
*/
|
|
68
|
+
concurrency?: number;
|
|
69
|
+
/**
|
|
70
|
+
* The path to the cache directory where model files and related data will be stored.
|
|
71
|
+
* @type {string}
|
|
72
|
+
* @optional
|
|
73
|
+
*/
|
|
74
|
+
cachePath?: string;
|
|
75
|
+
/**
|
|
76
|
+
* A logger instance or log level to control logging for the server. If a log level is provided,
|
|
77
|
+
* a default logger will be created with that level.
|
|
78
|
+
* @type {Logger | LogLevel}
|
|
79
|
+
* @optional
|
|
80
|
+
*/
|
|
81
|
+
log?: Logger | LogLevel;
|
|
38
82
|
}
|
|
39
83
|
|
|
84
|
+
|
|
40
85
|
export function startModelServer(options: ModelServerOptions) {
|
|
41
86
|
const server = new ModelServer(options)
|
|
42
87
|
server.start()
|
|
43
88
|
return server
|
|
44
89
|
}
|
|
45
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Represents a server for managing and serving machine learning models, including model initialization,
|
|
93
|
+
* request handling, and task processing.
|
|
94
|
+
*
|
|
95
|
+
* @class ModelServer
|
|
96
|
+
*/
|
|
46
97
|
export class ModelServer {
|
|
98
|
+
/** @property {ModelPool} pool - A pool for managing model instances and concurrency. */
|
|
47
99
|
pool: ModelPool
|
|
100
|
+
|
|
101
|
+
/** @property {ModelStore} store - A store for managing model metadata, preparation, and storage. */
|
|
48
102
|
store: ModelStore
|
|
103
|
+
|
|
104
|
+
/** @property {Record<string, ModelEngine>} engines - A record of engines (custom and built-in) used for processing tasks. */
|
|
49
105
|
engines: Record<string, ModelEngine> = {}
|
|
106
|
+
|
|
107
|
+
/** @property {Logger} log - Logger for tracking the server's activities and errors. */
|
|
50
108
|
log: Logger
|
|
51
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Constructs a `ModelServer` instance with the specified options.
|
|
112
|
+
* @param {ModelServerOptions} options - Configuration options for the server.
|
|
113
|
+
*/
|
|
52
114
|
constructor(options: ModelServerOptions) {
|
|
53
115
|
this.log = createSublogger(options.log)
|
|
54
116
|
let modelsCachePath = getCacheDirPath('models')
|
|
@@ -125,7 +187,11 @@ export class ModelServer {
|
|
|
125
187
|
modelExists(modelId: string) {
|
|
126
188
|
return !!this.pool.config.models[modelId]
|
|
127
189
|
}
|
|
128
|
-
|
|
190
|
+
/**
|
|
191
|
+
* Starts the model server, initializing engines and preparing the model store and pool.
|
|
192
|
+
* Usually you would not need to call this method. startModelServer() will do this for you.
|
|
193
|
+
* @returns {Promise<void>} Resolves when the server is fully started.
|
|
194
|
+
*/
|
|
129
195
|
async start() {
|
|
130
196
|
const engineStartPromises = []
|
|
131
197
|
// call startEngine on custom engines
|
|
@@ -161,7 +227,9 @@ export class ModelServer {
|
|
|
161
227
|
await Promise.all(engineStartPromises)
|
|
162
228
|
await Promise.all([this.store.init(this.engines), this.pool.init(this.engines)])
|
|
163
229
|
}
|
|
164
|
-
|
|
230
|
+
/**
|
|
231
|
+
* Stops the server. disposes all resources. Clears the queue of working tasks.
|
|
232
|
+
**/
|
|
165
233
|
async stop() {
|
|
166
234
|
this.log(LogLevels.info, 'Stopping model server')
|
|
167
235
|
this.pool.queue.clear()
|
|
@@ -176,7 +244,14 @@ export class ModelServer {
|
|
|
176
244
|
|
|
177
245
|
this.log(LogLevels.debug, 'Model server stopped')
|
|
178
246
|
}
|
|
179
|
-
|
|
247
|
+
/**
|
|
248
|
+
* Requests an available model instance from the pool for a specific task.
|
|
249
|
+
* There is not much need to call this method unless you are creating a custom task pipeline.
|
|
250
|
+
* This method is called internally by the processXTask methods.
|
|
251
|
+
* @param {InferenceRequest} request - The inference request details.
|
|
252
|
+
* @param {AbortSignal} [signal] - Optional signal to cancel the request.
|
|
253
|
+
* @returns {Promise<ModelInstance>} The requested model instance.
|
|
254
|
+
*/
|
|
180
255
|
async requestInstance(request: InferenceRequest, signal?: AbortSignal) {
|
|
181
256
|
return this.pool.requestInstance(request, signal)
|
|
182
257
|
}
|
|
@@ -213,7 +288,7 @@ export class ModelServer {
|
|
|
213
288
|
await lock.release()
|
|
214
289
|
return result
|
|
215
290
|
}
|
|
216
|
-
|
|
291
|
+
|
|
217
292
|
async processTextCompletionTask(args: TextCompletionRequest, options?: CompletionProcessingOptions) {
|
|
218
293
|
const lock = await this.requestInstance(args)
|
|
219
294
|
const task = lock.instance.processTextCompletionTask(args, options)
|
|
@@ -221,7 +296,7 @@ export class ModelServer {
|
|
|
221
296
|
await lock.release()
|
|
222
297
|
return result
|
|
223
298
|
}
|
|
224
|
-
|
|
299
|
+
|
|
225
300
|
async processEmbeddingTask(args: EmbeddingRequest, options?: ProcessingOptions) {
|
|
226
301
|
const lock = await this.requestInstance(args)
|
|
227
302
|
const task = lock.instance.processEmbeddingTask(args, options)
|
|
@@ -229,7 +304,7 @@ export class ModelServer {
|
|
|
229
304
|
await lock.release()
|
|
230
305
|
return result
|
|
231
306
|
}
|
|
232
|
-
|
|
307
|
+
|
|
233
308
|
async processImageToTextTask(args: ImageToTextRequest, options?: ProcessingOptions) {
|
|
234
309
|
const lock = await this.requestInstance(args)
|
|
235
310
|
const task = lock.instance.processImageToTextTask(args, options)
|
|
@@ -261,7 +336,6 @@ export class ModelServer {
|
|
|
261
336
|
await lock.release()
|
|
262
337
|
return result
|
|
263
338
|
}
|
|
264
|
-
|
|
265
339
|
async processImageToImageTask(args: ImageToImageRequest, options?: ProcessingOptions) {
|
|
266
340
|
const lock = await this.requestInstance(args)
|
|
267
341
|
const task = lock.instance.processImageToImageTask(args, options)
|
|
@@ -269,7 +343,7 @@ export class ModelServer {
|
|
|
269
343
|
await lock.release()
|
|
270
344
|
return result
|
|
271
345
|
}
|
|
272
|
-
|
|
346
|
+
|
|
273
347
|
async processObjectRecognitionTask(args: ObjectRecognitionRequest, options?: ProcessingOptions) {
|
|
274
348
|
const lock = await this.requestInstance(args)
|
|
275
349
|
const task = lock.instance.processObjectRecognitionTask(args, options)
|
|
@@ -278,6 +352,11 @@ export class ModelServer {
|
|
|
278
352
|
return result
|
|
279
353
|
}
|
|
280
354
|
|
|
355
|
+
/**
|
|
356
|
+
* Retrieves the current status of the model server, including pool and store status.
|
|
357
|
+
*
|
|
358
|
+
* @returns {Object} The status object containing pool and store information.
|
|
359
|
+
*/
|
|
281
360
|
getStatus() {
|
|
282
361
|
const poolStatus = this.pool.getStatus()
|
|
283
362
|
const storeStatus = this.store.getStatus()
|
package/src/standalone.ts
CHANGED
|
@@ -314,30 +314,20 @@ const serverOptions: ModelHTTPServerOptions = {
|
|
|
314
314
|
// prepare: 'async',
|
|
315
315
|
// dtype: 'fp16',
|
|
316
316
|
// },
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
// engine: 'transformers-js',
|
|
320
|
-
// task: 'speech-to-text',
|
|
321
|
-
// prepare: 'async',
|
|
322
|
-
// minInstances: 1,
|
|
323
|
-
// modelClass: WhisperForConditionalGeneration,
|
|
324
|
-
// dtype: {
|
|
325
|
-
// encoder_model: 'fp16',
|
|
326
|
-
// decoder_model_merged: 'q4',
|
|
327
|
-
// },
|
|
328
|
-
// device: {
|
|
329
|
-
// gpu: false,
|
|
330
|
-
// },
|
|
331
|
-
// },
|
|
332
|
-
mobilellm: {
|
|
333
|
-
// url: 'https://huggingface.co/onnx-community/MobileLLM-600M'
|
|
334
|
-
// url: 'https://huggingface.co/onnx-community/MobileLLM-350M',
|
|
335
|
-
url: 'https://huggingface.co/onnx-community/MobileLLM-125M',
|
|
317
|
+
'whisper-base': {
|
|
318
|
+
url: 'https://huggingface.co/onnx-community/whisper-base',
|
|
336
319
|
engine: 'transformers-js',
|
|
337
|
-
task: 'text
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
320
|
+
task: 'speech-to-text',
|
|
321
|
+
prepare: 'async',
|
|
322
|
+
minInstances: 1,
|
|
323
|
+
modelClass: WhisperForConditionalGeneration,
|
|
324
|
+
dtype: {
|
|
325
|
+
encoder_model: 'fp16',
|
|
326
|
+
decoder_model_merged: 'q4',
|
|
327
|
+
},
|
|
328
|
+
device: {
|
|
329
|
+
gpu: false,
|
|
330
|
+
},
|
|
341
331
|
},
|
|
342
332
|
},
|
|
343
333
|
}
|