Video summary
Ramalama is an open-source command-line utility developed by the creator of Podman, designed to run AI models locally on laptops and edge devices while prioritizing data privacy, cost efficiency, and regulatory compliance. Functioning as a secure wrapper around container engines like Podman and Docker, it isolates AI models within containers to prevent unauthorized system access or root execution. The tool supports diverse hardware architectures including NVIDIA, AMD, Intel, and Apple Silicon by automatically pulling pre-compiled images tailored to specific GPUs or CPUs from registries such as quay.io. It simplifies model retrieval through "short names" that pull directly from sources like Hugging Face, Ollama, or OCI registries, while also allowing the community to contribute custom configurations for these identifiers.
Beyond basic model serving, Ramalama offers advanced capabilities such as Retrieval Augmented Generation (RAG) integration with IBM's Dockling to process documents into OCI-compatible formats, and runtime flexibility that allows users to swap inference engines like Llama.cpp or Whisper.cpp. It is built to support emerging standards including Llama Stack and the Model Context Protocol, with potential for multimodal interactions like local video stream analysis. Security is a core focus, as containers are launched with restricted privileges and isolated networks. Currently in version 0.9, the tool serves primarily as a developer instrument for building AI applications rather than direct production use, though it generates production-ready Kubernetes manifests and aims to fully embrace the OCI standard for managing both models and RAG data.
In practical demonstrations, Ramalama generates quadlets to pull OCI images that run containers via Podman, providing a web interface for chatting with models like Granite while highlighting the risk of LLM hallucinations regarding user details. The tool can expose multiple API endpoints through separate containers when using frameworks like Llama Stack, showcasing its modular architecture. Regarding hardware compatibility, while Intel support exists through community contributions from companies developing alternatives to CUDA restrictions, specific vendor support varies, and collaboration with IBM is ongoing to add Z-series and PowerPC support to the underlying inference engines. Users must also manually ensure GPU compatibility across replicas when deploying on Kubernetes, as the tooling does not automatically handle distributed GPU orchestration.
The session concludes by emphasizing Ramalama's role in bridging the gap between local development and enterprise-grade deployment through its seamless integration with Kubernetes via generated YAML files or Podman quadlets. By converting models from public sources into OCI artifacts, it enables storage in private registries and facilitates secure, isolated environments for sensitive AI workloads. The project actively encourages community involvement to expand hardware support and refine configurations, ensuring that the tool remains adaptable to various computing environments. Ultimately, Ramalama provides a robust foundation for developers who need to build applications that interact with AI models without relying on cloud-based services, thereby maintaining control over data and infrastructure while leveraging the latest advancements in open-source AI standards.
Read the full video transcript
Okay,
>> introducing remarkable paper.
>> Now we're going to run an ad.
So, how many people have ever heard that
song before? No, that's the wrong one.
Anybody
ever hear that song before?
All right, I can walk away. That's
right. I marked. Uh, no one in this
room's ever heard that song before.
We don't have enough old people here.
That's the problem. That was a song from
the 1950s
u for uh basically open-source projects
sort of adopting the name Llama. Llama
comes from Meta uh developed llama 4.
They have sort of an open uh AI model
and you'll see lots of lots of projects
are using the name Llama. So um about a
year ago now a guy named Eric Curten
came to me and he had tried to uh open
up some pull requests with Olama. Oama
is probably the most popular uh command
line tool for running AI models locally
on your laptops. and he had tried to
open up a bunch of pull requests for
them and they basically ignored them or
rejected all pull requests and he went
out and looked at a lot of stuff and
they basically were just rejecting. So
they're they're a quote quote open tool
um except they don't accept community
contributions. So they're not really an
open source and and they've started to
do some stuff that is in my opinion is
is anti-open source. Um, so Eric
investigated what Olama was doing and
they were using a very open project
called Llama CPP. We'll be talking about
that during the presentation. Llama CPP
actually does all the heavy lifting of
making the AI up model actually work on
the systems. Um, so Eric quickly wrote a
bunch of bash scripts to uh basically
fire up Llama CPP, pull down models,
curl down models from different websites
and things. uh he built a bash script
and uh Eric worked I I was I used to
work for Rivos where the redhead and
vehicle operating system the um
basically edge computing um and Eric
also worked in that group so that's how
I knew Eric and he came to me and showed
me the bash grips I was moving into
redhead AI at the time uh and I said
that's really cool I said but you know
we may open up a project on this it
can't be written in bash so we act I
said we have to write it Python um just
so that it's easy for contributors to
come in and contribute. Um and he called
it he was calling it Podman LLM at the
time. I said, "Well, first of all, we
can't use the name Podman because the
the upstream Podman people hate it when
people, you know, abuse their name." And
since I've been railing against the name
Docker being used everywhere, I didn't
want Podman to become a new adjective.
Um so, uh I said, "Well, everybody names
things after Llama." And I knew the song
Ramal Lama Ding-Dong. So we called it
Ramal. That's the history. Okay. Um so
let's talk about uh uh we're going to
talk about Ramal Lama, but we're going
to be talking a lot about running AI AI
models uh locally. Um so uh
the interesting thing here is that it's
really really easy to run an AI model on
your local system on your laptops. And I
think that's critical especially in open
source development and as you know in
the future very soon in the future
there's going to be lots and lots of
reasons to running AI models locally and
we're going to cover a lot of that here
but as we get to edge devices and things
like that um so there are a lot of tools
out there right now for running AI uh AI
locally on your system um and these are
a few of them is a one that Red Hat's
heavily invested in
There's Oama is the um the one next to
it. You see Rama Lama. We're going to be
talking a little bit about Podman
Desktop. Um Podman Desktop has a a
plugin called uh a AI lab recipes and
that's why you see the the Podman robot
up there. So, it's the sale as a robot.
Um and then there's a bunch of web UI
type projects that also uh run AI models
locally.
Um, where do you get AI model? Where do
you get open AI model? You know, any AI
model that you want to download? Um,
hugging face is probably the most
popular place to get them right now.
Almost everybody that builds an AI
model, the first thing to do is get it
into HuggingFace. Um, and uh,
Olama also has a website where lots and
lots of people get their uh, AI models.
And I think this is a big problem going
forward and I'll cover that during the
presentation. Um the last thing we'll be
talking a little bit about one of the
goals when you work with an AI model is
actually to build an application that
interacts with the AI model. Right? How
many people in this room are data
scientists?
Zero. Okay. I know nothing about AI or
at least I I feel like um you know the
the emperor with no clothes when I talk
about AI. What I do know is about
running software and AI is just in my
opinion is just another form of
software. So as developers want to
interact with AI AI provides APIs, REST
APIs that you can build. So if you want
to build your own chatbot, say you have
an AI model that's been trained on your
data, uh you want to build a web
interface that basically has a enter a
human query here and then that's the
type of thing that developers are going
to be developing and we'll talk a little
bit about that.
Um, so why would why is it important to
run uh AI models locally? Um, so I'm
going to look first at the developers
point of view and then we're going to
look at your organizations, the
companies that you work for. Why would
they would care? Um, so the first one is
convenience for a developer is
convenience in right I can just run the
thing locally, right? You hear about AI
models suddenly showing up um, you know,
online podcast whatever, right? The day
that uh Deep Seek came out um actually
Ola where um Ramal Lama was pulling Deep
Seek from and Ola were pulling it. The
service melted because so many people
wanted to go out and say what what is
all this information about deep you know
all a sudden Deepseek it's all over the
press everybody wants to try it out. Um
so just being able to run it locally not
have to go and pay someone to to
interact with a model or even go to a
website. I just wanted to pull it down
locally. The next one is ease of
integration. So if I'm going to be
building an app, it'd be really
convenient to have, you know, the AI
model running locally. So I can just
build my app to to integrate with it. I
can figure out how I would use this AI
model and I can easily swap out AI
models. Which one's better? Which one
works better for my solution? And
lastly, customization and control. These
are all sort of, you know, I can control
that AI model. I can, you know, put
wrappers around. I can make sure that it
doesn't do any bad. Um, so from my point
of view, you know, again, I like to do
things on my laptop, so it makes a lot
of sense. For the organization's point
of view, there's things like data
privacy. Okay? So, a lot of companies,
you know, you interact with an AI model,
you ask it questions, and it it knows
nothing. You know, you quickly figure
out that it's stupid, right? It doesn't
know anything about internal, you know,
you ask it a question about inside your
company and obviously hasn't been
trained on that data. or if it has been
trained in the data, you got a problem
because you know your data is being
leaked outside the company. Um uh so you
but do you want to take your private
information inside your company and
upload it to a cloud AI?
I don't think you know most companies
right now are very apprehensive about
doing that. Um then you have cost
control. Anybody that's used a cloud AI
for a serious business quickly figures
out that you're going to get a huge bill
at the end of the month. So AI online is
very very expensive. Um some I was at a
different the reason I missed this talk
yesterday. I was at another conference
yesterday and I was on a panel where
they were talking about um AI and and
basically the costs. But yeah, the way I
look at cost of AI tends to be, you
know, like buying a car versus leasing a
car. um you know, you can get probably
newer stuff quicker if you're leasing,
but you're going to pay a lot more money
for it. And I think the cost right now
of using AI online is just prohibitively
expensive. Um so just something to be
warned about. Um and lastly is
regulatory compliance. So a lot there's
lots of laws. There's lots of countries
that don't want their data, you know,
being used on computers that are outside
of their country. there's uh at least in
the US and I'm sure there's other
countries and I know Europe has lots of
control uh data controls uh things like
in the US there's a thing called HIPPO
which basically means my medical records
can't um you know go out to the cloud
you know so that they can't be shared um
so there's lots and lots of regulatory
rules about how your data but you really
need your data and in order to make
these AIs useful you know you got to
give them access to data so there's a
there's a conundrum but if you run
everything in house then you don't have
those issues.
So Rama Lama we talked about uh where it
comes from. Basically it's a command
line tool for running AI locally. Um but
um the container I didn't introduce
myself but hopefully a lot of you know
who I am. I'm the guy that created
Podman. Been working at container
technologies. I say long before Docker
existed. Um so
I I have a hammer. AI looks like a nail.
I want to I want to stick it into a
container. Okay. And there's lots and
lots of reasons for that. But based
fundamentally, Ramalam is a wrapper
around container engines for running AI
models inside of containers. Um, and
running it locally on your laptop.
When Deep Sea happened back in February,
I wrote an article talking about Ramal
at the time and the importance of
running AI models inside of containers.
Um, from a security point of view, you
are taking a massive unknown object, I
like to think of it as just as a big
database that is going to influence a
piece of software that you may or may
not trust.
And that AI model is going to get to
that software to do stuff on your
system. You don't know what it's going
to do. Matter of fact, data scientists
don't know what it's going to do.
And it could be it could influence the
software to go out and do random things
on your desk. So why not stick that in a
container, shut down its network and
just give it the data you wanted to
interact with. You don't want it
interacting with your SSH keys in your
home directory. You don't want to run it
as root on your system. So there's lots
and lots of, you know, everybody's
running into AI. It's like, oh, this is
cool. I'm bringing in this engine that
no one knows what it's going to do and
running my system. Don't let me get into
MCPs, which is basically saying, I'm
gonna give this AI that I have no idea
what it's going to do, access to not
only everything on my system, but
everything in the world, you know, and
we've had movies about that. Um,
[laughter]
so Ramlama fundamentally is built on
container engines, uses containers. Um,
it um it works with both Docker and
Podman. What I will hesitate,
we actually opened up discussions back
in the fall with Docker um to try to get
them to participate in the Ramal Lama um
and we met with them two or three times.
Um I'm not their favorite person, but um
actually most of the guys that I you
went against Docker in the beginning
have left Docker at this point. So they
they worked with us fairly well but of
course they went their own way and
Docker introduced uh something I think
around beginning of the year to run AI
models locally. Funny thing is Docker is
now running their models inside of
containers and they're doing that for
performance and I'll talk a little bit
about that later. But Podman is a lot
more than just Docker like we used to
say if you want to run move from Docker
to Podman you do alias do Podman but
Podman has added lots and lots of
features. So more of the advanced
features of Ramal Lama now require
things like pods and different
functionality that only podman has. So
you can do the basic functionality with
docker but if you want to get into the
advanced functionality of ramalami you
need to use podman. Uh ramalama also
will run without containers altogether
and some people do that on max right now
because you can get a little bit better
performance.
Um, so when you run ramalama, the first
thing it does is it analyzes your system
and says, "What kind of GPU do you have
access to on your system? Is it a
cooter? Is it a Mac? Is it a AMD
system?" And then goes out and the the
weird thing about the AI world is all
the software has to be custom compiled
for your GPU. It doesn't really work
well in a distribution mode and that you
know the co software cannot adjust
itself. it has to be recompiled
for each individual GPU. So in the
container world, what we did is we
created a one that's compiled for CUDA,
one that's compiled for Intel GPUs, one
that's compiled for Mac GPUs, uh, and
for CPU. Okay? And what I'm going to be
demonstrating today is a CPU. So a lot
of you people sitting out there saying,
"My Mac doesn't have a GPU that can be
used." You can use it with CPU. It looks
a little like a ticotate going across,
but it actually works well enough if
you're just developing AI, developing
software to interact with the AI, it
works well enough that it's not
horrendous. Um, so you can start to play
with it. Uh, so when Ramalama discovers
which GPU you have on it, it goes out to
a container registry qu.io IOR ramalama
and pulls one of these images down for
your system uh with all the software
pre-ompiled for u that specific GPU.
Then it goes out and pulls down a
image a model to run the system and then
finally launches a container with a
model mounted into the container to run
it locally.
One of the things I really want I've
been fighting for with this tooling is
that we need to make sure that AI models
AI content all works as container
images.
I don't I don't believe customers are
going to have hugging face or lama
inside of their private networks.
the customers most users in large
enterprises right now have bought into
OCI
which container registries so I believe
models have to be stored in container
registry people going to want to control
which models you're going to run inside
of your company
if
you know for Red Hat's point of view if
Red Hat goes in and sells some of our
solutions to it and we have to come in
with Olam or a hugging face to install
their enterprise version of their web
services that store AI models, that's a
big hindrance to to sales. If you go in
and say, "Oh, you already have
Artifactory, you already have Docker
Hub, you already have, you know, one of
the 8,000 different types of OCI
content." We want to be able to store
it. So, one of the things Rama Lama can
do is convert models from hugging face
or O Lama into OCI content. So, we want
to be able to push that and then be able
to use that. that also makes it
available for Kubernetes. So when you
want to run an AI model inside of
Kubernetes right now most people are
just using S3 files. Well, if Kubernetes
doesn't know is anybody in this system
using an S3 file or they're pulling from
you know a lot of people come up and say
I'm going to put OAM inside of a
container and then run a Kubernetes. So
you fire up OAM it's going out and
randomly pulling down a model from
somewhere on the internet and again
Kubernetes doesn't know about it. If I
have two containers pulling down the
same model, can I share it? No. So,
there's lots and lots of issues uh
around running it. I like to tell people
Ramal Lama should never run in
production. It's a developer tool. It
develops containers to be able to run in
production that use the AI models.
So, we talked about GPU acceleration in
the previous slide, but this just shows
you some of the uh uh different
platforms. Uh, Macs are tremendous and
I'm the anti-Mac guy here. Uh, Macs have
tremendous GPUs on them now running
locally. So, if you have an M4 Mac
running uh with Podman machine, um, it
just it really is a nice experience. And
at Devcon next week, my Eric Kurt, the
guy that kicked off this project, will
be bringing his Mac. I I'm not allowed
to touch a Mac contractually. Uh but um
anyways uh AMD has some really nice
GPUs, Nvidia, Intel, Vulcan. Um these
the tools run on top of Windows, but
fundamentally containers mean Linux.
Okay, so we're running VMs on top of
Windows on Macs to do it. Max can
actually run the run the AI models
locally with d-n no container if you
want but um and then obviously on top of
Linux you can run this as well and CPUs
are always also supported
so one of the interesting things uh has
anybody ever gone out to hugging face
and looked for a model yeah and what did
you find
>> you find 20 you find 20 you know if you
look for deep sea you look for granite
or you look for anything, you're going
to find 20 to 50 different models of it.
Yeah. And so the the problem is, you
know, just like if you go back to when
Docker first started, Docker came up
with a great concept, which is I I call
short names. And basically, if you said,
I in Docker, I want to run engine X, you
just say Docker run engine X. You didn't
go out to docker hub and do a search for
engine X. You just ran it. So with Oama
stole the idea of short names from them
and when Oama came out they just did
Oama run peep seek or a lama run um
whatever grid it um so Ramal Lama built
on that and what Ramal Lama has is is
the concept of short names guess what it
is it's a file name name value appears
you say deepseek we think you want this
one you can specify the full URLs to
pull down um you can specy speify
anything else you can customize short
names to do it. It's a simple, you know,
name value pier for that. We also fall
back when you're pulling from.
But the cool thing here is now we have
open source community coming in and
people open up poll requests to
shortnames.com inside of Ramlama and
say, "Hey, Gemma 3 just came out. Why
don't you pull down this model?" and and
again for normal humans non-data
scientists who don't know what the
difference in quantization and all those
different you know 70b 30b 50b um you
know so that's the goal I would like to
see eventually ramal lama grow smarts
about we know the GPU we know the amount
of memory you have in it'd be really
nice for short names to say uh instead
of pulling down that deepsek let me you
have a lot more memory so I can pull
down the bigger deepseek and and and and
start to do that that type of thing. But
I need people smarter than me to come in
and give give me a database that says,
you know, for this amount of memory and
this amount of this, you probably pull
down a quantized version of this with,
you know, four bit. I don't know. I I
don't even understand what they're
talking about when I talk about I'm too
old to learn. Um, so anyways, that's
that's the concept of short names. Um,
and I don't know what this performance
made easily. Let's just say I'll skip
that right now.
Uh so we talked earlier about running
everything in a container. Um so
basically you you inject into the
container the model the models should
not be installed inside of containers.
So you don't want to tie the model to
the source code that runs the model.
They should be volume mounted in another
thing. I'm standing on my high horse.
Models are nothing like just databases.
You wouldn't install a database with
Postourress SQL in the same container,
right? You would keep them separate. I
believe the same thing about models.
We're going to be talking about rag data
and data that you want the model to be
able to interpret. So again, you'd stick
that in the model. Keep everything else
on your host system isolated from the
model or imagine in a Kubernetes world
where you have hundreds of these
processes running and stuff like that.
You definitely want your models
containerized so they can't interact
with the rest of the system. Um,
uh, Ramlama out of the box was built to
be open source, right? We want to be
open. So, we basically say wherever your
model is stored, we will pull it from
it. So, Ramal Lama will pull from OAM,
pull from HuggyFace, it'll pull from
OCI, it'll pull from HTTP website, files
on disk. we will pull from from anywhere
um to the system. Right now we only push
to OCI. Okay. Again, we want we want
people to think about getting it out of
wherever the storage locally, the ones
you want to use and then putting it into
OCI when you want to push it. Uh we also
support any inference engines. Okay, if
you think about way Docker and Podman
are created, they're we I call them
container engines and there's a
container runtime run C run live k run
um kada there's lots and lots of
different run times. So the in in in the
container world the engine's the thing
that pulls down the software you're
going to run and then you can switch out
the runtimes underneath. So in Ramal
Lama in the AI world the runtimes are
things called like llama CPP which is
probably the most popular for low-end
devices VLM which is the most popular
for high-end devices. Okay.
>> Isn't it great when AI is listening to
you and breaks it?
>> I don't know how that I don't even know
why that does that. Okay.
>> Uh Google off.
This was not planned.
>> This suggests a component responsible
for application life cycle management.
It would handle tasks like discovery,
finding a
>> comp
[sighs and gasps]
when when you let the AIs out of
containers. Um, [laughter]
[applause]
so anyways, so the basic idea is that
Ramal Lama you can swap out the
runtimes. So there's Llama CPP, which is
probably the the primary one that that's
the default one that we use. Whisper CPP
is a recompiled version of Llama CPP
that uh does things like voice to songs
to text. I don't know. I listen to a
song, I have no idea what they're
saying. you can actually pipe through
the song and it'll print out the actual
uh uh
what's the word for
>> lyrics that's the word um and uh so the
bottom line is going forward I think we
also support open veno lots and lots of
people are coming to us and saying you
know I uh you know we have different
container engines uh and the interesting
thing is because we're going to use
container images if you want to build a
container image for your specific
um
uh runtime then we can you know just
take one of our existing images add your
software to it build your own and and do
it. Um, we're also fully open. Again, we
have lots and lots of people coming to
us, pull requests. Sometimes I think
we're more popular with contributors
than we are with actual users, which um,
so our our contributors uh, we're, you
know, we've been around for basically
since, let's say, September, and we're
approaching 100 contributors because
everybody that's contributing has their
own special project, you know, their own
special GPUs, their own special tools,
or their own special runtimes.
Um when you fundamentally ramama has two
commands ramalama run which gets you a
chatbot interaction with the service and
then we have ramal lama serve. So when
you run ramal lama serve the the default
uh in the AI world right now is to run a
rest API based on open AI. Okay. So all
the tools VLM llama CPP everything I
showed in the previous thing are always
providing a rest API that's based on
open AI. So the bottom line is if you
build software that can interact with
open AI same software be able to
interact with locally.
So Ramalama serve will by default right
well by default will always provide an
open AI rest API. Um we just got in this
last week although it's broken. Uh, by
the way, we release every Monday. So,
this thing is moving as fast as as
humanly possible. Um, new images,
everything. Uh, we just merged in a
thing called Llama Stack. I'm going to
cover that a little bit later, but Llama
Stack is developed by Meta. Um, IBM and
Red Hat are both contributing heavily to
Llama Stack. And what Llama Stack does
is it's it builds a pipeline to
communicate.
So most people interact with Llama CPP
or VLM and that's running the model. But
now you want to connect rag databases,
you know, your own data to it. That's a
different service. So you need to wire
those together. When these things called
MCPs, which is different services
running on on computers, you need to
wire that together. Llama stack is the
tool right now that we're buying into is
the tool for for connecting all these
different services together. Um just
basically lamstack provides something
that the a way for the human to interact
ask the AI something a question and tell
the AI that it can get some data over
here or it can interact with this
service over here.
Again I talked earlier about Ramalan not
being used in production. Ramal is a
tool for building these using these
containers pulling these containers
pulling these models and wiring it all
together. What ramal armor also does is
it allow generates
either kubernetes yaml for running your
application in production with the AI
model and all the software or generates
a quadlet. Anybody here know what a
quadlet is? Okay, about 50% maybe more.
Quadlets is the way podman runs
containers underneath systemd. So
quadlets look like a systemd unit file
that you can run basically containerized
services underneath it. Um there's also
in in the uh Kubernetes world now
there's a thing called Kerve. So we're
experimenting with that but Kerve right
now is not in my opinion is not really
ready for it's built on older versions
of of uh AI not necessarily LLM and it's
kind of tied to BLM at this point. So
I'd like to I I go back and forth with
the K serve people, but basically the
idea is that we will look at what you're
running and we will generate you a
template that you can then customize to
run stuff in production.
Building your own AI. So again the the
goal here since most of you guys aren't
data scientists or nobody in here is a
data scientist not necessarily you're
not going to be building AI models
necessarily, but what you are going to
build is applications that need to
interact with AI models. So you might
want to customize and build code. So
Podman desktop has a thing called AI lab
recipes and these are different tools
and different example programs and I
think they have them in Python, they
have them in um uh J uh JavaScript and a
few other uh language and again it's
it's contributions and this is how you
build a chatbot that interacts with an
AI model. this is how you de develop a
tool to take uh s you know PDFs and have
them go through or this is how you take
a document and upload it and have a
summarizer so they have lots and lots of
examples so um the there's a longer
version of this talk that I'm not going
to do um that talks about podman desktop
and shows all those podman desktop and
AI podman desktop's AI lab recipes and
ramal lama are slowly
merging together okay or ramala is
become becoming the fun functional
underneath of what podman desktop AI lab
recipes is.
So we have an AI engine. We have the
ability to pull the model. What about
your data? Again, when you interact with
an AI, if you ask it about um
something that's internal to your
company or private to you, um it doesn't
know. It gives you bad answers. Um, so
in the AI world, the way this is handled
now is called retrieval augmented
generation. Okay? And I always have to
read that because I can never remember
what the hell, but everybody in the AI
world calls it rag. So what rag is is
basically taking your PDFs, taking your
documents, compiling it up into a format
that AI can interact with. It basically
builds JSON and then recompiles it into
the same types of matrix mathematics
matatics that has worked you. So
basically going to take your documents
and somehow get it into it. So Rama Lama
has a command called Rama Lama rag and
what Ramal Lama rag will do is take your
your documents PDFs
and markdown languages HTTP pages u text
files and we'll recompile it into it.
It's taking advantage of an awesome tool
from IBM called Dockling. So, Dockling
is running inside of a container and
actually will take and look at your
PDFs. I think it says doc yeah doc x.
So, uh windows documents uh pp I don't
just about anything and then they
convert it into some kind of format that
can be interpreted by the AI. So, what
ramalama rag does is takes those
documents and outputs an OCI image.
Eventually these will be OCI artifacts.
Then you can simply use ramal lama- rag
serve- rag and it'll pull down your AI
data I mean your your compiled rag data
and hook it up with the with the model.
So in this case we're basically saying
take local PDF take a markdown file from
a website compile it through docklink
output OCI registry I can push that to
an OCI registry and now I can pull you
know Ramlama will pull it from the OCI
registry run it locally and again when
we generate quadlets of Kubernetes YAML
we basically encode that into Kubernetes
YAML on how it would interact. So you
can imagine that you could use tooling
like this to build um a online chain
where you're constantly updating it with
new information about going on inside of
your company, push it to your private
registry and then have lots and lots of
services running um and automatically
pulling it down. The interesting thing
be by using OCI for storing models and
using it for storing rag data basically
allows you to do things like scanning
birds boom birds of bills of materials
um allows you to version it okay so I
can have my rag database constantly
updated I might want to lock in at a
specific version right so all these type
of tooling if you don't do that you're
basically putting this stuff in files
somewhere and trying to handle it but if
we just concentrate on doing everything
OCI, we get to take advantage of
everything that OCI provides.
So, Agentic, I always want to put up the
Arnold uh Terminator. So, this is Skynet
and this is probably the most popular
thing in AI world right now. It's called
you'll hear things like agentic or
agents. Uh the protocol is called MCP,
model context protocol. So they've
defined a protocol for it that that you
can hand to an AI. You can think say say
you could say something like list all of
the pods I have running inside my
cluster and open shift and kubernetes
right now are building MCP servers. So
the AI will figure that out will talk to
the rest API provided by an MCP server
actually talk you know use your
credentials to talk to something like
open shift and basically get back that
type of thing you don't have to do coup
uh kist all this stuff that you're
seeing about developers um using AI to
build code and interact you know take a
look at my code things like that that's
all MCP so this is basically taking
something that is
no one understands
handing it to a and then allowing it to
interact with the file system or
allowing it to interact with websites or
allowing it to you know so that's what
MCP is all about um and you know it's
there's a guy named Michael Clifford who
is a he's a real AI engineer for working
for Red Hat he actually understands what
things like quantization things like
that mean and I talked to him back in
January and I said he was working on uh
aentic in MCP and he said, "Oh, this is
all crap." He said, "It's just just
really bad." And I saw him about three
weeks ago at Red Hat Summit and I said,
"You said this was all bad. Now it's
everywhere." And he said, "It's been
unbelievable how much has improved in
four months." So, it's just this stuff
is coming so fast that I frankly it's
it's a little bit scary. It's incredibly
impressive, but you know, who knows? So,
we talked a little bit about Llama
Stack. Um, so this is uh, by the way,
Rama Lama's logo. It's a llama dressed
up like Fonza. A very American thing,
but the Fonza was from the 1950s based
on the song. So that's the that's with
the think of a 1950s tough guy
motorcyclist. Um, and Podman Desktop
with AI lab recipes. They both are
moving towards Llama. I'm still not sure
if that's really what Llama Stack's logo
is, but it's so cute. Llama llama stack
llama sitting on a stack of pancakes. Um
so
uh llama stack is going to be integrated
into podman AI lab recipes. I said it
just went in this past week and it's
totally broken. Um but eventually when
you run rama llama serve we will launch
a llama. Right now you can do a d-api
llama stack and it will launch basically
two containers. It will launch a pod.
one container is running llama stack,
one's running the uh engine and then we
wire it all together. The next step is
to add rag database, wire that together.
Then you're going to add MCPS. So we
will build you a whole set set of
containers um that basically have you
know you'll talk to lamstack um and
lamstack will reroute your data to all
the different services that you're going
to be plugging into it.
And um so Llama Stack basically helps
you build applications fast. This is
sort of their sales pitch. But bottom
line, just think about how would you
wire together something that's serving a
rag database, something that's serving
an MCP and something that's serving a
data. And that's what really what Llama
stack's all about.
If you come to Devcon next week, we will
be showing a thing called multimodal.
You will hear the terms multimod model
and multimodal. Multimodal means using
one model
with multiple different ways of
interacting with it. So I talked about
you know sound sound to text. Um
we have a demo that I won't be showing
mainly because I don't have it set up
and it really works well on a Mac that
takes video stream and hands it to an
AI. So it'll take a video stream and
then you can ask questions to the video
stream. So it's basically interpreting
the video stream and interpreting the
questions. That means you're interacting
with the AI model in two different ways.
Multimodal interacting it and it works
incredibly well. And if you get to see
the demo at some point, it's you know we
did it at Red Hat Summit. Um and it was
really really cool. The problem we were
asking the AI model what it sees and I
walked in front of it one time and it
said I see an elderly man walking in
front of it. So I'm demanding that they
fix the the sensitivity level to not
call me an elderly gentleman. Um but uh
we also you could have go the other
question we were asking is what super
what um superstar or whatever what star
does this person look like? What
celebrity does this person look like?
and it got stuck on like uh Tom Hanks uh
Justin Bieber and women were walking in
front of it and I think depending on
your skin color they would say Vanessa
Williams and uh you know these but it
was you know it's it's really
interesting and this was running locally
on a Mac with a very small model and it
did an incredibly good job of of doing
it. So you can imagine this getting
better and better. Um, and really what
you want to do with multimodal is things
like, you know, it' be really nice to
have a camera that's watching the street
and tells you if the FedEx guy is
walking up to the door with a package or
if a guy with a gun is walking up to the
house, right? So, you you probably want
to interact with those two pieces of
information differently. multimodal also
you know that again thinking about this
video stream it makes you realize that
you really want some edge deployments of
AI you would not want to have 10,000
video streams coming back to a
centralized
core system for the AI to interpret and
then the message get back right that
video stream has to be interpreted
locally so um you know I believe that
edge deployments of AI are going to
become more and more critical.
Eventually, we're going to drive up to a
McDonald's in any language in the world
and say, "Give me the two cheeseburgers
and the fries." And the human is not
going to be interpreting what I've said.
It's going to be an AI model. So, those
AI models again not going to be running
in central headquarters. They're going
to be running inside of the McDonald's.
So, running AI models locally and fully
functional for specific tasks is is
going to be a huge thing in the future.
Anybody want to see a demo?
Okay. So, is this
uh so Ramal Lama version uh we just
released this past week. Uh this is a
live demo, so everybody don't use the
internet because they're going to be
pulling models. Um and it looks good up
there. Okay. Uh so, Ramlma version,
we've just released 0.9. [snorts]
Uh we're releasing on a weekly basis.
It's not a 1.0 O product that's for
sure. Um but um you know it's usable now
for people playing around and developing
software. Um but you know there are some
instability issues once in a while. So
I'm running it locally. Ramal lama info.
This is mainly something we ask you for
when you report an issue. We'll ask you
for Ramal Lama info. And this does
things like what container engine you're
running. So I'm running podman um
underneath the covers. and it just takes
the podman info, combines it with ramal
info or docker info and combines it all
up. So it gives us some information, but
you could also look at what it's
interpreting. This will actually show
you what GPUs you're using. You know,
what Ramlama is seeing is the GPUs that
you're using on your system. So there's
there just decent amount of information
here um that you can interpret.
Uh [sighs]
so what I'm going to do right now is uh
this is a a small model. Now small model
when I say a small model it's you know
only 135 megabytes. Uh but models can
get really really huge. Um, and so,
um, this is actually pulling down. So,
I'm doing ramal lama pull. If I did a
ramal lama run, it does a ramal lama
pull behind the scenes. And so, I
removed the model and now it's pulling
it down and it pulled it down because we
have a decent internet here and a few
seconds. Uh, but if you're pulling, you
know, a llama CPP 7 gig 70 gigabytes,
it's going to take a while. itself. Um,
now I'm going to show you in the local
storage.
Okay. So, it just basically shows that
it pulled down the model and it tells
you that was pulled from a lama. Um, and
if you pulled it from hugging face, it
would show show where it was pulled for.
So, um, and if you pulled it from OCI,
it would also show that.
And these are all the images that are
currently built. This my machine is
where we're currently building these. We
want to get this automated at some
point. Um, and we're going to work with
Conflux to get all these different
images. Um, but these are all the
different images that have been pulled
down. But basically, it's just doing a
podman images to show you the images
that are on the system. Um,
let me shrink this a little bit.
That better? Yeah, you still see it. So
here you can see uh Ramalama has a
command called dry run and what dry run
does is basically say don't do the
operation but show me the command that
you're going to execute to run the run
the command. So you can see here that
we're using podman uh for the engine to
do our containers. Now I'm going to do a
different dry run and this
just blew up. So it should have showed
you that I was using ramalama ramala. I
don't know why that didn't work. Oh,
that's a bug. My I don't have the latest
code. Um, so should we don't use the
latest image. We use 090. Um, so that
should have showed you, but believe it
or not, it's there. Um, and again, when
we run containers, I'm just showing you
different parts of the Ramalama command
to get you focused on it. Here you can
see that we're from a security point of
view, we're turning off all privileges.
So, we'll make sure that the container
is locked down as tightly as possible.
And then the last one I'm going to show
you is when you do a RAM malma run
command, we're shutting the network off.
So from the container point of view,
even if it wasn't able to attack your
system, um it would u
uh basically not be able to communicate
back to some some other site to tell it
about. Uh we also have a kind of a cute
thing. So if you're running Podman,
it'll show a little the prompt that I'm
about to show, you'll see the little
tiny sail. And if you're running with
Docker, it'll show a whale. I think
that's cool.
So here I'm actually running a model and
um this model is actually running uh
granite which is a fairly large model on
the system. Um and basically it comes up
with a prompt just like you see a chat
GPT. Um I'm actually running this thing
with just CPU. Okay. Uh,
I have Nvidia GPU inside of my laptop
and they haven't updated. Nvidia has not
updated this off of Fedora 42. So, my
CPU hasn't my GPU has not worked
properly since Fedora 41. So,
so this is going to show you if you
don't have GPUs
how fast it is.
Sorry about the
So, it's now this is a fairly powerful
laptop, but as you can see, it's not
horrendous.
Um, asking it questions u about that.
Um, so anyways, that's a AI running
locally.
So, this is going to take that model
that I downloaded and convert it into an
OCI. So basically
what it's doing behind the covers it's
doing a podman build. So it takes the
model sticks it into a format and then
allows you now you can take that small
LM and push it up to a container
registry and then Ramlama can use it
from that point forward. So now you've
taken that model from a public registry
and potentially stored it on a private
registry.
And here we are showing it you know it's
exist podman images at this point. Um so
now I'm going to serve I'm going to take
a model and I'm g instead of serving it
directly I want to generate a
kubernetes. So basically I've taken the
model I just created and I'm telling it
to generate a kubernetes yaml file for
running that in production.
And you'd see here basically a
Kubernetes YAML file that basically uses
it. And you will not see Rama Lama
command being used inside of this.
You'll see here Llama server which is a
wrapper around llama CPP. So that's
running Llama server inside of a
container. But basically in production
you would run this container with Llama
CPP inside of it or BLM inside of it and
run that inside your Kubernetes cluster.
You wouldn't use it. You'd also because
the model's stored in OCI, Kubernetes
knows how to pull OCI images. It knows
how to maintain OCI images. So
quit
similarly here we're going to generate
quadlets
and then quadlets you know it's quadlets
tend to be multiple files. So we're
going to show that we're going to pull
down a image. Uh this is a volume file
for the images. Um here's the image that
we pulled down for running it on the
system. Um here is a quadlet. So this is
the actual quadlet the user. It takes
you know DRI mouse them into it tell us
what image. Again
sorry about the video jumping but you
can see that that image is a ramalama
image. So the default image that
everybody pulls if you don't have a GPU
is to pull a ramal lama. If this GPU on
my machine was working, we would have
pulled the CUDA image, you know, with
the Nvidia GPU.
We'll do quick editing here.
Sorry about not not being prepared for
this second.
I just fix that.
Yep.
Okay, so this is a serve part of it
actually.
So now I've actually served a model. So
I'm actually showing it serving a model
and the tool will actually show you what
the REST API the the endpoint to connect
to. Um we can you can switch around the
ports and all that stuff. Um underneath
the covers now you'll see that it's
running a container on the system. When
I do a Rama llama run, it actually does
the serve in the background and then
wires set it up to together. Um, so you
can see that that launched a container
on the system and then um,
uh, similar you can see it is a
container inside of Podman PS. Um, and
now I'm going to run Firefox and
hopefully this part will work.
Um, and now you can see, uh, so this is
just a web interface that's built into
Lama CPP that you can actually do a
chatbot directly with. So, who is Dan
Walsh? I'm always happy that it knows
who I am.
And so, this is basically doing the same
thing with the granite model. And it's
going to come out in Dan Walsh, and
we'll see what it interprets that as.
Dan Walsh is a renowned figure in the
field of cyber security. Oh boy, I'm
pretty good.
I'm a director of strategy. I didn't get
that. Just got that promotion. And a CTO
is recognized significant contribute
open source SE Linux. That's correct.
Join in 2010. I joined in 2001. Uh did
work for IBM. I've never worked for IBM
in my life.
>> So
yeah. Yeah. So uh so
you know I included pretty prestigious
NSA stuff. I don't anyways uh so you can
see that AI is knows a little bit about
me but hallucinates a little bit. Uh so
what really good is I could tag rag
database and when I played with the rag
database before I've taken my book and
and asked it my book's dedicated to my
mother and you could ask questions like
who is the book dedicated in the rag?
really cool stuff, but I don't have that
part of the demo right now. Anyways,
um so I'm going to stop the model from
running.
Um now I'm going to run it with Llama
Stack.
And you can see that now we have two API
endpoints. So it's using uh when you run
with Llama Stack, you can talk directly
to the llama API. um to talk directly to
the open AI.
Basically what we just did, you would
have to change it to use B1. Uh you also
notice that I'm actually running a pod
behind the covers because I have llama
stack running in one container. I have
llama CPP server running in a different
container. Um and this next command
hopefully works because it was broken
yesterday. Yeah, it seemed to kill it
and now the containers are exiting. Um,
so that uh I already did this part.
I think I don't know if there's anything
else to show.
But at this point, I think I'm running
out of time anyways. We already did
this.
Oh, thank you. So this point we go back
to the slides.
And now at this point we do questions.
Um and we have a lot of AI generated
versions of uh
basically Ramal Lama uh talking to
Podman and actually even demonstrates my
book. But anyways, these are all the
links. Anybody want to take a photograph
of where you can get more information
about all the different projects going
on and any questions?
>> Uh, you mentioned Intel as a vendor that
supports hardware acceleration. Does
that include Intel Alchemist and Battle
Mage DGPUs? Because
>> See, this is when you realize I have no
clothes on right now,
>> right?
>> Um, so I don't know. Uh again that's
something we allow open source people to
come in and and add so there a lot of
people are using Intel hardware
sometimes ancient Intel hardware um so
my best advice to you would be to try it
out okay uh but it supports you know it
probably supports
anything anybody who has that piece of
hardware has opened up a contribution to
the upstream
Uh you said that uh the model should not
be in the same container
as uh the AI.
uh is uh are any recommendations
uh regarding
a I a collaboration with IBM how to use
it uh on Fedora or other Linux
distributions because when you AI
accelerator and when you see hardware
requires AI software
>> yeah um well first of all we're working
with closely with IBM
you know, they help pay my paycheck. Um,
but um, you know, so IBM right now is
working on Z series. They're
contributing Zer support. They're
contributing power PC support. Um,
>> yeah. Yeah. Z system.
>> Well, yeah. Basically, we want we want
IBM to build container files specific
for Z series and specific for them, but
they have to contribute to Llama CPP to
get Llama CPP to able to interact with
their GPU. And again, we're open to
anybody. Some of the largest
contributors to Ramal Lama right now are
actually Chinese companies. So, China is
because China is being sort of cut off
from CUDA and Nvidia, they're off
developing their own. So we have a thing
called Musa and another thing called
Khan which are container images
contributed by Chinese companies. Um and
so what we're seeing is exactly that is
like we you know we want to play in this
game um of contributing open source and
again because of the power of open
source there there are basically two
guys at Red Hat right now who are
working on Ramalama project but we have
now a lot of Red Hat contributors but we
have a lot of external contributors and
I think it's it's approaching 90 90
different contributors in nine months to
the project. The project right now has
about 1 point uh 1,700 stars. So that's
a a rating rating. So I'd like everybody
to go on to Ramal Lama and give it a
star and say a like or whatever the hell
this thing is just because those numbers
are important and to continue to get Red
Hat to continue to support building this
project. Anybody else got questions?
The output generated by Rama Lama for
Kubernetes is that just running a single
instance of the model in Kubernetes or
does it actually support distributed?
>> So it build it builds a deployment with
a replica of one and you're going to
quickly know I really don't know what
I'm talking about in Kubernetes world
either. But um so the the main main idea
is is here's the containers, here's a
Kubernetes jaml that you understand with
the deployment and if you wanted to run
it on two now fundamentally it's going
to match
what you're running locally but if you
you know if you're running on a Mac it's
going to say use the ramalama pack. Well
if you want to run in in CUDA you'd have
to go and change the container image to
say CUDA instead of
>> Ramalama and then the tools will be
smart enough to handle that. Um, and
then it becomes your responsibility when
you go to deployment to make sure that
the machines that you're running it on
actually have support for the GPU that
you running on. So, we're not we're not
trying to handle that. But again, it's
just like here's containers. Here's how
you mount an an OCI image into into the
container. Here's how you know all that
stuff is being taken care of by people
like me who understand how to do this.
>> Probably have time just for for one more
last question.
uh I'm interested into actually playing
with the models and then few slides back
you showed that you could just get a PDF
file and then uh feed it to some sort of
a registry and I missed the part there
was in in the middle there was a MD file
from some random server what was that
about I get it like you can get a PDF
and feed it to the registry but then
>> so so so that was that's Ramalama rag so
Ramalama rag will take your documents
and compile it into format. Actually,
right now we're using a thing called
Quadrant underneath the covers. Um, so
there's different there's Milvvis you
might have heard of. There's different
ways that you can compile
data into a AI database and there's
these all these companies generating and
quadrant two of them are Quadrant and
Milbus. I think Llama stack has their
own and right now we have a hardcoded
output a quadrant database inside of a
OCI. What we want to do is allow you to
specify I don't want quadrant, I want
milvis. Again, because a lot of this
stuff's evolving. It's not, you know, we
want to allow you to pick which kind of
database you want to interact with. And
data scientists would tell you for this
type of thing, mil works better for this
type of thing. Qu I I I don't understand
what the differences are, but that's not
AI models. That's AI data. So you're
you're basically taking your data,
compiling it into a format that now you
could query. You know, like when I asked
about Dan Walsh, I could have put my
resume in there and it would have used
my resume as the primary source rather
than just random crap that I downloaded
off the internet about who I am.
>> Right.
>> Right. Yeah. Yeah. And continue to
evolve whether or not again you might
want to look at what we're doing inside
of that container because I'm not sure
this is going to scale to you.
Everybody's going to go in and do it.
Oh, that's really cool. Well, now let me
give it 10,000 documents. I'm not sure
our tooling is going to do it, but it's
simple Python code that we're calling
into Docklink to do it. Yes. I thought I
had a full hour.
>> Yeah, but I
>> Okay. All right. So, anyways, thanks for
coming and uh I'll be around for I'm
also giving a container buff tomorrow if
you want to come in and talk about
containers and we can do some other
stuff. So, anyways, thanks for coming.
[applause and cheering]