HN 표시: Willitrun – ML 모델이 모든 기기에서 실행되는지 확인(벤치마크 지원)
hackernews
|
|
📦 오픈소스
#cli
#ml 모델
#머신러닝
#머신러닝/연구
#벤치마크
#하드웨어
원문 출처: hackernews · Genesis Park에서 요약 및 분석
요약
'willitrun'은 SQLite 기반의 실제 벤치마크 데이터와 연산량 추정을 활용하여 특정 기기에서 머신러닝(ML) 모델이 정상 구동 가능한지 CLI를 통해 즉시 판별해 주는 도구입니다. 엔비디아, 애플 실리콘 등 엣지부터 클라우드 기기까지 아우르는 광범위한 데이터베이스를 기반으로 작동하며, 메모리 적합성 검사와 20% 오버헤드를 반영한 신뢰도 범위를 제공합니다. 사용자는 오프라인 환경에서도 빠르고 직관적으로 결과를 확인할 수 있으며, 커뮤니티 기여를 통해 지속적으로 벤치마크 데이터가 확장되는 오픈소스 기반 생태계를 갖추고 있습니다.
본문
CLI to tell you if an ML model will fit and run on your device, using real benchmarks + lightweight estimation. - Real data first: SQLite DB of measured benchmarks (NVIDIA, Ultralytics, MLPerf, community). - Edge to cloud: Jetson, Apple Silicon, desktop GPUs, SBCs. - Vision + LLMs: Looks up exact matches, falls back to FLOPs/TFLOPS scaling with memory fit checks. - CLI-first: Fast, scriptable, offline-capable once the DB is installed. The interactive UI is the primary entrypoint: # recommended: isolated CLI install pipx install willitrun willitrun # or with pip if you prefer pip install willitrun willitrun Pick a model (name, HF ID, or local file), then pick a device. You’ll get a verdict and context instantly. Power users (non-interactive): willitrun --device [--json] Install extras as needed: # PyTorch/ONNX profiling (local .pt / .onnx parsing) pip install willitrun[profiling,onnx] - Raw (immutable cache): ingest scripts fetch and store HTTP responses in data/raw/{source}/{timestamp}.ext with TTL (configurable viatool.willitrun.raw_ttl_days ). - Normalized: the same scripts parse raw into JSONL at data/normalized/{source}.jsonl using the singleBenchmarkRecord schema (willitrun/pipeline/schema.py ). - Serving: make build_db (orpython scripts/run_pipeline.py build ) validates, deduplicates by source priority, and writesdata/benchmarks.db +data/benchmarks.meta.json . The packaged copy inwillitrun/data/ is refreshed bymake wheel . - Tier 1 (lookup): exact model+device benchmarks from SQLite. - Tier 2 (estimate): FLOPs/TFLOPS scaling plus memory fit with 20% overhead; emits ranges and a confidence marker. - Model name from DB ( yolov8n ,resnet50 , …) - Local PyTorch / ONNX file - HuggingFace model ID User CLI: willitrun --list-devices willitrun --list-models willitrun --device [--json] Pipeline (for data contributors/maintainers): make fetch # run all ingests (respects cache TTL) make build_db # normalized -> SQLite + metadata make status # coverage summary + gaps make wheel # rebuild DB, sync into package, build wheel - Add benchmarks: append JSON lines to data/normalized/.jsonl followingBenchmarkRecord . - Add devices/models: edit data/devices.yaml /data/models.yaml . - Rebuild DB: make build_db (regenerates DB + meta). - Run tests: pytest . - Open a PR with the updated normalized file(s), DB, and metadata. pip install -e ".[dev]" make build_db pytest make build_db # refresh DB + metadata make wheel # sync into package and build CI (GitHub Actions) runs make build_db + pytest on push/PR to guard against stale DBs and failing tests. - Ingest scripts need network access; cached raw files avoid re-fetching within TTL. - Tier 2 estimates rely on available reference benchmarks; uncommon models/devices may show wider ranges. - More benchmark data (community PRs welcome!) - Web frontend for shareability - Training memory estimation - Multi-GPU / model parallelism awareness - Auto-detect local hardware MIT
Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.
공유