This month I got PRs merged into cutlass, flash-attention, xformers, transformers, peft and vllm.
All relatively trivial changes, but still feels good.
FYI:
flash-attn 2.1.0 was released, with inference fixes
xformers 0.0.21 was released, with FA2 now bundled
vLLM 0.1.4 was released, with bumped xformers dependency
ffmpeg's hls (http live streaming) demuxer used to speak only http/1.0
taught it to use http keepalive and pipelining, and overall streaming throughput increased by 3x
ffmpeg.org/pipermail/ffmpeg-…
Hacked up line_profiler to capture VRAM usage instead of clock time, and its already pretty useful!
In this example, training_step uses 4GB VRAM and optimizer state uses 160MB
github.com/pyutils/line_prof…
Tried ctranslate2 on 3090 w/ Llama2-13B-chat
Impressive inference performance, but exllama still ahead.
34 tok/s vs 40 tok/s
And exllama loads way faster.
started exploring some LLM training tooling today
cobbled together monkey patches to get QLoRA + FlashAttention v2 working together, then optimized to eek out a bit more perf
peft:
37/3693 [05:57<9:51:49, 9.71s/it]
peft + flash-attn:
37/3693 [05:45<9:32:35, 9.40s/it]
Huge, yet very very niche news: Flash Attention (flash-attn) now uses Metadata 2.2, which means uv can resolve it without building the package from source.
ALT A terminal, showing
atuin stats year
2631 lvim
2462 k get
2244 git status
2191 cd
2191 fg
2047 ls
1483 ssh
1439 git checkout
1360 git add
1178 git commit
Total commands: 37007
Unique commands: 9289
exllama + GPTQ was fastest for me
vLLM also very competitive if you want to run without quantization
TGI for me was slow even tho it uses exllama kernels. Maybe it's better optimized for data centers (A100) vs what I have locally (3090)
Wanted to try 13B-chat on 3090 next, but I was getting OOMs with hf/vllm (expected), and then 4bit also failed strangely (mismatched shape on mul)
Ended up using GPTQ with exllama, which loads quick (<5s) and runs fast!
7B: 43 tokens/s
13B: 39 tokens/s
github.com/turboderp/exllama