mlc-llm README

The project's README from github.com/mlc-ai/mlc-llm. As one markdown file: README.md.

MLC LLM

Installation License Join Discoard Related Repository: WebLLM

Universal LLM Deployment Engine with ML Compilation

Get Started | Documentation | Blog

About

MLC LLM is a machine learning compiler and high-performance deployment engine for large language models. The mission of this project is to enable everyone to develop, optimize, and deploy AI models natively on everyone's platforms. 

AMD GPU NVIDIA GPU Apple GPU Intel GPU
Linux / Win ✅ Vulkan, ROCm ✅ Vulkan, CUDA N/A ✅ Vulkan
macOS ✅ Metal (dGPU) N/A ✅ Metal ✅ Metal (iGPU)
Web Browser ✅ WebGPU and WASM
iOS / iPadOS ✅ Metal on Apple A-series GPU
Android ✅ OpenCL on Adreno GPU ✅ OpenCL on Mali GPU

MLC LLM compiles and runs code on MLCEngine -- a unified high-performance LLM inference engine across the above platforms. MLCEngine provides OpenAI-compatible API available through REST server, python, javascript, iOS, Android, all backed by the same engine and compiler that we keep improving with the community.

Get Started

Please visit our documentation to get started with MLC LLM.

Citation

Please consider citing our project if you find it useful:

@software{mlc-llm,
    author = {{MLC team}},
    title = {{MLC-LLM}},
    url = {https://github.com/mlc-ai/mlc-llm},
    year = {2023-2025}
}

The underlying techniques of MLC LLM include:

References (Click to expand)
@inproceedings{tensorir,
    author = {Feng, Siyuan and Hou, Bohan and Jin, Hongyi and Lin, Wuwei and Shao, Junru and Lai, Ruihang and Ye, Zihao and Zheng, Lianmin and Yu, Cody Hao and Yu, Yong and Chen, Tianqi},
    title = {TensorIR: An Abstraction for Automatic Tensorized Program Optimization},
    year = {2023},
    isbn = {9781450399166},
    publisher = {Association for Computing Machinery},
    address = {New York, NY, USA},
    url = {https://doi.org/10.1145/3575693.3576933},
    doi = {10.1145/3575693.3576933},
    booktitle = {Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2},
    pages = {804–817},
    numpages = {14},
    keywords = {Tensor Computation, Machine Learning Compiler, Deep Neural Network},
    location = {Vancouver, BC, Canada},
    series = {ASPLOS 2023}
}

@inproceedings{metaschedule,
    author = {Shao, Junru and Zhou, Xiyou and Feng, Siyuan and Hou, Bohan and Lai, Ruihang and Jin, Hongyi and Lin, Wuwei and Masuda, Masahiro and Yu, Cody Hao and Chen, Tianqi},
    booktitle = {Advances in Neural Information Processing Systems},
    editor = {S. Koyejo and S. Mohamed and A. Agarwal and D. Belgrave and K. Cho and A. Oh},
    pages = {35783--35796},
    publisher = {Curran Associates, Inc.},
    title = {Tensor Program Optimization with Probabilistic Programs},
    url = {https://proceedings.neurips.cc/paper_files/paper/2022/file/e894eafae43e68b4c8dfdacf742bcbf3-Paper-Conference.pdf},
    volume = {35},
    year = {2022}
}

@inproceedings{tvm,
    author = {Tianqi Chen and Thierry Moreau and Ziheng Jiang and Lianmin Zheng and Eddie Yan and Haichen Shen and Meghan Cowan and Leyuan Wang and Yuwei Hu and Luis Ceze and Carlos Guestrin and Arvind Krishnamurthy},
    title = {{TVM}: An Automated {End-to-End} Optimizing Compiler for Deep Learning},
    booktitle = {13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)},
    year = {2018},
    isbn = {978-1-939133-08-3},
    address = {Carlsbad, CA},
    pages = {578--594},
    url = {https://www.usenix.org/conference/osdi18/presentation/chen},
    publisher = {USENIX Association},
    month = oct,
}

mlc-llm (mlc-ai/mlc-llm)

Searching Database…

23.3K ·GitHub
这是什么?MLC LLM 是一个机器学习编译器和高性能部署引擎,让你几乎可以在任何平台上原生运行大语言模型,从服务器、手机到浏览器都行。
这是编译器、运行时,还是两者都是?两者都是:它用机器学习编译技术编译模型,然后通过 MLCEngine 运行,MLCEngine 是一个统一的推理引擎,在所有支持的平台上通用。
我该怎么让它跑起来?README 本身没有一条现成的快速命令;你需要按照项目文档中的 Installation 和 Quick start 指南,为你的目标平台完成 MLC LLM 的安装配置。
我的硬件需要什么 GPU 后端?这取决于你的设备:AMD GPU 用 Vulkan 或 ROCm,NVIDIA GPU 用 Vulkan 或 CUDA,Apple GPU 用 Metal,Intel GPU 用 Vulkan;浏览器中用 WebGPU/WASM,移动端 GPU 用 OpenCL。
每个 GPU 厂商在每个平台上都能用吗?不能,支持情况是按矩阵划分的,并不统一:例如 NVIDIA GPU 不支持 macOS,AMD GPU 在 web、iOS 和 Android 后端中不可用。
什么是 MLCEngine?MLCEngine 是统一的高性能推理引擎,MLC LLM 会把模型编译成它来运行;同一个引擎可以在服务器、iOS、Android 和网页浏览器上运行。
它提供兼容 OpenAI 的 API 吗?提供。MLCEngine 通过 REST 服务器提供兼容 OpenAI 的 API,同时还提供 Python、JavaScript、iOS 和 Android 的绑定,这些都由同一个引擎支撑。
为什么要编译模型,而不是直接用 PyTorch 运行?机器学习编译可以让 MLC LLM 生成针对硬件优化的代码(Vulkan、CUDA、Metal、ROCm、OpenCL、WebGPU),使同一个模型能在差异很大的平台上高效运行;通用框架的运行时开箱即用时做不到这一点。
MLC LLM 底层用的是什么技术?它构建在 TVM 机器学习编译栈之上,项目用它为每个目标平台生成并优化推理代码。
What are similar projects?tvm, qxotic, rizzo-flow, decider, llama.cpp, web-llm, qwen38-mtp, tilelang
Creator
mlc-ai
Size
36.3 MB
Stars
23.3K
Updated
CommitOct 06
Age
3y
Commits · 90 Days