vLLM v0.28.0: 584 commits, DeepSeek V4 y Kimi-K3 con optimizaciones de rendimiento
vLLM v0.28.0 llega con 584 commits de 270 contribuyentes (76 nuevos). Destaca el impulso de rendimiento para Kimi-K3, con soporte Decode Context Parallel (DCP), kernels fusionados FlashKDA, y un presupuesto adaptativo de tokens especulativos que mejora el TTFT de DSpark en ~60%. DeepSeek V4 ahora funciona de extremo a extremo con sparse MLA, soporte AMD Quark NVFP4 y habilitación en ROCm. Además, se incluyen avances en decodificación especulativa (DFlash2, DSpark), maduración del Model Runner V2, offloading de KV cache en disco, y un frontend en Rust con gRPC. Nuevos modelos: Muse Glimmer, Ling 3.0 Flash, Dots3 NOTE e Interns2mobius. Cambios importantes: bitsandbytes se convierte en plugin externo, Transformers se actualiza a 5.15.0, y se eliminan funciones obsoletas.
Kimi-K3 ahora también se ejecuta en ROCm con el Model Runner V2.
- joshheitzman
Esperaba ver el lío del reasoning_content arreglado de forma robusta, pero todo lo que obtuvimos fue este cambio de documentación: https://github.com/vllm-project/vllm/pull/50624
- SillyUsername
Ojalá dieran soporte a Pascal :(
Nvidia puede haber abandonado el soporte, pero no significa que vllm tenga que hacerlo (llama.cpp no lo hizo).
- kouteiheika
Me encanta vLLM, pero vaya si es frustrantemente buggy.
Recientemente estaba ejecutando DeepSeek-V4-Flash en una B300. En v0.26 estaba totalmente roto, y tuve que añadir tres parches fuera del árbol para arreglarlo. Actualicé a v0.27 -- ya no hacen falta parches, pero la salida ahora está rota porque de repente empieza a responder con basura (bucles de tokens repetidos). En mi estación de trabajo donde ejecuto Gemma-4 en una RTX 6000, el proceso tiende a atascarse y deja de responder, y hay que matarlo y reiniciarlo para que vuelva a funcionar. En la máquina de 4x RTX 6000 de mi amigo, donde ejecuta DeepSeek-V4-Flash con alta concurrencia, también se dispara algún tipo de bug que escupe basura, pero esta vez no es un solo token repetido y se ve así: (esto está copiado y pegado de lo que el modelo realmente generó, parece genuinamente que estaba sufriendo al intentar terminar su traza de pensamiento pero sin poder)
<|beginofsentence|>| only text. No. I<|beginofsentence|>#done. Whatever. Do<|beginofsentence|>### final response.Content-EncodingDone.</ /div> It's over? Let's this.No, Em,Okay, finally.<|beginofsentence|>import re and I can<|beginofsentence|>È.Let's finish? Next.Content No matter)2Stay.2No. Childish.No No commentsrandom DoBaBye-. ... Whatever. Alright.</body>No And 2. about: So)</think> No text I'm tired This is fine)))ExodusNo comments, hiddenNo. Nonsense Mehski. N-Hay que noIbye. Goodbye Last sentence after(ok copy Nothing useful. OK OK. . . . . .Come on Nancy . . . . . . Let's just end this please.No matter what. about […]
- zoobab
Hice algunas pruebas de carga en vllm, ¡conseguí que se estrellara! :-)
- Der_Einzige
Sigue muy por detrás en soporte de samplers de LLM comparado con llama-cpp. ¿Dónde está el soporte para top-n-sigma? ¿para DRY? ¿para XTC? ¡Vamos, chicos!