liger-kernel-nightly 0.5.3.dev20250221002845__tar.gz → 0.5.3.dev20250221011057__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/PKG-INFO +3 -2
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/README.md +2 -1
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_kto_loss.py +6 -6
- liger_kernel_nightly-0.5.3.dev20250221011057/docs/images/post-training.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/pyproject.toml +1 -1
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/__init__.py +1 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/monkey_patch.py +80 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel_nightly.egg-info/PKG-INFO +3 -2
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/convergence/bf16/test_mini_models.py +50 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/convergence/bf16/test_mini_models_with_logits.py +51 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/convergence/fp32/test_mini_models.py +38 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/convergence/fp32/test_mini_models_with_logits.py +39 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/utils.py +12 -0
- liger_kernel_nightly-0.5.3.dev20250221002845/docs/images/post-training.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.github/pull_request_template.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.github/workflows/amd-ci.yml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.github/workflows/docs.yml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.github/workflows/intel-ci.yml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.github/workflows/nvi-ci.yml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.github/workflows/publish-nightly.yml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.github/workflows/publish-release.yml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/.gitignore +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/LICENSE +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/Makefile +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/NOTICE +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/README.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/benchmarks_visualizer.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/data/all_benchmark_data.csv +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_cpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_distill_jsd_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_dpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_embedding.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_geglu.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_group_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_jsd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_kl_div.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_layer_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_orpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_rms_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_rope.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_simpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_swiglu.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/benchmark_tvd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/benchmark/scripts/utils.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/dev/fmt-requirements.txt +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/dev/modal/tests.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/dev/modal/tests_bwd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/Examples.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/Getting-Started.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/High-Level-APIs.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/Low-Level-APIs.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/acknowledgement.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/contributing.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/images/banner.GIF +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/images/compose.gif +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/images/e2e-memory.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/images/e2e-tps.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/images/logo-banner.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/images/patch.gif +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/index.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/docs/license.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/alignment/accelerate_config.yaml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/alignment/run_orpo.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/README.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/callback.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/config/fsdp_config.json +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/img/gemma_7b_mem.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/img/gemma_7b_tp.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/img/llama_mem_alloc.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/img/llama_tps.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/img/qwen_mem_alloc.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/img/qwen_tps.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/launch_on_modal.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/requirements.txt +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/run_benchmarks.sh +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/run_gemma.sh +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/run_llama.sh +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/run_qwen.sh +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/run_qwen2_vl.sh +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/training.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/huggingface/training_multimodal.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/lightning/README.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/lightning/requirements.txt +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/lightning/training.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/README.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/callback.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/docs/images/Memory_Stage1_num_head_3.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/docs/images/Memory_Stage1_num_head_5.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/docs/images/Memory_Stage2_num_head_3.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/docs/images/Memory_Stage2_num_head_5.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/docs/images/Throughput_Stage1_num_head_3.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/docs/images/Throughput_Stage1_num_head_5.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/docs/images/Throughput_Stage2_num_head_3.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/docs/images/Throughput_Stage2_num_head_5.png +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/fsdp/acc-fsdp.conf +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/medusa_util.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/requirements.txt +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/scripts/llama3_8b_medusa.sh +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/examples/medusa/train.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/licenses/LICENSE-Apache-2.0 +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/licenses/LICENSE-MIT-AutoAWQ +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/licenses/LICENSE-MIT-Efficient-Cross-Entropy +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/licenses/LICENSE-MIT-llmc +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/licenses/LICENSE-MIT-triton +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/mkdocs.yml +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/setup.cfg +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/setup.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/README.md +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/cpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/dpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/functional.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/fused_linear_distillation.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/fused_linear_preference.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/fused_linear_rlhf.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/fused_linear_unpaired_preference.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/grpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/jsd_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/kto_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/orpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/chunked_loss/simpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/env_report.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/experimental/embedding.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/experimental/mm_int8int2.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/geglu.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/group_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/jsd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/kl_div.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/layer_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/rms_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/rope.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/swiglu.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/tvd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/ops/utils.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/auto_model.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/experimental/embedding.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/functional.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/geglu.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/group_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/jsd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/kl_div.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/layer_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/gemma.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/gemma2.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/llama.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/mistral.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/mixtral.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/mllama.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/phi3.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/qwen2.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/model/qwen2_vl.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/rms_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/rope.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/swiglu.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/trainer/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/trainer/orpo_trainer.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/trainer_integration.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/transformers/tvd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/triton/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/triton/monkey_patch.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel/utils.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel_nightly.egg-info/SOURCES.txt +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel_nightly.egg-info/dependency_links.txt +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel_nightly.egg-info/requires.txt +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/src/liger_kernel_nightly.egg-info/top_level.txt +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/chunked_loss/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/chunked_loss/test_cpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/chunked_loss/test_dpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/chunked_loss/test_grpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/chunked_loss/test_jsd_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/chunked_loss/test_kto_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/chunked_loss/test_orpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/chunked_loss/test_simpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/conftest.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/convergence/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/convergence/bf16/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/convergence/bf16/test_mini_models_multimodal.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/convergence/fp32/__init__.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/convergence/fp32/test_mini_models_multimodal.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/resources/fake_configs/Qwen/Qwen2-VL-7B-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/resources/fake_configs/meta-llama/Llama-3.2-11B-Vision-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/resources/scripts/generate_tokenized_dataset.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/resources/tiny_shakespeare.txt +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/resources/tiny_shakespeare_tokenized/data-00000-of-00001.arrow +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/resources/tiny_shakespeare_tokenized/dataset_info.json +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/resources/tiny_shakespeare_tokenized/state.json +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_auto_model.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_embedding.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_geglu.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_group_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_jsd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_kl_div.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_layer_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_mm_int8int2.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_monkey_patch.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_rms_norm.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_rope.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_swiglu.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_trainer_integration.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_transformers.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/test/transformers/test_tvd.py +0 -0
- {liger_kernel_nightly-0.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/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.5.3.
|
3
|
+
Version: 0.5.3.dev20250221011057
|
4
4
|
Summary: Efficient Triton kernels for LLM Training
|
5
5
|
License: BSD 2-CLAUSE LICENSE
|
6
6
|
Copyright 2024 LinkedIn Corporation
|
@@ -126,7 +126,7 @@ Requires-Dist: mkdocs-material; extra == "dev"
|
|
126
126
|
|
127
127
|
**Liger Kernel** is a collection of Triton kernels designed specifically for LLM training. It can effectively increase multi-GPU **training throughput by 20%** and reduces **memory usage by 60%**. We have implemented **Hugging Face Compatible** `RMSNorm`, `RoPE`, `SwiGLU`, `CrossEntropy`, `FusedLinearCrossEntropy`, and more to come. The kernel works out of the box with [Flash Attention](https://github.com/Dao-AILab/flash-attention), [PyTorch FSDP](https://pytorch.org/tutorials/intermediate/FSDP_tutorial.html), and [Microsoft DeepSpeed](https://github.com/microsoft/DeepSpeed). We welcome contributions from the community to gather the best kernels for LLM training.
|
128
128
|
|
129
|
-
We've also added optimized Post-Training kernels that deliver **up to 80% memory savings** for alignment and distillation tasks. We support losses like DPO, CPO, ORPO, SimPO, JSD, and many more. Check out [how we optimize the memory](https://x.com/hsu_byron/status/1866577403918917655).
|
129
|
+
We've also added optimized Post-Training kernels that deliver **up to 80% memory savings** for alignment and distillation tasks. We support losses like DPO, CPO, ORPO, SimPO, KTO, JSD, and many more. Check out [how we optimize the memory](https://x.com/hsu_byron/status/1866577403918917655).
|
130
130
|
|
131
131
|
## Supercharge Your Model with Liger Kernel
|
132
132
|
|
@@ -341,6 +341,7 @@ loss.backward()
|
|
341
341
|
| Fused Linear DPO Loss | `liger_kernel.chunked_loss.LigerFusedLinearDPOLoss` |
|
342
342
|
| Fused Linear ORPO Loss | `liger_kernel.chunked_loss.LigerFusedLinearORPOLoss` |
|
343
343
|
| Fused Linear SimPO Loss | `liger_kernel.chunked_loss.LigerFusedLinearSimPOLoss` |
|
344
|
+
| Fused Linear KTO Loss | `liger_kernel.chunked_loss.LigerFusedLinearKTOLoss` |
|
344
345
|
|
345
346
|
### Distillation Kernels
|
346
347
|
|
@@ -78,7 +78,7 @@
|
|
78
78
|
|
79
79
|
**Liger Kernel** is a collection of Triton kernels designed specifically for LLM training. It can effectively increase multi-GPU **training throughput by 20%** and reduces **memory usage by 60%**. We have implemented **Hugging Face Compatible** `RMSNorm`, `RoPE`, `SwiGLU`, `CrossEntropy`, `FusedLinearCrossEntropy`, and more to come. The kernel works out of the box with [Flash Attention](https://github.com/Dao-AILab/flash-attention), [PyTorch FSDP](https://pytorch.org/tutorials/intermediate/FSDP_tutorial.html), and [Microsoft DeepSpeed](https://github.com/microsoft/DeepSpeed). We welcome contributions from the community to gather the best kernels for LLM training.
|
80
80
|
|
81
|
-
We've also added optimized Post-Training kernels that deliver **up to 80% memory savings** for alignment and distillation tasks. We support losses like DPO, CPO, ORPO, SimPO, JSD, and many more. Check out [how we optimize the memory](https://x.com/hsu_byron/status/1866577403918917655).
|
81
|
+
We've also added optimized Post-Training kernels that deliver **up to 80% memory savings** for alignment and distillation tasks. We support losses like DPO, CPO, ORPO, SimPO, KTO, JSD, and many more. Check out [how we optimize the memory](https://x.com/hsu_byron/status/1866577403918917655).
|
82
82
|
|
83
83
|
## Supercharge Your Model with Liger Kernel
|
84
84
|
|
@@ -293,6 +293,7 @@ loss.backward()
|
|
293
293
|
| Fused Linear DPO Loss | `liger_kernel.chunked_loss.LigerFusedLinearDPOLoss` |
|
294
294
|
| Fused Linear ORPO Loss | `liger_kernel.chunked_loss.LigerFusedLinearORPOLoss` |
|
295
295
|
| Fused Linear SimPO Loss | `liger_kernel.chunked_loss.LigerFusedLinearSimPOLoss` |
|
296
|
+
| Fused Linear KTO Loss | `liger_kernel.chunked_loss.LigerFusedLinearKTOLoss` |
|
296
297
|
|
297
298
|
### Distillation Kernels
|
298
299
|
|
@@ -103,8 +103,8 @@ def bench_memory_kto_loss(input: SingleBenchmarkRunInput) -> SingleBenchmarkRunO
|
|
103
103
|
H=H,
|
104
104
|
V=V,
|
105
105
|
dtype=dtype,
|
106
|
-
|
107
|
-
|
106
|
+
use_bias=bias,
|
107
|
+
use_ref_bias=bias,
|
108
108
|
ignore_index=ignore_index,
|
109
109
|
beta=beta,
|
110
110
|
).to(device)
|
@@ -113,8 +113,8 @@ def bench_memory_kto_loss(input: SingleBenchmarkRunInput) -> SingleBenchmarkRunO
|
|
113
113
|
H=H,
|
114
114
|
V=V,
|
115
115
|
dtype=dtype,
|
116
|
-
|
117
|
-
|
116
|
+
use_bias=bias,
|
117
|
+
use_ref_bias=bias,
|
118
118
|
ignore_index=ignore_index,
|
119
119
|
beta=beta,
|
120
120
|
).to(device)
|
@@ -189,7 +189,7 @@ def bench_speed_kto_loss(input: SingleBenchmarkRunInput) -> SingleBenchmarkRunOu
|
|
189
189
|
dtype=dtype,
|
190
190
|
beta=beta,
|
191
191
|
ignore_index=ignore_index,
|
192
|
-
|
192
|
+
use_bias=bias,
|
193
193
|
).to(device)
|
194
194
|
liger_kto_loss = LigerLMHeadKTO(
|
195
195
|
H=H,
|
@@ -197,7 +197,7 @@ def bench_speed_kto_loss(input: SingleBenchmarkRunInput) -> SingleBenchmarkRunOu
|
|
197
197
|
dtype=dtype,
|
198
198
|
beta=beta,
|
199
199
|
ignore_index=ignore_index,
|
200
|
-
|
200
|
+
use_bias=bias,
|
201
201
|
).to(device)
|
202
202
|
|
203
203
|
# Input shape: [B, T, H]
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "liger_kernel_nightly"
|
7
|
-
version = "0.5.3.
|
7
|
+
version = "0.5.3.dev20250221011057"
|
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" }
|
@@ -9,6 +9,7 @@ from liger_kernel.transformers.monkey_patch import _apply_liger_kernel # noqa:
|
|
9
9
|
from liger_kernel.transformers.monkey_patch import _apply_liger_kernel_to_instance # noqa: F401
|
10
10
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_gemma # noqa: F401
|
11
11
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_gemma2 # noqa: F401
|
12
|
+
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_granite # noqa: F401
|
12
13
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_llama # noqa: F401
|
13
14
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_mistral # noqa: F401
|
14
15
|
from liger_kernel.transformers.monkey_patch import apply_liger_kernel_to_mixtral # noqa: F401
|
@@ -61,6 +61,85 @@ def _patch_layer_norm_module(module, eps=1e-6):
|
|
61
61
|
_bind_method_to_module(module, "extra_repr", LigerLayerNorm.extra_repr)
|
62
62
|
|
63
63
|
|
64
|
+
def apply_liger_kernel_to_granite(
|
65
|
+
rope: bool = True,
|
66
|
+
cross_entropy: bool = True,
|
67
|
+
fused_linear_cross_entropy: bool = False,
|
68
|
+
rms_norm: bool = True,
|
69
|
+
swiglu: bool = True,
|
70
|
+
model: PreTrainedModel = None,
|
71
|
+
) -> None:
|
72
|
+
"""
|
73
|
+
Apply Liger kernels to replace original implementation in HuggingFace Granite 3 models
|
74
|
+
|
75
|
+
Args:
|
76
|
+
rope (bool): Whether to apply Liger's rotary position embedding. Default is True.
|
77
|
+
cross_entropy (bool): Whether to apply Liger's cross entropy loss. Default is True.
|
78
|
+
fused_linear_cross_entropy (bool):
|
79
|
+
Whether to apply Liger's fused linear cross entropy loss. Default is False.
|
80
|
+
`cross_entropy` and `fused_linear_cross_entropy` cannot both be True.
|
81
|
+
If `fused_linear_cross_entropy` is True, the logits will not be materialized but more memory efficient.
|
82
|
+
rms_norm (bool): Whether to apply Liger's RMSNorm. Default is True.
|
83
|
+
swiglu (bool): Whether to apply Liger's SwiGLU MLP. Default is True.
|
84
|
+
model (PreTrainedModel): The model instance to apply Liger kernels to, if the model has already been
|
85
|
+
loaded. Default is None.
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
Debugging notes:
|
90
|
+
If LigerSwiGLUMLP is OK for Llama, it should be fine for Granite, but it's not.
|
91
|
+
"""
|
92
|
+
|
93
|
+
assert not (cross_entropy and fused_linear_cross_entropy), (
|
94
|
+
"cross_entropy and fused_linear_cross_entropy cannot both be True."
|
95
|
+
)
|
96
|
+
|
97
|
+
from transformers.models.granite import modeling_granite
|
98
|
+
from transformers.models.granite.modeling_granite import GraniteModel
|
99
|
+
|
100
|
+
if swiglu:
|
101
|
+
modeling_granite.GraniteMLP = LigerSwiGLUMLP
|
102
|
+
|
103
|
+
if rms_norm:
|
104
|
+
modeling_granite.GraniteRMSNorm = LigerRMSNorm
|
105
|
+
|
106
|
+
if rope:
|
107
|
+
modeling_granite.apply_rotary_pos_emb = liger_rotary_pos_emb
|
108
|
+
|
109
|
+
if cross_entropy:
|
110
|
+
if transformer_version >= version.parse(SUPPORTED_TRANSFORMER_VERSION):
|
111
|
+
from transformers.loss.loss_utils import nn
|
112
|
+
|
113
|
+
nn.functional.cross_entropy = liger_cross_entropy
|
114
|
+
else:
|
115
|
+
logger.warning(TRANSFORMER_DEPRECATION_WARNING)
|
116
|
+
modeling_granite.CrossEntropyLoss = LigerCrossEntropyLoss
|
117
|
+
|
118
|
+
if fused_linear_cross_entropy:
|
119
|
+
raise NotImplementedError("LigerFusedLinearCrossEntropy is not available for Granite models.")
|
120
|
+
# NOTE: Granite model `GraniteForCausalLM.forward` scales logits each
|
121
|
+
# call, so we can't sidestep logit materialization. A bit more work
|
122
|
+
# would be needed to add a scaling term to the `LigerFusedLinearCrossEntropyFunction`
|
123
|
+
# for the logit output.
|
124
|
+
|
125
|
+
if model is not None:
|
126
|
+
# The model instance already exists, so we need to additionally patch the
|
127
|
+
# instance variables that reference already-instantiated modules (e.g. GraniteRMSNorm or GraniteMLP)
|
128
|
+
|
129
|
+
# get the base model from the model instance
|
130
|
+
base_model: GraniteModel = getattr(model, model.base_model_prefix, model)
|
131
|
+
|
132
|
+
if rms_norm:
|
133
|
+
_patch_rms_norm_module(base_model.norm)
|
134
|
+
|
135
|
+
for decoder_layer in base_model.layers:
|
136
|
+
if swiglu:
|
137
|
+
_bind_method_to_module(decoder_layer.mlp, "forward", LigerSwiGLUMLP.forward)
|
138
|
+
if rms_norm:
|
139
|
+
_patch_rms_norm_module(decoder_layer.input_layernorm)
|
140
|
+
_patch_rms_norm_module(decoder_layer.post_attention_layernorm)
|
141
|
+
|
142
|
+
|
64
143
|
def apply_liger_kernel_to_llama(
|
65
144
|
rope: bool = True,
|
66
145
|
cross_entropy: bool = False,
|
@@ -740,6 +819,7 @@ MODEL_TYPE_TO_APPLY_LIGER_FN = {
|
|
740
819
|
"gemma": apply_liger_kernel_to_gemma,
|
741
820
|
"gemma2": apply_liger_kernel_to_gemma2,
|
742
821
|
"llama": apply_liger_kernel_to_llama,
|
822
|
+
"granite": apply_liger_kernel_to_granite,
|
743
823
|
"mllama": apply_liger_kernel_to_mllama,
|
744
824
|
"mllama_text_model": apply_liger_kernel_to_mllama,
|
745
825
|
"mistral": apply_liger_kernel_to_mistral,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: liger_kernel_nightly
|
3
|
-
Version: 0.5.3.
|
3
|
+
Version: 0.5.3.dev20250221011057
|
4
4
|
Summary: Efficient Triton kernels for LLM Training
|
5
5
|
License: BSD 2-CLAUSE LICENSE
|
6
6
|
Copyright 2024 LinkedIn Corporation
|
@@ -126,7 +126,7 @@ Requires-Dist: mkdocs-material; extra == "dev"
|
|
126
126
|
|
127
127
|
**Liger Kernel** is a collection of Triton kernels designed specifically for LLM training. It can effectively increase multi-GPU **training throughput by 20%** and reduces **memory usage by 60%**. We have implemented **Hugging Face Compatible** `RMSNorm`, `RoPE`, `SwiGLU`, `CrossEntropy`, `FusedLinearCrossEntropy`, and more to come. The kernel works out of the box with [Flash Attention](https://github.com/Dao-AILab/flash-attention), [PyTorch FSDP](https://pytorch.org/tutorials/intermediate/FSDP_tutorial.html), and [Microsoft DeepSpeed](https://github.com/microsoft/DeepSpeed). We welcome contributions from the community to gather the best kernels for LLM training.
|
128
128
|
|
129
|
-
We've also added optimized Post-Training kernels that deliver **up to 80% memory savings** for alignment and distillation tasks. We support losses like DPO, CPO, ORPO, SimPO, JSD, and many more. Check out [how we optimize the memory](https://x.com/hsu_byron/status/1866577403918917655).
|
129
|
+
We've also added optimized Post-Training kernels that deliver **up to 80% memory savings** for alignment and distillation tasks. We support losses like DPO, CPO, ORPO, SimPO, KTO, JSD, and many more. Check out [how we optimize the memory](https://x.com/hsu_byron/status/1866577403918917655).
|
130
130
|
|
131
131
|
## Supercharge Your Model with Liger Kernel
|
132
132
|
|
@@ -341,6 +341,7 @@ loss.backward()
|
|
341
341
|
| Fused Linear DPO Loss | `liger_kernel.chunked_loss.LigerFusedLinearDPOLoss` |
|
342
342
|
| Fused Linear ORPO Loss | `liger_kernel.chunked_loss.LigerFusedLinearORPOLoss` |
|
343
343
|
| Fused Linear SimPO Loss | `liger_kernel.chunked_loss.LigerFusedLinearSimPOLoss` |
|
344
|
+
| Fused Linear KTO Loss | `liger_kernel.chunked_loss.LigerFusedLinearKTOLoss` |
|
344
345
|
|
345
346
|
### Distillation Kernels
|
346
347
|
|
@@ -7,6 +7,8 @@ from transformers.models.gemma import GemmaConfig
|
|
7
7
|
from transformers.models.gemma import GemmaForCausalLM
|
8
8
|
from transformers.models.gemma2 import Gemma2Config
|
9
9
|
from transformers.models.gemma2 import Gemma2ForCausalLM
|
10
|
+
from transformers.models.granite import GraniteConfig
|
11
|
+
from transformers.models.granite import GraniteForCausalLM
|
10
12
|
from transformers.models.llama import LlamaConfig
|
11
13
|
from transformers.models.llama import LlamaForCausalLM
|
12
14
|
from transformers.models.mistral import MistralConfig
|
@@ -20,6 +22,7 @@ from transformers.models.qwen2 import Qwen2ForCausalLM
|
|
20
22
|
|
21
23
|
from liger_kernel.transformers import apply_liger_kernel_to_gemma
|
22
24
|
from liger_kernel.transformers import apply_liger_kernel_to_gemma2
|
25
|
+
from liger_kernel.transformers import apply_liger_kernel_to_granite
|
23
26
|
from liger_kernel.transformers import apply_liger_kernel_to_llama
|
24
27
|
from liger_kernel.transformers import apply_liger_kernel_to_mistral
|
25
28
|
from liger_kernel.transformers import apply_liger_kernel_to_mixtral
|
@@ -32,6 +35,7 @@ from test.utils import MiniModelConfig
|
|
32
35
|
from test.utils import assert_verbose_allclose
|
33
36
|
from test.utils import revert_liger_kernel_to_gemma
|
34
37
|
from test.utils import revert_liger_kernel_to_gemma2
|
38
|
+
from test.utils import revert_liger_kernel_to_granite
|
35
39
|
from test.utils import revert_liger_kernel_to_llama
|
36
40
|
from test.utils import revert_liger_kernel_to_mistral
|
37
41
|
from test.utils import revert_liger_kernel_to_mixtral
|
@@ -66,6 +70,39 @@ from liger_kernel.utils import infer_device
|
|
66
70
|
device = infer_device()
|
67
71
|
|
68
72
|
MINI_MODEL_SETUPS = {
|
73
|
+
"mini_granite3": MiniModelConfig(
|
74
|
+
liger_kernel_patch_func=apply_liger_kernel_to_granite,
|
75
|
+
liger_kernel_patch_revert_func=revert_liger_kernel_to_granite,
|
76
|
+
model_class=GraniteForCausalLM,
|
77
|
+
mini_model_config=GraniteConfig(
|
78
|
+
attention_bias=False,
|
79
|
+
attention_dropout=0.1,
|
80
|
+
# Special token ids/vocab size to match Mistral-7B tokenizer used to create the tokenized dataset
|
81
|
+
# https://huggingface.co/mistralai/Mistral-7B-v0.1/blob/main/config.json
|
82
|
+
bos_token_id=1, # 128000
|
83
|
+
eos_token_id=2, # 128001
|
84
|
+
hidden_act="silu",
|
85
|
+
hidden_size=1024, # 4096
|
86
|
+
initializer_range=0.02,
|
87
|
+
intermediate_size=2048, # 14336
|
88
|
+
max_position_embeddings=8192,
|
89
|
+
num_attention_heads=8, # 32
|
90
|
+
num_hidden_layers=4, # 32
|
91
|
+
num_key_value_heads=2, # 8
|
92
|
+
pretraining_tp=1,
|
93
|
+
rms_norm_eps=1e-5,
|
94
|
+
rope_scaling=None,
|
95
|
+
rope_theta=500000.0,
|
96
|
+
tie_word_embeddings=False,
|
97
|
+
use_cache=True,
|
98
|
+
vocab_size=32000, # 128256,
|
99
|
+
# At rope backward
|
100
|
+
# Eager produces incontiguous dq and dk
|
101
|
+
# SDPA produces contiguous dq and incontiguous dk
|
102
|
+
# Flash_attn produces contiguous dq and dk
|
103
|
+
attn_implementation="sdpa", # default value, pytorch native attention
|
104
|
+
),
|
105
|
+
),
|
69
106
|
"mini_llama3": MiniModelConfig(
|
70
107
|
liger_kernel_patch_func=apply_liger_kernel_to_llama,
|
71
108
|
liger_kernel_patch_revert_func=revert_liger_kernel_to_llama,
|
@@ -470,6 +507,19 @@ def run_mini_model(
|
|
470
507
|
1e-2,
|
471
508
|
marks=pytest.mark.skipif(not supports_bfloat16(), reason="bfloat16 not supported on this GPU"),
|
472
509
|
),
|
510
|
+
pytest.param(
|
511
|
+
"mini_granite3",
|
512
|
+
32,
|
513
|
+
1e-4,
|
514
|
+
torch.bfloat16,
|
515
|
+
1e-3,
|
516
|
+
1e-2,
|
517
|
+
1e-1,
|
518
|
+
1e-2,
|
519
|
+
1e-2,
|
520
|
+
1e-2,
|
521
|
+
marks=pytest.mark.skipif(not supports_bfloat16(), reason="bfloat16 not supported on this GPU"),
|
522
|
+
),
|
473
523
|
pytest.param(
|
474
524
|
"mini_mllama",
|
475
525
|
32,
|
@@ -7,6 +7,8 @@ from transformers.models.gemma import GemmaConfig
|
|
7
7
|
from transformers.models.gemma import GemmaForCausalLM
|
8
8
|
from transformers.models.gemma2 import Gemma2Config
|
9
9
|
from transformers.models.gemma2 import Gemma2ForCausalLM
|
10
|
+
from transformers.models.granite import GraniteConfig
|
11
|
+
from transformers.models.granite import GraniteForCausalLM
|
10
12
|
from transformers.models.llama import LlamaConfig
|
11
13
|
from transformers.models.llama import LlamaForCausalLM
|
12
14
|
from transformers.models.mistral import MistralConfig
|
@@ -20,6 +22,7 @@ from transformers.models.qwen2 import Qwen2ForCausalLM
|
|
20
22
|
|
21
23
|
from liger_kernel.transformers import apply_liger_kernel_to_gemma
|
22
24
|
from liger_kernel.transformers import apply_liger_kernel_to_gemma2
|
25
|
+
from liger_kernel.transformers import apply_liger_kernel_to_granite
|
23
26
|
from liger_kernel.transformers import apply_liger_kernel_to_llama
|
24
27
|
from liger_kernel.transformers import apply_liger_kernel_to_mistral
|
25
28
|
from liger_kernel.transformers import apply_liger_kernel_to_mixtral
|
@@ -32,6 +35,7 @@ from test.utils import MiniModelConfig
|
|
32
35
|
from test.utils import assert_verbose_allclose
|
33
36
|
from test.utils import revert_liger_kernel_to_gemma
|
34
37
|
from test.utils import revert_liger_kernel_to_gemma2
|
38
|
+
from test.utils import revert_liger_kernel_to_granite
|
35
39
|
from test.utils import revert_liger_kernel_to_llama
|
36
40
|
from test.utils import revert_liger_kernel_to_mistral
|
37
41
|
from test.utils import revert_liger_kernel_to_mixtral
|
@@ -99,6 +103,40 @@ MINI_MODEL_SETUPS = {
|
|
99
103
|
attn_implementation="sdpa", # default value, pytorch native attention
|
100
104
|
),
|
101
105
|
),
|
106
|
+
"mini_granite3": MiniModelConfig(
|
107
|
+
liger_kernel_patch_func=apply_liger_kernel_to_granite,
|
108
|
+
liger_kernel_patch_revert_func=revert_liger_kernel_to_granite,
|
109
|
+
model_class=GraniteForCausalLM,
|
110
|
+
mini_model_config=GraniteConfig(
|
111
|
+
attention_bias=False,
|
112
|
+
attention_dropout=0.0,
|
113
|
+
# Special token ids/vocab size to match Mistral-7B tokenizer used to create the tokenized dataset
|
114
|
+
# https://huggingface.co/mistralai/Mistral-7B-v0.1/blob/main/config.json
|
115
|
+
bos_token_id=1, # 128000
|
116
|
+
eos_token_id=2, # 128001
|
117
|
+
hidden_act="silu",
|
118
|
+
hidden_size=1024, # 4096
|
119
|
+
initializer_range=0.02,
|
120
|
+
intermediate_size=2048, # 14336
|
121
|
+
max_position_embeddings=8192,
|
122
|
+
num_attention_heads=8, # 32
|
123
|
+
num_hidden_layers=4, # 32
|
124
|
+
num_key_value_heads=2, # 8
|
125
|
+
pretraining_tp=1,
|
126
|
+
rms_norm_eps=1e-5,
|
127
|
+
rope_scaling=None,
|
128
|
+
rope_theta=500000.0,
|
129
|
+
tie_word_embeddings=False,
|
130
|
+
use_cache=True,
|
131
|
+
vocab_size=32000, # 128256,
|
132
|
+
logits_scaling=8.0,
|
133
|
+
# At rope backward
|
134
|
+
# Eager produces incontiguous dq and dk
|
135
|
+
# SDPA produces contiguous dq and incontiguous dk
|
136
|
+
# Flash_attn produces contiguous dq and dk
|
137
|
+
attn_implementation="sdpa", # default value, pytorch native attention
|
138
|
+
),
|
139
|
+
),
|
102
140
|
"mini_qwen2": MiniModelConfig(
|
103
141
|
liger_kernel_patch_func=apply_liger_kernel_to_qwen2,
|
104
142
|
liger_kernel_patch_revert_func=revert_liger_kernel_to_qwen2,
|
@@ -469,6 +507,19 @@ def run_mini_model(
|
|
469
507
|
1e-2,
|
470
508
|
marks=pytest.mark.skipif(not supports_bfloat16(), reason="bfloat16 not supported on this GPU"),
|
471
509
|
),
|
510
|
+
pytest.param(
|
511
|
+
"mini_granite3",
|
512
|
+
32,
|
513
|
+
1e-4,
|
514
|
+
torch.bfloat16,
|
515
|
+
1e-3, # loss
|
516
|
+
1e-2, # loss
|
517
|
+
1e-1, # logits atol
|
518
|
+
1e-2, # logits rtol
|
519
|
+
1e-2,
|
520
|
+
1e-2,
|
521
|
+
marks=pytest.mark.skipif(not supports_bfloat16(), reason="bfloat16 not supported on this GPU"),
|
522
|
+
),
|
472
523
|
pytest.param(
|
473
524
|
"mini_mllama",
|
474
525
|
32,
|
@@ -7,6 +7,8 @@ from transformers.models.gemma import GemmaConfig
|
|
7
7
|
from transformers.models.gemma import GemmaForCausalLM
|
8
8
|
from transformers.models.gemma2 import Gemma2Config
|
9
9
|
from transformers.models.gemma2 import Gemma2ForCausalLM
|
10
|
+
from transformers.models.granite import GraniteConfig
|
11
|
+
from transformers.models.granite import GraniteForCausalLM
|
10
12
|
from transformers.models.llama import LlamaConfig
|
11
13
|
from transformers.models.llama import LlamaForCausalLM
|
12
14
|
from transformers.models.mistral import MistralConfig
|
@@ -20,6 +22,7 @@ from transformers.models.qwen2 import Qwen2ForCausalLM
|
|
20
22
|
|
21
23
|
from liger_kernel.transformers import apply_liger_kernel_to_gemma
|
22
24
|
from liger_kernel.transformers import apply_liger_kernel_to_gemma2
|
25
|
+
from liger_kernel.transformers import apply_liger_kernel_to_granite
|
23
26
|
from liger_kernel.transformers import apply_liger_kernel_to_llama
|
24
27
|
from liger_kernel.transformers import apply_liger_kernel_to_mistral
|
25
28
|
from liger_kernel.transformers import apply_liger_kernel_to_mixtral
|
@@ -32,6 +35,7 @@ from test.utils import MiniModelConfig
|
|
32
35
|
from test.utils import assert_verbose_allclose
|
33
36
|
from test.utils import revert_liger_kernel_to_gemma
|
34
37
|
from test.utils import revert_liger_kernel_to_gemma2
|
38
|
+
from test.utils import revert_liger_kernel_to_granite
|
35
39
|
from test.utils import revert_liger_kernel_to_llama
|
36
40
|
from test.utils import revert_liger_kernel_to_mistral
|
37
41
|
from test.utils import revert_liger_kernel_to_mixtral
|
@@ -65,6 +69,39 @@ from liger_kernel.utils import infer_device
|
|
65
69
|
device = infer_device()
|
66
70
|
|
67
71
|
MINI_MODEL_SETUPS = {
|
72
|
+
"mini_granite3": MiniModelConfig(
|
73
|
+
liger_kernel_patch_func=apply_liger_kernel_to_granite,
|
74
|
+
liger_kernel_patch_revert_func=revert_liger_kernel_to_granite,
|
75
|
+
model_class=GraniteForCausalLM,
|
76
|
+
mini_model_config=GraniteConfig(
|
77
|
+
attention_bias=False,
|
78
|
+
attention_dropout=0.1,
|
79
|
+
# Special token ids/vocab size to match Mistral-7B tokenizer used to create the tokenized dataset
|
80
|
+
# https://huggingface.co/mistralai/Mistral-7B-v0.1/blob/main/config.json
|
81
|
+
bos_token_id=1, # 128000
|
82
|
+
eos_token_id=2, # 128001
|
83
|
+
hidden_act="silu",
|
84
|
+
hidden_size=1024, # 4096
|
85
|
+
initializer_range=0.02,
|
86
|
+
intermediate_size=2048, # 14336
|
87
|
+
max_position_embeddings=8192,
|
88
|
+
num_attention_heads=8, # 32
|
89
|
+
num_hidden_layers=4, # 32
|
90
|
+
num_key_value_heads=2, # 8
|
91
|
+
pretraining_tp=1,
|
92
|
+
rms_norm_eps=1e-5,
|
93
|
+
rope_scaling=None,
|
94
|
+
rope_theta=500000.0,
|
95
|
+
tie_word_embeddings=False,
|
96
|
+
use_cache=True,
|
97
|
+
vocab_size=32000, # 128256,
|
98
|
+
# At rope backward
|
99
|
+
# Eager produces incontiguous dq and dk
|
100
|
+
# SDPA produces contiguous dq and incontiguous dk
|
101
|
+
# Flash_attn produces contiguous dq and dk
|
102
|
+
attn_implementation="sdpa", # default value, pytorch native attention
|
103
|
+
),
|
104
|
+
),
|
68
105
|
"mini_llama3": MiniModelConfig(
|
69
106
|
liger_kernel_patch_func=apply_liger_kernel_to_llama,
|
70
107
|
liger_kernel_patch_revert_func=revert_liger_kernel_to_llama,
|
@@ -498,6 +535,7 @@ def run_mini_model(
|
|
498
535
|
("mini_gemma1", 32, 1e-4, torch.float32, 1e-8, 1e-4, 5e-3, 1e-5, 5e-3, 1e-5),
|
499
536
|
("mini_gemma1.1", 32, 1e-4, torch.float32, 1e-8, 1e-4, 5e-3, 1e-5, 5e-3, 1e-5),
|
500
537
|
("mini_gemma2", 32, 1e-4, torch.float32, 1e-8, 1e-4, 5e-3, 1e-5, 5e-3, 1e-5),
|
538
|
+
("mini_granite3", 32, 1e-4, torch.float32, 1e-8, 1e-4, 5e-3, 1e-5, 5e-3, 1e-5),
|
501
539
|
],
|
502
540
|
)
|
503
541
|
def test_mini_model(
|
@@ -7,6 +7,8 @@ from transformers.models.gemma import GemmaConfig
|
|
7
7
|
from transformers.models.gemma import GemmaForCausalLM
|
8
8
|
from transformers.models.gemma2 import Gemma2Config
|
9
9
|
from transformers.models.gemma2 import Gemma2ForCausalLM
|
10
|
+
from transformers.models.granite import GraniteConfig
|
11
|
+
from transformers.models.granite import GraniteForCausalLM
|
10
12
|
from transformers.models.llama import LlamaConfig
|
11
13
|
from transformers.models.llama import LlamaForCausalLM
|
12
14
|
from transformers.models.mistral import MistralConfig
|
@@ -20,6 +22,7 @@ from transformers.models.qwen2 import Qwen2ForCausalLM
|
|
20
22
|
|
21
23
|
from liger_kernel.transformers import apply_liger_kernel_to_gemma
|
22
24
|
from liger_kernel.transformers import apply_liger_kernel_to_gemma2
|
25
|
+
from liger_kernel.transformers import apply_liger_kernel_to_granite
|
23
26
|
from liger_kernel.transformers import apply_liger_kernel_to_llama
|
24
27
|
from liger_kernel.transformers import apply_liger_kernel_to_mistral
|
25
28
|
from liger_kernel.transformers import apply_liger_kernel_to_mixtral
|
@@ -32,6 +35,7 @@ from test.utils import MiniModelConfig
|
|
32
35
|
from test.utils import assert_verbose_allclose
|
33
36
|
from test.utils import revert_liger_kernel_to_gemma
|
34
37
|
from test.utils import revert_liger_kernel_to_gemma2
|
38
|
+
from test.utils import revert_liger_kernel_to_granite
|
35
39
|
from test.utils import revert_liger_kernel_to_llama
|
36
40
|
from test.utils import revert_liger_kernel_to_mistral
|
37
41
|
from test.utils import revert_liger_kernel_to_mixtral
|
@@ -98,6 +102,40 @@ MINI_MODEL_SETUPS = {
|
|
98
102
|
attn_implementation="sdpa", # default value, pytorch native attention
|
99
103
|
),
|
100
104
|
),
|
105
|
+
"mini_granite3": MiniModelConfig(
|
106
|
+
liger_kernel_patch_func=apply_liger_kernel_to_granite,
|
107
|
+
liger_kernel_patch_revert_func=revert_liger_kernel_to_granite,
|
108
|
+
model_class=GraniteForCausalLM,
|
109
|
+
mini_model_config=GraniteConfig(
|
110
|
+
attention_bias=False,
|
111
|
+
attention_dropout=0.0,
|
112
|
+
# Special token ids/vocab size to match Mistral-7B tokenizer used to create the tokenized dataset
|
113
|
+
# https://huggingface.co/mistralai/Mistral-7B-v0.1/blob/main/config.json
|
114
|
+
bos_token_id=1, # 128000
|
115
|
+
eos_token_id=2, # 128001
|
116
|
+
hidden_act="silu",
|
117
|
+
hidden_size=1024, # 4096
|
118
|
+
initializer_range=0.02,
|
119
|
+
intermediate_size=2048, # 14336
|
120
|
+
max_position_embeddings=8192,
|
121
|
+
num_attention_heads=8, # 32
|
122
|
+
num_hidden_layers=4, # 32
|
123
|
+
num_key_value_heads=2, # 8
|
124
|
+
pretraining_tp=1,
|
125
|
+
rms_norm_eps=1e-5,
|
126
|
+
rope_scaling=None,
|
127
|
+
rope_theta=500000.0,
|
128
|
+
tie_word_embeddings=False,
|
129
|
+
use_cache=True,
|
130
|
+
vocab_size=32000, # 128256,
|
131
|
+
logits_scaling=4.0,
|
132
|
+
# At rope backward
|
133
|
+
# Eager produces incontiguous dq and dk
|
134
|
+
# SDPA produces contiguous dq and incontiguous dk
|
135
|
+
# Flash_attn produces contiguous dq and dk
|
136
|
+
attn_implementation="sdpa", # default value, pytorch native attention
|
137
|
+
),
|
138
|
+
),
|
101
139
|
"mini_qwen2": MiniModelConfig(
|
102
140
|
liger_kernel_patch_func=apply_liger_kernel_to_qwen2,
|
103
141
|
liger_kernel_patch_revert_func=revert_liger_kernel_to_qwen2,
|
@@ -497,6 +535,7 @@ def run_mini_model(
|
|
497
535
|
("mini_gemma1", 32, 1e-4, torch.float32, 1e-8, 1e-4, 5e-3, 1e-5, 5e-3, 1e-5),
|
498
536
|
("mini_gemma1.1", 32, 1e-4, torch.float32, 1e-8, 1e-4, 5e-3, 1e-5, 5e-3, 1e-5),
|
499
537
|
("mini_gemma2", 32, 1e-4, torch.float32, 1e-8, 1e-4, 5e-3, 1e-5, 5e-3, 1e-5),
|
538
|
+
("mini_granite3", 32, 1e-4, torch.float32, 1e-8, 1e-4, 5e-3, 1e-5, 5e-3, 1e-5),
|
500
539
|
],
|
501
540
|
)
|
502
541
|
def test_mini_model(
|
@@ -261,6 +261,18 @@ def transformers_version_dispatch(
|
|
261
261
|
return after_fn(*after_args, **after_kwargs)
|
262
262
|
|
263
263
|
|
264
|
+
def revert_liger_kernel_to_granite(model_config: MiniModelConfig):
|
265
|
+
"""
|
266
|
+
Revert all Liger kernel patches applied to Granite.
|
267
|
+
"""
|
268
|
+
|
269
|
+
from transformers.models.granite import modeling_granite
|
270
|
+
|
271
|
+
importlib.reload(modeling_granite)
|
272
|
+
model_config.model_class = modeling_granite.GraniteForCausalLM
|
273
|
+
print("Liger kernel patches have been reverted.")
|
274
|
+
|
275
|
+
|
264
276
|
def revert_liger_kernel_to_llama(model_config: MiniModelConfig):
|
265
277
|
"""
|
266
278
|
Revert all Liger kernel patches applied to Llama.
|
Binary file
|
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.5.3.dev20250221002845 → liger_kernel_nightly-0.5.3.dev20250221011057}/NOTICE
RENAMED
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|