liger-kernel-nightly 0.6.4.dev20251202094519__tar.gz → 0.6.4.dev20251206103502__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/PKG-INFO +2 -1
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/README.md +1 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/pyproject.toml +1 -1
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/rms_norm.py +1 -1
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/__init__.py +3 -0
- liger_kernel_nightly-0.6.4.dev20251206103502/src/liger_kernel/transformers/model/gpt_oss.py +211 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/monkey_patch.py +75 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel_nightly.egg-info/PKG-INFO +2 -1
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel_nightly.egg-info/SOURCES.txt +1 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/convergence/bf16/test_mini_models.py +67 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/convergence/fp32/test_mini_models.py +64 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/utils.py +12 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/pull_request_template.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/workflows/amd-ci.yml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/workflows/benchmark.yml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/workflows/docs.yml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/workflows/intel-ci.yml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/workflows/nvi-ci.yml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/workflows/publish-nightly.yml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.github/workflows/publish-release.yml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/.gitignore +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/LICENSE +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/Makefile +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/NOTICE +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/README.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/benchmarks_visualizer.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/data/all_benchmark_data.csv +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_cpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_distill_cosine_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_distill_jsd_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_dpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_dyt.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_embedding.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_fused_add_rms_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_fused_neighborhood_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_geglu.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_group_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_grpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_jsd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_kl_div.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_kto_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_layer_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_llama4_rope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_multi_token_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_orpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_poly_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_rms_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_rope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_simpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_softmax.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_sparse_multi_token_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_sparsemax.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_swiglu.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_tiled_mlp.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/benchmark_tvd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/benchmark/scripts/utils.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/dev/fmt-requirements.txt +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/dev/modal/benchmarks.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/dev/modal/tests.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/dev/modal/tests_bwd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/Examples.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/Getting-Started.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/High-Level-APIs.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/Low-Level-APIs.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/acknowledgement.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/contributing.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/images/banner.GIF +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/images/compose.gif +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/images/e2e-memory.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/images/e2e-tps.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/images/logo-banner.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/images/patch.gif +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/images/post-training.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/index.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/docs/license.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/alignment/accelerate_config.yaml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/alignment/run_orpo.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/README.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/callback.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/config/fsdp_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/img/gemma_7b_mem.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/img/gemma_7b_tp.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/img/llama_mem_alloc.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/img/llama_tps.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/img/qwen_mem_alloc.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/img/qwen_tps.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/launch_on_modal.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/requirements.txt +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/run_benchmarks.sh +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/run_gemma.sh +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/run_llama.sh +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/run_qwen.sh +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/run_qwen2_vl.sh +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/training.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/huggingface/training_multimodal.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/lightning/README.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/lightning/requirements.txt +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/lightning/training.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/README.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/callback.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/docs/images/Memory_Stage1_num_head_3.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/docs/images/Memory_Stage1_num_head_5.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/docs/images/Memory_Stage2_num_head_3.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/docs/images/Memory_Stage2_num_head_5.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/docs/images/Throughput_Stage1_num_head_3.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/docs/images/Throughput_Stage1_num_head_5.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/docs/images/Throughput_Stage2_num_head_3.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/docs/images/Throughput_Stage2_num_head_5.png +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/fsdp/acc-fsdp.conf +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/medusa_util.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/requirements.txt +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/scripts/llama3_8b_medusa.sh +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/examples/medusa/train.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/licenses/LICENSE-Apache-2.0 +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/licenses/LICENSE-MIT-AutoAWQ +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/licenses/LICENSE-MIT-Efficient-Cross-Entropy +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/licenses/LICENSE-MIT-llmc +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/licenses/LICENSE-MIT-triton +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/mkdocs.yml +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/setup.cfg +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/setup.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/README.md +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/cosine_similarity_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/cpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/dpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/functional.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/fused_linear_distillation.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/fused_linear_ppo.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/fused_linear_preference.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/fused_linear_unpaired_preference.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/grpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/jsd_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/kto_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/orpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/chunked_loss/simpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/env_report.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/cross_entropy.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/dyt.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/experimental/embedding.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/experimental/mm_int8int2.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/fused_add_rms_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/fused_neighborhood_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/geglu.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/group_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/grpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/jsd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/kl_div.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/layer_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/llama4_rope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/multi_token_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/poly_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/rope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/softmax.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/sparsemax.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/swiglu.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/tiled_mlp.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/tvd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/ops/utils.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/auto_model.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/cross_entropy.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/dyt.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/experimental/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/experimental/embedding.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/fsdp.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/functional.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/fused_add_rms_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/fused_neighborhood_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/geglu.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/group_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/grpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/jsd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/kl_div.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/layer_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/llama4_rope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/falcon_h1.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/gemma.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/gemma2.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/gemma3.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/glm4.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/glm4v.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/glm4v_moe.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/hunyuan_v1.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/internvl.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/llama.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/llama4.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/llava.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/loss_utils.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/mistral.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/mixtral.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/mllama.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/olmo2.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/olmo3.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/output_classes.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/paligemma.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/phi3.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/qwen2.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/qwen2_5_vl.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/qwen2_vl.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/qwen3.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/qwen3_moe.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/qwen3_next.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/qwen3_vl.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/qwen3_vl_moe.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/smollm3.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/model/smolvlm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/multi_token_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/poly_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/rms_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/rope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/softmax.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/sparsemax.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/swiglu.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/tiled_mlp.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/trainer/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/trainer/orpo_trainer.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/trainer_integration.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/transformers/tvd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/triton/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/triton/monkey_patch.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel/utils.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel_nightly.egg-info/dependency_links.txt +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel_nightly.egg-info/requires.txt +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/src/liger_kernel_nightly.egg-info/top_level.txt +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/chunked_loss/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/chunked_loss/test_cosine_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/chunked_loss/test_cpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/chunked_loss/test_dpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/chunked_loss/test_grpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/chunked_loss/test_jsd_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/chunked_loss/test_kto_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/chunked_loss/test_orpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/chunked_loss/test_simpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/conftest.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/convergence/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/convergence/bf16/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/convergence/bf16/test_mini_models_multimodal.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/convergence/bf16/test_mini_models_with_logits.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/convergence/fp32/__init__.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/convergence/fp32/test_mini_models_multimodal.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/convergence/fp32/test_mini_models_with_logits.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/Google/Gemma3/gemma-3-4b-it/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/Google/Paligemma/paligemma-3b-pt-224/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/HuggingFaceTB/SmolVLM2-256M-Video-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/Llava/llava-1.5-7b-hf/preprocessor_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/Llava/llava-1.5-7b-hf/processor_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/Llava/llava-1.5-7b-hf/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/OpenGVLab/InternVL3-1B-hf/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/Qwen/Qwen2-VL-7B-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/Qwen/Qwen2.5-VL-7B-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/Qwen/Qwen3-VL-4B-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/meta-llama/Llama-3.2-11B-Vision-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/fake_configs/meta-llama/Llama-4-Scout-17B-16E-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/scripts/generate_tokenized_dataset.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/tiny_shakespeare.txt +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/tiny_shakespeare_tokenized/data-00000-of-00001.arrow +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/tiny_shakespeare_tokenized/dataset_info.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/resources/tiny_shakespeare_tokenized/state.json +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_auto_model.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_dyt.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_embedding.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_flex_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_fused_add_rms_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_fused_neighborhood_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_geglu.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_group_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_grpo_loss.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_jsd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_kl_div.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_layer_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_mm_int8int2.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_monkey_patch.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_multi_token_attention.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_poly_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_rms_norm.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_rope.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_softmax.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_sparsemax.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_swiglu.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_tiled_mlp.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_trainer_integration.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_transformers.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/transformers/test_tvd.py +0 -0
- {liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/test/triton/test_triton_monkey_patch.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: liger_kernel_nightly
|
|
3
|
-
Version: 0.6.4.
|
|
3
|
+
Version: 0.6.4.dev20251206103502
|
|
4
4
|
Summary: Efficient Triton kernels for LLM Training
|
|
5
5
|
License: BSD 2-CLAUSE LICENSE
|
|
6
6
|
Copyright 2024 LinkedIn Corporation
|
|
@@ -312,6 +312,7 @@ loss.backward()
|
|
|
312
312
|
| OLMo2 | `liger_kernel.transformers.apply_liger_kernel_to_olmo2` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
313
313
|
| Olmo3 | `liger_kernel.transformers.apply_liger_kernel_to_olmo3` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
314
314
|
| GLM-4 | `liger_kernel.transformers.apply_liger_kernel_to_glm4` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
315
|
+
| GPT-OSS | `liger_kernel.transformers.apply_liger_kernel_to_gpt_oss` | RoPE, RMSNorm, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
315
316
|
| InternVL3 | `liger_kernel.transformers.apply_liger_kernel_to_internvl` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
316
317
|
| HunyuanV1 | `liger_kernel.transformers.apply_liger_kernel_to_hunyuan_v1_dense` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
317
318
|
| HunyuanV1 MoE | `liger_kernel.transformers.apply_liger_kernel_to_hunyuan_v1_moe` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
@@ -264,6 +264,7 @@ loss.backward()
|
|
|
264
264
|
| OLMo2 | `liger_kernel.transformers.apply_liger_kernel_to_olmo2` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
265
265
|
| Olmo3 | `liger_kernel.transformers.apply_liger_kernel_to_olmo3` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
266
266
|
| GLM-4 | `liger_kernel.transformers.apply_liger_kernel_to_glm4` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
267
|
+
| GPT-OSS | `liger_kernel.transformers.apply_liger_kernel_to_gpt_oss` | RoPE, RMSNorm, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
267
268
|
| InternVL3 | `liger_kernel.transformers.apply_liger_kernel_to_internvl` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
268
269
|
| HunyuanV1 | `liger_kernel.transformers.apply_liger_kernel_to_hunyuan_v1_dense` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
269
270
|
| HunyuanV1 MoE | `liger_kernel.transformers.apply_liger_kernel_to_hunyuan_v1_moe` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "liger_kernel_nightly"
|
|
7
|
-
version = "0.6.4.
|
|
7
|
+
version = "0.6.4.dev20251206103502"
|
|
8
8
|
description = "Efficient Triton kernels for LLM Training"
|
|
9
9
|
urls = { "Homepage" = "https://github.com/linkedin/Liger-Kernel" }
|
|
10
10
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
@@ -351,7 +351,7 @@ def _block_rms_norm_backward_kernel(
|
|
|
351
351
|
|
|
352
352
|
# calculate the gradient of W
|
|
353
353
|
if casting_mode == _CASTING_MODE_LLAMA:
|
|
354
|
-
|
|
354
|
+
# TODO(tcc): use tl.sum(..., dtype=tl.float32) once we upgrade to triton>=3.3.0
|
|
355
355
|
dW_row += tl.sum((dY_row * (X_row * rstd_row[:, None]).to(X_dtype)).to(tl.float32), 0)
|
|
356
356
|
else:
|
|
357
357
|
# here X_row is already in fp32 (see previous if block)
|
|
@@ -41,6 +41,7 @@ if TYPE_CHECKING:
|
|
|
41
41
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_glm4 # noqa: F401
|
|
42
42
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_glm4v # noqa: F401
|
|
43
43
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_glm4v_moe # noqa: F401
|
|
44
|
+
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_gpt_oss # noqa: F401
|
|
44
45
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_granite # noqa: F401
|
|
45
46
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_hunyuan_v1_dense # noqa: F401
|
|
46
47
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_hunyuan_v1_moe # noqa: F401
|
|
@@ -110,6 +111,7 @@ def __getattr__(name: str):
|
|
|
110
111
|
"apply_liger_kernel_to_glm4",
|
|
111
112
|
"apply_liger_kernel_to_glm4v",
|
|
112
113
|
"apply_liger_kernel_to_glm4v_moe",
|
|
114
|
+
"apply_liger_kernel_to_gpt_oss",
|
|
113
115
|
"apply_liger_kernel_to_granite",
|
|
114
116
|
"apply_liger_kernel_to_internvl",
|
|
115
117
|
"apply_liger_kernel_to_llama",
|
|
@@ -187,6 +189,7 @@ if _TRANSFORMERS_AVAILABLE:
|
|
|
187
189
|
"apply_liger_kernel_to_glm4",
|
|
188
190
|
"apply_liger_kernel_to_glm4v",
|
|
189
191
|
"apply_liger_kernel_to_glm4v_moe",
|
|
192
|
+
"apply_liger_kernel_to_gpt_oss",
|
|
190
193
|
"apply_liger_kernel_to_granite",
|
|
191
194
|
"apply_liger_kernel_to_internvl",
|
|
192
195
|
"apply_liger_kernel_to_llama",
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
from typing import Optional
|
|
3
|
+
from typing import Union
|
|
4
|
+
|
|
5
|
+
import torch
|
|
6
|
+
|
|
7
|
+
from transformers.modeling_outputs import MoeModelOutputWithPast
|
|
8
|
+
from transformers.models.mixtral.modeling_mixtral import load_balancing_loss_func
|
|
9
|
+
|
|
10
|
+
from liger_kernel.transformers.model.loss_utils import LigerForCausalLMLoss
|
|
11
|
+
from liger_kernel.transformers.model.loss_utils import unpack_cross_entropy_result
|
|
12
|
+
from liger_kernel.transformers.model.output_classes import LigerMoeCausalLMOutputWithPast
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def lce_forward(
|
|
16
|
+
self,
|
|
17
|
+
input_ids: Optional[torch.LongTensor] = None,
|
|
18
|
+
attention_mask: Optional[torch.Tensor] = None,
|
|
19
|
+
position_ids: Optional[torch.LongTensor] = None,
|
|
20
|
+
past_key_values: Optional[List[torch.FloatTensor]] = None,
|
|
21
|
+
inputs_embeds: Optional[torch.FloatTensor] = None,
|
|
22
|
+
labels: Optional[torch.LongTensor] = None,
|
|
23
|
+
use_cache: Optional[bool] = None,
|
|
24
|
+
output_attentions: Optional[bool] = None,
|
|
25
|
+
output_hidden_states: Optional[bool] = None,
|
|
26
|
+
output_router_logits: Optional[bool] = None,
|
|
27
|
+
cache_position: Optional[torch.LongTensor] = None,
|
|
28
|
+
logits_to_keep: Union[int, torch.Tensor] = 0,
|
|
29
|
+
skip_logits: Optional[bool] = None,
|
|
30
|
+
**kwargs,
|
|
31
|
+
) -> LigerMoeCausalLMOutputWithPast:
|
|
32
|
+
r"""
|
|
33
|
+
Forward pass for causal language modeling with Mixture of Experts (MoE) architecture using Liger Kernel optimizations.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
|
|
37
|
+
Indices of input sequence tokens in the vocabulary. Indices can be obtained using tokenizers.
|
|
38
|
+
attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
|
|
39
|
+
Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:
|
|
40
|
+
- 1 for tokens that are **not masked**,
|
|
41
|
+
- 0 for tokens that are **masked**.
|
|
42
|
+
position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
|
|
43
|
+
Indices of positions of each input sequence tokens in the position embeddings.
|
|
44
|
+
past_key_values (`List[torch.FloatTensor]` or `Cache`, *optional*):
|
|
45
|
+
Pre-computed hidden-states (key and values in the self-attention blocks) that can be used to speed up
|
|
46
|
+
sequential decoding. See `past_key_values` input for more details.
|
|
47
|
+
inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):
|
|
48
|
+
Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation.
|
|
49
|
+
This is useful if you want more control over how to convert `input_ids` indices into associated vectors
|
|
50
|
+
than the model's internal embedding lookup matrix.
|
|
51
|
+
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
|
|
52
|
+
Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
|
|
53
|
+
config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
|
|
54
|
+
(masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.
|
|
55
|
+
use_cache (`bool`, *optional*):
|
|
56
|
+
If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding
|
|
57
|
+
(see `past_key_values`).
|
|
58
|
+
output_attentions (`bool`, *optional*):
|
|
59
|
+
Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned
|
|
60
|
+
tensors for more detail.
|
|
61
|
+
output_hidden_states (`bool`, *optional*):
|
|
62
|
+
Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for
|
|
63
|
+
more detail.
|
|
64
|
+
output_router_logits (`bool`, *optional*):
|
|
65
|
+
Whether or not to return the router logits of all MoE layers. See `router_logits` under returned tensors
|
|
66
|
+
for more detail.
|
|
67
|
+
cache_position (`torch.LongTensor` of shape `(sequence_length)`, *optional*):
|
|
68
|
+
Indices depicting the position of the input sequence tokens in the sequence.
|
|
69
|
+
logits_to_keep (`int` or `torch.Tensor`, *optional*, defaults to 0):
|
|
70
|
+
If an `int`, compute logits for the last `logits_to_keep` tokens. If `0`, calculate logits for all
|
|
71
|
+
`input_ids` (special case). Only last token logits are needed for generation, and calculating them only for that
|
|
72
|
+
token can save memory, which becomes pretty significant for long sequences or large vocabulary size.
|
|
73
|
+
If a `torch.Tensor`, must be 1D corresponding to the indices to keep in the sequence length dimension.
|
|
74
|
+
This is useful when using packed tensor format (single dimension for batch and sequence length).
|
|
75
|
+
skip_logits (`bool`, *optional*):
|
|
76
|
+
Whether to skip logit computation and directly compute loss. If `None`, defaults to `True` during training
|
|
77
|
+
when labels are provided (to save memory), and `False` during inference.
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
`LigerMoeCausalLMOutputWithPast`: An output object containing:
|
|
81
|
+
- loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
|
|
82
|
+
Language modeling loss (for next-token prediction), including the auxiliary load balancing loss.
|
|
83
|
+
- aux_loss (`torch.FloatTensor`, *optional*, returned when `labels` is provided):
|
|
84
|
+
Auxiliary load balancing loss for the sparse MoE modules.
|
|
85
|
+
- logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`, *optional*):
|
|
86
|
+
Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax).
|
|
87
|
+
Note: logits are `None` during training when `skip_logits=True` to save memory.
|
|
88
|
+
- past_key_values (`Cache`, *optional*, returned when `use_cache=True` is passed):
|
|
89
|
+
Cached key and value projection states for faster sequential decoding.
|
|
90
|
+
- hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True`):
|
|
91
|
+
Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for each layer) of shape
|
|
92
|
+
`(batch_size, sequence_length, hidden_size)`. Hidden-states of the model at the output of each layer.
|
|
93
|
+
- attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True`):
|
|
94
|
+
Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length,
|
|
95
|
+
sequence_length)`. Attentions weights after the attention softmax.
|
|
96
|
+
- router_logits (`tuple(torch.FloatTensor)`, *optional*, returned when `output_router_logits=True`):
|
|
97
|
+
Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, sequence_length, num_experts)`.
|
|
98
|
+
Router logits of the MoE layers, useful to compute the auxiliary loss and z_loss.
|
|
99
|
+
- token_accuracy (`torch.FloatTensor`, *optional*, returned when `labels` is provided):
|
|
100
|
+
Token-level prediction accuracy.
|
|
101
|
+
|
|
102
|
+
Example:
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
>>> from transformers import AutoTokenizer, GptOssForCausalLM
|
|
106
|
+
>>> from liger_kernel.transformers import apply_liger_kernel_to_gpt_oss
|
|
107
|
+
|
|
108
|
+
>>> # Apply Liger Kernel patches for optimized performance
|
|
109
|
+
>>> apply_liger_kernel_to_gpt_oss()
|
|
110
|
+
|
|
111
|
+
>>> model = GptOssForCausalLM.from_pretrained("openai/gpt-oss-20b")
|
|
112
|
+
>>> tokenizer = AutoTokenizer.from_pretrained("openai/gpt-oss-20b")
|
|
113
|
+
|
|
114
|
+
>>> prompt = "Hey, are you conscious? Can you talk to me?"
|
|
115
|
+
>>> inputs = tokenizer(prompt, return_tensors="pt")
|
|
116
|
+
|
|
117
|
+
>>> # Inference: Forward pass returns logits
|
|
118
|
+
>>> outputs = model(**inputs)
|
|
119
|
+
>>> outputs.logits.shape
|
|
120
|
+
torch.Size([1, 12, 201088])
|
|
121
|
+
|
|
122
|
+
>>> # Get next token prediction
|
|
123
|
+
>>> next_token_logits = outputs.logits[:, -1, :]
|
|
124
|
+
>>> predicted_token_id = next_token_logits.argmax(dim=-1)
|
|
125
|
+
|
|
126
|
+
>>> # Training: Forward pass with labels returns loss
|
|
127
|
+
>>> labels = inputs.input_ids.clone()
|
|
128
|
+
>>> outputs = model(**inputs, labels=labels)
|
|
129
|
+
>>> outputs.loss
|
|
130
|
+
tensor(2.6454)
|
|
131
|
+
```"""
|
|
132
|
+
|
|
133
|
+
output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
|
|
134
|
+
output_router_logits = (
|
|
135
|
+
output_router_logits if output_router_logits is not None else self.config.output_router_logits
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
output_hidden_states = (
|
|
139
|
+
output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
# decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn)
|
|
143
|
+
outputs: MoeModelOutputWithPast = self.model(
|
|
144
|
+
input_ids=input_ids,
|
|
145
|
+
attention_mask=attention_mask,
|
|
146
|
+
position_ids=position_ids,
|
|
147
|
+
past_key_values=past_key_values,
|
|
148
|
+
inputs_embeds=inputs_embeds,
|
|
149
|
+
use_cache=use_cache,
|
|
150
|
+
output_attentions=output_attentions,
|
|
151
|
+
output_hidden_states=output_hidden_states,
|
|
152
|
+
output_router_logits=output_router_logits,
|
|
153
|
+
cache_position=cache_position,
|
|
154
|
+
**kwargs,
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
hidden_states = outputs.last_hidden_state
|
|
158
|
+
# Only compute necessary logits, and do not upcast them to float if we are not computing the loss
|
|
159
|
+
slice_indices = slice(-logits_to_keep, None) if isinstance(logits_to_keep, int) else logits_to_keep
|
|
160
|
+
kept_hidden_states = hidden_states[:, slice_indices, :]
|
|
161
|
+
|
|
162
|
+
shift_labels = kwargs.pop("shift_labels", None)
|
|
163
|
+
logits = None
|
|
164
|
+
loss = None
|
|
165
|
+
token_accuracy = None
|
|
166
|
+
|
|
167
|
+
if skip_logits is None:
|
|
168
|
+
skip_logits = self.training and (labels is not None or shift_labels is not None)
|
|
169
|
+
|
|
170
|
+
if skip_logits:
|
|
171
|
+
result = LigerForCausalLMLoss(
|
|
172
|
+
hidden_states=kept_hidden_states,
|
|
173
|
+
lm_head_weight=self.lm_head.weight,
|
|
174
|
+
labels=labels,
|
|
175
|
+
shift_labels=shift_labels,
|
|
176
|
+
hidden_size=self.config.hidden_size,
|
|
177
|
+
**kwargs,
|
|
178
|
+
)
|
|
179
|
+
loss, _, token_accuracy = unpack_cross_entropy_result(result)
|
|
180
|
+
else: # if in inference model materialize logits
|
|
181
|
+
logits = self.lm_head(kept_hidden_states)
|
|
182
|
+
if labels is not None or shift_labels is not None:
|
|
183
|
+
loss = self.loss_function(
|
|
184
|
+
logits=logits,
|
|
185
|
+
labels=labels,
|
|
186
|
+
shift_labels=shift_labels,
|
|
187
|
+
vocab_size=self.vocab_size,
|
|
188
|
+
**kwargs,
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
aux_loss = None
|
|
192
|
+
if output_router_logits:
|
|
193
|
+
aux_loss = load_balancing_loss_func(
|
|
194
|
+
outputs.router_logits,
|
|
195
|
+
self.num_experts,
|
|
196
|
+
self.num_experts_per_tok,
|
|
197
|
+
attention_mask,
|
|
198
|
+
)
|
|
199
|
+
if labels is not None:
|
|
200
|
+
loss += self.router_aux_loss_coef * aux_loss.to(loss.device) # make sure to reside in the same device
|
|
201
|
+
|
|
202
|
+
return LigerMoeCausalLMOutputWithPast(
|
|
203
|
+
loss=loss,
|
|
204
|
+
aux_loss=aux_loss,
|
|
205
|
+
logits=logits,
|
|
206
|
+
past_key_values=outputs.past_key_values,
|
|
207
|
+
hidden_states=outputs.hidden_states,
|
|
208
|
+
attentions=outputs.attentions,
|
|
209
|
+
router_logits=outputs.router_logits,
|
|
210
|
+
token_accuracy=token_accuracy,
|
|
211
|
+
)
|
|
@@ -20,6 +20,7 @@ from liger_kernel.transformers.model.gemma import lce_forward as gemma_lce_forwa
|
|
|
20
20
|
from liger_kernel.transformers.model.gemma import lce_forward_deprecated as gemma_lce_forward_deprecated
|
|
21
21
|
from liger_kernel.transformers.model.gemma2 import lce_forward as gemma2_lce_forward
|
|
22
22
|
from liger_kernel.transformers.model.gemma2 import lce_forward_deprecated as gemma2_lce_forward_deprected
|
|
23
|
+
from liger_kernel.transformers.model.gpt_oss import lce_forward as gpt_oss_lce_forward
|
|
23
24
|
from liger_kernel.transformers.model.llama import lce_forward as llama_lce_forward
|
|
24
25
|
from liger_kernel.transformers.model.llama import lce_forward_deprecated as llama_lce_forward_deprecated
|
|
25
26
|
from liger_kernel.transformers.model.llava import lce_forward as llava_lce_forward
|
|
@@ -1459,6 +1460,79 @@ def apply_liger_kernel_to_qwen3_moe(
|
|
|
1459
1460
|
_patch_rms_norm_module(decoder_layer.post_attention_layernorm)
|
|
1460
1461
|
|
|
1461
1462
|
|
|
1463
|
+
def apply_liger_kernel_to_gpt_oss(
|
|
1464
|
+
rope: bool = True,
|
|
1465
|
+
cross_entropy: bool = False,
|
|
1466
|
+
fused_linear_cross_entropy: bool = True,
|
|
1467
|
+
rms_norm: bool = True,
|
|
1468
|
+
swiglu: bool = False, # Set to False by default since GPT-OSS has custom expert implementation
|
|
1469
|
+
model: PreTrainedModel = None,
|
|
1470
|
+
) -> None:
|
|
1471
|
+
"""
|
|
1472
|
+
Apply Liger kernels to replace original implementation in HuggingFace GPT-OSS models.
|
|
1473
|
+
NOTE: GPT-OSS is supported in transformers >= 4.55.0
|
|
1474
|
+
NOTE: SwiGLU patching is disabled by default for GPT-OSS as it uses a custom expert
|
|
1475
|
+
implementation with clamping and MXFP4 quantization.
|
|
1476
|
+
|
|
1477
|
+
Args:
|
|
1478
|
+
rope (bool): Whether to apply Liger's rotary position embedding. Default is True.
|
|
1479
|
+
cross_entropy (bool): Whether to apply Liger's cross entropy loss. Default is False.
|
|
1480
|
+
fused_linear_cross_entropy (bool):
|
|
1481
|
+
Whether to apply Liger's fused linear cross entropy loss. Default is True.
|
|
1482
|
+
`cross_entropy` and `fused_linear_cross_entropy` cannot both be True.
|
|
1483
|
+
If `fused_linear_cross_entropy` is True, the logits will not be materialized but more memory efficient.
|
|
1484
|
+
rms_norm (bool): Whether to apply Liger's RMSNorm. Default is True.
|
|
1485
|
+
swiglu (bool): Whether to apply Liger's SwiGLU MLP. Default is False.
|
|
1486
|
+
Note: GPT-OSS uses a custom expert implementation, so SwiGLU patching is disabled by default.
|
|
1487
|
+
model (PreTrainedModel): The model instance to apply Liger kernels to, if the model has already been
|
|
1488
|
+
loaded. Default is None.
|
|
1489
|
+
"""
|
|
1490
|
+
if version.parse(transformers.__version__) < version.parse("4.55.0"):
|
|
1491
|
+
logger.warning("GPT-OSS support requires transformers >= 4.55.0")
|
|
1492
|
+
return
|
|
1493
|
+
|
|
1494
|
+
assert not (cross_entropy and fused_linear_cross_entropy), (
|
|
1495
|
+
"cross_entropy and fused_linear_cross_entropy cannot both be True."
|
|
1496
|
+
)
|
|
1497
|
+
|
|
1498
|
+
from transformers.models.gpt_oss import modeling_gpt_oss
|
|
1499
|
+
from transformers.models.gpt_oss.modeling_gpt_oss import GptOssModel
|
|
1500
|
+
|
|
1501
|
+
if rope:
|
|
1502
|
+
modeling_gpt_oss.apply_rotary_pos_emb = liger_rotary_pos_emb
|
|
1503
|
+
|
|
1504
|
+
if rms_norm:
|
|
1505
|
+
modeling_gpt_oss.GptOssRMSNorm = LigerRMSNorm
|
|
1506
|
+
|
|
1507
|
+
if cross_entropy:
|
|
1508
|
+
from transformers.loss.loss_utils import nn
|
|
1509
|
+
|
|
1510
|
+
nn.functional.cross_entropy = liger_cross_entropy
|
|
1511
|
+
|
|
1512
|
+
if fused_linear_cross_entropy:
|
|
1513
|
+
if model is not None:
|
|
1514
|
+
model.forward = MethodType(gpt_oss_lce_forward, model)
|
|
1515
|
+
else:
|
|
1516
|
+
modeling_gpt_oss.GptOssForCausalLM.forward = gpt_oss_lce_forward
|
|
1517
|
+
|
|
1518
|
+
# Note: SwiGLU patching is not implemented for GPT-OSS due to custom expert implementation
|
|
1519
|
+
# with clamping (swiglu_limit=7.0) and MXFP4 quantization
|
|
1520
|
+
|
|
1521
|
+
if model is not None:
|
|
1522
|
+
# The model instance already exists, so we need to additionally patch the
|
|
1523
|
+
# instance variables that reference already-instantiated modules
|
|
1524
|
+
|
|
1525
|
+
# get the base model from the model instance
|
|
1526
|
+
base_model: GptOssModel = getattr(model, model.base_model_prefix, model)
|
|
1527
|
+
|
|
1528
|
+
if rms_norm:
|
|
1529
|
+
_patch_rms_norm_module(base_model.norm)
|
|
1530
|
+
for decoder_layer in base_model.layers:
|
|
1531
|
+
if rms_norm:
|
|
1532
|
+
_patch_rms_norm_module(decoder_layer.input_layernorm)
|
|
1533
|
+
_patch_rms_norm_module(decoder_layer.post_attention_layernorm)
|
|
1534
|
+
|
|
1535
|
+
|
|
1462
1536
|
def apply_liger_kernel_to_qwen2_vl(
|
|
1463
1537
|
rope: bool = True,
|
|
1464
1538
|
cross_entropy: bool = False,
|
|
@@ -2752,6 +2826,7 @@ MODEL_TYPE_TO_APPLY_LIGER_FN = {
|
|
|
2752
2826
|
"glm4": apply_liger_kernel_to_glm4,
|
|
2753
2827
|
"glm4v": apply_liger_kernel_to_glm4v,
|
|
2754
2828
|
"glm4v_moe": apply_liger_kernel_to_glm4v_moe,
|
|
2829
|
+
"gpt_oss": apply_liger_kernel_to_gpt_oss,
|
|
2755
2830
|
"internvl": apply_liger_kernel_to_internvl,
|
|
2756
2831
|
"llama": apply_liger_kernel_to_llama,
|
|
2757
2832
|
"llama4_text": apply_liger_kernel_to_llama4,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: liger_kernel_nightly
|
|
3
|
-
Version: 0.6.4.
|
|
3
|
+
Version: 0.6.4.dev20251206103502
|
|
4
4
|
Summary: Efficient Triton kernels for LLM Training
|
|
5
5
|
License: BSD 2-CLAUSE LICENSE
|
|
6
6
|
Copyright 2024 LinkedIn Corporation
|
|
@@ -312,6 +312,7 @@ loss.backward()
|
|
|
312
312
|
| OLMo2 | `liger_kernel.transformers.apply_liger_kernel_to_olmo2` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
313
313
|
| Olmo3 | `liger_kernel.transformers.apply_liger_kernel_to_olmo3` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
314
314
|
| GLM-4 | `liger_kernel.transformers.apply_liger_kernel_to_glm4` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
315
|
+
| GPT-OSS | `liger_kernel.transformers.apply_liger_kernel_to_gpt_oss` | RoPE, RMSNorm, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
315
316
|
| InternVL3 | `liger_kernel.transformers.apply_liger_kernel_to_internvl` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
316
317
|
| HunyuanV1 | `liger_kernel.transformers.apply_liger_kernel_to_hunyuan_v1_dense` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
317
318
|
| HunyuanV1 MoE | `liger_kernel.transformers.apply_liger_kernel_to_hunyuan_v1_moe` | RoPE, RMSNorm, SwiGLU, CrossEntropyLoss, FusedLinearCrossEntropy |
|
|
@@ -200,6 +200,7 @@ src/liger_kernel/transformers/model/gemma3.py
|
|
|
200
200
|
src/liger_kernel/transformers/model/glm4.py
|
|
201
201
|
src/liger_kernel/transformers/model/glm4v.py
|
|
202
202
|
src/liger_kernel/transformers/model/glm4v_moe.py
|
|
203
|
+
src/liger_kernel/transformers/model/gpt_oss.py
|
|
203
204
|
src/liger_kernel/transformers/model/hunyuan_v1.py
|
|
204
205
|
src/liger_kernel/transformers/model/internvl.py
|
|
205
206
|
src/liger_kernel/transformers/model/llama.py
|
|
@@ -29,6 +29,7 @@ from liger_kernel.transformers import apply_liger_kernel_to_gemma3_text
|
|
|
29
29
|
from liger_kernel.transformers import apply_liger_kernel_to_glm4
|
|
30
30
|
from liger_kernel.transformers import apply_liger_kernel_to_glm4v
|
|
31
31
|
from liger_kernel.transformers import apply_liger_kernel_to_glm4v_moe
|
|
32
|
+
from liger_kernel.transformers import apply_liger_kernel_to_gpt_oss
|
|
32
33
|
from liger_kernel.transformers import apply_liger_kernel_to_granite
|
|
33
34
|
from liger_kernel.transformers import apply_liger_kernel_to_hunyuan_v1_dense
|
|
34
35
|
from liger_kernel.transformers import apply_liger_kernel_to_hunyuan_v1_moe
|
|
@@ -64,6 +65,7 @@ from test.utils import revert_liger_kernel_to_gemma3_text
|
|
|
64
65
|
from test.utils import revert_liger_kernel_to_glm4
|
|
65
66
|
from test.utils import revert_liger_kernel_to_glm4v
|
|
66
67
|
from test.utils import revert_liger_kernel_to_glm4v_moe
|
|
68
|
+
from test.utils import revert_liger_kernel_to_gpt_oss
|
|
67
69
|
from test.utils import revert_liger_kernel_to_granite
|
|
68
70
|
from test.utils import revert_liger_kernel_to_hunyuan_v1
|
|
69
71
|
from test.utils import revert_liger_kernel_to_hunyuan_v1_moe
|
|
@@ -267,6 +269,15 @@ try:
|
|
|
267
269
|
except ImportError:
|
|
268
270
|
FALCONH1_AVAILABLE = False
|
|
269
271
|
|
|
272
|
+
try:
|
|
273
|
+
# GPT-OSS is only available in transformers>=4.55.0
|
|
274
|
+
from transformers.models.gpt_oss.configuration_gpt_oss import GptOssConfig
|
|
275
|
+
from transformers.models.gpt_oss.modeling_gpt_oss import GptOssForCausalLM
|
|
276
|
+
|
|
277
|
+
GPT_OSS_AVAILABLE = True
|
|
278
|
+
except ImportError:
|
|
279
|
+
GPT_OSS_AVAILABLE = False
|
|
280
|
+
|
|
270
281
|
try:
|
|
271
282
|
# Qwen3Next is only available in transformers>=4.57.0
|
|
272
283
|
from transformers.models.qwen3_next.configuration_qwen3_next import Qwen3NextConfig
|
|
@@ -613,6 +624,43 @@ if QWEN3_AVAILABLE:
|
|
|
613
624
|
),
|
|
614
625
|
)
|
|
615
626
|
|
|
627
|
+
if GPT_OSS_AVAILABLE:
|
|
628
|
+
MINI_MODEL_SETUPS["mini_gpt_oss"] = MiniModelConfig(
|
|
629
|
+
liger_kernel_patch_func=apply_liger_kernel_to_gpt_oss,
|
|
630
|
+
liger_kernel_patch_revert_func=revert_liger_kernel_to_gpt_oss,
|
|
631
|
+
model_class=GptOssForCausalLM,
|
|
632
|
+
mini_model_config=GptOssConfig(
|
|
633
|
+
vocab_size=32000, # 201088
|
|
634
|
+
hidden_size=896,
|
|
635
|
+
intermediate_size=896, # Same as hidden_size for GPT-OSS
|
|
636
|
+
num_hidden_layers=4,
|
|
637
|
+
num_attention_heads=8,
|
|
638
|
+
num_key_value_heads=2,
|
|
639
|
+
head_dim=64,
|
|
640
|
+
hidden_act="silu",
|
|
641
|
+
max_position_embeddings=8192,
|
|
642
|
+
initializer_range=0.02,
|
|
643
|
+
rms_norm_eps=1e-5,
|
|
644
|
+
use_cache=True,
|
|
645
|
+
tie_word_embeddings=False,
|
|
646
|
+
rope_parameters={
|
|
647
|
+
"rope_type": "yarn",
|
|
648
|
+
"factor": 8.0,
|
|
649
|
+
"beta_fast": 32.0,
|
|
650
|
+
"beta_slow": 1.0,
|
|
651
|
+
"truncate": False,
|
|
652
|
+
"original_max_position_embeddings": 4096,
|
|
653
|
+
},
|
|
654
|
+
attention_dropout=0.0,
|
|
655
|
+
num_local_experts=8, # Reduced from 32 for mini model
|
|
656
|
+
num_experts_per_tok=2, # Reduced from 4 for mini model
|
|
657
|
+
router_aux_loss_coef=0.9,
|
|
658
|
+
output_router_logits=False,
|
|
659
|
+
sliding_window=128,
|
|
660
|
+
layer_types=["sliding_attention" if bool((i + 1) % 2) else "full_attention" for i in range(4)],
|
|
661
|
+
),
|
|
662
|
+
)
|
|
663
|
+
|
|
616
664
|
if GEMMA3_AVAILABLE:
|
|
617
665
|
MINI_MODEL_SETUPS["mini_gemma3_text"] = MiniModelConfig(
|
|
618
666
|
liger_kernel_patch_func=apply_liger_kernel_to_gemma3_text,
|
|
@@ -1664,6 +1712,25 @@ def run_mini_model(
|
|
|
1664
1712
|
),
|
|
1665
1713
|
],
|
|
1666
1714
|
),
|
|
1715
|
+
pytest.param(
|
|
1716
|
+
"mini_gpt_oss",
|
|
1717
|
+
32,
|
|
1718
|
+
1e-5,
|
|
1719
|
+
torch.bfloat16,
|
|
1720
|
+
5e-2,
|
|
1721
|
+
5e-2,
|
|
1722
|
+
1e-1,
|
|
1723
|
+
1e-1,
|
|
1724
|
+
1e-2,
|
|
1725
|
+
1e-2,
|
|
1726
|
+
marks=[
|
|
1727
|
+
pytest.mark.skipif(not supports_bfloat16(), reason="bfloat16 not supported on this GPU"),
|
|
1728
|
+
pytest.mark.skipif(
|
|
1729
|
+
not GPT_OSS_AVAILABLE,
|
|
1730
|
+
reason="GPT-OSS not available in this version of transformers",
|
|
1731
|
+
),
|
|
1732
|
+
],
|
|
1733
|
+
),
|
|
1667
1734
|
pytest.param(
|
|
1668
1735
|
"mini_qwen2_vl",
|
|
1669
1736
|
32,
|
|
@@ -29,6 +29,7 @@ from liger_kernel.transformers import apply_liger_kernel_to_gemma3_text
|
|
|
29
29
|
from liger_kernel.transformers import apply_liger_kernel_to_glm4
|
|
30
30
|
from liger_kernel.transformers import apply_liger_kernel_to_glm4v
|
|
31
31
|
from liger_kernel.transformers import apply_liger_kernel_to_glm4v_moe
|
|
32
|
+
from liger_kernel.transformers import apply_liger_kernel_to_gpt_oss
|
|
32
33
|
from liger_kernel.transformers import apply_liger_kernel_to_granite
|
|
33
34
|
from liger_kernel.transformers import apply_liger_kernel_to_hunyuan_v1_dense
|
|
34
35
|
from liger_kernel.transformers import apply_liger_kernel_to_hunyuan_v1_moe
|
|
@@ -64,6 +65,7 @@ from test.utils import revert_liger_kernel_to_gemma3_text
|
|
|
64
65
|
from test.utils import revert_liger_kernel_to_glm4
|
|
65
66
|
from test.utils import revert_liger_kernel_to_glm4v
|
|
66
67
|
from test.utils import revert_liger_kernel_to_glm4v_moe
|
|
68
|
+
from test.utils import revert_liger_kernel_to_gpt_oss
|
|
67
69
|
from test.utils import revert_liger_kernel_to_granite
|
|
68
70
|
from test.utils import revert_liger_kernel_to_hunyuan_v1
|
|
69
71
|
from test.utils import revert_liger_kernel_to_hunyuan_v1_moe
|
|
@@ -247,6 +249,15 @@ try:
|
|
|
247
249
|
except ImportError:
|
|
248
250
|
QWEN3_AVAILABLE = False
|
|
249
251
|
|
|
252
|
+
try:
|
|
253
|
+
# GPT-OSS is only available in transformers>=4.55.0
|
|
254
|
+
from transformers.models.gpt_oss.configuration_gpt_oss import GptOssConfig
|
|
255
|
+
from transformers.models.gpt_oss.modeling_gpt_oss import GptOssForCausalLM
|
|
256
|
+
|
|
257
|
+
GPT_OSS_AVAILABLE = True
|
|
258
|
+
except ImportError:
|
|
259
|
+
GPT_OSS_AVAILABLE = False
|
|
260
|
+
|
|
250
261
|
try:
|
|
251
262
|
# InternVL is only available in transformers>=4.52.1
|
|
252
263
|
from transformers.models.internvl.configuration_internvl import InternVLConfig
|
|
@@ -610,6 +621,43 @@ if QWEN3_AVAILABLE:
|
|
|
610
621
|
),
|
|
611
622
|
)
|
|
612
623
|
|
|
624
|
+
if GPT_OSS_AVAILABLE:
|
|
625
|
+
MINI_MODEL_SETUPS["mini_gpt_oss"] = MiniModelConfig(
|
|
626
|
+
liger_kernel_patch_func=apply_liger_kernel_to_gpt_oss,
|
|
627
|
+
liger_kernel_patch_revert_func=revert_liger_kernel_to_gpt_oss,
|
|
628
|
+
model_class=GptOssForCausalLM,
|
|
629
|
+
mini_model_config=GptOssConfig(
|
|
630
|
+
vocab_size=32000, # 201088
|
|
631
|
+
hidden_size=896,
|
|
632
|
+
intermediate_size=896, # Same as hidden_size for GPT-OSS
|
|
633
|
+
num_hidden_layers=4,
|
|
634
|
+
num_attention_heads=8,
|
|
635
|
+
num_key_value_heads=2,
|
|
636
|
+
head_dim=64,
|
|
637
|
+
hidden_act="silu",
|
|
638
|
+
max_position_embeddings=8192,
|
|
639
|
+
initializer_range=0.02,
|
|
640
|
+
rms_norm_eps=1e-5,
|
|
641
|
+
use_cache=True,
|
|
642
|
+
tie_word_embeddings=False,
|
|
643
|
+
rope_parameters={
|
|
644
|
+
"rope_type": "yarn",
|
|
645
|
+
"factor": 8.0,
|
|
646
|
+
"beta_fast": 32.0,
|
|
647
|
+
"beta_slow": 1.0,
|
|
648
|
+
"truncate": False,
|
|
649
|
+
"original_max_position_embeddings": 4096,
|
|
650
|
+
},
|
|
651
|
+
attention_dropout=0.0,
|
|
652
|
+
num_local_experts=8, # Reduced from 32 for mini model
|
|
653
|
+
num_experts_per_tok=2, # Reduced from 4 for mini model
|
|
654
|
+
router_aux_loss_coef=0.9,
|
|
655
|
+
output_router_logits=False,
|
|
656
|
+
sliding_window=128,
|
|
657
|
+
layer_types=["sliding_attention" if bool((i + 1) % 2) else "full_attention" for i in range(4)],
|
|
658
|
+
),
|
|
659
|
+
)
|
|
660
|
+
|
|
613
661
|
if GEMMA3_AVAILABLE:
|
|
614
662
|
MINI_MODEL_SETUPS["mini_gemma3_text"] = MiniModelConfig(
|
|
615
663
|
liger_kernel_patch_func=apply_liger_kernel_to_gemma3_text,
|
|
@@ -1608,6 +1656,22 @@ def run_mini_model(
|
|
|
1608
1656
|
reason="Qwen3 not available in this version of transformers",
|
|
1609
1657
|
),
|
|
1610
1658
|
),
|
|
1659
|
+
pytest.param(
|
|
1660
|
+
"mini_gpt_oss",
|
|
1661
|
+
32,
|
|
1662
|
+
1e-5,
|
|
1663
|
+
torch.float32,
|
|
1664
|
+
1e-8,
|
|
1665
|
+
1e-5,
|
|
1666
|
+
5e-3,
|
|
1667
|
+
1e-5,
|
|
1668
|
+
5e-3,
|
|
1669
|
+
1e-5,
|
|
1670
|
+
marks=pytest.mark.skipif(
|
|
1671
|
+
not GPT_OSS_AVAILABLE,
|
|
1672
|
+
reason="GPT-OSS not available in this version of transformers",
|
|
1673
|
+
),
|
|
1674
|
+
),
|
|
1611
1675
|
pytest.param( # qwen2_vl requires slightly larger tolerances to pass this test after bug fix to qwen2_vl in transformers v4.47.0
|
|
1612
1676
|
"mini_qwen2_vl",
|
|
1613
1677
|
32,
|
|
@@ -487,6 +487,18 @@ def revert_liger_kernel_to_qwen3_moe(model_config: MiniModelConfig):
|
|
|
487
487
|
print("Liger kernel patches have been reverted.")
|
|
488
488
|
|
|
489
489
|
|
|
490
|
+
def revert_liger_kernel_to_gpt_oss(model_config: MiniModelConfig):
|
|
491
|
+
"""
|
|
492
|
+
Revert all Liger kernel patches applied to GPT-OSS.
|
|
493
|
+
"""
|
|
494
|
+
from transformers.models.gpt_oss import modeling_gpt_oss
|
|
495
|
+
|
|
496
|
+
importlib.reload(modeling_gpt_oss)
|
|
497
|
+
model_config.model_class = modeling_gpt_oss.GptOssForCausalLM
|
|
498
|
+
|
|
499
|
+
print("Liger kernel patches have been reverted.")
|
|
500
|
+
|
|
501
|
+
|
|
490
502
|
def revert_liger_kernel_to_qwen2_vl(model_config: MiniModelConfig):
|
|
491
503
|
"""
|
|
492
504
|
Revert all Liger kernel patches applied to Qwen2-VL.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{liger_kernel_nightly-0.6.4.dev20251202094519 → liger_kernel_nightly-0.6.4.dev20251206103502}/NOTICE
RENAMED
|
File without changes
|