0g-orbit 0.1.0 → 0.2.0
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/cli/cli.js +23 -0
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/fine-tuning.d.ts +21 -0
- package/dist/cli/commands/fine-tuning.d.ts.map +1 -0
- package/dist/cli/commands/fine-tuning.js +142 -0
- package/dist/cli/commands/fine-tuning.js.map +1 -0
- package/dist/errors.d.ts +3 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -0
- package/dist/errors.js.map +1 -1
- package/dist/fine-tuning.d.ts +50 -0
- package/dist/fine-tuning.d.ts.map +1 -0
- package/dist/fine-tuning.js +240 -0
- package/dist/fine-tuning.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/orbit.d.ts +11 -1
- package/dist/orbit.d.ts.map +1 -1
- package/dist/orbit.js +28 -0
- package/dist/orbit.js.map +1 -1
- package/dist/storage.js +4 -4
- package/dist/storage.js.map +1 -1
- package/dist/types.d.ts +54 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +10 -2
- package/src/cli/cli.ts +26 -0
- package/src/cli/commands/fine-tuning.ts +169 -0
- package/src/errors.ts +11 -0
- package/src/fine-tuning.test.ts +299 -0
- package/src/fine-tuning.ts +330 -0
- package/src/index.ts +8 -0
- package/src/orbit.ts +45 -0
- package/src/storage.ts +3 -3
- package/src/types.ts +72 -0
package/dist/orbit.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import type { NetworkConfig } from './networks.js';
|
|
2
2
|
import { StorageClient } from './storage.js';
|
|
3
3
|
import { InferenceClient } from './inference.js';
|
|
4
|
-
import
|
|
4
|
+
import { FineTuningClient } from './fine-tuning.js';
|
|
5
|
+
import type { OrbitConfig, StoreResult, StoreOptions, RetrieveOptions, InferResult, InferOptions, ServiceInfo, AccountStatus, DatasetUploadResult, CreateTaskOptions, FineTuneTask, FineTuneModel, FineTuneProvider } from './types.js';
|
|
5
6
|
export declare class Orbit {
|
|
6
7
|
readonly network: NetworkConfig;
|
|
7
8
|
readonly storage: StorageClient;
|
|
8
9
|
readonly inference: InferenceClient;
|
|
10
|
+
private _fineTuning;
|
|
9
11
|
private wallet;
|
|
10
12
|
private provider;
|
|
11
13
|
private constructor();
|
|
14
|
+
/** Lazy-initialized fine-tuning client */
|
|
15
|
+
get fineTuning(): FineTuningClient;
|
|
12
16
|
/**
|
|
13
17
|
* Connect to the 0G network. This is the primary entry point.
|
|
14
18
|
*
|
|
@@ -21,6 +25,12 @@ export declare class Orbit {
|
|
|
21
25
|
retrieve(rootHash: string, outputPath: string, options?: RetrieveOptions): Promise<void>;
|
|
22
26
|
infer(model: string, options: InferOptions): Promise<InferResult>;
|
|
23
27
|
listServices(): Promise<ServiceInfo[]>;
|
|
28
|
+
uploadDataset(filePath: string): Promise<DatasetUploadResult>;
|
|
29
|
+
createFineTuneTask(options: CreateTaskOptions): Promise<FineTuneTask>;
|
|
30
|
+
getFineTuneTask(providerAddress: string, taskId: string): Promise<FineTuneTask>;
|
|
31
|
+
downloadModel(providerAddress: string, taskId: string, outputPath: string): Promise<void>;
|
|
32
|
+
listModels(): Promise<FineTuneModel[]>;
|
|
33
|
+
listProviders(): Promise<FineTuneProvider[]>;
|
|
24
34
|
status(): Promise<AccountStatus>;
|
|
25
35
|
get address(): string;
|
|
26
36
|
}
|
package/dist/orbit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orbit.d.ts","sourceRoot":"","sources":["../src/orbit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"orbit.d.ts","sourceRoot":"","sources":["../src/orbit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EACnB,MAAM,YAAY,CAAA;AAGnB,qBAAa,KAAK;IACd,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IACnC,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO;IAYP,0CAA0C;IAC1C,IAAI,UAAU,IAAI,gBAAgB,CAKjC;IAED;;;;;OAKG;WACU,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAuEnD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrE,SAAS,CACX,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EAClC,OAAO,CAAC,EAAE,YAAY,GACvB,OAAO,CAAC,WAAW,CAAC;IAIjB,QAAQ,CACV,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,IAAI,CAAC;IAMV,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAIjE,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAMtC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI7D,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrE,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/E,aAAa,CACf,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAIV,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAItC,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAM5C,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IAWtC,IAAI,OAAO,IAAI,MAAM,CAEpB;CACJ"}
|
package/dist/orbit.js
CHANGED
|
@@ -2,11 +2,13 @@ import { Wallet, JsonRpcProvider } from 'ethers';
|
|
|
2
2
|
import { getNetwork } from './networks.js';
|
|
3
3
|
import { StorageClient } from './storage.js';
|
|
4
4
|
import { InferenceClient } from './inference.js';
|
|
5
|
+
import { FineTuningClient } from './fine-tuning.js';
|
|
5
6
|
import { ConnectionError } from './errors.js';
|
|
6
7
|
export class Orbit {
|
|
7
8
|
network;
|
|
8
9
|
storage;
|
|
9
10
|
inference;
|
|
11
|
+
_fineTuning = null;
|
|
10
12
|
wallet;
|
|
11
13
|
provider;
|
|
12
14
|
constructor(network, wallet, provider) {
|
|
@@ -16,6 +18,13 @@ export class Orbit {
|
|
|
16
18
|
this.storage = new StorageClient(network, wallet);
|
|
17
19
|
this.inference = new InferenceClient(network, wallet);
|
|
18
20
|
}
|
|
21
|
+
/** Lazy-initialized fine-tuning client */
|
|
22
|
+
get fineTuning() {
|
|
23
|
+
if (!this._fineTuning) {
|
|
24
|
+
this._fineTuning = new FineTuningClient(this.network, this.wallet, this.storage);
|
|
25
|
+
}
|
|
26
|
+
return this._fineTuning;
|
|
27
|
+
}
|
|
19
28
|
/**
|
|
20
29
|
* Connect to the 0G network. This is the primary entry point.
|
|
21
30
|
*
|
|
@@ -91,6 +100,25 @@ export class Orbit {
|
|
|
91
100
|
async listServices() {
|
|
92
101
|
return this.inference.listServices();
|
|
93
102
|
}
|
|
103
|
+
// --- Fine-Tuning shortcuts ---
|
|
104
|
+
async uploadDataset(filePath) {
|
|
105
|
+
return this.fineTuning.uploadDataset(filePath);
|
|
106
|
+
}
|
|
107
|
+
async createFineTuneTask(options) {
|
|
108
|
+
return this.fineTuning.createTask(options);
|
|
109
|
+
}
|
|
110
|
+
async getFineTuneTask(providerAddress, taskId) {
|
|
111
|
+
return this.fineTuning.getTask(providerAddress, taskId);
|
|
112
|
+
}
|
|
113
|
+
async downloadModel(providerAddress, taskId, outputPath) {
|
|
114
|
+
return this.fineTuning.downloadModel(providerAddress, taskId, outputPath);
|
|
115
|
+
}
|
|
116
|
+
async listModels() {
|
|
117
|
+
return this.fineTuning.listModels();
|
|
118
|
+
}
|
|
119
|
+
async listProviders() {
|
|
120
|
+
return this.fineTuning.listProviders();
|
|
121
|
+
}
|
|
94
122
|
// --- Account ---
|
|
95
123
|
async status() {
|
|
96
124
|
const balance = await this.provider.getBalance(this.wallet.address);
|
package/dist/orbit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orbit.js","sourceRoot":"","sources":["../src/orbit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAY,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"orbit.js","sourceRoot":"","sources":["../src/orbit.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.js
CHANGED
|
@@ -73,15 +73,15 @@ export class StorageClient {
|
|
|
73
73
|
if (uploadErr) {
|
|
74
74
|
const msg = uploadErr.message;
|
|
75
75
|
let suggestion = 'Check your OG balance and try again.';
|
|
76
|
-
if (msg.includes('
|
|
76
|
+
if (msg.includes('insufficient funds') || msg.includes('INSUFFICIENT_FUNDS')) {
|
|
77
|
+
suggestion = 'Your wallet needs more OG for gas. Get testnet OG from: https://faucet.0g.ai';
|
|
78
|
+
}
|
|
79
|
+
else if (msg.includes('underpriced') || msg.includes('gas required exceeds')) {
|
|
77
80
|
suggestion = `Gas auto-escalation hit the ceiling (${maxGas} wei). Try a higher maxGasPrice, e.g. { maxGasPrice: ${maxGas * 2}n }`;
|
|
78
81
|
}
|
|
79
82
|
else if (msg.includes('timeout') || msg.includes('ETIMEDOUT')) {
|
|
80
83
|
suggestion = 'The RPC endpoint timed out. Try a different RPC URL with the rpcUrl option.';
|
|
81
84
|
}
|
|
82
|
-
else if (msg.includes('insufficient funds')) {
|
|
83
|
-
suggestion = 'Your wallet needs more OG for gas. Get testnet OG from: https://faucet.0g.ai';
|
|
84
|
-
}
|
|
85
85
|
throw new StorageError(`Upload failed: ${msg}`, suggestion);
|
|
86
86
|
}
|
|
87
87
|
if ('txHash' in result) {
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -78,4 +78,58 @@ export interface AccountStatus {
|
|
|
78
78
|
/** Wallet address */
|
|
79
79
|
address: string;
|
|
80
80
|
}
|
|
81
|
+
export interface DatasetUploadResult {
|
|
82
|
+
/** Merkle root hash of the uploaded dataset in 0G Storage */
|
|
83
|
+
root: string;
|
|
84
|
+
/** On-chain transaction hash */
|
|
85
|
+
txHash: string;
|
|
86
|
+
}
|
|
87
|
+
export interface CreateTaskOptions {
|
|
88
|
+
/** Name of the base model to fine-tune (e.g. 'Qwen2.5-0.5B-Instruct') */
|
|
89
|
+
model: string;
|
|
90
|
+
/** Root hash of the dataset in 0G Storage (from uploadDataset) */
|
|
91
|
+
dataset: string;
|
|
92
|
+
/** Provider wallet address */
|
|
93
|
+
providerAddress: string;
|
|
94
|
+
/** Training hyperparameters (JSON object or file path) */
|
|
95
|
+
trainingParams?: {
|
|
96
|
+
nEpochs?: number;
|
|
97
|
+
batchSize?: number;
|
|
98
|
+
learningRate?: number;
|
|
99
|
+
loraRank?: number;
|
|
100
|
+
loraAlpha?: number;
|
|
101
|
+
[key: string]: unknown;
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export type FineTuneStatus = 'init' | 'setting-up' | 'set-up' | 'training' | 'trained' | 'delivering' | 'delivered' | 'acknowledged' | 'finished' | 'failed';
|
|
105
|
+
export interface FineTuneTask {
|
|
106
|
+
/** Task ID */
|
|
107
|
+
id: string;
|
|
108
|
+
/** Base model name or hash */
|
|
109
|
+
model: string;
|
|
110
|
+
/** Dataset root hash */
|
|
111
|
+
dataset: string;
|
|
112
|
+
/** Provider address */
|
|
113
|
+
provider: string;
|
|
114
|
+
/** Current task status */
|
|
115
|
+
status: FineTuneStatus;
|
|
116
|
+
/** Task creation time */
|
|
117
|
+
createdAt?: string;
|
|
118
|
+
/** Last update time */
|
|
119
|
+
updatedAt?: string;
|
|
120
|
+
}
|
|
121
|
+
export interface FineTuneModel {
|
|
122
|
+
/** Model name */
|
|
123
|
+
name: string;
|
|
124
|
+
/** Model configuration (hash, description, etc.) */
|
|
125
|
+
config: Record<string, string>;
|
|
126
|
+
}
|
|
127
|
+
export interface FineTuneProvider {
|
|
128
|
+
/** Provider wallet address */
|
|
129
|
+
address: string;
|
|
130
|
+
/** Provider endpoint URL */
|
|
131
|
+
url: string;
|
|
132
|
+
/** Customized models offered by this provider */
|
|
133
|
+
models: string[];
|
|
134
|
+
}
|
|
81
135
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,WAAW,WAAW;IACxB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,OAAO,EAAE,WAAW,CAAA;IACpB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IACxB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC5B,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IACxB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,kBAAkB;IAClB,KAAK,CAAC,EAAE;QACJ,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;QACxB,WAAW,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,mCAAmC;IACnC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IACxB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,UAAU,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC1B,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,mBAAmB;IACnB,OAAO,EAAE,WAAW,CAAA;IACpB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAA;CAClB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "0g-orbit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "The developer toolkit for 0G. Store, infer, deploy — one SDK, one CLI, five minutes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -34,7 +34,15 @@
|
|
|
34
34
|
"typescript": "^5.4.0",
|
|
35
35
|
"vitest": "^1.6.0"
|
|
36
36
|
},
|
|
37
|
-
"keywords": [
|
|
37
|
+
"keywords": [
|
|
38
|
+
"0g",
|
|
39
|
+
"blockchain",
|
|
40
|
+
"ai",
|
|
41
|
+
"storage",
|
|
42
|
+
"inference",
|
|
43
|
+
"sdk",
|
|
44
|
+
"cli"
|
|
45
|
+
],
|
|
38
46
|
"license": "MIT",
|
|
39
47
|
"engines": {
|
|
40
48
|
"node": ">=18.0.0"
|
package/src/cli/cli.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { Command } from 'commander'
|
|
4
4
|
import { storeCommand, storeDataCommand, retrieveCommand } from './commands/storage.js'
|
|
5
5
|
import { inferCommand, listServicesCommand } from './commands/inference.js'
|
|
6
|
+
import { fineTuneCommand, tasksCommand, modelsCommand } from './commands/fine-tuning.js'
|
|
6
7
|
import { statusCommand } from './commands/account.js'
|
|
7
8
|
import { initCommand } from './commands/init.js'
|
|
8
9
|
|
|
@@ -60,6 +61,31 @@ program
|
|
|
60
61
|
.option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
|
|
61
62
|
.action(listServicesCommand)
|
|
62
63
|
|
|
64
|
+
program
|
|
65
|
+
.command('fine-tune <dataset>')
|
|
66
|
+
.description('Upload dataset and create a fine-tuning task')
|
|
67
|
+
.option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
|
|
68
|
+
.requiredOption('--model <name>', 'base model to fine-tune')
|
|
69
|
+
.requiredOption('--provider <address>', 'provider wallet address')
|
|
70
|
+
.option('--epochs <n>', 'number of training epochs')
|
|
71
|
+
.option('--batch-size <n>', 'training batch size')
|
|
72
|
+
.option('--learning-rate <n>', 'learning rate')
|
|
73
|
+
.option('--lora-rank <n>', 'LoRA rank')
|
|
74
|
+
.option('--lora-alpha <n>', 'LoRA alpha')
|
|
75
|
+
.action(fineTuneCommand)
|
|
76
|
+
|
|
77
|
+
program
|
|
78
|
+
.command('tasks <provider> [taskId]')
|
|
79
|
+
.description('List fine-tuning tasks or show a specific task')
|
|
80
|
+
.option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
|
|
81
|
+
.action(tasksCommand)
|
|
82
|
+
|
|
83
|
+
program
|
|
84
|
+
.command('models')
|
|
85
|
+
.description('List available base models for fine-tuning')
|
|
86
|
+
.option('-n, --network <name>', 'network (testnet|mainnet)', 'testnet')
|
|
87
|
+
.action(modelsCommand)
|
|
88
|
+
|
|
63
89
|
program
|
|
64
90
|
.command('status')
|
|
65
91
|
.description('Show account status and balance')
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import ora from 'ora'
|
|
2
|
+
import chalk from 'chalk'
|
|
3
|
+
import { connectOrbit, formatError } from '../utils.js'
|
|
4
|
+
|
|
5
|
+
interface FineTuneOpts {
|
|
6
|
+
network: string
|
|
7
|
+
model: string
|
|
8
|
+
provider: string
|
|
9
|
+
epochs?: string
|
|
10
|
+
batchSize?: string
|
|
11
|
+
learningRate?: string
|
|
12
|
+
loraRank?: string
|
|
13
|
+
loraAlpha?: string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export async function fineTuneCommand(dataset: string, opts: FineTuneOpts) {
|
|
17
|
+
const spinner = ora('Connecting to 0G...').start()
|
|
18
|
+
|
|
19
|
+
try {
|
|
20
|
+
const orbit = await connectOrbit(opts.network)
|
|
21
|
+
|
|
22
|
+
// Step 1: Upload dataset
|
|
23
|
+
spinner.text = `Uploading dataset ${dataset}...`
|
|
24
|
+
const upload = await orbit.uploadDataset(dataset)
|
|
25
|
+
spinner.text = `Dataset uploaded (root: ${upload.root.slice(0, 12)}...). Creating task...`
|
|
26
|
+
|
|
27
|
+
// Step 2: Create task
|
|
28
|
+
const trainingParams: Record<string, unknown> = {}
|
|
29
|
+
if (opts.epochs) trainingParams.nEpochs = parseInt(opts.epochs, 10)
|
|
30
|
+
if (opts.batchSize) trainingParams.batchSize = parseInt(opts.batchSize, 10)
|
|
31
|
+
if (opts.learningRate) trainingParams.learningRate = parseFloat(opts.learningRate)
|
|
32
|
+
if (opts.loraRank) trainingParams.loraRank = parseInt(opts.loraRank, 10)
|
|
33
|
+
if (opts.loraAlpha) trainingParams.loraAlpha = parseInt(opts.loraAlpha, 10)
|
|
34
|
+
|
|
35
|
+
const task = await orbit.createFineTuneTask({
|
|
36
|
+
model: opts.model,
|
|
37
|
+
dataset: upload.root,
|
|
38
|
+
providerAddress: opts.provider,
|
|
39
|
+
trainingParams: Object.keys(trainingParams).length > 0 ? trainingParams : undefined,
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
spinner.succeed('Fine-tuning task created')
|
|
43
|
+
console.log()
|
|
44
|
+
console.log(chalk.bold(' Task ID: ') + chalk.cyan(task.id))
|
|
45
|
+
console.log(chalk.bold(' Model: ') + task.model)
|
|
46
|
+
console.log(chalk.bold(' Dataset: ') + chalk.dim(upload.root))
|
|
47
|
+
console.log(chalk.bold(' Provider: ') + chalk.dim(task.provider))
|
|
48
|
+
console.log(chalk.bold(' Status: ') + task.status)
|
|
49
|
+
console.log()
|
|
50
|
+
console.log(chalk.dim(` Check progress: orbit tasks ${task.provider} ${task.id}`))
|
|
51
|
+
} catch (err) {
|
|
52
|
+
spinner.fail(chalk.red('Fine-tuning failed'))
|
|
53
|
+
console.error(chalk.dim(` ${formatError(err)}`))
|
|
54
|
+
process.exit(1)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
interface TasksOpts {
|
|
59
|
+
network: string
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export async function tasksCommand(
|
|
63
|
+
providerAddress: string,
|
|
64
|
+
taskId: string | undefined,
|
|
65
|
+
opts: TasksOpts
|
|
66
|
+
) {
|
|
67
|
+
const spinner = ora('Fetching tasks...').start()
|
|
68
|
+
|
|
69
|
+
try {
|
|
70
|
+
const orbit = await connectOrbit(opts.network)
|
|
71
|
+
|
|
72
|
+
if (taskId) {
|
|
73
|
+
// Show single task + log
|
|
74
|
+
const task = await orbit.getFineTuneTask(providerAddress, taskId)
|
|
75
|
+
spinner.stop()
|
|
76
|
+
|
|
77
|
+
console.log(chalk.bold(`\n Task ${task.id}\n`))
|
|
78
|
+
console.log(` Status: ${statusColor(task.status)}`)
|
|
79
|
+
console.log(` Model: ${task.model}`)
|
|
80
|
+
console.log(` Dataset: ${chalk.dim(task.dataset)}`)
|
|
81
|
+
console.log(` Provider: ${chalk.dim(task.provider)}`)
|
|
82
|
+
if (task.createdAt) console.log(` Created: ${task.createdAt}`)
|
|
83
|
+
if (task.updatedAt) console.log(` Updated: ${task.updatedAt}`)
|
|
84
|
+
|
|
85
|
+
// Try to get log
|
|
86
|
+
try {
|
|
87
|
+
const log = await orbit.fineTuning.getTaskLog(providerAddress, taskId)
|
|
88
|
+
if (log) {
|
|
89
|
+
console.log(chalk.bold('\n Training Log:\n'))
|
|
90
|
+
console.log(chalk.dim(` ${log.replace(/\n/g, '\n ')}`))
|
|
91
|
+
}
|
|
92
|
+
} catch {
|
|
93
|
+
// Log not available yet
|
|
94
|
+
}
|
|
95
|
+
console.log()
|
|
96
|
+
} else {
|
|
97
|
+
// List all tasks for this provider
|
|
98
|
+
const tasks = await orbit.fineTuning.listTasks(providerAddress)
|
|
99
|
+
spinner.stop()
|
|
100
|
+
|
|
101
|
+
if (tasks.length === 0) {
|
|
102
|
+
console.log(chalk.dim('\n No tasks found for this provider.\n'))
|
|
103
|
+
return
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
console.log(chalk.bold(`\n ${tasks.length} tasks\n`))
|
|
107
|
+
for (const task of tasks) {
|
|
108
|
+
console.log(` ${chalk.cyan(task.id ?? 'unknown')} ${statusColor(task.status)} ${chalk.dim(task.model)}`)
|
|
109
|
+
}
|
|
110
|
+
console.log()
|
|
111
|
+
}
|
|
112
|
+
} catch (err) {
|
|
113
|
+
spinner.fail(chalk.red('Failed to fetch tasks'))
|
|
114
|
+
console.error(chalk.dim(` ${formatError(err)}`))
|
|
115
|
+
process.exit(1)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
interface ModelsOpts {
|
|
120
|
+
network: string
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export async function modelsCommand(opts: ModelsOpts) {
|
|
124
|
+
const spinner = ora('Fetching models...').start()
|
|
125
|
+
|
|
126
|
+
try {
|
|
127
|
+
const orbit = await connectOrbit(opts.network)
|
|
128
|
+
const models = await orbit.listModels()
|
|
129
|
+
|
|
130
|
+
spinner.stop()
|
|
131
|
+
|
|
132
|
+
if (models.length === 0) {
|
|
133
|
+
console.log(chalk.dim('\n No models available on this network.\n'))
|
|
134
|
+
return
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
console.log(chalk.bold(`\n ${models.length} models available for fine-tuning\n`))
|
|
138
|
+
for (const model of models) {
|
|
139
|
+
const desc = model.config.description ?? ''
|
|
140
|
+
const provider = model.config.provider
|
|
141
|
+
console.log(` ${chalk.cyan(model.name)}`)
|
|
142
|
+
if (desc) console.log(chalk.dim(` ${desc}`))
|
|
143
|
+
if (provider) console.log(chalk.dim(` provider: ${provider}`))
|
|
144
|
+
}
|
|
145
|
+
console.log()
|
|
146
|
+
} catch (err) {
|
|
147
|
+
spinner.fail(chalk.red('Failed to list models'))
|
|
148
|
+
console.error(chalk.dim(` ${formatError(err)}`))
|
|
149
|
+
process.exit(1)
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function statusColor(status: string): string {
|
|
154
|
+
switch (status) {
|
|
155
|
+
case 'finished':
|
|
156
|
+
case 'acknowledged':
|
|
157
|
+
return chalk.green(status)
|
|
158
|
+
case 'training':
|
|
159
|
+
case 'delivering':
|
|
160
|
+
case 'setting-up':
|
|
161
|
+
return chalk.yellow(status)
|
|
162
|
+
case 'failed':
|
|
163
|
+
return chalk.red(status)
|
|
164
|
+
case 'delivered':
|
|
165
|
+
return chalk.blue(status)
|
|
166
|
+
default:
|
|
167
|
+
return chalk.dim(status)
|
|
168
|
+
}
|
|
169
|
+
}
|
package/src/errors.ts
CHANGED
|
@@ -77,3 +77,14 @@ export class TimeoutError extends OrbitError {
|
|
|
77
77
|
this.name = 'TimeoutError'
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
+
|
|
81
|
+
export class FineTuningError extends OrbitError {
|
|
82
|
+
constructor(message: string, suggestion?: string) {
|
|
83
|
+
super(
|
|
84
|
+
message,
|
|
85
|
+
'FINE_TUNING_ERROR',
|
|
86
|
+
suggestion ?? 'Check model and provider availability with orbit.listModels() or orbit.listProviders().'
|
|
87
|
+
)
|
|
88
|
+
this.name = 'FineTuningError'
|
|
89
|
+
}
|
|
90
|
+
}
|