Open-source project
zimingttkx/AI-Practices avatar
zimingttkx/AI-Practices

AI-Practices: 14 ML modules, and a test column that stops early

Comprehensive ML and DL tutorial with Jupyter notebooks, including linear regression, neural networks, CNNs, RNNs and more.

456 stars68 forksJupyter NotebookMIT

At a glance

What is it?
A Chinese-language teaching repository of 500-odd Python files and 280-odd notebooks across fourteen numbered modules, from linear models to multi-agent reasoning. The interesting parts are the gaps: the quick start's clone command is cut off, the module diagram omits two directories that exist, and only six of the fourteen modules carry a test-coverage column at all.
Who is it for?
Adopt AI-Practices if you want a single bilingual repository covering classical machine learning through reinforcement learning, LLMs, distributed training and multi-agent patterns, and you are willing to pick the modules you need rather than install the lot.
Can I use it commercially?
Yes. MIT 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 1 day 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 October 11, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The clone command in the quick start is cut off

Start with what you are being handed. The documentation reproduced here is the Chinese `README.md`, and the repository also ships `README_EN.md`, linked from the header as the English version. That English file is not part of what this account of the project is drawn from, so anything stated below comes from the Chinese text and the repository files, and where the two might differ is left open. The README also offers a translation link at the top, so a reader is not forced through machine translation to read the configuration sections. Now the defect. The quick start block opens with a comment for cloning the repository and then the line `git clone ht`, which is not a command. The rest of that section is not visible. So the one piece of the setup you actually have to type is incomplete in the source, which is worth knowing before you conclude you mistyped something.

The module diagram skips 08 and 09

The architecture block presents the repository as four stages, and it reads cleanly until you compare it with the tree. The visible portion goes from `01-foundations` through `07-reinforcement-learning`, then jumps to `10-large-language-models` and breaks off mid-line at a fourth entry beginning with a single character. The jump is the interesting part. Both `08-theory-notes` and `09-practical-projects` exist as top-level directories in the repository, and both are described in detail further down the README, with `09` holding seven submodules including four Kaggle competition solutions and an integrated-systems project. They are simply absent from the diagram, and the diagram is what a newcomer reads first. What survives of it looks like this:

text
AI-Practices/
│
├── 第一阶段:机器学习基础
│   └── 01-foundations/              # 线性模型、SVM、决策树、集成学习、降维、聚类
│
├── 第二阶段:深度学习核心
│   ├── 02-neural-networks/          # 神经网络基础、优化器、正则化
│   ├── 03-computer-vision/          # CNN架构、迁移学习、目标检测
│   └── 04-sequence-models/          # RNN/LSTM、Attention、Transformer

Three stages are drawn cleanly and then the fourth entry stops after a single character, so the diagram ends twice: once by omission and once by truncation. Stage one is machine learning foundations, stage two deep learning core, stage three advanced topics including generative models and reinforcement learning, stage four large language models and multimodal work. Two of the fourteen modules fall between stages two and four.

Six of the fourteen modules declare test coverage

The project advertises more than 100 unit tests as one of five headline statistics, next to 500-odd Python files, 280-odd notebooks, fourteen modules and two Kaggle gold medals. Where those tests live is not evenly spread. Six module tables carry a coverage column and mark every row with a tick: reinforcement learning, large language models, multimodal learning, deployment optimization, distributed training and agents and reasoning. The other eight tables, covering foundations, neural networks, computer vision, sequence models, advanced topics, generative models, theory notes and practical projects, have no such column and make no claim either way. So the modules built on the older frameworks are the ones whose test story is unstated, which is an odd allocation given that the modern modules have more places to hide a silent error. There is also a number worth checking: the integrated-systems submodule inside `09` claims 109 tests on its own, which is more than the project-wide headline of more than 100.

pyproject ships PyTorch and no TensorFlow at all

The packaged dependency list has nine entries: numpy, pandas, scipy, matplotlib, seaborn, scikit-learn, torch, torchvision and tqdm. That is a coherent PyTorch-only install. The documentation does not describe a PyTorch-only project. The tech stack table lists PyTorch 2.x alongside TensorFlow 2.13+ and Keras 3.x, and the neural networks module is built on Keras with Sequential and Functional APIs, then drops to TensorFlow low-level for custom training loops and data pipelines built on TFRecord. A `pip install` of the declared dependencies would leave those notebooks unable to import what they need. The full `requirements.txt` is where TensorFlow appears, at 2.18.0 or newer alongside Keras, and it is a much longer list, roughly forty-five packages covering XGBoost, LightGBM, OpenCV, NLTK, PEFT, bitsandbytes, LangChain, ChromaDB, FAISS, Diffusers, timm and librosa. Two dependency files, two different projects.

Python 3.10 in one file, 3.9 in another

The tech stack table states Python 3.10+ alongside Jupyter Lab and Docker. The packaging manifest states `requires-python` of 3.9 or newer and lists classifiers for 3.9, 3.10, 3.11 and 3.12. Both cannot be the intended floor, and the manifest is the one an installer reads. The same pattern shows up with TensorFlow, where the tech stack table says 2.13+ and the requirements file asks for 2.18 or newer. None of this is dangerous, but it means the documentation and the manifests were not updated together, and someone pinning an environment from the docs alone will get a different resolution than someone pinning from the manifest. Every dependency in both files uses a lower bound and no upper bound, so nothing in either file will stop a breaking release from arriving. The requirements file also carries its own last-updated date of 2026-01-23, several months before the most recent commit.

npm run lint and npm run format only echo

The repository is a Python project that also ships a Node package, version 1.0.0, whose job is its documentation site. It runs VitePress, with `markdown-it-mathjax3` for maths rendering, and Node 18 or newer is declared. Its scripts are the interesting part. `docs:dev`, `docs:build` and `docs:preview` do real work. The other two are placeholders: the lint script is `echo 'Linting documentation...'` and the format script is `echo 'Formatting documentation...'`. Neither lints nor formats anything. Meanwhile the Python side of the same repository carries black, ruff and mypy as development extras, plus a pre-commit configuration at the root and an `.editorconfig`, so the formatting discipline is real and lives entirely on the Python side. The Node side exists to build a documentation site and nothing more, and the two stub scripts are the honest boundary of that. Anyone contributing will find the pre-commit hooks do the work that `npm run lint` appears to promise.

Four compose services for a teaching repository

The compose file defines four services that all build from one Dockerfile with a different target: a development service that mounts the working tree and a pip cache volume, a Jupyter service publishing port 8888, a test service that sets `PYTEST_ADDOPTS=-v --tb=short`, and a production service that mounts a data directory read-only. Two named volumes and a named network back them. That is a serious deployment shape for a repository whose purpose is teaching, and the production target in particular implies serving notebooks somewhere. The rest of the root explains the project's ambitions more directly: an `ARCHITECTURE.md`, a `ROADMAP.md`, a `QUICKSTART.md`, a `CHANGELOG.md`, a `CITATION.cff`, a conda `environment.yml`, a root `conftest.py`, and `claude_desktop_config.example.json`, which suggests the notebooks are also meant to be driven from an assistant. The competitive record is specific where it is checkable: two Kaggle golds, both top 1 percent, in Feedback Prize for English Language Learning and RSNA Abdominal Trauma, plus a silver in American Express Default Prediction and a bronze in RSNA Lumbar Spine. Licence is MIT, the last push was on 2026-10-01, and there are no GitHub releases.

Editorial conclusion

Adopt AI-Practices if you want a single bilingual repository covering classical machine learning through reinforcement learning, LLMs, distributed training and multi-agent patterns, and you are willing to pick the modules you need rather than install the lot. Do not adopt it expecting a consistent dependency story: pyproject ships nine packages with no TensorFlow while the module list needs it, the tech stack and the manifest disagree on the minimum Python, and the dependency file is dated 2026-01-23 with no upper bounds. Verify first whether the module you care about has tests, since only six of the fourteen module tables declare coverage.

Frequently asked questions

How many modules are in AI-Practices?

Fourteen numbered directories, from `01-foundations` through `14-agents-reasoning`. The architecture diagram in the README shows only stages covering 01 to 07 and then 10 onwards, so `08-theory-notes` and `09-practical-projects` exist in the tree but are missing from that first diagram.

Does AI-Practices have tests?

The project states more than 100 unit tests as a headline figure. Six of the fourteen module tables carry a test coverage column and mark every row as covered: reinforcement learning, large language models, multimodal learning, deployment optimization, distributed training, and agents and reasoning. The other eight tables declare nothing either way.

What Python version does AI-Practices need?

The documentation is inconsistent. The tech stack table says Python 3.10+, while the packaging manifest sets `requires-python` to 3.9 or newer and lists classifiers for 3.9 through 3.12. The manifest also declares a Development Status of Beta.

What dependencies does installing AI-Practices pull in?

The manifest lists nine: numpy, pandas, scipy, matplotlib, seaborn, scikit-learn, torch, torchvision and tqdm. TensorFlow is not among them, even though the tech stack table lists TensorFlow and Keras and the neural networks module uses TFRecord. The longer requirements file is where TensorFlow appears.

Does AI-Practices come with a container setup?

Yes. A compose file defines four services built from one Dockerfile with different targets: development, a Jupyter service on port 8888, a test service that sets verbose pytest options, and a production service that mounts a data directory read-only. It also uses the deprecated `version` key.

Official sources

  1. Issues
  2. License: MIT
  3. Project website
  4. README
  5. zimingttkx/AI-Practices on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/zimingttkx-ai-practices.svg)](https://hysenlabs.com/projects/zimingttkx-ai-practices)