self-llm keeps four copies of every tutorial, one per hardware family
Project brief: Linux /Lora LLM / MLLM. "Open Source Large Model Eating Guide" is a tutorial for rapid fine-tuning (full parameters/Lora) and deployment of domestic and foreign open source large models (LLM)/multimodal large models (MLLM) based on Linux environment tailored for Chinese babies.
At a glance
- What is it?
- self-llm is a Datawhale tutorial collection for deploying, using and fine-tuning open source LLMs and MLLMs on Linux, written for learners who cannot get API access. It publishes no releases at all, keeps parallel model trees for four hardware families, and hands anything about model internals to sibling repositories.
- Who is it for?
- self-llm is for a learner on Linux who needs a working local deployment and a first fine-tuning run, and for a team that wants a domain model without an API bill. It is not for understanding what a transformer does, and it is not a library you can depend on: with no published releases you track the master branch, so pin by commit date rather than by version.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 19 days ago.
- What is it written in?
- Mainly Jupyter Notebook, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Four model trees, and the MLX one has no index of its own
The repository root holds four parallel model directories: `models/`, `models_amd/`, `models_ascend/` and `models_mlx/`. Each is a separate copy of tutorial material, and there are three index files to match: `support_model.md`, `support_model_amd.md` and `support_model_Ascend.md`.
So the hardware choice happens at the directory level, and the reader has to know which tree to open before anything else. There is no flag or config key that switches between them.
The gap worth noticing is `models_mlx/`. It exists at the root, but the listing shows no `support_model_mlx.md` beside the other two index files, so someone arriving for the MLX path has a directory and no top-level table telling them what is inside it. The root also carries `dataset/`, `images/`, `examples/` and a single `utils.py`.
None of these trees can be version-pinned, which is the next problem.
There are no releases, so master is the only thing to track
The repository has no GitHub releases. There is no tag to install from, and the top-level listing contains no CHANGELOG file either. The default branch is `master` and the last push was on 2026-09-12.
That is workable for a tutorial collection and awkward for anyone building on one. Model deployment instructions bind to exact library versions: a CUDA build, a transformers release, a quantization kernel and an inference server all have to line up, and those are exactly the details that change when a file in `models/` is edited. Since there is no release boundary, a clone taken today and a clone taken next month are the same reference and different environments.
The practical consequence is that you record your own checkpoint. A commit hash from the day your deployment worked is the only version marker available, and you keep it yourself because nothing in the repository will remember it for you.
The learning path is prescribed, and one suggested model is not on the list
The order is stated explicitly: environment configuration first, then model deployment and use, then fine-tuning. Environment configuration is called the foundation, deployment and use the other foundation, and fine-tuning the advanced stage. The reasoning is that each step assumes the previous one already works.
For starting models the advice names Qwen1.5, InternLM2 and MiniCPM. Two of those three are on the supported list. InternLM2 is not: the list carries InternLM and InternLM3, with anchors for each, and no InternLM2 entry appears among the 50-odd models shown.
So a beginner who follows the learning advice literally lands on a model name with no tutorial behind it. The fix is small, and the advice is still directionally right about ordering, but it is the kind of drift that costs an afternoon, and it is the first thing to check when a path in the README does not resolve to a file in the repository.
The setup instructions live in support_model.md, not in a root manifest
There is no install command to copy, and no requirements file, pyproject file or environment file at the repository root. What there is: `support_model.md` holds the full model list with an anchor for each entry, and its `通用环境配置` section is the one the README links as the quick start. The English text of the guide is a separate file, `README_en.md`.
That means the dependency specification is not a single artifact. Each model's own section carries the environment configuration for that model, and the README describes the point of those sections as providing different detailed steps for different model requirements. Installing what a tutorial needs is therefore a per-model task rather than one `install` at the top.
The claimed coverage is 50 or more mainstream models, each stated to have a complete deployment, fine-tuning and usage tutorial. Whether a given entry is complete is something you find out by opening it, since the repository publishes no per-model status.
The examples are write-ups, and the transferable part is the dataset
Four example projects sit under `examples/`, each with its own readme. Chat-Huanhuan takes every line spoken by a character in a television script and LoRA fine-tunes a model to imitate that character's manner of speaking. AMChat merges a mathematics dataset with advanced-calculus exercises and solutions, starts from InternLM2-Math-7B and fine-tunes it with xtuner to answer higher mathematics questions. Tianji-天机 covers prompt engineering, agent building, data acquisition and model fine-tuning, and RAG data cleaning and use in one system walkthrough.
The fourth, 数字生命, is described as building an AI counterpart of a person from a purpose-made dataset, reproducing tone, expression and way of thinking. What the README singles out as its highlight is dataset construction, and that it is described as a process you can copy to a different subject.
So the examples are documentation with a readme, not packaged applications, and the datasets they depend on live in the `dataset/` directory at the root. Anyone reusing one inherits both its dataset and its assumptions about what a usable fine-tuning set looks like.
Four sibling repositories cover what this one deliberately leaves out
The README is unusually direct about its boundaries, and it points at four other Datawhale projects for everything it excludes. Happy-LLM is recommended for understanding the core principles of large models and training one from scratch. Tiny-Universe is for the model composition, RAG, Agent and Eval tasks, and it is specified as hand-written throughout rather than built on API calls. so-large-llm is the theory course to take first if the fundamentals are missing. llm-universe is the application development course, presented on Alibaba Cloud servers around a personal knowledge base assistant.
The division of labour is clean. This repository covers environment configuration, deployment, use and fine-tuning on Linux, and the other four cover principles, theory, application building and from-scratch training.
That is useful for a learner building a path, and it is a hard boundary for an engineer. If your question is what a retrieval pipeline actually does, this repository answers it by sending you elsewhere, and the RAG material here is limited to the data cleaning and usage step inside one example.
The audience is defined by what the reader does not already have
The intended readers are listed as six groups, and the list is a better description of the project than any feature summary. People who want to use or try an LLM but cannot get or use the related APIs. People who want long-term, low-cost, large-scale application of LLMs. People interested in open source LLMs who want to work with one directly. Students studying NLP who want to go further into LLMs. People who want to build a domain-specific private LLM. And the widest group, ordinary students.
Read as a filter, that excludes a reader who already has API access and a working pipeline, and it excludes anyone looking for a production engineering reference, since nothing here covers serving, scaling or monitoring.
The model list also shows the project's centre of gravity. It leans on Chinese model families, with Qwen at six or more entries, several GLM versions, three MiniMax versions and a DeepSeek entry, alongside Llama4, Llama3.1, Gemma3, phi4, Apple OpenELM and gpt-oss-20b. If your model is not on that list, the collection has nothing for you.
Editorial conclusion
self-llm is for a learner on Linux who needs a working local deployment and a first fine-tuning run, and for a team that wants a domain model without an API bill. It is not for understanding what a transformer does, and it is not a library you can depend on: with no published releases you track the master branch, so pin by commit date rather than by version. Verify three things before you start: that the model you were told to begin with still appears in `support_model.md`, since the beginner advice names InternLM2 while the list shows InternLM and InternLM3; which of `models/`, `models_amd/`, `models_ascend/` or `models_mlx/` matches your hardware, because they are separate trees rather than one switchable set; and what the environment section of the specific model notebook requires, since the repository root carries no requirements file to reproduce from.
Frequently asked questions
What does it mean to self-host an LLM, and what does self-llm cover?
self-llm is a Linux tutorial for deploying, using and fine-tuning open source LLMs and MLLMs, covering per-model environment configuration, command line invocation, online demo deployment and LangChain integration, plus distributed full fine-tuning, LoRA and ptuning. It states its audience as learners who cannot obtain or use the related APIs.
Can I create my own LLM with this project?
The repository's stated purpose is deploying, using and fine-tuning mainstream open source LLMs, and its audience list includes people who want to build a domain-specific private LLM. The fine-tuning methods it covers are full-parameter, distributed full, LoRA and ptuning, and one example is a digital-self model built from a purpose-made dataset.
What is the best self-hosted LLM for a beginner?
The README does not rank the models, but its learning advice names Qwen1.5, InternLM2 and MiniCPM as the starting points. The supported list in support_model.md covers 50 or more models, each stated to have a complete deployment, fine-tuning and usage tutorial, and it carries InternLM and InternLM3 rather than the InternLM2 named in the advice.
How much does it cost to run your own LLM?
No figures appear anywhere in the repository. Its audience list includes people who want long-term, low-cost, large-scale application of LLMs, and it frames local deployment and private fine-tuning as the route that avoids depending on an API, but no hardware requirements or costs are stated.