StreamDiffusion
promptbench
StreamDiffusion | promptbench | |
---|---|---|
4 | 4 | |
8,969 | 2,113 | |
- | 9.0% | |
9.6 | 9.2 | |
21 days ago | 17 days ago | |
Python | Python | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
StreamDiffusion
- FLaNK Weekly 31 December 2023
-
StreamDiffusion: Over 100fps Stable Diffusion on a 4090
Everyone does warmup before you measure. But measuring isn't always done right because we actually measure the GPU time only but some people naively use CPU time which is problematic because the process is asynchrenous. They have a few timing scripts though and I'm away from my GPU. There are some interesting things but they look like they know how to time. But it can also get confusing because is it considering batches or not. Some works do batch some do single. Only problem is when it isn't communicated correctly or left ambiguous.
Their paper is ambiguous unfortunately. Abstract, intro, and conclusion suggests single image by motivating with sequential generation (specifically mentioning metaverse). Experiment section says
> We note that we evaluate the throughput mainly via the average inference time per image through processing 100 images.
That implies batch along with their name Stream Batch...
Looking at the code I'm a bit confused. I'm away from my GPU so can't run. Maybe someone can let me know? This block[0] measures correctly but is using a downloaded image? Then just opens the image in the preprocess? (multi looks identical) This block[1] is using CPU? But running CPU. (there's another like this)
So I'm quite a bit confused tbh.
[0] https://github.com/cumulo-autumn/StreamDiffusion/blob/03e2a7...
[1] https://github.com/cumulo-autumn/StreamDiffusion/blob/03e2a7...
- StreamDiffusion: A Pipeline-Level Solution for Real-Time Interactive Generation
promptbench
-
Show HN: Times faster LLM evaluation with Bayesian optimization
Fair question.
Evaluate refers to the phase after training to check if the training is good.
Usually the flow goes training -> evaluation -> deployment (what you called inference). This project is aimed for evaluation. Evaluation can be slow (might even be slower than training if you're finetuning on a small domain specific subset)!
So there are [quite](https://github.com/microsoft/promptbench) [a](https://github.com/confident-ai/deepeval) [few](https://github.com/openai/evals) [frameworks](https://github.com/EleutherAI/lm-evaluation-harness) working on evaluation, however, all of them are quite slow, because LLM are slow if you don't have infinite money. [This](https://github.com/open-compass/opencompass) one tries to speed up by parallelizing on multiple computers, but none of them takes advantage of the fact that many evaluation queries might be similar and all try to evaluate on all given queries. And that's where this project might come in handy.
- FLaNK Weekly 31 December 2023
- FLaNK 25 December 2023
- Promptbench: A Unified Library for Evaluating and Understanding LLMs