Buckets:
| import pytest | |
| import torch | |
| from modeling.bagel import qwen2_navit | |
| from modeling.bagel.qwen2_navit import ( | |
| PackedAttention, | |
| PackedAttentionMoT, | |
| Qwen2DecoderLayer, | |
| Qwen2ForCausalLM, | |
| Qwen2MoEDecoderLayer, | |
| Qwen2Model, | |
| Qwen2MoTDecoderLayer, | |
| ) | |
| PACKED_MODULES = [ | |
| PackedAttention, | |
| PackedAttentionMoT, | |
| Qwen2DecoderLayer, | |
| Qwen2MoTDecoderLayer, | |
| Qwen2MoEDecoderLayer, | |
| Qwen2Model, | |
| Qwen2ForCausalLM, | |
| ] | |
| def test_standard_attention_import_does_not_compile_unused_flex_attention(): | |
| assert qwen2_navit._compiled_flex_attention is None | |
| def test_eval_mode_packed_call_uses_training_forward_contract(module_type): | |
| model = object.__new__(module_type) | |
| torch.nn.Module.__init__(model) | |
| expected = object() | |
| def forward_train(*, packed_sequence): | |
| assert packed_sequence is expected | |
| return "packed" | |
| def forward_inference(*, packed_query_sequence): | |
| raise AssertionError("packed SFT input was routed to inference") | |
| model.forward_train = forward_train | |
| model.forward_inference = forward_inference | |
| model.eval() | |
| assert model(packed_sequence=expected) == "packed" | |
| def test_query_call_uses_inference_contract_independent_of_mode(module_type): | |
| model = object.__new__(module_type) | |
| torch.nn.Module.__init__(model) | |
| expected = object() | |
| def forward_train(*, packed_sequence): | |
| raise AssertionError("inference input was routed to packed SFT") | |
| def forward_inference(*, packed_query_sequence): | |
| assert packed_query_sequence is expected | |
| return "inference" | |
| model.forward_train = forward_train | |
| model.forward_inference = forward_inference | |
| model.train() | |
| assert model(packed_query_sequence=expected) == "inference" | |
Xet Storage Details
- Size:
- 1.87 kB
- Xet hash:
- 2d76671850238baa708ca91f175077c8f789791322266ad407124ae62e28cc58
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.