feat(dev): add managed local model serving tool
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- python
- Domain
- ai-infra-agents, cli, devops
Research direction
Start by reviewing PR #212 and the repository's local-model dependency group, since the implementation is already tracked there. Check how the source-tree tool should expose compile, launch, probe, status, and stop, then verify the acceptance criteria for deterministic plans, capability probes, bounded cleanup, and both GPU-host and supplied-container workflows.
Written by the indexing model from the issue text.
Description
Priority Level
Medium
Task Summary
Add a source-tree developer tool that deploys and manages local models through one vLLM process lifecycle. The tool should let contributors run Anonymizer against pinned generation and detection models on a GPU host or inside the supplied container without introducing a second deployment domain.
Technical Details & Implementation Plan
The implementation should:
- Compile pinned TOML profiles into normalized plans with
task,model,vllm, andlocalsections. - Provide
compile,launch,probe,status, andstopcommands. - Support stock Hugging Face generation models and NVIDIA GLiNER or GLiNER2 through vLLM Factory.
- Preserve process identity with launch receipts, PID start markers, and process-group ownership checks.
- Probe task-specific capabilities rather than treating a listening port as readiness.
- Bound termination and cleanup so failed or stale processes cannot hang the tool indefinitely.
- Run the same compiler and local-process lifecycle on a GPU host and inside the supplied container.
- Document the deployment workflow and provide representative pinned profiles.
Acceptance criteria:
- Compilation is pure and produces deterministic, digest-protected plans.
- Plan digests are documented as accidental corruption detection, not authentication or semantic proof.
- Generation and GLiNER profiles share one lifecycle implementation.
- Capability probes validate chat completions or GLiNER dynamic labels, offsets, and scores as appropriate.
- Status and stop operations reject stale or reused process identities.
- Cleanup is bounded and reports whether it completed.
- Tests cover lifecycle invariants and behavior rather than profile inventory tables.
- Documentation covers both direct GPU-host deployment and the supplied container.
- A full Anonymizer dataset run succeeds with locally hosted GLiNER and a generation model, and both services clean up successfully.
Out of scope:
- Public package APIs for deployment.
- Remote compute orchestration or attachment to existing endpoints.
- Docker-specific compiler branches.
- Native Transformers GLiNER serving.
- Model-cache discovery.
- Cryptographic authentication of plans.
Implementation is tracked in PR #212.
Dependencies
vLLM Factory integration is pinned by the repository's local-model dependency group.
- Dominant language
- Python
- Stars
- 126
- Forks
- 20
- Avg merge
- 3d 19h
- Merged PRs (30d)
- 16
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA-NeMo/Anonymizer
-
Replacement-map generation can silently omit a requested entity, causing the rewrite to be marked unavailablePossibly taken @dundysm claimed this 24 days ago. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
NVIDIA-NeMo/Anonymizer#278 · 2 comments ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
NVIDIA-NeMo/Anonymizer#6 · 1 comment ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
NVIDIA-NeMo/Anonymizer#304 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
NVIDIA-NeMo/Anonymizer#293 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
NVIDIA-NeMo/Anonymizer#291 · 1 comment ·
Maintainers usually reply within 1 day
All issues in NVIDIA-NeMo/Anonymizer
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
aws-samples/sample-per-model-bedrock#295 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 76/100
pyrevitlabs/pyRevit#3792 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 69/100
zephyrproject-rtos/reqmgmt#177 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
polarsource/polar#15580 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
521xueweihan/HelloGitHub#4011 ·