v0.2.0

vllm-project/aibrixv0.2.0Feb 19, 2025by github-actions[bot]

AI Summary

A major feature release introducing distributed inference capabilities, heterogeneous GPU support, and advanced autoscaling strategies to optimize resource utilization.

Key Highlights

  • Implemented Distributed KV Cache for managing state across multiple nodes.
  • Added Cost-Driven Heterogeneous Serving for mixed GPU environments.
  • Introduced Optimizer Based Autoscaling leveraging offline profiles.
  • Added Prefix Cache Aware Routing to improve inference efficiency.

New Features

  • Distributed KV Cache orchestration
  • Cost-Driven Heterogeneous Serving
  • Optimizer Based Autoscaling
  • Prefix Cache Aware Routing
  • LoRA Scheduling Enhancements (bin packing, least latency, least throughput, random)
  • Envoy Gateway streaming support

Full Release Notes

Automatically generated release for tag v0.2.0.

## 🚀 New Features Highlights
- **Distributed KV Cache**: Implemented support for managing KV cache across multiple nodes, enhancing performance. 
- **Cost-Driven Heterogenous Serving**: Improved scheduling and inference strategies for mixed GPU environments, optimizing cost and resource utilization. (#371 #430, #509, #598, #554, #598)
- **Optimizer Based Autoscaling**: Leverage offline profiles of inference server to calculate the number of replicas. (#430, #500, #692, #508)
- **Prefix Cache Aware Routing**: Added support for routing decisions based on prefix cache hits, improving inference efficiency. (#641, #657)

## 📊 Feature Enhancements
- **LoRA Scheduling Enhancements**: Introduced multiple scheduling strategies, including bin packing, least latency, least throughput, and random. (#544)
- **Prefix Cache Aware Routing**: Added support for routing decisions based on prefix cache hits, improving inference efficiency. (#641)
- **Gateway Enhancements**:  Improved request handling efficiency by enabling streaming in the Envoy gateway. (#377) Enhanced the handling of model registration and invalid cache scenarios. (#542), Introduced fallback strategies to ensure robust request allocation. (#445) Optimized cache store retrieval, reducing unnecessary overhead. (#639) Addressed missing Prometheus config preventing gateway startup. (#441)
- **PodAutoscaler Scaling improvements**: Improved scaling logic to handle edge cases more efficiently. (#508, #515)

## đź› Infrastructure & CI/CD Upgrades
- Parallelized Build Tasks: CI efficiency improvements by running builds in parallel. (#398)
- CrashLoopBackOff Detection in CI: Added monitoring for pod failures in testing workflows. (#444)
- Improved GitHub Actions Cost Efficiency: Optimized triggers and removed unnecessary nightly builds. (#411, #422)
- Integration Tests for Core Components: Added integration tests for autoscalers, routing policies, and deployment configurations. (#616, #620)


## What's Changed
* Add envoy gateway streaming support by @varungup90 in https://github.com/aibrix/aibrix/pull/377
* Add client traffic policy to increase per connection buffer size from 32kb to 256kb by @varungup90 in https://github.com/aibrix/aibrix/pull/395
* Misc: add support to metricsSources property of podautoscaler by @zhangjyr in https://github.com/aibrix/aibrix/pull/371
* [Misc] Update runtime server startup command in v0.1.0 by @brosoul in https://github.com/aibrix/aibrix/pull/396
* [CI] improve the ci efficiency by parallelizing the build tasks by @nwangfw in https://github.com/aibrix/aibrix/pull/398
* Fix the ticker interval by removing unnecessary ms by @Jeffwan in https://github.com/aibrix/aibrix/pull/415
* [Misc] Disable specific endpoints logs by @Jeffwan in https://github.com/aibrix/aibrix/pull/418
* [CI] Github Action trigger condition optimized for cost saving by @nwangfw in https://github.com/aibrix/aibrix/pull/411
* [Misc] Fix the mocked app role permission issue by @Jeffwan in https://github.com/aibrix/aibrix/pull/416
* [CI] Nightly tag removed for release branch by @nwangfw in https://github.com/aibrix/aibrix/pull/422
* Enable setting PodAutoscaler configuration via YAML labels by @kr11 in https://github.com/aibrix/aibrix/pull/409
* Update manifest to adopt v0.1.1 images by @Jeffwan in https://github.com/aibrix/aibrix/pull/429
* [Bug]: duplicated http in rest metrics fetcher (#408) by @zhangjyr in https://github.com/aibrix/aibrix/pull/421
* [MISC]: Improve Request Trace Granularity with Version Control by @zhangjyr in https://github.com/aibrix/aibrix/pull/431
* Support histogram metrics from engine in cache by @Jeffwan in https://github.com/aibrix/aibrix/pull/424
* Support fetching metrics from remote Prometheus server by @Jeffwan in https://github.com/aibrix/aibrix/pull/433
* [CI] Add python wheel to release artifact by @Jeffwan in https://github.com/aibrix/aibrix/pull/434
* Fix update cache pod issue and refactor updatePod handler by @Jeffwan in https://github.com/aibrix/aibrix/pull/439
* Extract common metrics structure to types and utils by @Jeffwan in https://github.com/aibrix/aibrix/pull/438
* Fix gateway startup issue due to missing prometheus config by @Jeffwan in https://github.com/aibrix/aibrix/pull/441
* [feat]: GPU Optimizer and Simulator development app by @zhangjyr in https://github.com/aibrix/aibrix/pull/430
* Add selectrandom fallback in routing and only scraping healthy pods by @Jeffwan in https://github.com/aibrix/aibrix/pull/445
* AIBrix Workload Generator / Scenario Simulator by @happyandslow in https://github.com/aibrix/aibrix/pull/428
* CrashLoopBackOff status detection in CI by @nwangfw in https://github.com/aibrix/aibrix/pull/444
* Support installing individual controllers from giant controller-manager by @nwangfw in https://github.com/aibrix/aibrix/pull/442
* Refactor Scaler: Resolve Issues with Metric Parameter Updates in Multiple KPAs by @kr11 in https://github.com/aibrix/aibrix/pull/437
* Support metrics multi labels for different models by @brosoul in https://github.com/aibrix/aibrix/pull/450
* Add health check api interface for runtime by @Jeffwan in https://github.com/aibrix/aibrix/pull/451
* Fix the service name override issue in rolebindings by @Jeffwan in https://github.com/aibrix/aibrix/pull/453
* Reorganize docs/development and docs/tutorial structure by @Jeffwan in https://github.com/aibrix/aibrix/pull/455
* Move tools to separate folders and update mocked app README.md by @Jeffwan in https://github.com/aibrix/aibrix/pull/457
* Fix multi models metric result in PromQL by @brosoul in https://github.com/aibrix/aibrix/pull/458
* Support Azure LLM trace in workload generator by @happyandslow in https://github.com/aibrix/aibrix/pull/462
* Fix autoscaler scalingstrategy switching logic by @nwangfw in https://github.com/aibrix/aibrix/pull/475
* Fix missing handle of PromQL scope is PodMetricScope by @brosoul in https://github.com/aibrix/aibrix/pull/479
* [Misc] Consolidate app and simulator by @zhangjyr in https://github.com/aibrix/aibrix/pull/477
* [Bug] Avoid including sensitive info in Dockerfile ENV by @zhangjyr in https://github.com/aibrix/aibrix/pull/487
* Refactor generator to generate time-based traces by @happyandslow in https://github.com/aibrix/aibrix/pull/478
* [CI] Update deploy workload script in installation test by @nwangfw in https://github.com/aibrix/aibrix/pull/499
* [Bug] handle metricKey creation with MetricsSources  by @nwangfw in https://github.com/aibrix/aibrix/pull/498
* Adding Client for Workload Generator Workload File by @happyandslow in https://github.com/aibrix/aibrix/pull/501
* [Feat] Integrate deployment configurations and fix autoscaler/gpu optimizer connectivity by @zhangjyr in https://github.com/aibrix/aibrix/pull/500
* Fix some simulator format issue and add some TODOs by @Jeffwan in https://github.com/aibrix/aibrix/pull/505
* [Bug] Fix the way how podautoscaler handle 0 pods. by @zhangjyr in https://github.com/aibrix/aibrix/pull/508
* [Misc] Improve gpu optimizer debugging on podautoscaler. by @zhangjyr in https://github.com/aibrix/aibrix/pull/509
* Optimize kustomize overlay for volcano engine deployment by @Jeffwan in https://github.com/aibrix/aibrix/pull/512
* [perf] Refact tos downloader in Runtime by @brosoul in https://github.com/aibrix/aibrix/pull/510
* Refactor metric source for customized protocol, port and path by @kr11 in https://github.com/aibrix/aibrix/pull/511
* [Bug] Fixed the yaml of deployments in heterogenous GPU settings to make KPA scaling work as expected. by @zhangjyr in https://github.com/aibrix/aibrix/pull/513
* [Misc] Heterogeneous GPU Optimizer Logging Clean Up by @nwangfw in https://github.com/aibrix/aibrix/pull/514
* Fix KPA bug, and an elaborate KPA test case by @kr11 in https://github.com/aibrix/aibrix/pull/515
* Cut v0.2.0-rc.1 release by @Jeffwan in https://github.com/aibrix/aibrix/pull/516
* [Bug] Accumulated bug fix on controller manager, mock app configuration, and gpu optimizer. by @zhangjyr in https://github.com/aibrix/aibrix/pull/522
* [Misc] Reduced runtime's container image size by @nwangfw in https://github.com/aibrix/aibrix/pull/518
* clean memory scaler object when pa crd is deleted by @kr11 in https://github.com/aibrix/aibrix/pull/520
* Configure autoscaler http client to skip certificate check by @Jeffwan in https://github.com/aibrix/aibrix/pull/530
* [Doc] Update aibrix documentation by @Jeffwan in https://github.com/aibrix/aibrix/pull/533
* Refactor the gateway-plugin and metadata service manifests by @Jeffwan in https://github.com/aibrix/aibrix/pull/531
* Fix the GITHUB_WORKSPACE artifact sharing issue in release workflow by @Jeffwan in https://github.com/aibrix/aibrix/pull/532
* [Misc] Polish the benchmark scripts by @Jeffwan in https://github.com/aibrix/aibrix/pull/525
* Fix APA bugs in creation, add test and demo yaml by @kr11 in https://github.com/aibrix/aibrix/pull/536
* Add VKE IPv4 Testing Cluster Config by @nwangfw in https://github.com/aibrix/aibrix/pull/537
* Support for request length internal trace by @happyandslow in https://github.com/aibrix/aibrix/pull/538
* [Feat] Add download status into runtime downloader by @brosoul in https://github.com/aibrix/aibrix/pull/539
* [Feat] Add runtime model management api by @brosoul in https://github.com/aibrix/aibrix/pull/540
* [gateway] handle the wrong model name and cache inconsistency case by @Jeffwan in https://github.com/aibrix/aibrix/pull/542
* [Docs] fix: update the parameters instruction in readme by @scarlet25151 in https://github.com/aibrix/aibrix/pull/548
* add lora schedulers - bin pack, least latency, least throughput, random by @Aspirin96 in https://github.com/aibrix/aibrix/pull/544
* add request routers - least kv cache, least expected latency by @Aspirin96 in https://github.com/aibrix/aibrix/pull/543
* [Docs] heterogenous gpu docs added by @nwangfw in https://github.com/aibrix/aibrix/pull/545
* Fix race condition in cache by @varungup90 in https://github.com/aibrix/aibrix/pull/550
* Fix pod internal cache delete handling by @varungup90 in https://github.com/aibrix/aibrix/pull/552
* Handle terminating pod for request routing by @varungup90 in https://github.com/aibrix/aibrix/pull/549
* Support absolute path as lora adapter artifact path by @Jeffwan in https://github.com/aibrix/aibrix/pull/556
* Deadlock fix for cache by @varungup90 in https://github.com/aibrix/aibrix/pull/557
* Mock app log fix for missing metrics warning by @varungup90 in https://github.com/aibrix/aibrix/pull/564
* Add vllm graceful termination configuration by @nwangfw in https://github.com/aibrix/aibrix/pull/568
* Enhance dynamic lora adapter support for auth enabled scenario by @Jeffwan in https://github.com/aibrix/aibrix/pull/571
* Update pyproject.toml to support python 3.12 by @Jeffwan in https://github.com/aibrix/aibrix/pull/579
* [Docs ]Update ai runtime management api and downloader docs by @Jeffwan in https://github.com/aibrix/aibrix/pull/577
* Check the HPA ownerReference in request enqueue by @Jeffwan in https://github.com/aibrix/aibrix/pull/582
* Add request length for traces by @happyandslow in https://github.com/aibrix/aibrix/pull/569
* Support model registration flow using aibrix runtime api by @Jeffwan in https://github.com/aibrix/aibrix/pull/580
* Gateway plugin report total incoming requests and pending requests by @zhangjyr in https://github.com/aibrix/aibrix/pull/554
* Support distributed kv cache orchestration by @Jeffwan in https://github.com/aibrix/aibrix/pull/583
* Grant workflow action permission to write packages by @Jeffwan in https://github.com/aibrix/aibrix/pull/586
* Update routers to use GetPodModelMetric api and misc cleanup in metri… by @varungup90 in https://github.com/aibrix/aibrix/pull/590
* Update upload/download artifact github actions version to v4 by @varungup90 in https://github.com/aibrix/aibrix/pull/591
* Update version in aibrix/python to 0.2.0-rc.2 by @varungup90 in https://github.com/aibrix/aibrix/pull/594
* Update image names in sync-image script by @varungup90 in https://github.com/aibrix/aibrix/pull/595
* Update dependency chart for release pipeline by @varungup90 in https://github.com/aibrix/aibrix/pull/597
* Patch release for older vllm engine lora support in gateway plugins by @varungup90 in https://github.com/aibrix/aibrix/pull/599
* Update component names in staging deployment and readme for new relea… by @varungup90 in https://github.com/aibrix/aibrix/pull/605
* Fix the PodAutoscaler kind typo by @Jeffwan in https://github.com/aibrix/aibrix/pull/610
* Improve condition update and fix multiple endpoint ips issue by @Jeffwan in https://github.com/aibrix/aibrix/pull/609
* Check if model name is present in response from inference engine by @varungup90 in https://github.com/aibrix/aibrix/pull/611
* Update log level for few messages in PodAutoscaler by @varungup90 in https://github.com/aibrix/aibrix/pull/612
* [enhancement] GPU optimizer accumulated fix by @zhangjyr in https://github.com/aibrix/aibrix/pull/598
* Update manifest to use v0.2.0-rc.2 tag by @Jeffwan in https://github.com/aibrix/aibrix/pull/614
* Add framework to setup integration test by @varungup90 in https://github.com/aibrix/aibrix/pull/616
* [docs] Update lora model adapter docs by @Jeffwan in https://github.com/aibrix/aibrix/pull/618
* [docs] Update AI Engine Runtime and Fleet docs by @Jeffwan in https://github.com/aibrix/aibrix/pull/619
* [Doc] update quickstart tutorial and add example sending requests via gatew… by @nwangfw in https://github.com/aibrix/aibrix/pull/621
* [Doc] feature description for distributed kv cache by @DwyaneShi in https://github.com/aibrix/aibrix/pull/623
* WIP: Add docs gateway plugin by @varungup90 in https://github.com/aibrix/aibrix/pull/624
* [Docs] Update GPU Optimizer documentation by @zhangjyr in https://github.com/aibrix/aibrix/pull/622
* Add integration test to CI workflow by @varungup90 in https://github.com/aibrix/aibrix/pull/620
* [Docs] Updated autoscaling doc by @gangmuk in https://github.com/aibrix/aibrix/pull/625
* Filter active pods before metrics calculation by @Jeffwan in https://github.com/aibrix/aibrix/pull/629
* Fix some issues in the docs and polish contents by @Jeffwan in https://github.com/aibrix/aibrix/pull/630
* Ignore Jupyter notebooks for GitHub Linguist by @Jeffwan in https://github.com/aibrix/aibrix/pull/632
* [Docs] Improving the heterogenous-GPU feature doc by @nwangfw in https://github.com/aibrix/aibrix/pull/634
* [Doc] Fixed autoscaling doc by @gangmuk in https://github.com/aibrix/aibrix/pull/635
* Fix out of space error in running integration test github workflow by @varungup90 in https://github.com/aibrix/aibrix/pull/628
* Use AIBRIX_POD_METRIC_REFRESH_INTERVAL_MS=50 in base configs by @Jeffwan in https://github.com/aibrix/aibrix/pull/640
* Fix the least-kv-cache cache store retrieval by @Jeffwan in https://github.com/aibrix/aibrix/pull/639
* Add prefix cache aware routing by @varungup90 in https://github.com/aibrix/aibrix/pull/641
* [misc] Polish gateway code with better structure by @Jeffwan in https://github.com/aibrix/aibrix/pull/645
* Create AIBrix Single-Node Deployment on Lambda scripts by @Jeffwan in https://github.com/aibrix/aibrix/pull/659
* End-to-end benchmark pipeline for autoscalers and routing policies by @gangmuk in https://github.com/aibrix/aibrix/pull/650
* Clean up scripts under hack folder by @Jeffwan in https://github.com/aibrix/aibrix/pull/660
* Add a research section, update architecture and lambda guidance by @Jeffwan in https://github.com/aibrix/aibrix/pull/663
* Leverage literalinclude to keep only one code copy and move autoscaler configs to annotations by @Jeffwan in https://github.com/aibrix/aibrix/pull/665
* Updated scripts and fixed issues in benchmark/autoscaling by @gangmuk in https://github.com/aibrix/aibrix/pull/662
* Benchmark Generator Refactoring by @happyandslow in https://github.com/aibrix/aibrix/pull/655
* Add interface for prefix cache indexer by @varungup90 in https://github.com/aibrix/aibrix/pull/657
* Fix missing file to generator refactoring  by @happyandslow in https://github.com/aibrix/aibrix/pull/670
* [Bug] GPU optimizer bug fix and document fix by @zhangjyr in https://github.com/aibrix/aibrix/pull/656
* Change error response to json and improve e2e stability by @Jeffwan in https://github.com/aibrix/aibrix/pull/669
* Use response buffer to address stream request issue by @Jeffwan in https://github.com/aibrix/aibrix/pull/679
* [docs] Polish feature examples and user guidances by @Jeffwan in https://github.com/aibrix/aibrix/pull/686
* Update version and tags to v0.2.0 by @Jeffwan in https://github.com/aibrix/aibrix/pull/687
* fix api scheme by @kerthcet in https://github.com/aibrix/aibrix/pull/674
* [docs] Polish distributed inference and kv cache examples by @Jeffwan in https://github.com/aibrix/aibrix/pull/691
* Improve lora autoscaling and kvcache examples by @Jeffwan in https://github.com/aibrix/aibrix/pull/697
* [Docs] Add optimizer-based autoscaling doc and examples by @nwangfw in https://github.com/aibrix/aibrix/pull/692
* Add cpu/memory resources for control plane components by @varungup90 in https://github.com/aibrix/aibrix/pull/702
* Update log config for sample deployments by @varungup90 in https://github.com/aibrix/aibrix/pull/704
* [Docs] Add feature description of dist kv cache in README by @DwyaneShi in https://github.com/aibrix/aibrix/pull/705
* [Docs] Update README.md by @Jeffwan in https://github.com/aibrix/aibrix/pull/706
* Add feature description for heterogeneous gpu inference feature by @nwangfw in https://github.com/aibrix/aibrix/pull/707
* Bump py version to 0.2.0.post1 by @Jeffwan in https://github.com/aibrix/aibrix/pull/708
* Fix wrong path for generated html by @kerthcet in https://github.com/aibrix/aibrix/pull/709

## New Contributors
* @scarlet25151 made their first contribution in https://github.com/aibrix/aibrix/pull/548
* @Aspirin96 made their first contribution in https://github.com/aibrix/aibrix/pull/544
* @DwyaneShi made their first contribution in https://github.com/aibrix/aibrix/pull/623
* @gangmuk made their first contribution in https://github.com/aibrix/aibrix/pull/625
* @kerthcet made their first contribution in https://github.com/aibrix/aibrix/pull/674

**Full Changelog**: https://github.com/aibrix/aibrix/compare/v0.1.0...v0.2.0