mlc-ai / mlc-llm

Universal LLM Deployment Engine with ML Compilation
https://llm.mlc.ai/
Apache License 2.0
19.12k stars 1.57k forks source link

[Tracking] SLM Rollout #1420

Closed CharlieFRuan closed 9 months ago

CharlieFRuan commented 10 months ago

Overview

Recently, the mlc-llm team has been working on migrating to a new model compilation workflow, which we refer to as SLM. SLM is the new approach to bring modularized python first compilation to MLC, allowing users and developers to support new models and features more easily.

Concretely for instance, here is the old file to support mistral: mistral.py, and here is the new file: mistral_model.py.

As SLM's development is wrapping up, this issue tracks the steps for rolling out SLM, including documentation, tutorials, prebuilt models/weights release, and more.

Action Items

S1: Compile-time Documentation Updates

https://github.com/mlc-ai/mlc-llm/pull/1421

S1.5: Split compile model w/ MLC into convert model and compile model library

https://github.com/mlc-ai/mlc-llm/pull/1464

This iterates S1, with the goal of making to two cmponents convert weight and model library clearer

S2: Tutorials

S3: Update prebuilts

S4: Deployment: WebLLM, Android, iOS

For WebLLM, Android, iOS, reflect new changes in flow after SLM, and:

S5 Runtime Documentation Updates (after S3)

https://github.com/mlc-ai/mlc-llm/pull/1491

S6 Update Project Overview

https://github.com/mlc-ai/mlc-llm/pull/1491

Future items

tqchen commented 10 months ago

To reduce the amount of extra concepts needed, let us consider moving the model_lib mapping directly to AppConfig in WebLLM, so we no longer need this field.

CharlieFRuan commented 10 months ago

Makes sense, I will make corresponding changes in web-llm.

tqchen commented 10 months ago

note on convention, let us use model-name-quant-MLC as the new convention of converted models

gfvvz commented 2 months ago

Hi, just curious about the SLM, and what is SLM short for?

CharlieFRuan commented 2 months ago

It was mainly an internal name for a more pythonic frontend to define LLMs and a more user-friendly flow for converting models via MLC

gfvvz commented 2 months ago

It was mainly an internal name for a more pythonic frontend to define LLMs and a more user-friendly flow for converting models via MLC

OKay