As the title says, i started by selfhosting OpenWebUI including Ollama on my RIG. I have been pretty happy but the more i dig into this stuff, more i understand that i am doing it wrong and i definitely need to switch to llama.cpp / ik_llama.cpp.

But i have a few questions...

  1. I want a web based LLM chat GUI, because that's my 80% usage for AI. If i go with llama.cpp, do i need to ditch OpenWebUI as well? Is there a better UI? Do i need an UI?

  2. i am currently hosting it all with a docker compose file. Is this still doable if i switch? I can go bare-metal (Gentoo server, good skills on my side) but it's the maintenance part, a "podman compose pull" is just easier... or i am lazy.

  3. the server is headless and always accessed remotely via web or ssh, just to be clear.

My hardware is a NVIDIA RTX A4000 16GB VRAM on a I7-8700@3200Ghz with 64GB system RAM (shared with far too many services).

all 8 comments

sorted by: hot top controversial new old
[–] 10 points 4 months ago (1 child)

Llama.cpp has its own built-in web UI that is fairly decent. Not as full featured as open web UI, but depends what you're after.

  • source
  • hideshow 1 child comment
  • [–] 4 points 4 months ago*

    OpenWebUI works with plain llama.cpp

    16 is a bit small so try a MoE (e.g. QWEN 3.6 35BA3B) model and put experts on the CPU (although DDR4 may be underwhelming) which you can do with llama ( with offloading and drafting for T/s) but not ollama (spitting noise). Here's a good starting point. You'll likely get 60+T/s on say a 6 bit quant.

    You can use a container approach, but llama.cpp is a bit of a moving target, with new cool features coming along regularly to support new models. I build it in a distrobox and running it is a simple call. When it doesn't want to build anymore because dependencies have changed too much, I just spin up a new distrobox and leave the old one there for older models. I find it a good balance between flexibility and ease of maintenance, and technically it's also a container approach. Take notes so you know how to set up the new one.

  • source
  • [–] 1 point 4 months ago

    The main reason anyone would "need to" switch to llama.cpp is if they want to do partial offloading, i.e. split the model between GPU and CPU. This works quite well for MoE models, but you didn't say anything about this, so I'm just wondering what your goals are.

    Absolutely nothing wrong with switching to llama.cpp, I also use it, but that's because I occasionally want to run models larger than my VRAM. It has official docker images and a server with both API access and a decent web-UI.

    If you're only going to run models which fully fit in VRAM, then tabbyAPI is also a good option. However, it uses Exl3 format instead of gguf, so llama.cpp probably makes more sense if you already have a lot of models in gguf format. tabby also comes with docker files and API support, so either should be quite easy to integrate with your setup.

  • source
  • [–] 1 point 4 months ago (3 children)

    I replaced ollama with LocalAI and its been smooth sailing ever since.

  • source
  • hideshow 3 child comments
  • [–] [S] 2 points 4 months ago (2 children)

    Can it load models straight from lhuggingface?

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 4 months ago (1 child)

    It sure can! And it supports SO many backends so you can run llama.cpp (pulled directly from the repo and auto updated so you have access to all of the new features right away)

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] 2 points 4 months ago

    I gave it a spin today and pretty happy so far. Took a bit to run, llama.cpp got installed broken and had to reinstall it ...

    But it pretty much replaced my entire openwebui+ollama stack with something seemingly much more capable and open.

  • source
  • parent