liger-kernel-nightly 0.5.2.dev20241216214323__tar.gz → 0.5.2.dev20241218221959__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/PKG-INFO +1 -1
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/pyproject.toml +1 -1
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/chunked_loss/cpo_loss.py +10 -1
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/chunked_loss/dpo_loss.py +7 -1
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/chunked_loss/fused_linear_preference.py +61 -31
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/chunked_loss/orpo_loss.py +9 -1
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/mixtral.py +1 -1
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/trainer/orpo_trainer.py +1 -1
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel_nightly.egg-info/PKG-INFO +1 -1
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/utils.py +14 -3
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.flake8 +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.github/pull_request_template.md +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.github/workflows/amd-ci.yml +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.github/workflows/nvi-ci.yml +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.github/workflows/publish-nightly.yml +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.github/workflows/publish-release.yml +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.gitignore +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/.isort.cfg +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/LICENSE +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/Makefile +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/NOTICE +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/README.md +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/benchmarks_visualizer.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/data/all_benchmark_data.csv +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_cpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_dpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_embedding.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_geglu.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_group_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_jsd.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_kl_div.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_layer_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_orpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_rms_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_rope.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_simpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/benchmark_swiglu.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/benchmark/scripts/utils.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/dev/fmt-requirements.txt +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/dev/modal/tests.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/dev/modal/tests_bwd.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/Acknowledgement.md +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/CONTRIBUTING.md +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/License.md +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/images/banner.GIF +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/images/compose.gif +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/images/e2e-memory.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/images/e2e-tps.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/images/logo-banner.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/images/patch.gif +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/docs/images/post-training.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/alignment/accelerate_config.yaml +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/alignment/run_orpo.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/README.md +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/callback.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/config/fsdp_config.json +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/img/gemma_7b_mem.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/img/gemma_7b_tp.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/img/llama_mem_alloc.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/img/llama_tps.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/img/qwen_mem_alloc.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/img/qwen_tps.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/launch_on_modal.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/requirements.txt +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/run_benchmarks.sh +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/run_gemma.sh +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/run_llama.sh +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/run_qwen.sh +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/run_qwen2_vl.sh +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/training.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/huggingface/training_multimodal.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/lightning/README.md +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/lightning/requirements.txt +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/lightning/training.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/README.md +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/callback.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/docs/images/Memory_Stage1_num_head_3.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/docs/images/Memory_Stage1_num_head_5.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/docs/images/Memory_Stage2_num_head_3.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/docs/images/Memory_Stage2_num_head_5.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/docs/images/Throughput_Stage1_num_head_3.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/docs/images/Throughput_Stage1_num_head_5.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/docs/images/Throughput_Stage2_num_head_3.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/docs/images/Throughput_Stage2_num_head_5.png +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/fsdp/acc-fsdp.conf +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/medusa_util.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/requirements.txt +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/scripts/llama3_8b_medusa.sh +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/examples/medusa/train.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/licenses/LICENSE-Apache-2.0 +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/licenses/LICENSE-MIT-AutoAWQ +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/licenses/LICENSE-MIT-Efficient-Cross-Entropy +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/licenses/LICENSE-MIT-llmc +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/licenses/LICENSE-MIT-triton +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/setup.cfg +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/setup.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/chunked_loss/README.md +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/chunked_loss/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/chunked_loss/functional.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/chunked_loss/fused_linear_distillation.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/chunked_loss/simpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/env_report.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/experimental/embedding.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/experimental/mm_int8int2.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/geglu.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/group_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/jsd.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/kl_div.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/layer_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/rms_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/rope.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/swiglu.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/ops/utils.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/auto_model.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/experimental/embedding.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/functional.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/geglu.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/group_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/jsd.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/kl_div.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/layer_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/gemma.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/gemma2.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/llama.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/mistral.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/mllama.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/phi3.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/qwen2.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/model/qwen2_vl.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/monkey_patch.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/rms_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/rope.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/swiglu.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/trainer/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/transformers/trainer_integration.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/triton/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/triton/monkey_patch.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel/utils.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel_nightly.egg-info/SOURCES.txt +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel_nightly.egg-info/dependency_links.txt +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel_nightly.egg-info/requires.txt +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/src/liger_kernel_nightly.egg-info/top_level.txt +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/chunked_loss/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/chunked_loss/test_cpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/chunked_loss/test_dpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/chunked_loss/test_orpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/chunked_loss/test_simpo_loss.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/conftest.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/convergence/__init__.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/convergence/test_mini_models.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/convergence/test_mini_models_multimodal.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/convergence/test_mini_models_with_logits.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/resources/fake_configs/Qwen/Qwen2-VL-7B-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/resources/fake_configs/meta-llama/Llama-3.2-11B-Vision-Instruct/tokenizer_config.json +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/resources/scripts/generate_tokenized_dataset.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/resources/tiny_shakespeare.txt +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/resources/tiny_shakespeare_tokenized/data-00000-of-00001.arrow +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/resources/tiny_shakespeare_tokenized/dataset_info.json +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/resources/tiny_shakespeare_tokenized/state.json +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_auto_model.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_embedding.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_fused_linear_cross_entropy.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_fused_linear_jsd.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_geglu.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_group_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_jsd.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_kl_div.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_layer_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_mm_int8int2.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_monkey_patch.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_qwen2vl_mrope.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_rms_norm.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_rope.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_swiglu.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_trainer_integration.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/transformers/test_transformers.py +0 -0
- {liger_kernel_nightly-0.5.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/test/triton/test_triton_monkey_patch.py +0 -0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "liger_kernel_nightly"
|
7
|
-
version = "0.5.2.
|
7
|
+
version = "0.5.2.dev20241218221959"
|
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" }
|
@@ -47,6 +47,7 @@ class LigerFusedLinearCPOFunction(LigerFusedLinearPreferenceBase):
|
|
47
47
|
alpha=1.0,
|
48
48
|
compute_nll_loss=True,
|
49
49
|
compiled=True,
|
50
|
+
is_encoder_decoder=False,
|
50
51
|
):
|
51
52
|
return LigerFusedLinearPreferenceBase.forward(
|
52
53
|
ctx,
|
@@ -60,12 +61,13 @@ class LigerFusedLinearCPOFunction(LigerFusedLinearPreferenceBase):
|
|
60
61
|
beta=beta,
|
61
62
|
compute_nll_loss=compute_nll_loss,
|
62
63
|
compiled=compiled,
|
64
|
+
is_encoder_decoder=is_encoder_decoder,
|
63
65
|
)
|
64
66
|
|
65
67
|
@staticmethod
|
66
68
|
def backward(ctx, *grad_output):
|
67
69
|
grads = LigerFusedLinearPreferenceBase.backward(ctx, grad_output)[:4]
|
68
|
-
return *grads, None, None, None, None, None
|
70
|
+
return *grads, None, None, None, None, None, None
|
69
71
|
|
70
72
|
|
71
73
|
class LigerFusedLinearCPOLoss(torch.nn.Module):
|
@@ -80,11 +82,16 @@ class LigerFusedLinearCPOLoss(torch.nn.Module):
|
|
80
82
|
alpha: float = 1.0,
|
81
83
|
compute_nll_loss: bool = True,
|
82
84
|
compiled: bool = True,
|
85
|
+
is_encoder_decoder: bool = False,
|
83
86
|
):
|
84
87
|
"""
|
85
88
|
Args:
|
86
89
|
ignore_index (int): Index to ignore in the loss.
|
87
90
|
beta (float): Weight for the odds ratio loss.
|
91
|
+
alpha (float): Weight for the NLL loss.
|
92
|
+
compute_nll_loss (bool): Whether to compute NLL loss.
|
93
|
+
compiled (bool): Whether to compile the loss function.
|
94
|
+
is_encoder_decoder (bool): Whether the model is an encoder-decoder model.
|
88
95
|
"""
|
89
96
|
super().__init__()
|
90
97
|
self.ignore_index = ignore_index
|
@@ -92,6 +99,7 @@ class LigerFusedLinearCPOLoss(torch.nn.Module):
|
|
92
99
|
self.alpha = alpha
|
93
100
|
self.compute_nll_loss = compute_nll_loss
|
94
101
|
self.compiled = compiled
|
102
|
+
self.is_encoder_decoder = is_encoder_decoder
|
95
103
|
|
96
104
|
def forward(self, lin_weight, _input, target, bias=None):
|
97
105
|
return LigerFusedLinearCPOFunction.apply(
|
@@ -104,4 +112,5 @@ class LigerFusedLinearCPOLoss(torch.nn.Module):
|
|
104
112
|
self.alpha,
|
105
113
|
self.compute_nll_loss,
|
106
114
|
self.compiled,
|
115
|
+
self.is_encoder_decoder,
|
107
116
|
)
|
@@ -67,6 +67,7 @@ class LigerFusedLinearDPOFunction(LigerFusedLinearPreferenceBase):
|
|
67
67
|
compute_nll_loss=True,
|
68
68
|
compiled=True,
|
69
69
|
use_ref_model=True,
|
70
|
+
is_encoder_decoder=False,
|
70
71
|
):
|
71
72
|
return LigerFusedLinearPreferenceBase.forward(
|
72
73
|
ctx=ctx,
|
@@ -83,12 +84,13 @@ class LigerFusedLinearDPOFunction(LigerFusedLinearPreferenceBase):
|
|
83
84
|
ref_input=ref_input,
|
84
85
|
ref_weight=ref_weight,
|
85
86
|
ref_bias=ref_bias,
|
87
|
+
is_encoder_decoder=is_encoder_decoder,
|
86
88
|
)
|
87
89
|
|
88
90
|
@staticmethod
|
89
91
|
def backward(ctx, *grad_output):
|
90
92
|
grads = LigerFusedLinearPreferenceBase.backward(ctx, grad_output)[:4]
|
91
|
-
return *grads, None, None, None, None, None, None, None, None
|
93
|
+
return *grads, None, None, None, None, None, None, None, None, None
|
92
94
|
|
93
95
|
|
94
96
|
class LigerFusedLinearDPOLoss(torch.nn.Module):
|
@@ -103,6 +105,7 @@ class LigerFusedLinearDPOLoss(torch.nn.Module):
|
|
103
105
|
compute_nll_loss: bool = True,
|
104
106
|
compiled: bool = True,
|
105
107
|
use_ref_model: bool = False,
|
108
|
+
is_encoder_decoder: bool = False,
|
106
109
|
):
|
107
110
|
"""
|
108
111
|
Args:
|
@@ -111,6 +114,7 @@ class LigerFusedLinearDPOLoss(torch.nn.Module):
|
|
111
114
|
compute_nll_loss (bool): Whether to compute the NLL loss.
|
112
115
|
compiled (bool): Whether to use the torch compiled kernel.
|
113
116
|
use_ref_model (bool): Whether to use a reference model for the DPO loss.
|
117
|
+
is_encoder_decoder (bool): Whether the model is an encoder-decoder model.
|
114
118
|
"""
|
115
119
|
super().__init__()
|
116
120
|
self.ignore_index = ignore_index
|
@@ -118,6 +122,7 @@ class LigerFusedLinearDPOLoss(torch.nn.Module):
|
|
118
122
|
self.compute_nll_loss = compute_nll_loss
|
119
123
|
self.compiled = compiled
|
120
124
|
self.use_ref_model = use_ref_model
|
125
|
+
self.is_encoder_decoder = is_encoder_decoder
|
121
126
|
|
122
127
|
def forward(
|
123
128
|
self,
|
@@ -142,4 +147,5 @@ class LigerFusedLinearDPOLoss(torch.nn.Module):
|
|
142
147
|
self.compute_nll_loss,
|
143
148
|
self.compiled,
|
144
149
|
self.use_ref_model,
|
150
|
+
self.is_encoder_decoder,
|
145
151
|
)
|
@@ -26,6 +26,7 @@ class LigerFusedLinearPreferenceBase(torch.autograd.Function):
|
|
26
26
|
ignore_index=-100,
|
27
27
|
alpha=1.0,
|
28
28
|
beta=0.1,
|
29
|
+
is_encoder_decoder=False,
|
29
30
|
compute_nll_loss=True,
|
30
31
|
compiled=True,
|
31
32
|
use_ref_model=False,
|
@@ -56,6 +57,7 @@ class LigerFusedLinearPreferenceBase(torch.autograd.Function):
|
|
56
57
|
ignore_index (int): Index to ignore for loss computation.
|
57
58
|
alpha (float): Weight for the NLL loss.
|
58
59
|
beta (float): Weight for the preference loss.
|
60
|
+
is_encoder_decoder (bool): Whether the model is an encoder-decoder model.
|
59
61
|
compute_nll_loss (bool): Whether to compute NLL loss.
|
60
62
|
compiled (bool): Whether to use torch compile for chunk accumulation.
|
61
63
|
use_ref_model (bool): Whether to use a reference model for the alignment loss.
|
@@ -94,6 +96,7 @@ class LigerFusedLinearPreferenceBase(torch.autograd.Function):
|
|
94
96
|
use_ref_model=use_ref_model,
|
95
97
|
ref_weight=ref_weight,
|
96
98
|
ref_bias=ref_bias,
|
99
|
+
is_encoder_decoder=is_encoder_decoder,
|
97
100
|
**loss_kwargs,
|
98
101
|
)
|
99
102
|
|
@@ -282,33 +285,48 @@ class LigerFusedLinearPreferenceBase(torch.autograd.Function):
|
|
282
285
|
bias=None,
|
283
286
|
ignore_index=-100,
|
284
287
|
compute_nll_loss=True,
|
288
|
+
is_encoder_decoder=False,
|
285
289
|
):
|
286
|
-
|
290
|
+
# Calculate logits and log probabilities
|
287
291
|
logits_chunk = input_chunk @ weight.t()
|
288
292
|
if bias is not None:
|
289
|
-
logits_chunk
|
293
|
+
logits_chunk += bias
|
290
294
|
log_probs_chunk = F.log_softmax(logits_chunk.float(), dim=-1)
|
291
295
|
|
296
|
+
# Split chunk into chosen and rejected portions
|
297
|
+
len_chosen_chunk = target_chunk.shape[0] // 2
|
298
|
+
|
299
|
+
# Handle sequence shifting for non-encoder-decoder models
|
300
|
+
if not is_encoder_decoder:
|
301
|
+
logits_chunk = logits_chunk[:, :-1]
|
302
|
+
log_probs_chunk = log_probs_chunk[:, :-1]
|
303
|
+
target_chunk = target_chunk[:, 1:]
|
304
|
+
|
305
|
+
# Calculate NLL loss for chosen sequences
|
292
306
|
chosen_nll_loss = 0.0
|
293
307
|
if compute_nll_loss:
|
308
|
+
chosen_probs = log_probs_chunk[:len_chosen_chunk]
|
309
|
+
chosen_targets = target_chunk[:len_chosen_chunk]
|
294
310
|
chosen_nll_loss = F.nll_loss(
|
295
|
-
|
296
|
-
|
311
|
+
chosen_probs.reshape(-1, chosen_probs.shape[-1]),
|
312
|
+
chosen_targets.reshape(-1),
|
297
313
|
reduction="sum",
|
298
314
|
ignore_index=ignore_index,
|
299
315
|
)
|
300
316
|
|
317
|
+
# Calculate per-token log probabilities
|
301
318
|
loss_mask = target_chunk != ignore_index
|
302
319
|
label_chunk = torch.where(loss_mask, target_chunk, 0)
|
303
|
-
|
304
320
|
per_token_logps = log_probs_chunk.gather(-1, label_chunk.unsqueeze(-1)).squeeze(
|
305
321
|
-1
|
306
322
|
)
|
307
323
|
average_log_prob = (per_token_logps * loss_mask).sum(-1) / loss_mask.sum(-1)
|
308
324
|
|
309
|
-
|
310
|
-
rejected_logps =
|
311
|
-
|
325
|
+
# Split results for chosen and rejected
|
326
|
+
chosen_logps, rejected_logps = (
|
327
|
+
average_log_prob[:len_chosen_chunk],
|
328
|
+
average_log_prob[len_chosen_chunk:],
|
329
|
+
)
|
312
330
|
chosen_logits = logits_chunk[:len_chosen_chunk]
|
313
331
|
rejected_logits = logits_chunk[len_chosen_chunk:]
|
314
332
|
|
@@ -331,6 +349,7 @@ class LigerFusedLinearPreferenceBase(torch.autograd.Function):
|
|
331
349
|
ignore_index=-100,
|
332
350
|
alpha=1.0,
|
333
351
|
beta=0.1,
|
352
|
+
is_encoder_decoder=False,
|
334
353
|
compute_nll_loss=True,
|
335
354
|
use_ref_model=False,
|
336
355
|
ref_input_chunk=None,
|
@@ -350,6 +369,7 @@ class LigerFusedLinearPreferenceBase(torch.autograd.Function):
|
|
350
369
|
ignore_index (int): Index to ignore for loss computation.
|
351
370
|
alpha (float): Weight for the NLL loss.
|
352
371
|
beta (float): Weight for the preference loss.
|
372
|
+
is_encoder_decoder (bool): Whether the model is an encoder-decoder model.
|
353
373
|
compute_nll_loss (bool): Whether to compute NLL loss.
|
354
374
|
use_ref_model (bool): Whether to use a reference model for the alignment loss.
|
355
375
|
ref_weight (torch.Tensor): Reference weight tensor. Shape: (vocab_size, hidden_size).
|
@@ -369,33 +389,43 @@ class LigerFusedLinearPreferenceBase(torch.autograd.Function):
|
|
369
389
|
bias=bias,
|
370
390
|
ignore_index=ignore_index,
|
371
391
|
compute_nll_loss=compute_nll_loss,
|
392
|
+
is_encoder_decoder=is_encoder_decoder,
|
372
393
|
)
|
373
|
-
|
374
|
-
chosen_nll_loss
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
394
|
+
if not is_encoder_decoder:
|
395
|
+
chosen_nll_loss = (
|
396
|
+
chosen_nll_loss
|
397
|
+
/ (full_target[: full_target.shape[0] // 2, 1:] != ignore_index).sum()
|
398
|
+
)
|
399
|
+
chosen_logits_mean = chosen_logits.sum() / (
|
400
|
+
full_target.shape[0] // 2 * (input_chunk.shape[1] - 1) * weight.shape[0]
|
401
|
+
)
|
402
|
+
rejected_logits_mean = rejected_logits.sum() / (
|
403
|
+
full_target.shape[0] // 2 * (input_chunk.shape[1] - 1) * weight.shape[0]
|
404
|
+
)
|
405
|
+
else:
|
406
|
+
chosen_nll_loss = (
|
407
|
+
chosen_nll_loss
|
408
|
+
/ (full_target[: full_target.shape[0] // 2] != ignore_index).sum()
|
409
|
+
)
|
410
|
+
chosen_logits_mean = chosen_logits.sum() / (
|
411
|
+
full_target.shape[0] // 2 * input_chunk.shape[1] * weight.shape[0]
|
412
|
+
)
|
413
|
+
rejected_logits_mean = rejected_logits.sum() / (
|
414
|
+
full_target.shape[0] // 2 * input_chunk.shape[1] * weight.shape[0]
|
415
|
+
)
|
383
416
|
|
384
417
|
if use_ref_model:
|
385
418
|
with torch.no_grad():
|
386
|
-
(
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
ref_bias,
|
397
|
-
ignore_index=ignore_index,
|
398
|
-
compute_nll_loss=False, # We don't need NLL loss for the reference model
|
419
|
+
(ref_chosen_logps, ref_rejected_logps, _, _, _) = (
|
420
|
+
LigerFusedLinearPreferenceBase.chunk_forward(
|
421
|
+
ref_input_chunk,
|
422
|
+
ref_weight,
|
423
|
+
target_chunk,
|
424
|
+
ref_bias,
|
425
|
+
ignore_index=ignore_index,
|
426
|
+
compute_nll_loss=False, # We don't need NLL loss for the reference model
|
427
|
+
is_encoder_decoder=is_encoder_decoder, # assume the ref model is the same family
|
428
|
+
)
|
399
429
|
)
|
400
430
|
loss_kwargs["ref_chosen_logps"] = ref_chosen_logps
|
401
431
|
loss_kwargs["ref_rejected_logps"] = ref_rejected_logps
|
@@ -57,6 +57,7 @@ class LigerFusedLinearORPOFunction(LigerFusedLinearPreferenceBase):
|
|
57
57
|
beta=0.1,
|
58
58
|
compute_nll_loss=True,
|
59
59
|
compiled=True,
|
60
|
+
is_encoder_decoder=False,
|
60
61
|
):
|
61
62
|
return LigerFusedLinearPreferenceBase.forward(
|
62
63
|
ctx=ctx,
|
@@ -69,12 +70,13 @@ class LigerFusedLinearORPOFunction(LigerFusedLinearPreferenceBase):
|
|
69
70
|
beta=beta,
|
70
71
|
compute_nll_loss=compute_nll_loss,
|
71
72
|
compiled=compiled,
|
73
|
+
is_encoder_decoder=is_encoder_decoder,
|
72
74
|
)
|
73
75
|
|
74
76
|
@staticmethod
|
75
77
|
def backward(ctx, *grad_output):
|
76
78
|
grads = LigerFusedLinearPreferenceBase.backward(ctx, grad_output)[:4]
|
77
|
-
return *grads, None, None, None, None
|
79
|
+
return *grads, None, None, None, None, None
|
78
80
|
|
79
81
|
|
80
82
|
class LigerFusedLinearORPOLoss(torch.nn.Module):
|
@@ -88,17 +90,22 @@ class LigerFusedLinearORPOLoss(torch.nn.Module):
|
|
88
90
|
beta: float = 0.1,
|
89
91
|
compute_nll_loss: bool = True,
|
90
92
|
compiled: bool = True,
|
93
|
+
is_encoder_decoder: bool = False,
|
91
94
|
):
|
92
95
|
"""
|
93
96
|
Args:
|
94
97
|
ignore_index (int): Index to ignore in the loss.
|
95
98
|
beta (float): Weight for the odds ratio loss.
|
99
|
+
compute_nll_loss (bool): Whether to compute NLL loss.
|
100
|
+
compiled (bool): Whether to compile the loss function.
|
101
|
+
is_encoder_decoder (bool): Whether the model is an encoder-decoder model.
|
96
102
|
"""
|
97
103
|
super().__init__()
|
98
104
|
self.ignore_index = ignore_index
|
99
105
|
self.beta = beta
|
100
106
|
self.compute_nll_loss = compute_nll_loss
|
101
107
|
self.compiled = compiled
|
108
|
+
self.is_encoder_decoder = is_encoder_decoder
|
102
109
|
|
103
110
|
def forward(self, lin_weight, _input, target, bias=None):
|
104
111
|
return LigerFusedLinearORPOFunction.apply(
|
@@ -110,4 +117,5 @@ class LigerFusedLinearORPOLoss(torch.nn.Module):
|
|
110
117
|
self.beta,
|
111
118
|
self.compute_nll_loss,
|
112
119
|
self.compiled,
|
120
|
+
self.is_encoder_decoder,
|
113
121
|
)
|
@@ -38,7 +38,7 @@ def lce_forward_deprecated(
|
|
38
38
|
cache_position: Optional[torch.LongTensor] = None,
|
39
39
|
) -> Union[Tuple, MoeCausalLMOutputWithPast]:
|
40
40
|
r"""
|
41
|
-
Copy paste Mixtral's forward from
|
41
|
+
Copy paste Mixtral's forward from transformers v4.44.2 but replace torch cross entropy with liger fused linear cross entropy
|
42
42
|
|
43
43
|
|
44
44
|
Args:
|
@@ -17,7 +17,7 @@ class _FSDPForwardRedirection:
|
|
17
17
|
This is needed in cases where we call a submodule of a FSDP module. For instance, when we want to call only
|
18
18
|
the `LlamaModel` part out of a FSDP-wrapped `LlamaForCausalLM` to get the hidden states without involving
|
19
19
|
GPU-memory-heavy `lm_head` and cross entropy computation, doing this directly (i.e. `model.model.forward()`)
|
20
|
-
will not work because the first `nn.
|
20
|
+
will not work because the first `nn.Embedding` layer is not independently wrapped as a FSDP module (because of
|
21
21
|
the transformer-based wrapping policy), and not calling it through FSDP root module forward will not all-gather
|
22
22
|
its parameter, thus resulting in "RuntimeError: 'weight' must be 2-D" error. Similarly, if we want to call just
|
23
23
|
the `lm_head` part of a model, we need this trick too to properly get its params all-gathered.
|
@@ -350,11 +350,13 @@ class HFAlignmentLoss:
|
|
350
350
|
beta: float = 0.1,
|
351
351
|
ignore_index: int = -100,
|
352
352
|
use_ref_model: bool = False,
|
353
|
+
is_encoder_decoder: bool = False,
|
353
354
|
):
|
354
355
|
self.alpha = alpha
|
355
356
|
self.beta = beta
|
356
357
|
self.ignore_index = ignore_index
|
357
358
|
self.use_ref_model = use_ref_model
|
359
|
+
self.is_encoder_decoder = is_encoder_decoder
|
358
360
|
|
359
361
|
@abstractmethod
|
360
362
|
def alignment_loss(self):
|
@@ -372,7 +374,6 @@ class HFAlignmentLoss:
|
|
372
374
|
logits: Logits of the model (unnormalized). Shape: (batch_size, sequence_length, vocab_size)
|
373
375
|
labels: Labels for which to compute the log probabilities. Label tokens with a value of ignore_index are ignored. Shape: (batch_size, sequence_length)
|
374
376
|
average_log_prob: If True, return the average log probability per (non-masked) token. Otherwise, return the sum of the log probabilities of the (non-masked) tokens.
|
375
|
-
is_encoder_decoder: Whether the model is an encoder-decoder model.
|
376
377
|
Returns:
|
377
378
|
A tensor of shape (batch_size,) containing the average/sum log probabilities of the given labels under the given logits.
|
378
379
|
"""
|
@@ -381,6 +382,9 @@ class HFAlignmentLoss:
|
|
381
382
|
"Logits (batch and sequence length dim) and labels must have the same shape."
|
382
383
|
)
|
383
384
|
|
385
|
+
if not self.is_encoder_decoder:
|
386
|
+
logits = logits[..., :-1, :].contiguous()
|
387
|
+
labels = labels[..., 1:].contiguous()
|
384
388
|
loss_mask = labels != self.ignore_index
|
385
389
|
|
386
390
|
# dummy token; we'll ignore the losses on these tokens later
|
@@ -440,6 +444,9 @@ class HFAlignmentLoss:
|
|
440
444
|
def cross_entropy_loss(logits, labels):
|
441
445
|
# Flatten the tokens
|
442
446
|
loss_fct = nn.CrossEntropyLoss(ignore_index=self.ignore_index)
|
447
|
+
if not self.is_encoder_decoder:
|
448
|
+
logits = logits[..., :-1, :].contiguous()
|
449
|
+
labels = labels[..., 1:].contiguous()
|
443
450
|
logits = logits.view(-1, logits.shape[-1])
|
444
451
|
labels = labels.view(-1)
|
445
452
|
# Enable model parallelism
|
@@ -461,8 +468,12 @@ class HFAlignmentLoss:
|
|
461
468
|
chosen_logps = all_logps[:len_chosen]
|
462
469
|
rejected_logps = all_logps[len_chosen:]
|
463
470
|
|
464
|
-
|
465
|
-
|
471
|
+
if not self.is_encoder_decoder:
|
472
|
+
chosen_logits = all_logits[:len_chosen, :-1]
|
473
|
+
rejected_logits = all_logits[len_chosen:, :-1]
|
474
|
+
else:
|
475
|
+
chosen_logits = all_logits[:len_chosen]
|
476
|
+
rejected_logits = all_logits[len_chosen:]
|
466
477
|
|
467
478
|
return (
|
468
479
|
chosen_logps,
|
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.2.dev20241216214323 → liger_kernel_nightly-0.5.2.dev20241218221959}/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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|