Download code/tests/test_ras.py from maxpicy/mamba-cot-tts: direct link, hf CLI and curl.
- Browser
- Download file 3 kB
-
https://huggingface.co/maxpicy/mamba-cot-tts/resolve/main/code/tests/test_ras.py
- Command line
-
hf download hf://maxpicy/mamba-cot-tts/code/tests/test_ras.py
-
curl -L -o test_ras.py https://huggingface.co/maxpicy/mamba-cot-tts/resolve/main/code/tests/test_ras.py
3 kB
| # test_ras.py: Repetition Aware Sampling. | |
| import pathlib | |
| import sys | |
| import pytest | |
| import torch | |
| ROOT = pathlib.Path(__file__).resolve().parent.parent | |
| sys.path.insert(0, str(ROOT)) | |
| sys.path.insert(0, str(ROOT / "scripts")) | |
| FISH_CB = [4096] + [1024] * 9 | |
| def _depth(): | |
| from model import DepthModule | |
| torch.manual_seed(0) | |
| return DepthModule(d_model=16, num_levels=10, codebook_size=1024, | |
| d_depth=32, num_layers=1, cross_frame=0, | |
| codebook_sizes=FISH_CB).eval() | |
| def test_off_by_default_is_bit_identical(): | |
| m = _depth() | |
| h = torch.randn(1, 16) | |
| hist = [[3] * 10 for _ in range(10)] | |
| torch.manual_seed(7) | |
| a = m.generate_frame(h, level_temps=[0.7] * 10, rep_window=hist) | |
| torch.manual_seed(7) | |
| b = m.generate_frame(h, level_temps=[0.7] * 10, rep_window=hist, | |
| ras_tau=0.0) | |
| assert a == b | |
| def test_escape_fires_when_history_repeats(): | |
| m = _depth() | |
| h = torch.randn(1, 16) | |
| torch.manual_seed(11) | |
| off = m.generate_frame(h, level_temps=[0.7] * 10) | |
| hist = [[off[k]] * 10 for k in range(10)] | |
| torch.manual_seed(11) | |
| on = m.generate_frame(h, level_temps=[0.7] * 10, rep_window=hist, | |
| ras_tau=0.5, ras_win=10) | |
| assert on != off, "escape never fired on a fully repeating history" | |
| torch.manual_seed(11) | |
| ctrl = m.generate_frame(h, level_temps=[0.7] * 10, rep_window=hist, | |
| ras_tau=0.0) | |
| assert ctrl == off, "history alone changed the draw (penalty leaked?)" | |
| def test_escape_ignores_the_repetition_penalty(): | |
| import model as M | |
| src = pathlib.Path(M.__file__).read_text(encoding="utf-8") | |
| i_snap = src.index("base_logits = logits.clone()") | |
| i_pen = src.index("logits[idx] = torch.where(s < 0, s * rp, s / rp)") | |
| assert i_snap < i_pen, "base_logits snapshot taken AFTER the penalty" | |
| assert "F.softmax(base_logits / t" in src, "escape does not use base_logits" | |
| def test_composes_with_the_penalty(): | |
| m = _depth() | |
| hist = [[5] * 10 for _ in range(10)] | |
| per = [1.2] * 10 | |
| per[1] = 1.6 | |
| out = m.generate_frame(torch.randn(1, 16), level_temps=[0.7] * 10, | |
| rep_window=hist, rep_penalty=per, | |
| ras_tau=0.1, ras_win=10) | |
| assert len(out) == 10 | |
| assert all(0 <= c < s for c, s in zip(out, FISH_CB)) | |
| def test_per_level_tau_is_indexed_by_level(): | |
| m = _depth() | |
| hist = [[9] * 10 for _ in range(10)] | |
| tau = [0.0] * 10 | |
| tau[1] = 0.1 | |
| out = m.generate_frame(torch.randn(1, 16), level_temps=[0.7] * 10, | |
| rep_window=hist, ras_tau=tau) | |
| assert len(out) == 10 | |
| def test_greedy_path_is_untouched(): | |
| m = _depth() | |
| h = torch.randn(1, 16) | |
| a = m.generate_frame(h, level_temps=[0.0] * 10) | |
| hist = [[a[k]] * 10 for k in range(10)] | |
| b = m.generate_frame(h, level_temps=[0.0] * 10, rep_window=hist, | |
| ras_tau=0.9) | |
| assert a == b, "RAS altered a greedy decode" | |