Skip to main content

liger-autopatch

Adds Liger Kernel support for a new HuggingFace Transformers model, or modifies existing monkey-patching. Generates lce_forward, monkey-patch function, tests, and README entry. Use when adding a new model to Liger Kernel, when a user asks to patch an unsupported model, when extending MODEL_TYPE_TO_APPLY_LIGER_FN, or when modifying/updating/fixing an existing monkey-patch (e.g., adding a new kernel to an already-supported model, fixing instance patching, updating a patch for upstream HF changes).

Zur Installation springen

Quellinformationen

Repository
linkedin/Liger-Kernel
Letzte Quellaktivität
15. Mai 2026 um 19:59
Erkannte Sprache von SKILL.md
Englisch
Sterne
6.614
Forks
601

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
12 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
liger-autopatch
description
Adds Liger Kernel support for a new HuggingFace Transformers model, or modifies existing monkey-patching. Generates lce_forward, monkey-patch function, tests, and README entry. Use when adding a new model to Liger Kernel, when a user asks to patch an unsupported model, when extending MODEL_TYPE_TO_APPLY_LIGER_FN, or when modifying/updating/fixing an existing monkey-patch (e.g., adding a new kernel to an already-supported model, fixing instance patching, updating a patch for upstream HF changes).
# Liger Auto-Patch Adds Liger Kernel optimization support for a new HuggingFace model, or modifies existing monkey-patching, through a staged pipeline with human review between stages. Supports creating new model patches and modifying existing ones. ## Mode Detection - **Create mode**: User asks to add/patch/support a new model → full pipeline (Analyze → Generate → Validate) - **Modify mode**: User asks to update/fix/change/extend an existing monkey-patch → lighter pipeline (Change Impact Analysis → Apply Changes → Validate) Keywords that suggest modify mode: update, fix, change, add [kernel] to [existing model], extend, modify, new activation, new norm, bug in patch, upstream changed ## Pipeline (Create Mode) ### Stage 1: Analyze Follow the **Model Analyzer** workflow in [model-analyzer.md](model-analyzer.md). If the host runtime supports parallel subagents, this stage may be delegated to one; otherwise execute the workflow directly. This stage reads the HF `modeling_*.py` source and produces a **model profile** answering 12 architectural questions from [decision-matrix.md](decision-matrix.md). **Human checkpoint:** Present the profile. Confirm before proceeding. ### Stage 2: Generate Follow the **Code Generator** workflow in [code-generator.md](code-generator.md). Generates/modifies up to 13 files: 1. `src/liger_kernel/transformers/model/{model}.py` — NEW lce_forward 2. `src/liger_kernel/transformers/monkey_patch.py` — MODIFY 3. `src/liger_kernel/transformers/__init__.py` — MODIFY 4. `src/liger_kernel/transformers/model/output_classes.py` — MODIFY if needed 5. `test/transformers/test_monkey_patch.py` — MODIFY 6. `test/convergence/bf16/test_mini_models.py` — MODIFY (FLCE path) 7. `test/convergence/bf16/test_mini_models_with_logits.py` — MODIFY (non-FLCE path) 8. `test/convergence/fp32/test_mini_models.py` — MODIFY (FLCE path) 9. `test/convergence/fp32/test_mini_models_with_logits.py` — MODIFY (non-FLCE path) 10. `test/convergence/bf16/test_mini_models_multimodal.py` — MODIFY if VL model 11. `test/convergence/fp32/test_mini_models_multimodal.py` — MODIFY if VL model 12. `test/utils.py` — MODIFY 13. `README.md` — MODIFY **Human checkpoint:** Present changes for review. ### Stage 3: Validate Follow the **Validator** workflow in [validator.md](validator.md). Runs instance patching test, convergence test, and lint check. Retries up to 3 times on failure. **Human checkpoint:** Report final test results. ## Pipeline (Modify Mode) ### Stage 1: Change Impact Analysis Read the existing `apply_liger_kernel_to_{model_type}` function in `monkey_patch.py` and the relevant section of the upstream HF `modeling_{model_type}.py`. Produce a short change plan: - What is being added/changed/fixed - Which Liger kernel(s) are involved - Which files need modification (subset of the 13 files from create mode) - What the expected behavior should be after the change **Human checkpoint:** Present the change plan. Confirm before proceeding. ### Stage 2: Apply Changes Follow the **Code Generator** workflow in [code-generator.md](code-generator.md) in **modify mode**. **Human checkpoint:** Present changes for review. ### Stage 3: Validate Follow the **Validator** workflow in [validator.md](validator.md). This stage is **mandatory** — do not skip it. At minimum, run: 1. Instance patching test: `pytest test/transformers/test_monkey_patch.py -k "{model_type}" -xvs` 2. All convergence tests for the model: - `pytest test/convergence/bf16/test_mini_models.py -k "{model_type}" -xvs` (FLCE, bf16) - `pytest test/convergence/bf16/test_mini_models_with_logits.py -k "{model_type}" -xvs` (non-FLCE, bf16) - `pytest test/convergence/fp32/test_mini_models.py -k "{model_type}" -xvs` (FLCE, fp32) - `pytest test/convergence/fp32/test_mini_models_with_logits.py -k "{model_type}" -xvs` (non-FLCE, fp32) - If VL (multimodal) model, also run: - `pytest test/convergence/bf16/test_mini_models_multimodal.py -k "{model_type}" -xvs` - `pytest test/convergence/fp32/test_mini_models_multimodal.py -k "{model_type}" -xvs` 3. Checkstyle: `make checkstyle` **Human checkpoint:** Report final test results. ## Reference Files - [decision-matrix.md](decision-matrix.md) — 12 architectural decisions to resolve per model - [examples/llama-profile.md](examples/llama-profile.md) — Reference profile for standard dense model - [examples/gemma-profile.md](examples/gemma-profile.md) — Reference profile showing GeGLU + offset variant - Templates in [templates/](templates/) — Code generation patterns for each file type
Auf GitHub ansehen