vllm icon indicating copy to clipboard operation
vllm copied to clipboard

[CI][Contribution Welcomed] Conditional Testing

Open simon-mo opened this issue 9 months ago • 7 comments

Anything you want to discuss about vllm.

Currently we run all CI tests matrix on every single commit in pull requests. The CI cost of the vLLM has been doubling each week as we add more tests and receiving many PRs from the community.

A good first step would be to only run some tests when relevant code is changed. For example, do not run unit/integration tests when docs or examples are changed.

simon-mo avatar May 02 '24 23:05 simon-mo

I feel the speculative decoding tests will balloon quite a bit as we add more framework features; we can get ahead of this by only triggering them if there's framework changes.

cadedaniel avatar May 02 '24 23:05 cadedaniel

We could also just require explicit triggering of the CI (and doing this would be required for merging)

But since we have so many PRs that are often WIP, this would reduce useless CI runs

robertgshaw2-redhat avatar May 02 '24 23:05 robertgshaw2-redhat

We could also just require explicit triggering of the CI (and doing this would be required for merging)

But since we have so many PRs that are often WIP, this would reduce useless CI runs

+1 for this, only run ci when we want to. i often have wip pr, or approved pr, and i'm adding small changes like additional comments. for these things, running ci for every commit is not necessary.

youkaichao avatar May 02 '24 23:05 youkaichao

Explicit / on-demand CI makes a lot of sense. We can also introduce test categories (functional test, coverage, security, performance test, engine, api server) so the PR owner can trigger the ones that fit their need while the PR is in progress. As Robert said, with some categories required to pass for a PR to be ready for review and merge. Ultimately, we should think about what we want to catch before merging to master.

dgoupil avatar May 02 '24 23:05 dgoupil

+1 for only start the ci when needed

zhuohan123 avatar May 03 '24 00:05 zhuohan123

Blocking step/explicit trigger might work but we also need to think about how not to slow down contribution. A low hanging fruit can be conditional build on kernel changes. Currently the paged attention and punica kernel tests take a long time to run but almost no PR touches it.

simon-mo avatar May 03 '24 00:05 simon-mo

+1 on kernels

Another culprit is the cache_ops

robertgshaw2-redhat avatar May 03 '24 00:05 robertgshaw2-redhat

A great idea from @zhuohan123 is that we can do test by stages and only when the sanity test passed the next model tests will be kicked off etc...

simon-mo avatar May 08 '24 17:05 simon-mo

#5140 looks promising as a first step.

DarkLight1337 avatar May 31 '24 02:05 DarkLight1337

Thanks @DarkLight1337 Next step will be to push the diff command to a script and make buildkite pointing to it. But that will require some synchronization.

dgoupil avatar May 31 '24 15:05 dgoupil

Ref. #5816

DarkLight1337 avatar Jun 27 '24 14:06 DarkLight1337