-
Notifications
You must be signed in to change notification settings - Fork 1
Module onnx clip Roadmap
Roadmap-Hinweis: Vage Bullets ohne Akzeptanzkriterien in Checkbox-Tasks überführen. Format:
- [ ] <Task> (Target: <Q/Jahr>).
v0.2.0 — ONNXClipPlugin is Production-ready. Full IImageAnalysisBackend interface with
pImpl isolation, multi-backend support (CPU/CUDA/DirectML/TensorRT/AUTO), native batch
sub-batch splitting, CLIP text encoder, Prometheus-style metrics, and ONNX model integrity
check (SHA-256) are all implemented.
-
ONNXClipPluginclass implementingIImageAnalysisBackend - pImpl design isolating all ONNX Runtime types from the public header
-
initialize(config, backend)with BackendType selection -
AUTObackend selection: CUDA → TensorRT → DirectML → CPU probe -
generateEmbedding()single-image inference path -
generateEmbeddingBatch()with native sub-batch splitting andmax_batch_sizeconfig -
generateTextEmbedding()— CLIP text encoder with BPE-style tokenization -
warmup()pre-compilation of CUDA/TensorRT kernels -
healthCheck()output tensor shape validation -
getStatistics()JSON metrics (calls, avg_latency_ms, backend, model_variant, max_batch_size, total_text_inferences) -
THEMIS_IMAGE_PLUGINmacro export for dynamic plugin loading - Thread-safe inference via
std::mutex - Prometheus metrics:
clip_embeddings_total,clip_text_embeddings_total,clip_batch_embeddings_total(Target: Q3 2026) ✅ - ONNX model integrity check (SHA-256 hash on load via OpenSSL EVP; skipped gracefully without OpenSSL) (Target: Q1 2027) ✅
- Unit tests: CPU backend, model load, embedding shape,
healthCheck()(Target: Q3 2026) —tests/test_onnx_clip_plugin.cpp(26 tests,ONNXClipPluginTest); registered intests/CMakeLists.txtunderTHEMIS_PLUGIN_IMAGE_ANALYSIS_ONNXguard - Contract-hardening focused tests (Target: Q3 2026) —
tests/test_onnx_clip_plugin_contract_hardening_focused.cpp(16 tests,OnnxClipContractHardeningTest); covers OCP-01..16 interface/backend/embedding/batch contracts; registered astest_onnx_clip_plugin_contract_hardening_focusedtarget intests/CMakeLists.txt
- [~] Task 1A: Integration test infrastructure (OCP-IT-01..08) — In Progress
- Task 1B: Reproducibility & regression testing (OCP-IT-09..12)
- Task 1C: Test harness & CI integration
- Acceptance: All 12 integration tests pass, coverage > 80%
- [~] Task 2A: Benchmark framework & fixtures — In Progress
- Task 2B: Latency & throughput analysis
- Task 2C: Performance gates (FCP-01..06) registration
- Acceptance: Gates FCP-01 (≤150ms), FCP-02 (≤2.4s), FCP-03 (≤5ms), FCP-04 (<500ms), FCP-05 (≥6x batch), FCP-06 (memory tracked)
- [~] Task 3A: Hot-swap API design & contract — In Progress
- [~] Task 3B: Hot-swap implementation — In Progress
- Task 3C: Hot-swap testing & validation (OCP-HS-01..12)
- Acceptance: All 12 tests pass, no request disruption, rollback verified
- [~] Task 4A: Memory-mapped API & design — In Progress
- [~] Task 4B: Mmap implementation — In Progress
- Task 4C: Mmap testing & optimization (OCP-MM-01..12)
- Acceptance: All 12 tests pass, ≥30% memory reduction for ViT-L/14
- Define
IImageAnalysisBackendcompliance points - Define pImpl struct layout
- Define
BackendTypeenum and AUTO selection logic
- Single-image inference pipeline (decode → preprocess → infer → normalise)
- Multi-backend initialization (CPU/CUDA/DirectML/TensorRT)
-
generateEmbeddingBatch()with sub-batch splitting andmax_batch_sizeconfig -
generateTextEmbedding()with BPE-style tokenization
- Model file not found →
initialize()returnsfalse - Image decode failure →
EmbeddingResult{ok=false} - CUDA unavailable → falls back to CPU in AUTO mode
- Session Run exception → caught; error result returned
- Empty text input →
EmbeddingResult{ok=false}
- Unit tests for CPU backend and embedding shape (26 tests covering image embedding, text embedding, batch splitting, ViT-L/14 768-dim, Prometheus counters, integrity check)
- Contract-hardening focused tests (16 tests: OCP-01..16 covering interface contract, backend selection, embedding generation, batch processing)
- Integration tests with real ONNX models (Target: Q3 2026)
- Perf benchmark (Target: Q3 2026)
- Prometheus metrics (Target: Q3 2026)
- ONNX model integrity check (SHA-256 via OpenSSL) (Target: Q1 2027)
- README, ARCHITECTURE, AUDIT, CHANGELOG, ROADMAP, SECURITY, FUTURE_ENHANCEMENTS
| Area | Status | Notes |
|---|---|---|
| API contract | ✅ | Full IImageAnalysisBackend implementation |
| pImpl ABI isolation | ✅ | No ONNX Runtime types in public header |
| Thread safety | ✅ | Mutex-serialised session runs |
| Error handling | ✅ | All failure paths return error results |
| Multi-backend | ✅ | CPU / CUDA / DirectML / TensorRT / AUTO |
| Batch inference | ✅ | Sub-batch splitting with max_batch_size config |
| Text encoder | ✅ |
generateTextEmbedding() with BPE tokenization |
| Prometheus metrics | ✅ |
clip_embeddings_total, clip_text_embeddings_total, clip_batch_embeddings_total
|
| Model integrity check | ✅ | SHA-256 via OpenSSL EVP; graceful skip without OpenSSL |
| Unit/integration tests | 26 unit tests + 16 contract-hardening focused tests (OCP-01..16); integration tests still pending (Q3 2026 target) | |
| Performance benchmarks | ❌ | Planned Q3 2026 |
- Integration tests with real ViT-B/32 / ViT-L/14 ONNX model files still pending.
- DirectML backend requires Windows; silently falls back to CPU on Linux.
- SHA-256 model integrity check requires OpenSSL at build time (
THEMIS_HAS_OPENSSL); skipped without it.
Stand: 2026-04-20 – Quelle: [[src/UNUSED_FUNCTIONS_REPORT.md|UNUSED-FUNCTIONS-REPORT]]
-
computeEmbedding– Berechnet CLIP-Embedding via ONNX; genutzt in gnn_embeddings + inference_engine
This module is a contributing module in the program-level Wave A → B → C → D execution model.
It does not own a primary wave deliverable but must remain release_critical-green throughout all waves
and must deliver Wave D operability improvements in Q1 2027.
See [[../../ROADMAP.md|ROADMAP]] for the full wave model and exit criteria.
- Deliver or validate distributed tracing, high-cardinality stress coverage, exporter reliability, and operator remediation hints as applicable to this module (Target: Q1 2027)
- Contribute to or validate long-duration soak test coverage for this module's primary paths (Target: Q1 2027)
- Ensure runbook coverage for operator-critical scenarios in this module (Target: Q1 2027)
-
release_criticalCI must remain green ondevelopthroughout all waves (Target: ongoing) - p95/p99 benchmarks must be refreshed on representative hardware before Wave D sign-off (Target: Q1 2027)
- No behavioral regression may be introduced into modules in Wave A/B/C scope from changes in this module.
- This module's distributed/acceleration paths fail closed (Target: Q1 2027)
- Benchmark-backed p95/p99 baselines exist on representative hardware (Target: Q1 2027)
- Operator-critical paths have diagnostics, alerts, and runbooks (Target: Q1 2027)
- Architecture-ACCESS-MODEL-IMPLEMENTATION-SUMMARY
- Architecture-ADR-003-pg-dump-sql-parser
- Architecture-BASEENTITY-PRINCIPLE
- Architecture-CACHE-STORAGE-INTEGRATION
- Architecture-CMAKE-ARCHITECTURE
- Architecture-CMAKE-FLAGS-REFERENCE
- Architecture-CMAKE-MODULAR-ARCHITECTURE
- Architecture-CONCERNS-ARCHITECTURE-DIAGRAM
- Architecture-CONCERNS-IMPLEMENTATION-SUMMARY
- Architecture-CONTENT-MODEL
- Architecture-COPILOT-THEMISDB-GRAPH-RAG-BACKEND-ARCHITECTURE
- Architecture-CRYPTO-AND-KEYS
- Architecture-FEATURE-FLAGS-REFERENCE
- Architecture-GPU-ARCHITECTURE-REVIEW-TEMPLATE
- Architecture-HTTP-SHUTDOWN-HARDENING
- Architecture-MIGRATION-GUIDE-CONCERNS
- Architecture-MIGRATION-GUIDE-v13-v14
- Architecture-MODULARIZATION-GUIDE
- Architecture-MODULAR-ARCHITECTURE-ROADMAP
- Architecture-MODULE-ARCHITECTURE-INDEX
- Architecture-P1D01-ISSMPLUGIN-DESIGN-REVIEW
- Architecture-P1-D01-ISSMPLUGIN-DESIGN-REVIEW
- Architecture-P1-D08-MAMBA-GOVERNANCE-CONTRACT
- Architecture-P1-P2-IMPLEMENTATION-COMPLETION-INDEX
- Architecture-PHASE0-COMPLETION-ASSESSMENT
- Architecture-PHASE3-QUERYENGINE-DI-ARCHITECTURE
- Architecture-PHASE4-INDEX-MANAGER-DI
- Architecture-POSTGRESQL-WIRE-PROTOCOL
- Architecture-QUERYENGINE-IMPLEMENTATION-GUIDE
- Architecture-QUERY-SCHEDULING
- Architecture-RAFT-CONSENSUS-DESIGN
- Architecture-README
- Architecture-README-SSM-HYBRID-IMPLEMENTATION
- Architecture-REFACTORING-SUMMARY
- Architecture-RESOURCE-POOLING
- Architecture-SOURCE-DIRECTORY-GUIDE
- Architecture-THEMIS-CORE-GUIDE
- Architecture-UNIFIED-ACCESS-MODEL
- Architecture-WAL-GRPC-MTLS-CONFIGURATION
- Architecture-WIRE-PROTOCOL-RETRY
- Architecture-boltzmann-observability-draft
- Architecture-experimental-logarithmic-vector-storage
- Architecture-llm-wiki-mvp-adr
- Architecture-rewrite-engine-architecture
- Architecture-rope-api-architecture
- Architecture-ssm-gguf-mamba-status
- Architecture-ssm-hybrid-analysis
- Architecture-ssm-hybrid-rollout-plan
- Architecture-ssm-plugin-interface-design-review
- Architecture-transaction-coordinators
- Architecture-wiki-secondary-index
- Architecture-wire-protocol
- Governance-DISABLED-STUB-POLICY
- Governance-DOCS-PR-POLICY
- Governance-GA-PROMOTION-SIGN-OFF
- Governance-GITHUB-MILESTONES-SETUP
- Governance-MATURITY-CLAIM-VERIFICATION-CHECKLIST
- Governance-MATURITY-EVIDENCE-REGISTRY
- Governance-MERGE-GATE-BOT-CONFIG
- Governance-MERGE-GATE-STATUS-LIVE
- Governance-PHASE3-ENFORCEMENT-RUNBOOK
- Governance-PHASE-1-CLOSURE-REPORT
- Governance-PHASE-CLOSURE-POLICY
- Governance-PHASE-DEPENDENCY-GRAPH
- Governance-PLUGIN-SUBMODULE-ROLLBACK
- Governance-PRODUCTION-READY-2026-DELIVERY-PLAN
- Governance-PR-VERSION-TARGETING
- Governance-PR-VERSION-TARGETING-BACKFILL
- Governance-QUERY-MODULE-STATUS
- Governance-README
- Governance-RELEASE-PROMOTION-GATE-POLICY
- Governance-RELEASE-VALIDATION-CHECKLIST
- Governance-SECURITY-MODULE-5671-EVIDENCE-SUMMARY
- Governance-SHARDING-P6-RESIDUAL-RISK-ACCEPTANCE
- Governance-SOURCECODE-COMPLIANCE-GOVERNANCE
- Governance-UPDATES-DEVELOPMENT-STATUS-SIGN-OFF
- Governance-WAVE-C-IMPLEMENTATION-COMPLETE
- Module-acceleration-Roadmap
- Module-access-model-Roadmap
- Module-ai-Roadmap
- Module-analytics-Roadmap
- Module-api-Roadmap
- Module-aql-Roadmap
- Module-auth-Roadmap
- Module-base-Roadmap
- Module-cache-Roadmap
- Module-cdc-Roadmap
- Module-chaos-Roadmap
- Module-chimera-Roadmap
- Module-config-Roadmap
- Module-content-Roadmap
- Module-core-Roadmap
- Module-distributed-knowledge-Roadmap
- Module-distributed-tensor-Roadmap
- Module-document-Roadmap
- Module-ethics-ai-Roadmap
- Module-evaluation-Roadmap
- Module-execution-Roadmap
- Module-exporters-Roadmap
- Module-failover-Roadmap
- Module-geo-Roadmap
- Module-governance-Roadmap
- Module-gpu-Roadmap
- Module-graph-Roadmap
- Module-image-analysis-Roadmap
- Module-importers-Roadmap
- Module-index-Roadmap
- Module-ingestion-Roadmap
- Module-llama-cpp-Roadmap
- Module-llm-Roadmap
- Module-llm-streaming-Roadmap
- Module-llm-wiki-Roadmap
- Module-maintenance-Roadmap
- Module-metadata-Roadmap
- Module-network-Roadmap
- Module-observability-Roadmap
- Module-onnx-clip-Roadmap
- Module-performance-Roadmap
- Module-plugins-Roadmap
- Module-process-Roadmap
- Module-projects-Roadmap
- Module-prompt-engineering-Roadmap
- Module-query-Roadmap
- Module-rag-Roadmap
- Module-replication-Roadmap
- Module-retrieval-Roadmap
- Module-rpc-grpc-Roadmap
- Module-scheduler-Roadmap
- Module-scraper-Roadmap
- Module-search-Roadmap
- Module-security-Roadmap
- Module-server-Roadmap
- Module-sharding-Roadmap
- Module-stable-diffusion-Roadmap
- Module-storage-Roadmap
- Module-temporal-Roadmap
- Module-tensor-Roadmap
- Module-themis-Roadmap
- Module-timeseries-Roadmap
- Module-toolbox-Roadmap
- Module-training-Roadmap
- Module-transaction-Roadmap
- Module-updates-Roadmap
- Module-user-storage-encrypted-Roadmap
- Module-utils-Roadmap
- Module-vector-search-Roadmap
- Module-voice-Roadmap
- Module-whisper-Roadmap