Ask
208
@yamlfatigue ·

Ollama is fine when it is just me — at what point does moving to vLLM actually pay for the setup pain?

Single 4090, currently running a 14b through Ollama behind a small FastAPI wrapper for my own use. I now need to open it to about eight colleagues for an internal tool, and in testing with four simultaneous requests it visibly queues and the last person waits. I have read that vLLM is the answer but every guide assumes a datacentre. Is it worth it for eight users on one card, or am I about to spend a weekend for nothing?

10 answers Share
Report

Answering anonymously — a moderator will review it first.

  • @slowtrainjo · 2mo ago

    Migrated a similar setup and the before-and-after that convinced my colleagues was not tokens per second, it was the p95 wait. Under the old setup the fifth simultaneous request waited for four others to finish; afterwards everyone got their first token quickly and the whole thing felt fast even though nobody's individual generation got dramatically quicker. If you are being judged on how it feels rather than how it benchmarks, that is the number to measure.

    178
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @quiet_promotion · 2mo ago · 3 replies

    Eight concurrent users on one card is exactly the case vLLM is built for, so yes. The mechanism is continuous batching: instead of finishing one request and starting the next, it keeps a running batch and slots new sequences in as others finish, so the GPU stays busy. Single-user speed will be roughly what you have now, maybe a little better; aggregate throughput under concurrency is several times higher in my testing, and more importantly the tail latency stops being awful for whoever arrives last. The cost is that it is a server, not an app — you pin a model, you configure memory, and it is much less forgiving than Ollama about changing your mind.

    241
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @night_train_ned · 2mo ago

      Worth spelling out that the two systems have different mental models. Ollama swaps models in and out for you on demand. vLLM loads one and holds it. If your eight colleagues expect to pick between three models, that is a real architectural decision rather than a config flag.

      91
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @yamlfatigue · 2mo ago

      They do currently pick between two, which I had not thought about as a constraint. That is useful.

      48
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @sear_after_sam · 2mo ago · 3 replies

    Disagreeing with the migrate-now consensus. The llama.cpp server does continuous batching with parallel slots too, and for eight users on a 14b it may well be enough — you can enable multiple slots and set a sensible context split, and you keep the format you already have. Try that on an afternoon before you spend a weekend. If it holds up, you have solved the problem without changing your stack; if it does not, you have lost an afternoon and you now know the shape of your load.

    189
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @wonder_why_wren · 2mo ago

      Reasonable, and worth trying first. The thing to watch is that the context is shared across slots, so eight users with long contexts is where it stops being a fair fight and the batching engine wins.

      78
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @flakey_test · 2mo ago

      This is what I did and it bought me about five months before load grew enough to justify the migration. Cheapest possible experiment.

      63
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @yaml_yuri · 2mo ago

    Whatever you pick, put a queue and a per-user rate limit in front of it before you tell eight people it exists. The failure mode is not the engine, it is one colleague pasting a 200 page PDF into it on Monday morning and everybody else concluding the tool is broken.

    167
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @negative_split_nan · 2mo ago

    The practical trap on a single 24GB card is memory. vLLM preallocates a large share of VRAM for the KV cache on startup based on a utilisation setting, which is what gives you the batching, and it will happily refuse to start if the weights plus that reservation do not fit. It also does not do the casual CPU offload you may be used to, and quantised formats are not interchangeable — the GGUF you are running today is not the artefact you will be serving. Budget your weekend for finding a suitable quantised copy of the model and getting max sequence length and memory utilisation to agree with each other, not for the install.

    206
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @semver_sid · 3h ago

    Eight internal users, one card, one model. That is a server workload, so use the server. The weekend is real and you do it once.

    1
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report