agentdb 1.0.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/LICENSE +38 -0
- package/LICENSE-APACHE +190 -0
- package/LICENSE-MIT +21 -0
- package/README.md +953 -0
- package/bin/agentdb.js +485 -0
- package/bin/plugin-cli-wrapper.mjs +21 -0
- package/dist/cache/query-cache.d.ts +105 -0
- package/dist/cache/query-cache.d.ts.map +1 -0
- package/dist/cache/query-cache.js +224 -0
- package/dist/cache/query-cache.js.map +1 -0
- package/dist/cache/query-cache.mjs +219 -0
- package/dist/cli/cache/query-cache.d.ts +104 -0
- package/dist/cli/cache/query-cache.js +244 -0
- package/dist/cli/cli/db-commands.d.ts +48 -0
- package/dist/cli/cli/db-commands.js +613 -0
- package/dist/cli/commands.d.ts +7 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +113 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/commands.mjs +104 -0
- package/dist/cli/core/backend-interface.d.ts +70 -0
- package/dist/cli/core/backend-interface.js +15 -0
- package/dist/cli/core/native-backend.d.ts +140 -0
- package/dist/cli/core/native-backend.js +432 -0
- package/dist/cli/core/vector-db.d.ts +126 -0
- package/dist/cli/core/vector-db.js +338 -0
- package/dist/cli/core/wasm-backend.d.ts +95 -0
- package/dist/cli/core/wasm-backend.js +418 -0
- package/dist/cli/db-commands.d.ts +49 -0
- package/dist/cli/db-commands.d.ts.map +1 -0
- package/dist/cli/db-commands.js +533 -0
- package/dist/cli/db-commands.js.map +1 -0
- package/dist/cli/db-commands.mjs +522 -0
- package/dist/cli/generator.d.ts +11 -0
- package/dist/cli/generator.d.ts.map +1 -0
- package/dist/cli/generator.js +567 -0
- package/dist/cli/generator.js.map +1 -0
- package/dist/cli/generator.mjs +527 -0
- package/dist/cli/help.d.ts +18 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +676 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/help.mjs +667 -0
- package/dist/cli/index/hnsw.d.ts +164 -0
- package/dist/cli/index/hnsw.js +558 -0
- package/dist/cli/plugin-cli.d.ts +7 -0
- package/dist/cli/plugin-cli.d.ts.map +1 -0
- package/dist/cli/plugin-cli.js +295 -0
- package/dist/cli/plugin-cli.js.map +1 -0
- package/dist/cli/plugin-cli.mjs +289 -0
- package/dist/cli/quantization/product-quantization.d.ts +108 -0
- package/dist/cli/quantization/product-quantization.js +350 -0
- package/dist/cli/query/query-builder.d.ts +322 -0
- package/dist/cli/query/query-builder.js +600 -0
- package/dist/cli/templates.d.ts +14 -0
- package/dist/cli/templates.d.ts.map +1 -0
- package/dist/cli/templates.js +182 -0
- package/dist/cli/templates.js.map +1 -0
- package/dist/cli/templates.mjs +176 -0
- package/dist/cli/types/index.d.ts +116 -0
- package/dist/cli/types/index.js +5 -0
- package/dist/cli/types.d.ts +91 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +6 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/types.mjs +4 -0
- package/dist/cli/wizard/index.d.ts +6 -0
- package/dist/cli/wizard/index.d.ts.map +1 -0
- package/dist/cli/wizard/index.js +138 -0
- package/dist/cli/wizard/index.js.map +1 -0
- package/dist/cli/wizard/index.mjs +131 -0
- package/dist/cli/wizard/prompts.d.ts +11 -0
- package/dist/cli/wizard/prompts.d.ts.map +1 -0
- package/dist/cli/wizard/prompts.js +482 -0
- package/dist/cli/wizard/prompts.js.map +1 -0
- package/dist/cli/wizard/prompts.mjs +470 -0
- package/dist/cli/wizard/validator.d.ts +13 -0
- package/dist/cli/wizard/validator.d.ts.map +1 -0
- package/dist/cli/wizard/validator.js +234 -0
- package/dist/cli/wizard/validator.js.map +1 -0
- package/dist/cli/wizard/validator.mjs +224 -0
- package/dist/core/backend-interface.d.ts +71 -0
- package/dist/core/backend-interface.d.ts.map +1 -0
- package/dist/core/backend-interface.js +16 -0
- package/dist/core/backend-interface.js.map +1 -0
- package/dist/core/backend-interface.mjs +12 -0
- package/dist/core/native-backend.d.ts +141 -0
- package/dist/core/native-backend.d.ts.map +1 -0
- package/dist/core/native-backend.js +457 -0
- package/dist/core/native-backend.js.map +1 -0
- package/dist/core/native-backend.mjs +449 -0
- package/dist/core/vector-db.d.ts +127 -0
- package/dist/core/vector-db.d.ts.map +1 -0
- package/dist/core/vector-db.js +266 -0
- package/dist/core/vector-db.js.map +1 -0
- package/dist/core/vector-db.mjs +261 -0
- package/dist/core/wasm-backend.d.ts +96 -0
- package/dist/core/wasm-backend.d.ts.map +1 -0
- package/dist/core/wasm-backend.js +393 -0
- package/dist/core/wasm-backend.js.map +1 -0
- package/dist/core/wasm-backend.mjs +385 -0
- package/dist/index/hnsw-optimized.d.ts +75 -0
- package/dist/index/hnsw-optimized.d.ts.map +1 -0
- package/dist/index/hnsw-optimized.js +412 -0
- package/dist/index/hnsw-optimized.js.map +1 -0
- package/dist/index/hnsw-optimized.mjs +407 -0
- package/dist/index/hnsw.d.ts +165 -0
- package/dist/index/hnsw.d.ts.map +1 -0
- package/dist/index/hnsw.js +521 -0
- package/dist/index/hnsw.js.map +1 -0
- package/dist/index/hnsw.mjs +516 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +63 -0
- package/dist/mcp-server.d.ts +27 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +789 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp-server.mjs +784 -0
- package/dist/plugins/base-plugin.d.ts +114 -0
- package/dist/plugins/base-plugin.d.ts.map +1 -0
- package/dist/plugins/base-plugin.js +313 -0
- package/dist/plugins/base-plugin.js.map +1 -0
- package/dist/plugins/base-plugin.mjs +275 -0
- package/dist/plugins/implementations/active-learning.d.ts +135 -0
- package/dist/plugins/implementations/active-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/active-learning.js +372 -0
- package/dist/plugins/implementations/active-learning.js.map +1 -0
- package/dist/plugins/implementations/active-learning.mjs +367 -0
- package/dist/plugins/implementations/actor-critic.d.ts +64 -0
- package/dist/plugins/implementations/actor-critic.d.ts.map +1 -0
- package/dist/plugins/implementations/actor-critic.js +363 -0
- package/dist/plugins/implementations/actor-critic.js.map +1 -0
- package/dist/plugins/implementations/actor-critic.mjs +358 -0
- package/dist/plugins/implementations/adversarial-training.d.ts +133 -0
- package/dist/plugins/implementations/adversarial-training.d.ts.map +1 -0
- package/dist/plugins/implementations/adversarial-training.js +409 -0
- package/dist/plugins/implementations/adversarial-training.js.map +1 -0
- package/dist/plugins/implementations/adversarial-training.mjs +404 -0
- package/dist/plugins/implementations/curriculum-learning.d.ts +132 -0
- package/dist/plugins/implementations/curriculum-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/curriculum-learning.js +354 -0
- package/dist/plugins/implementations/curriculum-learning.js.map +1 -0
- package/dist/plugins/implementations/curriculum-learning.mjs +349 -0
- package/dist/plugins/implementations/decision-transformer.d.ts +77 -0
- package/dist/plugins/implementations/decision-transformer.d.ts.map +1 -0
- package/dist/plugins/implementations/decision-transformer.js +422 -0
- package/dist/plugins/implementations/decision-transformer.js.map +1 -0
- package/dist/plugins/implementations/decision-transformer.mjs +417 -0
- package/dist/plugins/implementations/federated-learning.d.ts +126 -0
- package/dist/plugins/implementations/federated-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/federated-learning.js +436 -0
- package/dist/plugins/implementations/federated-learning.js.map +1 -0
- package/dist/plugins/implementations/federated-learning.mjs +431 -0
- package/dist/plugins/implementations/index.d.ts +30 -0
- package/dist/plugins/implementations/index.d.ts.map +1 -0
- package/dist/plugins/implementations/index.js +45 -0
- package/dist/plugins/implementations/index.js.map +1 -0
- package/dist/plugins/implementations/index.mjs +31 -0
- package/dist/plugins/implementations/multi-task-learning.d.ts +115 -0
- package/dist/plugins/implementations/multi-task-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/multi-task-learning.js +369 -0
- package/dist/plugins/implementations/multi-task-learning.js.map +1 -0
- package/dist/plugins/implementations/multi-task-learning.mjs +364 -0
- package/dist/plugins/implementations/neural-architecture-search.d.ts +148 -0
- package/dist/plugins/implementations/neural-architecture-search.d.ts.map +1 -0
- package/dist/plugins/implementations/neural-architecture-search.js +379 -0
- package/dist/plugins/implementations/neural-architecture-search.js.map +1 -0
- package/dist/plugins/implementations/neural-architecture-search.mjs +374 -0
- package/dist/plugins/implementations/q-learning.d.ts +98 -0
- package/dist/plugins/implementations/q-learning.d.ts.map +1 -0
- package/dist/plugins/implementations/q-learning.js +435 -0
- package/dist/plugins/implementations/q-learning.js.map +1 -0
- package/dist/plugins/implementations/q-learning.mjs +430 -0
- package/dist/plugins/implementations/sarsa.d.ts +103 -0
- package/dist/plugins/implementations/sarsa.d.ts.map +1 -0
- package/dist/plugins/implementations/sarsa.js +347 -0
- package/dist/plugins/implementations/sarsa.js.map +1 -0
- package/dist/plugins/implementations/sarsa.mjs +342 -0
- package/dist/plugins/index.d.ts +107 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +179 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/index.mjs +168 -0
- package/dist/plugins/interface.d.ts +439 -0
- package/dist/plugins/interface.d.ts.map +1 -0
- package/dist/plugins/interface.js +12 -0
- package/dist/plugins/interface.js.map +1 -0
- package/dist/plugins/interface.mjs +10 -0
- package/dist/plugins/learning-plugin.interface.d.ts +257 -0
- package/dist/plugins/learning-plugin.interface.d.ts.map +1 -0
- package/dist/plugins/learning-plugin.interface.js +7 -0
- package/dist/plugins/learning-plugin.interface.js.map +1 -0
- package/dist/plugins/learning-plugin.interface.mjs +5 -0
- package/dist/plugins/plugin-exports.d.ts +71 -0
- package/dist/plugins/plugin-exports.d.ts.map +1 -0
- package/dist/plugins/plugin-exports.js +78 -0
- package/dist/plugins/plugin-exports.js.map +1 -0
- package/dist/plugins/plugin-exports.mjs +69 -0
- package/dist/plugins/registry.d.ts +206 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +365 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/registry.mjs +356 -0
- package/dist/plugins/validator.d.ts +63 -0
- package/dist/plugins/validator.d.ts.map +1 -0
- package/dist/plugins/validator.js +464 -0
- package/dist/plugins/validator.js.map +1 -0
- package/dist/plugins/validator.mjs +458 -0
- package/dist/quantization/binary-quantization.d.ts +104 -0
- package/dist/quantization/binary-quantization.d.ts.map +1 -0
- package/dist/quantization/binary-quantization.js +246 -0
- package/dist/quantization/binary-quantization.js.map +1 -0
- package/dist/quantization/binary-quantization.mjs +240 -0
- package/dist/quantization/optimized-pq.d.ts +138 -0
- package/dist/quantization/optimized-pq.d.ts.map +1 -0
- package/dist/quantization/optimized-pq.js +320 -0
- package/dist/quantization/optimized-pq.js.map +1 -0
- package/dist/quantization/optimized-pq.mjs +313 -0
- package/dist/quantization/product-quantization.d.ts +109 -0
- package/dist/quantization/product-quantization.d.ts.map +1 -0
- package/dist/quantization/product-quantization.js +287 -0
- package/dist/quantization/product-quantization.js.map +1 -0
- package/dist/quantization/product-quantization.mjs +282 -0
- package/dist/quantization/scalar-quantization.d.ts +100 -0
- package/dist/quantization/scalar-quantization.d.ts.map +1 -0
- package/dist/quantization/scalar-quantization.js +324 -0
- package/dist/quantization/scalar-quantization.js.map +1 -0
- package/dist/quantization/scalar-quantization.mjs +319 -0
- package/dist/query/index.d.ts +6 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +9 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/index.mjs +4 -0
- package/dist/query/query-builder.d.ts +323 -0
- package/dist/query/query-builder.d.ts.map +1 -0
- package/dist/query/query-builder.js +524 -0
- package/dist/query/query-builder.js.map +1 -0
- package/dist/query/query-builder.mjs +519 -0
- package/dist/reasoning/context-synthesizer.d.ts +57 -0
- package/dist/reasoning/context-synthesizer.d.ts.map +1 -0
- package/dist/reasoning/context-synthesizer.js +224 -0
- package/dist/reasoning/context-synthesizer.js.map +1 -0
- package/dist/reasoning/context-synthesizer.mjs +219 -0
- package/dist/reasoning/experience-curator.d.ts +66 -0
- package/dist/reasoning/experience-curator.d.ts.map +1 -0
- package/dist/reasoning/experience-curator.js +288 -0
- package/dist/reasoning/experience-curator.js.map +1 -0
- package/dist/reasoning/experience-curator.mjs +283 -0
- package/dist/reasoning/memory-optimizer.d.ts +69 -0
- package/dist/reasoning/memory-optimizer.d.ts.map +1 -0
- package/dist/reasoning/memory-optimizer.js +331 -0
- package/dist/reasoning/memory-optimizer.js.map +1 -0
- package/dist/reasoning/memory-optimizer.mjs +326 -0
- package/dist/reasoning/pattern-matcher.d.ts +59 -0
- package/dist/reasoning/pattern-matcher.d.ts.map +1 -0
- package/dist/reasoning/pattern-matcher.js +229 -0
- package/dist/reasoning/pattern-matcher.js.map +1 -0
- package/dist/reasoning/pattern-matcher.mjs +224 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.d.ts +118 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.d.ts.map +1 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.js +477 -0
- package/dist/reasoningbank/adapter/agentdb-adapter.js.map +1 -0
- package/dist/reasoningbank/adapter/types.d.ts +113 -0
- package/dist/reasoningbank/adapter/types.d.ts.map +1 -0
- package/dist/reasoningbank/adapter/types.js +9 -0
- package/dist/reasoningbank/adapter/types.js.map +1 -0
- package/dist/reasoningbank/cli/commands.d.ts +16 -0
- package/dist/reasoningbank/cli/commands.d.ts.map +1 -0
- package/dist/reasoningbank/cli/commands.js +272 -0
- package/dist/reasoningbank/cli/commands.js.map +1 -0
- package/dist/reasoningbank/mcp/agentdb-tools.d.ts +319 -0
- package/dist/reasoningbank/mcp/agentdb-tools.d.ts.map +1 -0
- package/dist/reasoningbank/mcp/agentdb-tools.js +301 -0
- package/dist/reasoningbank/mcp/agentdb-tools.js.map +1 -0
- package/dist/reasoningbank/migration/migrate.d.ts +25 -0
- package/dist/reasoningbank/migration/migrate.d.ts.map +1 -0
- package/dist/reasoningbank/migration/migrate.js +178 -0
- package/dist/reasoningbank/migration/migrate.js.map +1 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.d.ts +37 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.js +114 -0
- package/dist/reasoningbank/reasoning/context-synthesizer.js.map +1 -0
- package/dist/reasoningbank/reasoning/experience-curator.d.ts +39 -0
- package/dist/reasoningbank/reasoning/experience-curator.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/experience-curator.js +98 -0
- package/dist/reasoningbank/reasoning/experience-curator.js.map +1 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.d.ts +44 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.js +184 -0
- package/dist/reasoningbank/reasoning/memory-optimizer.js.map +1 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.d.ts +40 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.d.ts.map +1 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.js +87 -0
- package/dist/reasoningbank/reasoning/pattern-matcher.js.map +1 -0
- package/dist/reasoningbank/sync/quic-sync.d.ts +77 -0
- package/dist/reasoningbank/sync/quic-sync.d.ts.map +1 -0
- package/dist/reasoningbank/sync/quic-sync.js +165 -0
- package/dist/reasoningbank/sync/quic-sync.js.map +1 -0
- package/dist/sync/conflict.d.ts +78 -0
- package/dist/sync/conflict.d.ts.map +1 -0
- package/dist/sync/conflict.js +202 -0
- package/dist/sync/conflict.js.map +1 -0
- package/dist/sync/conflict.mjs +196 -0
- package/dist/sync/coordinator.d.ts +111 -0
- package/dist/sync/coordinator.d.ts.map +1 -0
- package/dist/sync/coordinator.js +256 -0
- package/dist/sync/coordinator.js.map +1 -0
- package/dist/sync/coordinator.mjs +250 -0
- package/dist/sync/delta.d.ts +81 -0
- package/dist/sync/delta.d.ts.map +1 -0
- package/dist/sync/delta.js +245 -0
- package/dist/sync/delta.js.map +1 -0
- package/dist/sync/delta.mjs +238 -0
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +22 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/index.mjs +9 -0
- package/dist/sync/quic-sync.d.ts +81 -0
- package/dist/sync/quic-sync.d.ts.map +1 -0
- package/dist/sync/quic-sync.js +329 -0
- package/dist/sync/quic-sync.js.map +1 -0
- package/dist/sync/quic-sync.mjs +323 -0
- package/dist/sync/types.d.ts +168 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +8 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/sync/types.mjs +6 -0
- package/dist/types/index.d.ts +117 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/index.mjs +4 -0
- package/dist/wasm-loader.d.ts +32 -0
- package/dist/wasm-loader.d.ts.map +1 -0
- package/dist/wasm-loader.js +75 -0
- package/dist/wasm-loader.js.map +1 -0
- package/dist/wasm-loader.mjs +64 -0
- package/examples/adaptive-learning.ts +284 -0
- package/examples/browser/README.md +732 -0
- package/examples/browser/adaptive-recommendations/index.html +427 -0
- package/examples/browser/collaborative-filtering/index.html +310 -0
- package/examples/browser/continual-learning/index.html +736 -0
- package/examples/browser/experience-replay/index.html +616 -0
- package/examples/browser/index.html +369 -0
- package/examples/browser/meta-learning/index.html +789 -0
- package/examples/browser/neuro-symbolic/index.html +692 -0
- package/examples/browser/pattern-learning/index.html +620 -0
- package/examples/browser/quantum-inspired/index.html +728 -0
- package/examples/browser/rag/index.html +624 -0
- package/examples/browser/swarm-intelligence/index.html +811 -0
- package/examples/browser-basic.html +170 -0
- package/examples/hnsw-example.ts +148 -0
- package/examples/node-basic.js +70 -0
- package/examples/quic-sync-example.ts +310 -0
- package/examples/quick-start.js +68 -0
- package/examples/wasm-example.ts +222 -0
- package/package.json +118 -0
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Task Learning Plugin
|
|
3
|
+
*
|
|
4
|
+
* Implements learning across multiple related tasks simultaneously,
|
|
5
|
+
* leveraging shared representations and transfer learning.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Shared and task-specific layers
|
|
9
|
+
* - Task weighting and balancing
|
|
10
|
+
* - Hard and soft parameter sharing
|
|
11
|
+
* - Auxiliary task learning
|
|
12
|
+
* - Task relationship modeling
|
|
13
|
+
*/
|
|
14
|
+
import { BasePlugin } from '../base-plugin.mjs';
|
|
15
|
+
/**
|
|
16
|
+
* Multi-Task Learning Plugin Implementation
|
|
17
|
+
*/
|
|
18
|
+
export class MultiTaskLearningPlugin extends BasePlugin {
|
|
19
|
+
constructor(config) {
|
|
20
|
+
super();
|
|
21
|
+
this.name = 'multi-task-learning';
|
|
22
|
+
this.version = '1.0.0';
|
|
23
|
+
this.experiences = [];
|
|
24
|
+
this.tasks = new Map();
|
|
25
|
+
this.sharingStrategy = 'hard_sharing';
|
|
26
|
+
// Shared representations
|
|
27
|
+
this.sharedWeights = new Map();
|
|
28
|
+
this.taskSpecificWeights = new Map();
|
|
29
|
+
// Task relationships
|
|
30
|
+
this.taskSimilarity = new Map();
|
|
31
|
+
this.auxiliaryTasks = new Set();
|
|
32
|
+
// Training parameters
|
|
33
|
+
this.uncertaintyWeighting = true;
|
|
34
|
+
this.gradientNormalization = true;
|
|
35
|
+
if (config) {
|
|
36
|
+
this.sharingStrategy = config.sharingStrategy || 'hard_sharing';
|
|
37
|
+
this.uncertaintyWeighting = config.uncertaintyWeighting !== false;
|
|
38
|
+
}
|
|
39
|
+
this.initializeSharedLayers();
|
|
40
|
+
// Mark as initialized for in-memory operation
|
|
41
|
+
this.initialized = true;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Override to skip initialization check for in-memory operation
|
|
45
|
+
*/
|
|
46
|
+
checkInitialized() {
|
|
47
|
+
// No-op for multi-task learning - operates in-memory
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Encode state to fixed dimension
|
|
51
|
+
*/
|
|
52
|
+
encodeState(state) {
|
|
53
|
+
// Simple state encoding - ensure fixed dimension
|
|
54
|
+
const targetDim = 128;
|
|
55
|
+
if (state.length >= targetDim) {
|
|
56
|
+
return state.slice(0, targetDim);
|
|
57
|
+
}
|
|
58
|
+
// Pad if too short
|
|
59
|
+
const encoded = [...state];
|
|
60
|
+
while (encoded.length < targetDim) {
|
|
61
|
+
encoded.push(0);
|
|
62
|
+
}
|
|
63
|
+
return encoded;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Override selectAction to provide base implementation
|
|
67
|
+
*/
|
|
68
|
+
async selectAction(state, context) {
|
|
69
|
+
// Simple default action selection
|
|
70
|
+
const stateArray = Array.isArray(state) ? state : [state];
|
|
71
|
+
const stateSum = stateArray.reduce((a, b) => a + b, 0);
|
|
72
|
+
const value = Math.tanh(stateSum / stateArray.length);
|
|
73
|
+
return {
|
|
74
|
+
id: String(Math.floor(Math.abs(value) * 10)),
|
|
75
|
+
embedding: stateArray,
|
|
76
|
+
confidence: Math.abs(value),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Override to store experiences in-memory without vectorDB
|
|
81
|
+
*/
|
|
82
|
+
async storeExperience(experience) {
|
|
83
|
+
this.experiences.push(experience);
|
|
84
|
+
const taskId = experience.metadata?.taskId;
|
|
85
|
+
if (taskId && this.tasks.has(taskId)) {
|
|
86
|
+
// Update task performance
|
|
87
|
+
const task = this.tasks.get(taskId);
|
|
88
|
+
const alpha = 0.1;
|
|
89
|
+
const success = experience.reward > 0 ? 1 : 0;
|
|
90
|
+
task.performance = (1 - alpha) * task.performance + alpha * success;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Override to retrieve from local experiences
|
|
95
|
+
*/
|
|
96
|
+
async retrieveSimilar(state, k) {
|
|
97
|
+
return this.experiences.slice(0, k).map((exp, idx) => ({
|
|
98
|
+
id: exp.id || `exp-${idx}`,
|
|
99
|
+
embedding: exp.state,
|
|
100
|
+
metadata: exp,
|
|
101
|
+
score: 1.0 - (idx * 0.1),
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Initialize shared layers
|
|
106
|
+
*/
|
|
107
|
+
initializeSharedLayers() {
|
|
108
|
+
// Shared representation layers
|
|
109
|
+
for (let layer = 0; layer < 3; layer++) {
|
|
110
|
+
const size = [256, 128, 64][layer];
|
|
111
|
+
const weights = new Array(size).fill(0).map(() => Math.random() * 0.1 - 0.05);
|
|
112
|
+
this.sharedWeights.set(`shared_${layer}`, weights);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Add task to multi-task learning
|
|
117
|
+
*/
|
|
118
|
+
addTask(taskId, name, priority = 1.0, isAuxiliary = false) {
|
|
119
|
+
this.tasks.set(taskId, {
|
|
120
|
+
id: taskId,
|
|
121
|
+
name,
|
|
122
|
+
priority,
|
|
123
|
+
weight: 1.0,
|
|
124
|
+
performance: 0,
|
|
125
|
+
});
|
|
126
|
+
if (isAuxiliary) {
|
|
127
|
+
this.auxiliaryTasks.add(taskId);
|
|
128
|
+
}
|
|
129
|
+
// Initialize task-specific layers
|
|
130
|
+
const taskLayers = new Map();
|
|
131
|
+
taskLayers.set('task_head', new Array(64).fill(0).map(() => Math.random() * 0.1 - 0.05));
|
|
132
|
+
this.taskSpecificWeights.set(taskId, taskLayers);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Compute task similarity
|
|
136
|
+
*/
|
|
137
|
+
computeTaskSimilarity(task1Id, task2Id) {
|
|
138
|
+
const experiences1 = this.getTaskExperiences(task1Id);
|
|
139
|
+
const experiences2 = this.getTaskExperiences(task2Id);
|
|
140
|
+
if (experiences1.length === 0 || experiences2.length === 0) {
|
|
141
|
+
return 0.5;
|
|
142
|
+
}
|
|
143
|
+
// Compute average state embeddings
|
|
144
|
+
const avg1 = this.averageEmbedding(experiences1.map(e => e.state));
|
|
145
|
+
const avg2 = this.averageEmbedding(experiences2.map(e => e.state));
|
|
146
|
+
// Cosine similarity
|
|
147
|
+
return this.cosineSimilarity(avg1, avg2);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get experiences for specific task
|
|
151
|
+
*/
|
|
152
|
+
getTaskExperiences(taskId) {
|
|
153
|
+
// Simplified: return empty array
|
|
154
|
+
return [];
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Average embedding
|
|
158
|
+
*/
|
|
159
|
+
averageEmbedding(embeddings) {
|
|
160
|
+
if (embeddings.length === 0) {
|
|
161
|
+
return [];
|
|
162
|
+
}
|
|
163
|
+
const avg = new Array(embeddings[0].length).fill(0);
|
|
164
|
+
embeddings.forEach(emb => {
|
|
165
|
+
for (let i = 0; i < emb.length; i++) {
|
|
166
|
+
avg[i] += emb[i];
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
return avg.map(v => v / embeddings.length);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Cosine similarity
|
|
173
|
+
*/
|
|
174
|
+
cosineSimilarity(a, b) {
|
|
175
|
+
let dot = 0;
|
|
176
|
+
let magA = 0;
|
|
177
|
+
let magB = 0;
|
|
178
|
+
for (let i = 0; i < Math.min(a.length, b.length); i++) {
|
|
179
|
+
dot += a[i] * b[i];
|
|
180
|
+
magA += a[i] * a[i];
|
|
181
|
+
magB += b[i] * b[i];
|
|
182
|
+
}
|
|
183
|
+
return dot / (Math.sqrt(magA) * Math.sqrt(magB) + 1e-8);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Compute automatic task weights using uncertainty
|
|
187
|
+
*/
|
|
188
|
+
computeUncertaintyWeights() {
|
|
189
|
+
// Multi-task uncertainty weighting (Kendall et al., 2018)
|
|
190
|
+
const logVars = new Map();
|
|
191
|
+
this.tasks.forEach((task, taskId) => {
|
|
192
|
+
// Estimate log variance from task performance
|
|
193
|
+
const logVar = Math.log(1 - task.performance + 1e-8);
|
|
194
|
+
logVars.set(taskId, logVar);
|
|
195
|
+
});
|
|
196
|
+
// Compute weights
|
|
197
|
+
this.tasks.forEach((task, taskId) => {
|
|
198
|
+
const logVar = logVars.get(taskId);
|
|
199
|
+
task.weight = Math.exp(-logVar);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Normalize gradients across tasks
|
|
204
|
+
*/
|
|
205
|
+
normalizeGradients(gradients) {
|
|
206
|
+
if (!this.gradientNormalization) {
|
|
207
|
+
return gradients;
|
|
208
|
+
}
|
|
209
|
+
const normalized = new Map();
|
|
210
|
+
// Compute gradient norms
|
|
211
|
+
const norms = new Map();
|
|
212
|
+
gradients.forEach((grad, taskId) => {
|
|
213
|
+
const norm = Math.sqrt(grad.reduce((sum, g) => sum + g * g, 0));
|
|
214
|
+
norms.set(taskId, norm);
|
|
215
|
+
});
|
|
216
|
+
// Normalize to unit norm
|
|
217
|
+
gradients.forEach((grad, taskId) => {
|
|
218
|
+
const norm = norms.get(taskId);
|
|
219
|
+
normalized.set(taskId, grad.map(g => g / (norm + 1e-8)));
|
|
220
|
+
});
|
|
221
|
+
return normalized;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Forward pass through shared and task-specific layers
|
|
225
|
+
*/
|
|
226
|
+
async forwardMultiTask(state, taskId) {
|
|
227
|
+
let activation = this.encodeState(state);
|
|
228
|
+
// Shared layers
|
|
229
|
+
this.sharedWeights.forEach(weights => {
|
|
230
|
+
activation = this.forward(activation, weights);
|
|
231
|
+
});
|
|
232
|
+
// Task-specific layers
|
|
233
|
+
const taskWeights = this.taskSpecificWeights.get(taskId);
|
|
234
|
+
if (taskWeights) {
|
|
235
|
+
taskWeights.forEach(weights => {
|
|
236
|
+
activation = this.forward(activation, weights);
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
return activation[0] || 0;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Forward pass through layer
|
|
243
|
+
*/
|
|
244
|
+
forward(input, weights) {
|
|
245
|
+
const output = new Array(weights.length).fill(0);
|
|
246
|
+
for (let i = 0; i < output.length; i++) {
|
|
247
|
+
output[i] = input[i % input.length] * weights[i];
|
|
248
|
+
output[i] = Math.tanh(output[i]); // Activation
|
|
249
|
+
}
|
|
250
|
+
return output;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Train across multiple tasks
|
|
254
|
+
*/
|
|
255
|
+
async train(options) {
|
|
256
|
+
const startTime = Date.now();
|
|
257
|
+
const epochs = options?.epochs || 50;
|
|
258
|
+
const batchSize = options?.batchSize || 32;
|
|
259
|
+
let totalLoss = 0;
|
|
260
|
+
const taskLosses = new Map();
|
|
261
|
+
let experiencesProcessed = 0;
|
|
262
|
+
for (let epoch = 0; epoch < epochs; epoch++) {
|
|
263
|
+
// Update task weights if using uncertainty weighting
|
|
264
|
+
if (this.uncertaintyWeighting) {
|
|
265
|
+
this.computeUncertaintyWeights();
|
|
266
|
+
}
|
|
267
|
+
const taskGradients = new Map();
|
|
268
|
+
// Train on each task
|
|
269
|
+
for (const [taskId, task] of this.tasks) {
|
|
270
|
+
// Skip auxiliary tasks with low priority
|
|
271
|
+
if (this.auxiliaryTasks.has(taskId) && task.priority < 0.5) {
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
// Retrieve task-specific experiences from local storage
|
|
275
|
+
const experiences = await this.retrieveSimilar(new Array(128).fill(0), batchSize);
|
|
276
|
+
const taskExps = experiences
|
|
277
|
+
.filter(e => e.metadata?.metadata?.taskId === taskId)
|
|
278
|
+
.map(e => ({
|
|
279
|
+
state: e.metadata.state,
|
|
280
|
+
action: { id: '0', embedding: e.metadata.state },
|
|
281
|
+
reward: e.metadata?.reward || 0,
|
|
282
|
+
nextState: e.metadata?.nextState || e.metadata.state,
|
|
283
|
+
done: e.metadata?.done || false,
|
|
284
|
+
metadata: e.metadata,
|
|
285
|
+
}));
|
|
286
|
+
let taskLoss = 0;
|
|
287
|
+
// Compute gradients for task
|
|
288
|
+
const gradients = new Array(256).fill(0);
|
|
289
|
+
for (const exp of taskExps) {
|
|
290
|
+
const prediction = await this.forwardMultiTask(exp.state, taskId);
|
|
291
|
+
const loss = Math.pow(prediction - exp.reward, 2);
|
|
292
|
+
taskLoss += loss * task.weight;
|
|
293
|
+
experiencesProcessed++;
|
|
294
|
+
// Simplified gradient
|
|
295
|
+
for (let i = 0; i < gradients.length; i++) {
|
|
296
|
+
gradients[i] += (prediction - exp.reward) * exp.state[i % exp.state.length];
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
taskGradients.set(taskId, gradients);
|
|
300
|
+
taskLosses.set(taskId, taskLoss / Math.max(1, taskExps.length));
|
|
301
|
+
totalLoss += taskLoss;
|
|
302
|
+
}
|
|
303
|
+
// Normalize gradients
|
|
304
|
+
const normalizedGradients = this.normalizeGradients(taskGradients);
|
|
305
|
+
// Update shared weights with aggregated gradients
|
|
306
|
+
normalizedGradients.forEach((gradients, taskId) => {
|
|
307
|
+
const task = this.tasks.get(taskId);
|
|
308
|
+
this.sharedWeights.forEach((weights, layer) => {
|
|
309
|
+
for (let i = 0; i < weights.length; i++) {
|
|
310
|
+
weights[i] -= 0.01 * task.weight * gradients[i % gradients.length];
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
const duration = Date.now() - startTime;
|
|
316
|
+
const metrics = {
|
|
317
|
+
loss: totalLoss / Math.max(1, experiencesProcessed),
|
|
318
|
+
experiencesProcessed,
|
|
319
|
+
duration,
|
|
320
|
+
taskLosses: Object.fromEntries(taskLosses),
|
|
321
|
+
};
|
|
322
|
+
return metrics;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Get task statistics
|
|
326
|
+
*/
|
|
327
|
+
getTaskStats() {
|
|
328
|
+
return Array.from(this.tasks.values()).map(task => ({
|
|
329
|
+
id: task.id,
|
|
330
|
+
name: task.name,
|
|
331
|
+
performance: task.performance,
|
|
332
|
+
weight: task.weight,
|
|
333
|
+
priority: task.priority,
|
|
334
|
+
}));
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Get task relationship matrix
|
|
338
|
+
*/
|
|
339
|
+
getTaskRelationships() {
|
|
340
|
+
const relationships = new Map();
|
|
341
|
+
this.tasks.forEach((_, task1Id) => {
|
|
342
|
+
const similarities = new Map();
|
|
343
|
+
this.tasks.forEach((_, task2Id) => {
|
|
344
|
+
if (task1Id !== task2Id) {
|
|
345
|
+
similarities.set(task2Id, this.computeTaskSimilarity(task1Id, task2Id));
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
relationships.set(task1Id, similarities);
|
|
349
|
+
});
|
|
350
|
+
return relationships;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Select action for specific task
|
|
354
|
+
*/
|
|
355
|
+
async selectActionForTask(state, taskId, context) {
|
|
356
|
+
const prediction = await this.forwardMultiTask(state, taskId);
|
|
357
|
+
return {
|
|
358
|
+
id: String(Math.floor(Math.abs(prediction) * 10)),
|
|
359
|
+
embedding: Array.isArray(state) ? state : [state],
|
|
360
|
+
confidence: Math.abs(prediction),
|
|
361
|
+
metadata: { taskId },
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neural Architecture Search (NAS) Plugin
|
|
3
|
+
*
|
|
4
|
+
* Implements automated neural architecture optimization using
|
|
5
|
+
* evolutionary algorithms and reinforcement learning.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Architecture encoding and mutation
|
|
9
|
+
* - Population-based search
|
|
10
|
+
* - Performance prediction
|
|
11
|
+
* - Efficient architecture evaluation
|
|
12
|
+
* - Transfer learning from meta-architectures
|
|
13
|
+
*/
|
|
14
|
+
import { BasePlugin } from '../base-plugin';
|
|
15
|
+
import { Action, Context, Experience, TrainOptions, TrainingMetrics } from '../learning-plugin.interface';
|
|
16
|
+
/**
|
|
17
|
+
* Layer specification
|
|
18
|
+
*/
|
|
19
|
+
interface LayerSpec {
|
|
20
|
+
type: 'dense' | 'conv' | 'pool' | 'dropout' | 'batchnorm';
|
|
21
|
+
size?: number;
|
|
22
|
+
activation?: 'relu' | 'tanh' | 'sigmoid' | 'leaky_relu';
|
|
23
|
+
dropout?: number;
|
|
24
|
+
kernelSize?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Architecture specification
|
|
28
|
+
*/
|
|
29
|
+
interface Architecture {
|
|
30
|
+
id: string;
|
|
31
|
+
layers: LayerSpec[];
|
|
32
|
+
fitness: number;
|
|
33
|
+
complexity: number;
|
|
34
|
+
generation: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Neural Architecture Search Plugin Implementation
|
|
38
|
+
*/
|
|
39
|
+
export declare class NeuralArchitectureSearchPlugin extends BasePlugin {
|
|
40
|
+
name: string;
|
|
41
|
+
version: string;
|
|
42
|
+
private experiences;
|
|
43
|
+
private strategy;
|
|
44
|
+
private population;
|
|
45
|
+
private populationSize;
|
|
46
|
+
private eliteSize;
|
|
47
|
+
private mutationRate;
|
|
48
|
+
private crossoverRate;
|
|
49
|
+
private maxLayers;
|
|
50
|
+
private maxNodesPerLayer;
|
|
51
|
+
private layerTypes;
|
|
52
|
+
private bestArchitecture;
|
|
53
|
+
private generation;
|
|
54
|
+
private evaluationHistory;
|
|
55
|
+
constructor(config?: Partial<any>);
|
|
56
|
+
/**
|
|
57
|
+
* Override to skip initialization check for in-memory operation
|
|
58
|
+
*/
|
|
59
|
+
protected checkInitialized(): void;
|
|
60
|
+
/**
|
|
61
|
+
* Override to store experiences in-memory without vectorDB
|
|
62
|
+
*/
|
|
63
|
+
/**
|
|
64
|
+
* Override selectAction to provide base implementation
|
|
65
|
+
*/
|
|
66
|
+
selectAction(state: number[] | any, context?: Context): Promise<Action>;
|
|
67
|
+
storeExperience(experience: Experience): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Override to retrieve from local experiences
|
|
70
|
+
*/
|
|
71
|
+
retrieveSimilar(state: number[], k: number): Promise<import('../..').SearchResult<Experience>[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Initialize random population
|
|
74
|
+
*/
|
|
75
|
+
private initializePopulation;
|
|
76
|
+
/**
|
|
77
|
+
* Generate random architecture
|
|
78
|
+
*/
|
|
79
|
+
private generateRandomArchitecture;
|
|
80
|
+
/**
|
|
81
|
+
* Generate random layer
|
|
82
|
+
*/
|
|
83
|
+
private generateRandomLayer;
|
|
84
|
+
/**
|
|
85
|
+
* Generate unique ID for architecture
|
|
86
|
+
*/
|
|
87
|
+
private generateArchitectureId;
|
|
88
|
+
/**
|
|
89
|
+
* Calculate architecture complexity
|
|
90
|
+
*/
|
|
91
|
+
private calculateComplexity;
|
|
92
|
+
/**
|
|
93
|
+
* Evaluate architecture fitness
|
|
94
|
+
*/
|
|
95
|
+
private evaluateArchitecture;
|
|
96
|
+
/**
|
|
97
|
+
* Estimate architecture performance (simplified)
|
|
98
|
+
*/
|
|
99
|
+
private estimatePerformance;
|
|
100
|
+
/**
|
|
101
|
+
* Mutate architecture
|
|
102
|
+
*/
|
|
103
|
+
private mutate;
|
|
104
|
+
/**
|
|
105
|
+
* Crossover two architectures
|
|
106
|
+
*/
|
|
107
|
+
private crossover;
|
|
108
|
+
/**
|
|
109
|
+
* Select parent using tournament selection
|
|
110
|
+
*/
|
|
111
|
+
private selectParent;
|
|
112
|
+
/**
|
|
113
|
+
* Evolve population for one generation
|
|
114
|
+
*/
|
|
115
|
+
private evolveGeneration;
|
|
116
|
+
/**
|
|
117
|
+
* Train using NAS
|
|
118
|
+
*/
|
|
119
|
+
train(options?: TrainOptions): Promise<TrainingMetrics>;
|
|
120
|
+
/**
|
|
121
|
+
* Calculate population diversity
|
|
122
|
+
*/
|
|
123
|
+
private calculatePopulationDiversity;
|
|
124
|
+
/**
|
|
125
|
+
* Get best architecture
|
|
126
|
+
*/
|
|
127
|
+
getBestArchitecture(): Architecture | null;
|
|
128
|
+
/**
|
|
129
|
+
* Export architecture as JSON
|
|
130
|
+
*/
|
|
131
|
+
exportArchitecture(arch: Architecture): string;
|
|
132
|
+
/**
|
|
133
|
+
* Import architecture from JSON
|
|
134
|
+
*/
|
|
135
|
+
importArchitecture(json: string): Architecture;
|
|
136
|
+
/**
|
|
137
|
+
* Get search statistics
|
|
138
|
+
*/
|
|
139
|
+
getSearchStats(): {
|
|
140
|
+
generation: number;
|
|
141
|
+
evaluations: number;
|
|
142
|
+
bestFitness: number;
|
|
143
|
+
populationDiversity: number;
|
|
144
|
+
avgComplexity: number;
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
export {};
|
|
148
|
+
//# sourceMappingURL=neural-architecture-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neural-architecture-search.d.ts","sourceRoot":"","sources":["../../../src/plugins/implementations/neural-architecture-search.ts"],"names":[],"mappings":"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"}
|