As everyone is well aware, the world is still going nuts attempting to establish more, newer and much better AI tools. Mainly by tossing unreasonable amounts of money at the problem. Many of those billions go towards developing cheap or totally free services that run at a significant loss. The tech giants that run them all are hoping to bring in as lots of users as possible, so that they can catch the marketplace, and become the dominant or just party that can provide them. It is the classic Silicon Valley playbook. Once dominance is reached, expect the enshittification to start.
A likely way to make back all that money for establishing these LLMs will be by tweaking their outputs to the taste of whoever pays the a lot of. An example of what that such tweaking appears like is the rejection of DeepSeek's R1 to discuss what occurred at Tiananmen Square in 1989. That a person is certainly politically motivated, but ad-funded services won't precisely be enjoyable either. In the future, I fully anticipate to be able to have a frank and honest discussion about the Tiananmen occasions with an American AI representative, however the only one I can manage will have assumed the persona of Father Christmas who, while holding a can of Coca-Cola, will intersperse the recounting of the tragic events with a happy "Ho ho ho ... Didn't you understand? The holidays are coming!"
Or perhaps that is too far-fetched. Today, dispite all that cash, the most popular service for code conclusion still has problem working with a number of simple words, despite them being present in every dictionary. There should be a bug in the "complimentary speech", or something.
But there is hope. One of the techniques of an approaching player to shake up the market, is to damage the incumbents by releasing their model for totally free, under a liberal license. This is what DeepSeek simply finished with their DeepSeek-R1. Google did it earlier with the Gemma models, as did Meta with Llama. We can download these designs ourselves and run them on our own hardware. Better yet, individuals can take these designs and scrub the biases from them. And we can download those scrubbed models and run those on our own hardware. And then we can finally have some truly useful LLMs.
That hardware can be a hurdle, however. There are 2 alternatives to select from if you wish to run an LLM in your area. You can get a big, junkerhq.net powerful video card from Nvidia, or you can buy an Apple. Either is pricey. The main specification that indicates how well an LLM will carry out is the amount of memory available. VRAM when it comes to GPU's, normal RAM in the case of Apples. Bigger is better here. More RAM implies bigger designs, which will drastically enhance the quality of the output. Personally, I 'd state one requires a minimum of over 24GB to be able to run anything useful. That will fit a 32 billion parameter model with a little headroom to spare. Building, or purchasing, a workstation that is geared up to manage that can quickly cost thousands of euros.
So what to do, if you do not have that quantity of cash to spare? You purchase second-hand! This is a viable alternative, however as always, there is no such thing as a complimentary lunch. Memory might be the main issue, however don't underestimate the value of memory bandwidth and other specs. Older equipment will have lower efficiency on those aspects. But let's not stress too much about that now. I am interested in developing something that at least can run the LLMs in a functional way. Sure, the current Nvidia card may do it faster, however the point is to be able to do it at all. Powerful online designs can be great, however one need to at the very least have the choice to change to a local one, if the scenario calls for it.
Below is my effort to construct such a capable AI computer without investing excessive. I wound up with a workstation with 48GB of VRAM that cost me around 1700 euros. I could have done it for less. For example, it was not strictly essential to purchase a brand name new dummy GPU (see listed below), or I might have discovered someone that would 3D print the cooling fan shroud for me, instead of delivering a ready-made one from a distant nation. I'll confess, I got a bit impatient at the end when I discovered out I had to buy yet another part to make this work. For me, this was an appropriate tradeoff.
Hardware
This is the full expense breakdown:
And this is what it appeared like when it initially booted up with all the parts installed:
I'll give some context on the parts below, and after that, I'll run a couple of fast tests to get some numbers on the efficiency.
HP Z440 Workstation
The Z440 was a simple choice due to the fact that I already owned it. This was the beginning point. About two years earlier, I desired a computer that might function as a host for my virtual machines. The Z440 has a Xeon processor with 12 cores, and this one sports 128GB of RAM. Many threads and a lot of memory, that should work for hosting VMs. I purchased it previously owned and then swapped the 512GB disk drive for a 6TB one to save those virtual makers. 6TB is not needed for running LLMs, and therefore I did not include it in the breakdown. But if you prepare to gather numerous designs, 512GB may not be enough.
I have pertained to like this workstation. It feels all very strong, and I have not had any issues with it. A minimum of, until I started this project. It ends up that HP does not like competition, and I encountered some troubles when switching parts.
2 x NVIDIA Tesla P40
This is the magic ingredient. GPUs are costly. But, similar to the HP Z440, often one can discover older devices, that used to be leading of the line and is still really capable, pre-owned, for fairly little cash. These Teslas were implied to run in server farms, mariskamast.net for things like 3D rendering and other graphic processing. They come geared up with 24GB of VRAM. Nice. They fit in a PCI-Express 3.0 x16 slot. The Z440 has two of those, so we purchase two. Now we have 48GB of VRAM. Double good.
The catch is the part about that they were indicated for servers. They will work fine in the PCIe slots of a normal workstation, however in servers the cooling is handled in a different way. Beefy GPUs consume a lot of power and can run really hot. That is the reason customer GPUs constantly come geared up with huge fans. The cards require to look after their own cooling. The Teslas, however, have no fans whatsoever. They get simply as hot, but expect the server to supply a constant flow of air to cool them. The enclosure of the card is somewhat formed like a pipe, and you have two alternatives: blow in air from one side or blow it in from the opposite. How is that for versatility? You definitely must blow some air into it, however, or you will damage it as quickly as you put it to work.
The option is basic: just install a fan on one end of the pipe. And certainly, it appears a whole home industry has grown of people that sell 3D-printed shrouds that hold a standard 60mm fan in just the best place. The problem is, the cards themselves are currently rather large, and it is difficult to find a setup that fits 2 cards and 2 fan installs in the computer case. The seller who sold me my two Teslas was kind sufficient to include two fans with shrouds, however there was no other way I might fit all of those into the case. So what do we do? We buy more parts.
NZXT C850 Gold
This is where things got annoying. The HP Z440 had a 700 Watt PSU, which may have sufficed. But I wasn't sure, and I required to buy a new PSU anyway since it did not have the ideal connectors to power the Teslas. Using this useful website, I deduced that 850 Watt would be sufficient, and I bought the NZXT C850. It is a modular PSU, indicating that you just need to plug in the cables that you in fact require. It came with a neat bag to store the extra cable televisions. One day, I might offer it a great cleansing and utilize it as a toiletry bag.
Unfortunately, HP does not like things that are not HP, so they made it challenging to swap the PSU. It does not fit physically, and they also changed the main board and CPU ports. All PSU's I have ever seen in my life are rectangular boxes. The HP PSU likewise is a rectangle-shaped box, however with a cutout, making certain that none of the normal PSUs will fit. For no technical factor at all. This is simply to mess with you.
The installing was ultimately fixed by utilizing two random holes in the grill that I in some way managed to line up with the screw holes on the NZXT. It sort of hangs stable now, and I feel lucky that this worked. I have seen Youtube videos where people turned to double-sided tape.
The connector needed ... another purchase.
Not cool HP.
Gainward GT 1030
There is another concern with using server GPUs in this consumer workstation. The Teslas are planned to crunch numbers, not to play computer game with. Consequently, they don't have any ports to link a monitor to. The BIOS of the HP Z440 does not like this. It declines to boot if there is no other way to output a video signal. This computer system will run headless, but we have no other choice. We need to get a 3rd video card, that we don't to intent to utilize ever, just to keep the BIOS delighted.
This can be the most scrappy card that you can discover, naturally, however there is a requirement: we must make it fit on the main board. The Teslas are large and fill the two PCIe 3.0 x16 slots. The only slots left that can physically hold a card are one PCIe x4 slot and one PCIe x8 slot. See this site for some background on what those names indicate. One can not purchase any x8 card, however, because typically even when a GPU is promoted as x8, the real port on it might be just as large as an x16. Electronically it is an x8, physically it is an x16. That will not work on this main board, we actually need the little adapter.
Nvidia Tesla Cooling Fan Kit
As said, the challenge is to find a fan shroud that suits the case. After some browsing, I found this package on Ebay a bought two of them. They came delivered total with a 40mm fan, and everything fits completely.
Be cautioned that they make a dreadful lot of noise. You do not want to keep a computer with these fans under your desk.
To watch on the temperature level, I whipped up this quick script and put it in a cron job. It regularly reads out the temperature level on the GPUs and sends that to my Homeassistant server:

In Homeassistant I included a chart to the control panel that shows the values gradually:
As one can see, the fans were noisy, but not especially efficient. 90 degrees is far too hot. I browsed the web for a reasonable upper limitation however might not discover anything particular. The documentation on the Nvidia website discusses a temperature level of 47 degrees Celsius. But, what they suggest by that is the temperature of the ambient air surrounding the GPU, not the measured worth on the chip. You understand, the number that actually is reported. Thanks, Nvidia. That was useful.
After some additional browsing and checking out the viewpoints of my fellow web citizens, my guess is that things will be fine, provided that we keep it in the lower 70s. But don't estimate me on that.
My very first effort to treat the circumstance was by setting a maximum to the power usage of the GPUs. According to this Reddit thread, one can decrease the power intake of the cards by 45% at the expense of only 15% of the performance. I attempted it and ... did not observe any difference at all. I wasn't sure about the drop in performance, having just a number of minutes of experience with this setup at that point, however the temperature level attributes were certainly unchanged.

And after that a light bulb flashed on in my head. You see, prior to the GPU fans, there is a fan in the HP Z440 case. In the image above, it remains in the best corner, inside the black box. This is a fan that sucks air into the case, and I figured this would work in tandem with the GPU fans that blow air into the Teslas. But this case fan was not spinning at all, because the remainder of the computer did not require any cooling. Looking into the BIOS, I discovered a setting for the minimum idle speed of the case fans. It varied from 0 to 6 stars and was presently set to 0. Putting it at a higher setting did wonders for the temperature level. It likewise made more noise.
I'll unwillingly admit that the third video card was practical when adjusting the BIOS setting.
MODDIY Main Power Adaptor Cable and Akasa Multifan Adaptor
Fortunately, sometimes things just work. These 2 items were plug and play. The MODDIY adaptor cable linked the PSU to the main board and CPU power sockets.
I used the Akasa to power the GPU fans from a 4-pin Molex. It has the great function that it can power 2 fans with 12V and 2 with 5V. The latter certainly decreases the speed and hence the cooling power of the fan. But it likewise reduces noise. Fiddling a bit with this and the case fan setting, I discovered an acceptable tradeoff between noise and temperature level. For now at least. Maybe I will require to revisit this in the summer.
Some numbers
Inference speed. I collected these numbers by running ollama with the-- verbose flag and asking it five times to write a story and averaging the result:
Performancewise, ollama is configured with:

All designs have the default quantization that ollama will pull for you if you do not define anything.
Another crucial finding: Terry is without a doubt the most popular name for a tortoise, followed by Turbo and Toby. Harry is a favorite for hares. All LLMs are loving alliteration.
Power intake
Over the days I kept an eye on the power consumption of the workstation:
Note that these numbers were taken with the 140W power cap active.
As one can see, there is another tradeoff to be made. Keeping the design on the card enhances latency, but consumes more power. My existing setup is to have two designs filled, one for coding, the other for generic text processing, and higgledy-piggledy.xyz keep them on the GPU for as much as an hour after last use.
After all that, am I happy that I began this project? Yes, I think I am.
I invested a bit more money than planned, however I got what I desired: a way of locally running medium-sized models, completely under my own control.
It was a great choice to start with the workstation I currently owned, and see how far I might include that. If I had begun with a brand-new device from scratch, it certainly would have cost me more. It would have taken me much longer too, as there would have been much more alternatives to pick from. I would also have been really tempted to follow the hype and buy the current and greatest of whatever. New and shiny toys are fun. But if I buy something brand-new, I desire it to last for many years. Confidently anticipating where AI will go in 5 years time is impossible today, so having a more affordable device, that will last at least some while, feels satisfactory to me.
I want you best of luck on your own AI journey. I'll report back if I discover something new or intriguing.