mrkeyoor.com_
Sat 17 Oct 13:34 UTC
LLM Toolsevaluationupdated 16 Oct 2026

minimind review

MiniMind is a Chinese-first project with a full English README that teaches you to train a small language model from scratch. It exposes the model and training code so you can follow how data becomes a model, then try instruction tuning and tool use.

+305stars / 7d
Verdict

Our MiniMind run installed 164 packages into 6,154 MB and reported 174 known vulnerabilities, with no test target available to check training correctness. Use it to study and modify a small model in an isolated learning environment. Before spending compute on custom instruction data, investigate the open truncation report and inspect the resulting labels.

We ran it

Lab card: what happened when we ran minimindScreenshot of minimind (jingyaogong.github.io/minimind)
Install✓ · 77s164 packages · 6154 MB
Build✓ · 1s
Testsn/ano test script
Known vulns174(pip-audit)
Repo49 files~4,680 lines of source · 12.5 MB · 0 CI workflows

Answers from our run

Does minimind build from source?

Dependencies installed in 77 seconds (164 packages), and the build succeeded in 1 seconds. We cloned commit f659b55 into a clean Debian container with 3 CPUs and no project-specific setup.

Does minimind have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does minimind have known vulnerabilities in its dependencies?

pip-audit flagged 174 known advisories in the dependency tree at the time of our run.

Who should not use minimind?

Teams expecting a validated training pipeline: issue 887 reports assistant labels disappearing after long-prompt truncation, with a proposed fix still open.

What are the alternatives to minimind?

nanoGPT, LlamaFactory. Our MiniMind run installed 164 packages into 6,154 MB and reported 174 known vulnerabilities, with no test target available to check training correctness.

Setup3/577-second install succeeds, but weights and training data need arranging
Docs4/5Full English guide explains weights, backends, and training stages
Community5/563,814 stars with September code and October issue activity
Maturity2/5No test target found; open report concerns supervision correctness

Discussed on

  1. hnMiniMind: End-to-end GPT-style LLM training pipeline in pure PyTorch3 points

Who it’s for

Python developers who want to read native PyTorch training code and follow data into a model.
Learners with time to inspect datasets and configure a suitable training backend.
Researchers trying small changes to instruction tuning or preference training before a larger experiment.

Who it’s NOT for

Teams expecting a validated training pipeline: issue 887 reports assistant labels disappearing after long-prompt truncation, with a proposed fix still open.
Developers expecting the chat interface to start without arranging model files: the README requires weight folders under scripts for the WebUI.
CPU or Apple MPS users expecting the CUDA route to transfer unchanged: the README explicitly warns of backend speed and compatibility differences.

Setup reality

Our sandbox installed commit f659b55 in 77 seconds, adding 164 packages and using 6,154 MB. The build passed in 1 second. Tests were skipped because no script or target was found, and pip-audit reported 174 known vulnerabilities.

Inference needs downloaded model weights. Training needs the selected dataset files under dataset, followed by the training stages. Local use does not call for a paid inference API key in the quick start; optional experiment tracking adds account configuration.

The README asks CUDA users to verify GPU detection and warns that CPU and MPS behavior differs. The Streamlit interface expects weight folders under scripts. Our Python 3.12 Debian run verified installation and the build step, without measuring model quality or training performance.

The training code is the reason to choose MiniMind

Open trainer/train_pretrain.py if you want to understand where a language model learns to predict the next token. MiniMind exposes the training machinery in native PyTorch, including instruction tuning and later preference training. The Chinese-first project has a full English README, so English readers can follow the main route. Its appeal is being able to trace a training decision into code without first learning a large framework's internal conventions.

Our checkout contained 49 files and roughly 4,680 source lines. That is a manageable reading assignment for someone who already knows Python and wants to connect model architecture with a working training loop. The scope still takes study: the repository includes dense and mixture-of-experts models, tool use, and reinforcement learning. I would begin with pretraining and supervised instruction tuning, then read the optional stages when an actual question sends me there.

What happened when we ran it

Our run installed MiniMind commit f659b55 in 77 seconds, pulling 164 packages and occupying 6,154 MB on disk. The build succeeded in 1 second. We used a fresh unprivileged Debian container on 2026-10-11, with 3 CPUs, 8 GB of RAM, Python 3.12, and no secrets. Those measurements establish that the dependency installation and recorded build step completed in that environment. They do not establish training speed or generated-answer quality.

The lab skipped tests because it found no test script or target. Its scan also found 0 CI workflow files, no Dockerfile, and no tests directory. Pip-audit reported 174 known vulnerabilities. The supplied summary does not identify their affected execution paths or severity, so it cannot tell us which are reachable through a deployed model service. It does give a developer a concrete reason to inspect dependencies before adopting the environment for anything sensitive.

A small checkout still needs a large environment

The source checkout occupied 12.5 MB before the installed environment reached 6,154 MB. Keep that difference in mind when allocating a development container or handing a workshop to students. The quick start's short dependency command hides a substantial disk requirement. Our successful installation is useful evidence, but treating its completion as proof that the model itself works would skip the weights, data, and runtime configuration that come afterward.

The English quick start separates inference from training. Inference needs downloaded weights from ModelScope or Hugging Face. Training needs data files placed under dataset, followed by pretraining and instruction tuning. The documented local commands do not ask for a paid inference API key. Optional experiment tracking adds its own account configuration. Budget storage for the selected weights and data separately from the environment we measured.

The WebUI expects weights in a specific directory

The README tells WebUI users to copy a Transformers-format model folder into scripts before starting Streamlit. Its scanner expects weight-bearing subdirectories there and errors when it finds none. That detail matters more to a first launch than the existence of a chat screenshot. Checkpoint resume support is useful for longer experiments, but you still need to understand which model dimension and weight prefix match the command you are running.

Our 3-CPU sandbox does not settle which training backend you should choose. The documentation tells CUDA users to check whether PyTorch recognizes the GPU, and warns that CPU and Apple MPS paths differ in speed and compatibility. We did not measure either alternative against CUDA. If your goal is an inexpensive learning exercise, verify the chosen backend and run a small data sample before committing to a longer training job.

Long prompts have an unresolved supervision report

Issue 887, opened in October, describes a specific problem in SFTDataset: truncating a long prompt can remove the assistant response before the code creates supervision labels. The reporter identifies the same f659b55 revision as our sandbox. A linked fix is proposed in pull request 888. This is an upstream report about the actual training dataset path, separate from anything observed in our installation run.

The absence of an automated test target in our run makes that report harder to dismiss. Someone preparing custom instruction data should inspect examples after tokenization and truncation, especially when tool descriptions make the prompt long. A loss curve alone cannot show whether the intended answer survived preprocessing. MiniMind is useful precisely because you can read this path yourself, but learners should expect to check their data rather than assume every tutorial default protects it.

September code activity outweighs the older release tag

GitHub reported a last push of 2026-09-22, 63,814 stars, and 66 open issues and PRs when checked on October 16. The latest GitHub release was v2, published on 2025-10-21, while the README describes newer main-branch work. Recent discussion of truncation and proposed fixes shows continuing contributor attention. The old release date alone does not justify calling this abandoned, and the star count does not resolve the training correctness report.

Choose nanoGPT if you want a narrower GPT training codebase to study. Choose LlamaFactory if adapting existing models is the job and you prefer a framework that organizes that work. MiniMind earns its place when tracing several training stages is the point of the exercise. Before spending compute on your own dataset, open the processed sample and confirm that the assistant answer still has labels.

Alternatives

ProjectWhat it isPick it when
nanoGPT gh↗A narrower codebase for training and fine-tuning GPT models.pick this instead when studying the basic GPT training path matters more than covering several later training methods.
LlamaFactory gh↗A framework for fine-tuning existing language and vision-language models.pick this instead when adapting an existing model is your task and reading every training algorithm is secondary.

Sources

  1. MiniMind English README
  2. MiniMind repository facts
  3. Long-prompt supervision report
  4. Proposed truncation fix
  5. MiniMind releases

More llm tools reviews

GLM-5.3-Flash-EXL3-2x-DGX-Sparks-TensorFold · livenerf · scion · opencode2api · IQuest-Q1 · iCode · the whole board →