Run Kimi K3 using 29 GB of RAM at 0.50 tok/s

(github.com)

98 points | by marcobambini 7 hours ago ago

39 comments

  • pja 4 hours ago

    That README hits all my “this is authored by an LLM” instincts. I presume the codebase is also written by an LLM?

    • zozbot234 5 minutes ago

      Yup, I hate to engage in anything that looks like a "shallow dismissal" but the project documentation seems to outright contradict itself wrt. whether it's running the model at genuinely native precision (though the claimed 3-bit quant is potentially interesting) and the headline claim of achieving 2 secs/token in a mere 29GB RAM footprint looks outright nonsensical given what we know about K3 itself (~115GB in dense parameters alone at native precision, plus ~25GB active sparse experts per token and some comparatively minor footprint for the KV cache). This is just not very helpful.

    • marcobambini 3 hours ago

      I wrote tons of software, even a programming language by hand https://github.com/marcobambini/gravity.

      I'm using my skills to orchestrate LLMs and agents, and I can write better code much faster. As developers, we can choose to adapt to new technologies or become extinct.

      • misterderpie an hour ago

        > I'm using my skills to orchestrate LLMs and agents, and I can write better code much faster.

        The fact that the top comment on this thread calls it out, in a negative way, hints at that you aren't.

    • gruez 4 hours ago

      >Contributors

      >...

      >claude

      You don't need to presume. If someone is so lazy that they tell claude to commit their code (ie. they're too lazy to run git commit themselves), the chances they reviewed the code is slim.

      • sargunv an hour ago

        That's a strange and arbitrary line to draw. There's plenty of times I make edits by hand and then tell an agent to kick it up to a PR, or on the other extreme, let an agent implement something autonomously, and review the diff myself once it's in PR. Both of those scenarios involve the agent running the git commands, neither scenario indicates "the chances they've reviewed the code is slim"

      • freedomben an hour ago

        I often let Claude write my commit messages even when I'm the one who wrote the code. Claude is often damn good at writing commit messages, and they frequently end up much better than if I wrote it all by hand. I nearly always edit them somewhat, but it's like starting from 80% instead of 0%. Some might call it laziness, but I call it working smarter rather than harder.

      • danirod 3 hours ago

        To be fair, I appreciate when they are so upfront about who wrote the code without requiring further heuristics, so I encourage this behavior.

        • bensyverson 3 hours ago

          Yes, I do this all the time, and also check in the co-authored project plans which drove the commits. For a project that is transparently only possible due to agentic coding, I don't see any reason to conceal the methods.

      • simonw 3 hours ago

        Honestly, Claude writes better commit messages than most people.

        Personally I've mostly given in to letting it commit for me now, though I do occasionally take over and hand-write the messages if it's a particularly important concept and Claude's is too verbose.

        Codex/GPT-x defaults to one-line commit messages, which are too short. Claude likes to write several paragraphs, which is usually too long.

        If you tell it how to commit properly once per session it will stick with your standards for the rest of that session, and you can put that in AGENTS.md if you can be bothered to.

      • k8sToGo 3 hours ago

        Why do you say lazy? maybe they are ok with people seeing it is claude?

      • Teever 2 hours ago

        That’s a needlessly antagonistic and insulting thing to say.

        This person that you’ve never met and probably never will doesn’t owe any of us anything.

        They’re out there doing what they want to do how they want to do it and if you don’t like it the correct response isn’t to insult them in front of a bunch of strangers on the internet for clout or whatever.

        I doubt that you’d ever call them lazy to their face — why do it here?

    • bglazer 2 hours ago

      Yeah I'm begging these authors to at least *read* the LLM generated README's. They're so, so incomprehensible because the LLM has a super limited theory of mind for readers. They always assume that external readers have access to the full context and history of decisions in the project development. These decisions and instructions from the user are extremely important for the model and almost completely irrelevant for an outside reader looking at a "finished" product. So, we get sentences like this:

      "Where the levers were is not where they are. Overlapping the expert reads with the arithmetic was worth ~1.6x and shipped; the two that looked bigger — reading fewer bytes per token, and keeping more of them in RAM — were both measured and both refused, one because this family's router has no tail to demote and one because a cache the machine will not leave resident cannot be bought at any price."

      What the fuck does that mean? Obviously some internal development decision, using the absolutely inscrutable internal terminology that Claude loves. If people would just read what they publish, I'm sure this would stick out immediately.

      I'm not an LLM hater, I use them a ton and they work very well for writing complex code, it's undeniable. But they generate absolute dogshit first draft writing.

      • andai an hour ago

        >They're so, so incomprehensible because the LLM has a super limited theory of mind for readers. They always assume that external readers have access to the full context and history of decisions in the project development

        The transformer does not yet understand the non-transformer.[0]

        This is probably because all the data we trained it on was created by non-transformers, so it thinks it's a non-transformer, but it isn't.

        I don't think we know how to train a transformer yet. All the training data is linear, but that's not how they think at all.

        [0] It's a bit like the communication difficulties experienced between autistic people and neurotypicals. Each follow the Golden Rule, i.e. do unto others as you would have them do unto you -- and it fails in both directions. A Platinum Rule is necessary: do unto others as their API demands.

      • chambored 2 hours ago

        If that isn’t the perfect way to frame what I’ve seen and hated about LLM text, I don’t know what is. They certainly write for an audience with a historical context that almost no one has.

    • sergiomattei 2 hours ago

      Does it matter?

      • artemonster 2 minutes ago

        yes. its a quality test. pre LLMs you could easily judge if a project was a labor of love by attention to details, like docs and README. Nowadays if even readme is sloped, what else was slop vibecoded? everything? how much effort was put in there besides 3 prompts? 5? you can never tell

      • jkahrs595 2 hours ago

        I need an llm to block these comments.

    • cyanydeez 3 hours ago

      do people think these projects related to LLMs are ever going to be in anyway a pure human endevour?

      How bout we make a new rule: only complain about LLM writing when the product as zero relevents to use with LLMs.

    • guybedo 21 minutes ago

      i thought, here on HN, we were past the "oooh it's written by a LLM it's bad!".

      I care about the craft, well designed systems, good clean architecture and code, etc...

      But i also care about reaching goals. Whether i do it working on my own, or with human coworkers or with AI coworkers doesn't matter that much to me. Yes, the result is sometimes the most important thing.

  • nharada 10 minutes ago

    It's too bad Optane PMem is dead

  • roundup an hour ago

    How does this project compare to https://github.com/gavamedia/deltafin ?

  • bgirard an hour ago

    Approximate calculation is putting the cost at ~$5 per million tokens (assuming 42W sustained, 20¢/kWh), and that's excluding hardware and other costs.

  • Catloafdev an hour ago

    Neat! But, what do you do with a 0.5tk/s LLM?

    Have you tried running it via llamacpp or other software that supports naive SSD offloading to compare speeds?

    • gcampos 11 minutes ago

      You could use it for long run tasks while you don’t use the laptop.

  • SSilver2k2 2 hours ago

    This sounds a lot like what the colibri project did for GLM-5.2. I'm a fan so keep at it!

    justvugg.github.io/colibri

  • herf 3 hours ago

    So if this Mac uses 30-50W, that's 40-60 tok/Wh...vs maybe 80k for a modern GPU cluster? So that's about 1000-2000x more power for the SSD streaming, unfortunately.

  • righthand an hour ago

    I couldnt find anything explaining the name of this company on their website but is it okay that they’re riding on the name of an open source tool?

    SQLite code itself is public domain but I’m not sure about the name.

  • cadamsdotcom an hour ago

    Dear creator: you didn't ship the first draft of your code - why did you ship the first draft of your README??

    • w45wsdfgdgdf an hour ago

      because claude ships these verbose READMEs with its 'honest' takes and justifications for the naming. Its goal is to prime the next Agent that reads it, not you, human

  • logicallee 3 hours ago

    Interesting project. The headline number (29 GB of RAM) is for 4k context.

    From what I've read elsewhere, Kimi K3 is quite verbose in its thinking. At the quoted rate, it would generate only a total of 1.8k tokens in 1 hour. Is that enough for it to get any thinking done and produce output on more complicated prompts?

    • 0cf8612b2e1e 2 hours ago

      I saw someone’s excellent idea that if you have a slow system like this, you should communicate by email. It is no longer meant for realtime iteration, but more pointed questions for which there is more effort and time expected on both parties.

      • rwz an hour ago

        0.5t/s is still too slow even for email. For a moderately large inquiry (1MTok output, let's ignore the 4k context window limitation for now) it'll take the model around 23 days or uninterrupted execution to answer a single email.

        Real world inquiries are gonna be much slower of course, but this setup is still too slow to do anything meaningfully useful I think.

  • cjbprime 4 hours ago

    Does it not use Metal, on macOS? Would it be faster if it did?

    • marcobambini 3 hours ago

      We tried to use Metal, but for that specific project it was slower than just using NEON ARM optimizations. It is all documented in the docs.

  • jpecar 3 hours ago

    Where can this 1tb k3.waste be downloaded?

    • marcobambini 3 hours ago

      It is not yet available, the only way is to download the official Kimi K3 model and then convert it:

      # 1. preflight: reachable? how big? does it fit? tools/fetch_weights.sh --dest /Volumes/staging/k3 --dry-run

      # 2. download — resumable, safe to kill, safe to re-run tools/fetch_weights.sh --dest /Volumes/staging/k3

      # 3. convert into a container uv run --with torch --with safetensors python tools/convert.py \ --src /Volumes/staging/k3 \ --out ~/models/k3.waste --jobs 3

      • jpecar 2 hours ago

        Yeah, saw this ... was hoping that there's a torrent of it somewhere already. Or something.