Instructions to use RomanCohort/RNAQwen with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use RomanCohort/RNAQwen with Transformers:
# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("RomanCohort/RNAQwen", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Download scripts/_scratch/_crosscheck_loss.py from RomanCohort/RNAQwen: direct link, hf CLI and curl.
- Browser
- Download file 2.35 kB
-
https://huggingface.co/RomanCohort/RNAQwen/resolve/main/scripts/_scratch/_crosscheck_loss.py
- Command line
-
hf download hf://RomanCohort/RNAQwen/scripts/_scratch/_crosscheck_loss.py
-
curl -L -o _crosscheck_loss.py https://huggingface.co/RomanCohort/RNAQwen/resolve/main/scripts/_scratch/_crosscheck_loss.py
2.35 kB
| """交叉验证:我自建训练回路的 loss 序列 vs `20_train_stage1.py` 官方入口的 loss 序列。 | |
| 这一点很重要 —— 如果我自建的回路(用于计时)与官方回路行为不一致, | |
| 那所有 s/step 数字都不可信。两边都是:50 条 × 2 epoch × bs=1 × accum=1 × grad-ckpt on。 | |
| """ | |
| from __future__ import annotations | |
| import json | |
| import statistics as st | |
| from pathlib import Path | |
| ROOT = Path(__file__).resolve().parents[1] | |
| def main() -> int: | |
| ls = json.loads((ROOT / "reports" / "_raw_timing_loss.json").read_text(encoding="utf-8-sig")) | |
| mine = ls["runs"][0]["losses"] # 100 步 | |
| pub = json.loads((ROOT / "checkpoints" / "_losscheck" / "run_summary.json") | |
| .read_text(encoding="utf-8")) | |
| hist = pub["result"]["history"] # 每 10 步一条 | |
| theirs = {h["step"]: h["loss"] for h in hist} | |
| print("=== 官方入口 vs 自建回路 ===") | |
| print(f"{'step':>5} {'官方 20_train':>14} {'我的回路':>10} {'差':>10}") | |
| diffs = [] | |
| for step in sorted(theirs): | |
| a = theirs[step] | |
| b = mine[step - 1] # mine 是 0-based 列表 | |
| diffs.append(b - a) | |
| print(f"{step:>5} {a:>14.6f} {b:>10.6f} {b-a:>+10.2e}") | |
| print(f"\n最大绝对差 = {max(abs(d) for d in diffs):.3e}") | |
| print(f"平均绝对差 = {st.mean(abs(d) for d in diffs):.3e}") | |
| print(f"最后 10 步: 官方 {st.mean([theirs[s] for s in sorted(theirs)[-1:]]) if False else theirs[100]:.6f} " | |
| f"我的 {st.mean(mine[-10:]):.6f}") | |
| lr = [h["lr"] for h in hist] | |
| print(f"\nlr 序列(官方): {lr[0]:.3e} ... {lr[-1]:.3e} (warmup=10 后进入 cosine)") | |
| # 官方 run 的总耗时 | |
| print(f"\n官方 run_summary steps={pub['result']['steps']} " | |
| f"config.epochs={pub['config']['epochs']} n_samples={pub['n_samples']}") | |
| print(f"官方 elapsed_s 序列: {[h['elapsed_s'] for h in hist]}") | |
| tail = hist[-1]["elapsed_s"] - hist[-2]["elapsed_s"] | |
| print(f"最后 10 步耗时 {tail:.1f}s -> {tail/10:.3f} s/step(含我这次实测的冷启动开销)") | |
| verdict = "一致(自建回路可信)" if max(abs(d) for d in diffs) < 1e-3 else "不一致,需排查" | |
| print(f"\n结论: {verdict}") | |
| return 0 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |