@ruvector/ruvllm 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/README.md +406 -0
- package/bin/cli.js +387 -0
- package/dist/cjs/engine.d.ts +90 -0
- package/dist/cjs/engine.d.ts.map +1 -0
- package/dist/cjs/engine.js +301 -0
- package/dist/cjs/export.d.ts +182 -0
- package/dist/cjs/export.d.ts.map +1 -0
- package/dist/cjs/export.js +422 -0
- package/dist/cjs/federated.d.ts +233 -0
- package/dist/cjs/federated.d.ts.map +1 -0
- package/dist/cjs/federated.js +525 -0
- package/dist/cjs/index.d.ts +64 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +96 -0
- package/dist/cjs/lora.d.ts +240 -0
- package/dist/cjs/lora.d.ts.map +1 -0
- package/dist/cjs/lora.js +494 -0
- package/dist/cjs/native.d.ts +83 -0
- package/dist/cjs/native.d.ts.map +1 -0
- package/dist/cjs/native.js +70 -0
- package/dist/cjs/session.d.ts +80 -0
- package/dist/cjs/session.d.ts.map +1 -0
- package/dist/cjs/session.js +203 -0
- package/dist/cjs/simd.d.ts +90 -0
- package/dist/cjs/simd.d.ts.map +1 -0
- package/dist/cjs/simd.js +209 -0
- package/dist/cjs/sona.d.ts +187 -0
- package/dist/cjs/sona.d.ts.map +1 -0
- package/dist/cjs/sona.js +500 -0
- package/dist/cjs/streaming.d.ts +55 -0
- package/dist/cjs/streaming.d.ts.map +1 -0
- package/dist/cjs/streaming.js +131 -0
- package/dist/cjs/training.d.ts +254 -0
- package/dist/cjs/training.d.ts.map +1 -0
- package/dist/cjs/training.js +480 -0
- package/dist/cjs/types.d.ts +599 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +6 -0
- package/dist/esm/engine.d.ts +90 -0
- package/dist/esm/engine.d.ts.map +1 -0
- package/dist/esm/engine.js +297 -0
- package/dist/esm/export.d.ts +182 -0
- package/dist/esm/export.d.ts.map +1 -0
- package/dist/esm/export.js +414 -0
- package/dist/esm/federated.d.ts +233 -0
- package/dist/esm/federated.d.ts.map +1 -0
- package/dist/esm/federated.js +520 -0
- package/dist/esm/index.d.ts +64 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +76 -0
- package/dist/esm/lora.d.ts +240 -0
- package/dist/esm/lora.d.ts.map +1 -0
- package/dist/esm/lora.js +489 -0
- package/dist/esm/native.d.ts +83 -0
- package/dist/esm/native.d.ts.map +1 -0
- package/dist/esm/native.js +65 -0
- package/dist/esm/session.d.ts +80 -0
- package/dist/esm/session.d.ts.map +1 -0
- package/dist/esm/session.js +199 -0
- package/dist/esm/simd.d.ts +90 -0
- package/dist/esm/simd.d.ts.map +1 -0
- package/dist/esm/simd.js +205 -0
- package/dist/esm/sona.d.ts +187 -0
- package/dist/esm/sona.d.ts.map +1 -0
- package/dist/esm/sona.js +494 -0
- package/dist/esm/streaming.d.ts +55 -0
- package/dist/esm/streaming.d.ts.map +1 -0
- package/dist/esm/streaming.js +126 -0
- package/dist/esm/training.d.ts +254 -0
- package/dist/esm/training.d.ts.map +1 -0
- package/dist/esm/training.js +473 -0
- package/dist/esm/types.d.ts +599 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +5 -0
- package/package.json +121 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @ruvector/ruvllm - Self-learning LLM orchestration
|
|
4
|
+
*
|
|
5
|
+
* RuvLLM combines SONA adaptive learning with HNSW memory,
|
|
6
|
+
* FastGRNN routing, and SIMD-optimized inference.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { RuvLLM, SessionManager, SonaCoordinator } from '@ruvector/ruvllm';
|
|
11
|
+
*
|
|
12
|
+
* const llm = new RuvLLM({ learningEnabled: true });
|
|
13
|
+
* const sessions = new SessionManager(llm);
|
|
14
|
+
* const sona = new SonaCoordinator();
|
|
15
|
+
*
|
|
16
|
+
* // Query with session context
|
|
17
|
+
* const session = sessions.create();
|
|
18
|
+
* const response = sessions.chat(session.id, 'What is AI?');
|
|
19
|
+
*
|
|
20
|
+
* // Track learning trajectory
|
|
21
|
+
* const trajectory = new TrajectoryBuilder()
|
|
22
|
+
* .startStep('query', 'What is AI?')
|
|
23
|
+
* .endStep(response.text, response.confidence)
|
|
24
|
+
* .complete('success');
|
|
25
|
+
*
|
|
26
|
+
* sona.recordTrajectory(trajectory);
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example Federated Learning
|
|
30
|
+
* ```typescript
|
|
31
|
+
* import { EphemeralAgent, FederatedCoordinator } from '@ruvector/ruvllm';
|
|
32
|
+
*
|
|
33
|
+
* // Central coordinator
|
|
34
|
+
* const coordinator = new FederatedCoordinator('coord-1');
|
|
35
|
+
*
|
|
36
|
+
* // Ephemeral agents process tasks and export
|
|
37
|
+
* const agent = new EphemeralAgent('agent-1');
|
|
38
|
+
* agent.processTask(embedding, 0.9);
|
|
39
|
+
* const exportData = agent.exportState();
|
|
40
|
+
*
|
|
41
|
+
* // Aggregate learning
|
|
42
|
+
* coordinator.aggregate(exportData);
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example LoRA Adapters
|
|
46
|
+
* ```typescript
|
|
47
|
+
* import { LoraAdapter, LoraManager } from '@ruvector/ruvllm';
|
|
48
|
+
*
|
|
49
|
+
* const adapter = new LoraAdapter({ rank: 8, alpha: 16 });
|
|
50
|
+
* const output = adapter.forward(input);
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
54
|
+
if (k2 === undefined) k2 = k;
|
|
55
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
56
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
57
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
58
|
+
}
|
|
59
|
+
Object.defineProperty(o, k2, desc);
|
|
60
|
+
}) : (function(o, m, k, k2) {
|
|
61
|
+
if (k2 === undefined) k2 = k;
|
|
62
|
+
o[k2] = m[k];
|
|
63
|
+
}));
|
|
64
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
65
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
66
|
+
};
|
|
67
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
68
|
+
exports.default = exports.hasSimdSupport = exports.version = void 0;
|
|
69
|
+
// Core types
|
|
70
|
+
__exportStar(require("./types"), exports);
|
|
71
|
+
// Main engine
|
|
72
|
+
__exportStar(require("./engine"), exports);
|
|
73
|
+
// SIMD operations
|
|
74
|
+
__exportStar(require("./simd"), exports);
|
|
75
|
+
// Session management
|
|
76
|
+
__exportStar(require("./session"), exports);
|
|
77
|
+
// Streaming support
|
|
78
|
+
__exportStar(require("./streaming"), exports);
|
|
79
|
+
// SONA learning system
|
|
80
|
+
__exportStar(require("./sona"), exports);
|
|
81
|
+
// Federated learning
|
|
82
|
+
__exportStar(require("./federated"), exports);
|
|
83
|
+
// LoRA adapters
|
|
84
|
+
__exportStar(require("./lora"), exports);
|
|
85
|
+
// Export/serialization
|
|
86
|
+
__exportStar(require("./export"), exports);
|
|
87
|
+
// Training pipeline
|
|
88
|
+
__exportStar(require("./training"), exports);
|
|
89
|
+
// Native bindings utilities
|
|
90
|
+
var native_1 = require("./native");
|
|
91
|
+
Object.defineProperty(exports, "version", { enumerable: true, get: function () { return native_1.version; } });
|
|
92
|
+
Object.defineProperty(exports, "hasSimdSupport", { enumerable: true, get: function () { return native_1.hasSimdSupport; } });
|
|
93
|
+
// Default export
|
|
94
|
+
var engine_1 = require("./engine");
|
|
95
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return engine_1.RuvLLM; } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtERzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxhQUFhO0FBQ2IsMENBQXdCO0FBRXhCLGNBQWM7QUFDZCwyQ0FBeUI7QUFFekIsa0JBQWtCO0FBQ2xCLHlDQUF1QjtBQUV2QixxQkFBcUI7QUFDckIsNENBQTBCO0FBRTFCLG9CQUFvQjtBQUNwQiw4Q0FBNEI7QUFFNUIsdUJBQXVCO0FBQ3ZCLHlDQUF1QjtBQUV2QixxQkFBcUI7QUFDckIsOENBQTRCO0FBRTVCLGdCQUFnQjtBQUNoQix5Q0FBdUI7QUFFdkIsdUJBQXVCO0FBQ3ZCLDJDQUF5QjtBQUV6QixvQkFBb0I7QUFDcEIsNkNBQTJCO0FBRTNCLDRCQUE0QjtBQUM1QixtQ0FBbUQ7QUFBMUMsaUdBQUEsT0FBTyxPQUFBO0FBQUUsd0dBQUEsY0FBYyxPQUFBO0FBRWhDLGlCQUFpQjtBQUNqQixtQ0FBNkM7QUFBcEMsaUdBQUEsTUFBTSxPQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcnV2ZWN0b3IvcnV2bGxtIC0gU2VsZi1sZWFybmluZyBMTE0gb3JjaGVzdHJhdGlvblxuICpcbiAqIFJ1dkxMTSBjb21iaW5lcyBTT05BIGFkYXB0aXZlIGxlYXJuaW5nIHdpdGggSE5TVyBtZW1vcnksXG4gKiBGYXN0R1JOTiByb3V0aW5nLCBhbmQgU0lNRC1vcHRpbWl6ZWQgaW5mZXJlbmNlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBSdXZMTE0sIFNlc3Npb25NYW5hZ2VyLCBTb25hQ29vcmRpbmF0b3IgfSBmcm9tICdAcnV2ZWN0b3IvcnV2bGxtJztcbiAqXG4gKiBjb25zdCBsbG0gPSBuZXcgUnV2TExNKHsgbGVhcm5pbmdFbmFibGVkOiB0cnVlIH0pO1xuICogY29uc3Qgc2Vzc2lvbnMgPSBuZXcgU2Vzc2lvbk1hbmFnZXIobGxtKTtcbiAqIGNvbnN0IHNvbmEgPSBuZXcgU29uYUNvb3JkaW5hdG9yKCk7XG4gKlxuICogLy8gUXVlcnkgd2l0aCBzZXNzaW9uIGNvbnRleHRcbiAqIGNvbnN0IHNlc3Npb24gPSBzZXNzaW9ucy5jcmVhdGUoKTtcbiAqIGNvbnN0IHJlc3BvbnNlID0gc2Vzc2lvbnMuY2hhdChzZXNzaW9uLmlkLCAnV2hhdCBpcyBBST8nKTtcbiAqXG4gKiAvLyBUcmFjayBsZWFybmluZyB0cmFqZWN0b3J5XG4gKiBjb25zdCB0cmFqZWN0b3J5ID0gbmV3IFRyYWplY3RvcnlCdWlsZGVyKClcbiAqICAgLnN0YXJ0U3RlcCgncXVlcnknLCAnV2hhdCBpcyBBST8nKVxuICogICAuZW5kU3RlcChyZXNwb25zZS50ZXh0LCByZXNwb25zZS5jb25maWRlbmNlKVxuICogICAuY29tcGxldGUoJ3N1Y2Nlc3MnKTtcbiAqXG4gKiBzb25hLnJlY29yZFRyYWplY3RvcnkodHJhamVjdG9yeSk7XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBGZWRlcmF0ZWQgTGVhcm5pbmdcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IEVwaGVtZXJhbEFnZW50LCBGZWRlcmF0ZWRDb29yZGluYXRvciB9IGZyb20gJ0BydXZlY3Rvci9ydXZsbG0nO1xuICpcbiAqIC8vIENlbnRyYWwgY29vcmRpbmF0b3JcbiAqIGNvbnN0IGNvb3JkaW5hdG9yID0gbmV3IEZlZGVyYXRlZENvb3JkaW5hdG9yKCdjb29yZC0xJyk7XG4gKlxuICogLy8gRXBoZW1lcmFsIGFnZW50cyBwcm9jZXNzIHRhc2tzIGFuZCBleHBvcnRcbiAqIGNvbnN0IGFnZW50ID0gbmV3IEVwaGVtZXJhbEFnZW50KCdhZ2VudC0xJyk7XG4gKiBhZ2VudC5wcm9jZXNzVGFzayhlbWJlZGRpbmcsIDAuOSk7XG4gKiBjb25zdCBleHBvcnREYXRhID0gYWdlbnQuZXhwb3J0U3RhdGUoKTtcbiAqXG4gKiAvLyBBZ2dyZWdhdGUgbGVhcm5pbmdcbiAqIGNvb3JkaW5hdG9yLmFnZ3JlZ2F0ZShleHBvcnREYXRhKTtcbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIExvUkEgQWRhcHRlcnNcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IExvcmFBZGFwdGVyLCBMb3JhTWFuYWdlciB9IGZyb20gJ0BydXZlY3Rvci9ydXZsbG0nO1xuICpcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgTG9yYUFkYXB0ZXIoeyByYW5rOiA4LCBhbHBoYTogMTYgfSk7XG4gKiBjb25zdCBvdXRwdXQgPSBhZGFwdGVyLmZvcndhcmQoaW5wdXQpO1xuICogYGBgXG4gKi9cblxuLy8gQ29yZSB0eXBlc1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5cbi8vIE1haW4gZW5naW5lXG5leHBvcnQgKiBmcm9tICcuL2VuZ2luZSc7XG5cbi8vIFNJTUQgb3BlcmF0aW9uc1xuZXhwb3J0ICogZnJvbSAnLi9zaW1kJztcblxuLy8gU2Vzc2lvbiBtYW5hZ2VtZW50XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24nO1xuXG4vLyBTdHJlYW1pbmcgc3VwcG9ydFxuZXhwb3J0ICogZnJvbSAnLi9zdHJlYW1pbmcnO1xuXG4vLyBTT05BIGxlYXJuaW5nIHN5c3RlbVxuZXhwb3J0ICogZnJvbSAnLi9zb25hJztcblxuLy8gRmVkZXJhdGVkIGxlYXJuaW5nXG5leHBvcnQgKiBmcm9tICcuL2ZlZGVyYXRlZCc7XG5cbi8vIExvUkEgYWRhcHRlcnNcbmV4cG9ydCAqIGZyb20gJy4vbG9yYSc7XG5cbi8vIEV4cG9ydC9zZXJpYWxpemF0aW9uXG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydCc7XG5cbi8vIFRyYWluaW5nIHBpcGVsaW5lXG5leHBvcnQgKiBmcm9tICcuL3RyYWluaW5nJztcblxuLy8gTmF0aXZlIGJpbmRpbmdzIHV0aWxpdGllc1xuZXhwb3J0IHsgdmVyc2lvbiwgaGFzU2ltZFN1cHBvcnQgfSBmcm9tICcuL25hdGl2ZSc7XG5cbi8vIERlZmF1bHQgZXhwb3J0XG5leHBvcnQgeyBSdXZMTE0gYXMgZGVmYXVsdCB9IGZyb20gJy4vZW5naW5lJztcbiJdfQ==
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LoRA (Low-Rank Adaptation) Runtime
|
|
3
|
+
*
|
|
4
|
+
* Efficient parameter-efficient fine-tuning adapters for LLMs.
|
|
5
|
+
* Supports micro-LoRA (fast, small updates) and base-LoRA (deeper adaptation).
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { LoraAdapter, LoraManager } from '@ruvector/ruvllm';
|
|
10
|
+
*
|
|
11
|
+
* // Create adapter
|
|
12
|
+
* const adapter = new LoraAdapter({
|
|
13
|
+
* rank: 8,
|
|
14
|
+
* alpha: 16,
|
|
15
|
+
* dropout: 0.1,
|
|
16
|
+
* targetModules: ['query', 'value'],
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Apply to hidden states
|
|
20
|
+
* const output = adapter.forward(hiddenStates);
|
|
21
|
+
*
|
|
22
|
+
* // Manage multiple adapters
|
|
23
|
+
* const manager = new LoraManager();
|
|
24
|
+
* manager.register('task-1', adapter);
|
|
25
|
+
* manager.activate('task-1');
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
import { LoRAConfig } from './types';
|
|
29
|
+
/**
|
|
30
|
+
* LoRA adapter weights
|
|
31
|
+
*/
|
|
32
|
+
export interface LoraWeights {
|
|
33
|
+
/** Down projection matrix (d x r) */
|
|
34
|
+
loraA: number[][];
|
|
35
|
+
/** Up projection matrix (r x d) */
|
|
36
|
+
loraB: number[][];
|
|
37
|
+
/** Scaling factor */
|
|
38
|
+
scaling: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* LoRA training state
|
|
42
|
+
*/
|
|
43
|
+
export interface LoraTrainingState {
|
|
44
|
+
/** Current step */
|
|
45
|
+
step: number;
|
|
46
|
+
/** Learning rate */
|
|
47
|
+
learningRate: number;
|
|
48
|
+
/** Accumulated gradients for A */
|
|
49
|
+
gradA: number[][];
|
|
50
|
+
/** Accumulated gradients for B */
|
|
51
|
+
gradB: number[][];
|
|
52
|
+
/** Loss history */
|
|
53
|
+
lossHistory: number[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* LoRA Adapter
|
|
57
|
+
*
|
|
58
|
+
* Implements low-rank decomposition for parameter-efficient fine-tuning.
|
|
59
|
+
* W' = W + BA where A is (d x r) and B is (r x d), r << d
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const adapter = new LoraAdapter({
|
|
64
|
+
* rank: 8,
|
|
65
|
+
* alpha: 16,
|
|
66
|
+
* inputDim: 768,
|
|
67
|
+
* outputDim: 768,
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* // Forward pass
|
|
71
|
+
* const output = adapter.forward(input);
|
|
72
|
+
*
|
|
73
|
+
* // Training step
|
|
74
|
+
* adapter.backward(input, gradOutput, 0.001);
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export declare class LoraAdapter {
|
|
78
|
+
private config;
|
|
79
|
+
private inputDim;
|
|
80
|
+
private outputDim;
|
|
81
|
+
private weights;
|
|
82
|
+
private trainingState;
|
|
83
|
+
private frozen;
|
|
84
|
+
constructor(config?: Partial<LoRAConfig>, inputDim?: number, outputDim?: number);
|
|
85
|
+
/**
|
|
86
|
+
* Forward pass through LoRA adapter
|
|
87
|
+
* OPTIMIZED: Uses Float64Array and loop unrolling
|
|
88
|
+
*
|
|
89
|
+
* output = input + scaling * (input @ A @ B)
|
|
90
|
+
*/
|
|
91
|
+
forward(input: number[]): number[];
|
|
92
|
+
/**
|
|
93
|
+
* Forward with batch processing
|
|
94
|
+
*/
|
|
95
|
+
forwardBatch(inputs: number[][]): number[][];
|
|
96
|
+
/**
|
|
97
|
+
* Backward pass and weight update
|
|
98
|
+
*/
|
|
99
|
+
backward(input: number[], gradOutput: number[], learningRate: number): number;
|
|
100
|
+
/**
|
|
101
|
+
* Start training mode
|
|
102
|
+
*/
|
|
103
|
+
startTraining(learningRate?: number): void;
|
|
104
|
+
/**
|
|
105
|
+
* End training mode
|
|
106
|
+
*/
|
|
107
|
+
endTraining(): LoraTrainingState | null;
|
|
108
|
+
/**
|
|
109
|
+
* Freeze adapter (no more updates)
|
|
110
|
+
*/
|
|
111
|
+
freeze(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Unfreeze adapter
|
|
114
|
+
*/
|
|
115
|
+
unfreeze(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Check if frozen
|
|
118
|
+
*/
|
|
119
|
+
isFrozen(): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Get adapter config
|
|
122
|
+
*/
|
|
123
|
+
getConfig(): Required<LoRAConfig>;
|
|
124
|
+
/**
|
|
125
|
+
* Get adapter weights
|
|
126
|
+
*/
|
|
127
|
+
getWeights(): LoraWeights;
|
|
128
|
+
/**
|
|
129
|
+
* Set adapter weights
|
|
130
|
+
*/
|
|
131
|
+
setWeights(weights: LoraWeights): void;
|
|
132
|
+
/**
|
|
133
|
+
* Merge adapter into base weights
|
|
134
|
+
*
|
|
135
|
+
* Returns delta to add to base model weights
|
|
136
|
+
*/
|
|
137
|
+
merge(): number[][];
|
|
138
|
+
/**
|
|
139
|
+
* Get number of trainable parameters
|
|
140
|
+
*/
|
|
141
|
+
numParameters(): number;
|
|
142
|
+
/**
|
|
143
|
+
* Reset to initial weights
|
|
144
|
+
*/
|
|
145
|
+
reset(): void;
|
|
146
|
+
/**
|
|
147
|
+
* Clone adapter
|
|
148
|
+
*/
|
|
149
|
+
clone(): LoraAdapter;
|
|
150
|
+
/**
|
|
151
|
+
* Serialize to JSON
|
|
152
|
+
*/
|
|
153
|
+
toJSON(): string;
|
|
154
|
+
/**
|
|
155
|
+
* Deserialize from JSON
|
|
156
|
+
*/
|
|
157
|
+
static fromJSON(json: string): LoraAdapter;
|
|
158
|
+
private initializeWeights;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* LoRA Manager for multiple adapters
|
|
162
|
+
*
|
|
163
|
+
* Manages a collection of LoRA adapters for different tasks/domains.
|
|
164
|
+
*/
|
|
165
|
+
export declare class LoraManager {
|
|
166
|
+
private adapters;
|
|
167
|
+
private activeAdapterId;
|
|
168
|
+
private defaultConfig;
|
|
169
|
+
constructor(defaultConfig?: Partial<LoRAConfig>);
|
|
170
|
+
/**
|
|
171
|
+
* Register a new adapter
|
|
172
|
+
*/
|
|
173
|
+
register(id: string, adapter: LoraAdapter): void;
|
|
174
|
+
/**
|
|
175
|
+
* Create and register a new adapter
|
|
176
|
+
*/
|
|
177
|
+
create(id: string, config?: Partial<LoRAConfig>, inputDim?: number, outputDim?: number): LoraAdapter;
|
|
178
|
+
/**
|
|
179
|
+
* Get adapter by ID
|
|
180
|
+
*/
|
|
181
|
+
get(id: string): LoraAdapter | undefined;
|
|
182
|
+
/**
|
|
183
|
+
* Remove adapter
|
|
184
|
+
*/
|
|
185
|
+
remove(id: string): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Activate an adapter
|
|
188
|
+
*/
|
|
189
|
+
activate(id: string): boolean;
|
|
190
|
+
/**
|
|
191
|
+
* Deactivate current adapter
|
|
192
|
+
*/
|
|
193
|
+
deactivate(): void;
|
|
194
|
+
/**
|
|
195
|
+
* Get active adapter
|
|
196
|
+
*/
|
|
197
|
+
getActive(): LoraAdapter | null;
|
|
198
|
+
/**
|
|
199
|
+
* Get active adapter ID
|
|
200
|
+
*/
|
|
201
|
+
getActiveId(): string | null;
|
|
202
|
+
/**
|
|
203
|
+
* Apply active adapter
|
|
204
|
+
*/
|
|
205
|
+
forward(input: number[]): number[];
|
|
206
|
+
/**
|
|
207
|
+
* List all adapter IDs
|
|
208
|
+
*/
|
|
209
|
+
list(): string[];
|
|
210
|
+
/**
|
|
211
|
+
* Get adapter count
|
|
212
|
+
*/
|
|
213
|
+
count(): number;
|
|
214
|
+
/**
|
|
215
|
+
* Freeze all adapters
|
|
216
|
+
*/
|
|
217
|
+
freezeAll(): void;
|
|
218
|
+
/**
|
|
219
|
+
* Unfreeze all adapters
|
|
220
|
+
*/
|
|
221
|
+
unfreezeAll(): void;
|
|
222
|
+
/**
|
|
223
|
+
* Merge multiple adapters into one
|
|
224
|
+
*/
|
|
225
|
+
mergeAdapters(ids: string[], outputId: string): LoraAdapter | null;
|
|
226
|
+
/**
|
|
227
|
+
* Get statistics
|
|
228
|
+
*/
|
|
229
|
+
stats(): {
|
|
230
|
+
totalAdapters: number;
|
|
231
|
+
activeAdapter: string | null;
|
|
232
|
+
totalParameters: number;
|
|
233
|
+
frozenCount: number;
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* Clear all adapters
|
|
237
|
+
*/
|
|
238
|
+
clear(): void;
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=lora.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lora.d.ts","sourceRoot":"","sources":["../../src/lora.ts"],"names":[],"mappings":"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"}
|