RNAQwen

状态:计划阶段 —— 尚未开始训练,本仓库当前没有权重。

本仓库是 RNA-GPT 的复现与开源计划(NeurIPS 2024 MLSB Workshop,arXiv 2411.08900)。 原工作未发布代码、权重、数据与评测集;本项目把这条管线复现出来并全部开源,为 RNA + 语言模型方向提供一个公开、可比较的基准。

计划陆续放出:训练与评测代码 · LoRA 权重 · 重建的 RNA-QA 数据集 · 重建的评测集 · 评测脚本。

本文档中每条外部事实均于 2026-10-08 逐个核实(arXiv / Crossref / OpenAlex / HuggingFace / GitHub / RCSB),来源见附录 A。 文档最初作为内部工作稿写成,人称未统一,后续会整理为正式 README。


RNA-GPT 复现与开源 — 阶段计划

建立日期 2026-10-08 · 目的:先复现、再开源,在 Benchmark 上与原版打平。 本文档中的每条外部事实都在 2026-10-08 逐个核实过(arXiv / Crossref / OpenAlex / HuggingFace / GitHub / RCSB),来源见附录。


0. 目标与验收标准

目标:复现 RNA-GPT,在它自己的评测口径上达到与原版同量级。

验收指标(照抄原论文的两套,别自己发明)

  1. ROUGE-1 / ROUGE-2 / ROUGE-L
  2. Semantic Precision / Recall / F1 —— 用三种嵌入算余弦相似度:BERT / PubMedBERT / OpenAI text-embedding-3-large (论文记作 S_BERT / S_Pub / S_GPT)

目标分数(原版报数)

指标 D&C 变体 AIS 变体
Rouge-1 0.4791 0.5031
Rouge-2 0.2690 0.3667
Rouge-L 0.4405 0.4747
F1 @ S_BERT 0.8609 0.8494
F1 @ S_Pub 0.7165 0.7293
F1 @ S_GPT 0.7560 0.7700

两条前提(均出自论文原文)

① 论文报数对应的训练集规模。 论文原文:"We trained RNA-GPT using the flagship Llama-3 8B model architecture using a smaller 5K RNA, 121K QA samples subset for our initial model. We are in the process of training the large RNA-GPT that uses all 407,616 RNAs." → 因此本项目的复现目标对齐 5K RNA / 121K QA 这一档。

② 复现的可比性边界。 原工作未发布代码、权重、数据与评测集,因此只能自建评测集;自建评测集上的绝对分与原论文报数不可直接比较。 → 因此本项目的第一个交付物是 RNA-QA 数据集 + 评测集的公开重建,并在报告中明确标注"评测集为重建,与原报数不完全可比"。


1. 原版配方(复现目标 — 严格照抄)

项 值
底座 LLM Meta Llama-3 8B Instruct
序列编码器 RNA-FM(冻结)
投影层 线性投影(冻结编码器,只训投影)
Stage 1 模态对齐 只训投影;输入只有投影后的 RNA 表征、没有文本 prompt
Stage 2 指令微调 10 epochs,warmup 200
Stage 1 超参 10 epochs,batch=1,wd=0.05,warmup 2048,AdamW β=(0.9, 0.98),LR 1e-4→8e-5,warmup LR 1e-6,linear warmup + cosine,AMP
数据 RNA-QA = 407,616 条(RNACentral + GPT-4o + LDA 的 divide-and-conquer;指令数据用 GPT-4o-mini 把 abstract 拆成 QA)
算力 2 × A100 40GB,两阶段合计 1 周
评测 见 §0

两个数据集变体(论文都报了):AIS(abstract → sentence)与 D&C(divide-and-conquer 摘要)。

Stage 1 那个设计要照抄 —— 它从结构上杜绝了"模型绕过编码器去抄文本"这条捷径(Stage 1 压根没有文本可抄)。这是本计划里最重要的一条防坑设计。


2. 本复现与原版的差异(底座选型)

底座 LLM   Meta Llama-3 8B Instruct  →  Qwen3-8B
其余全部照抄:RNA-FM(冻结) · 线性投影 · 两阶段 · 上述超参

为什么是 Qwen3-8B,不是 Qwen2.5-7B-Instruct —— 因为维度能对上(实测各模型 config.json,2026-10-08):

hidden layers heads KV heads vocab max_pos
Llama-3-8B-Instruct 4096 32 32 8 128256 8192
Qwen3-8B 4096 ✅ 36 ⚠️ 32 ✅ 8 ✅ 151936 ⚠️ 40960
Qwen2.5-7B-Instruct 3584 ❌ 28 28 4 152064 32768

投影层是 Linear(RNA-FM 640 → LLM hidden)。原版 = Linear(640, 4096); Qwen3-8B 也是 Linear(640, 4096) —— 形状逐字相同,所以投影的参数量、初始化尺度、LR 的意义都能对齐。 用 Qwen2.5-7B 则是 (640, 3584),白白多引入一个变量。 选型理由的三条 —— 其中一条在复现阶段是风险

理由 复现阶段 v2
投影层形状逐字相同(640 → 4096) ✅ 最硬的理由 仍成立
长上下文(40960 vs Llama-3 的 8192) ⚠️ 用不上 —— 瓶颈在编码器:RNA-FM max_pos=1026,序列连编码器都进不去 ✅ 真有用(3Di / 序列文本化路线)
中文友好 ❌ 是负资产,见下 ✅ 有价值(中文语料 / 中文用户)

「中文友好」为什么在复现阶段是负资产

  • RNA-GPT 的参考答案来自文献 abstract(英文),所以参考答案是英文
  • ROUGE 是词汇重叠指标:输出中文 → ROUGE 直接归零
  • Qwen 的中文倾向更强 → 更容易在英文 prompt 下漏出中文;Stage 2 微调会把这个倾向放大

→ 硬约束(加到验收里):prompt 强制英文输出 + 评测前断言输出语言(简易判据:中文字符占比超过阈值即判失败)。 → 待你自己确认一次:我尝试直连 RNAcentral API 核对描述字段,被 403 挡了(数据中心 IP 被拦)。所以"参考答案是英文"这条我只有间接证据(论文方法是从文献 abstract 生成注释),需要你在本地网络确认一遍。

两个对不上、必须在报告里声明的变量

  • num_hidden_layers:32 → 36(模型更深)
  • vocab_size:128256 → 151936 → tokenizer 不同,同一段 QA 文本 tokenize 后 token 数不同,Stage 2 的有效序列长度与步数会变

⚠️ Qwen3 特有的坑:thinking mode。 Qwen3 默认可能输出 thinking...<|end▁of▁thinking|> 推理块。参考答案是短句,一旦混进推理块,ROUGE 会直接崩。 → Stage 2 起就显式关掉(chat template 传 enable_thinking=False,或消息里加 /no_think),并在评测前**断言输出不含 <|end▁of▁thinking|>**。

⚠️ 这一版不要用 RiNALMo / 结构编码器 / 修饰。 换了编码器就不叫复现,而且你会同时 debug "我改的地方对不对"和"复现得对不对"。全部留到 v2。

3. 阶段计划

P0 · 环境与数据管线(2–3 周)

  • 起环境:transformers + peft + RNA-FM(HF multimolecule/rnafm)
  • 重建 RNA-QA(最大工作量):
    • 源:RNAcentral
    • 方法照抄:LDA 主题分组 → divide-and-conquer 分组摘要 → 合成 annotation
    • 指令数据:把 abstract 拆成 QA 对
    • 成本对策:用本地 Qwen 替代 GPT-4o/4o-mini 做生成器 —— 成本≈0、可复现、且本身是开源贡献
  • 先做 1,000 条的小样跑通管线,再放大到 121K
  • 完成判据:能产出 1,000 条格式正确的 QA,且 QA 里不出现序列原文(出现就白训)

P1 · Stage 1 模态对齐(3–5 天)

  • 冻结 RNA-FM + 冻结 Qwen,只训线性投影
  • 超参照抄(10 epochs, batch 1, warmup 2048, LR 1e-4→8e-5)
  • 完成判据:置零编码器后,对齐指标明显下降

P2 · Stage 2 指令微调(1–2 周)

  • 用 LoRA 先跑(8B 全参在单卡不现实)
  • 完成判据:在自建评测集上 ROUGE 明显高于"裸文本输入"基线(见 §4 阶梯)

P3 · 评测与打平(1 周)

  • 实现两套指标:ROUGE-1/2/L + 三种嵌入的 semantic P/R/F1
  • 报告三个数:原版报数 / 我的复现 / 差值,并声明评测集是重建的
  • 补一个原版没做的消融:置零编码器 —— 这是你复现能超过原版的第一个点

P4 · 开源(3–5 天)

  • 代码 + LoRA 权重 + RNA-QA 数据集 + 评测集 + 评测脚本
  • MLSB 明确写:承诺开源代码/权重/数据集的投稿,优先给 spotlight

4. 消融阶梯(原版给的,你的复现必须重现出这条)

D&C 变体:

配置 Rouge-1 Rouge-2 Rouge-L F1 @ S_BERT
RNA Sequence(裸文本输入) 0.2472 0.0964 0.2182 0.7625
Modality Fusion(只训投影) 0.0922 0.0393 0.0799 0.7466
RNA-GPT(完整) 0.4791 0.2690 0.4405 0.8609

两个要点

  1. 复现出这条"越接越强"的阶梯 = 复现成功的真正判据,比单看最终分数更重要。
  2. Modality Fusion 在 D&C 上塌了(0.0922),但在 AIS 上正常(0.2239)。这个异常是个值得解释的现象,别当噪声放过 —— 写清楚了就是一个发现。

5. 风险登记

风险 症状 对策
评测集不可比 分数对不上,但不知道是模型差还是评测集不同 从头就声明不可严格比较;把评测集开源
投影塌缩 / 编码器被绕过 loss 降但置零无影响 Stage 1 无文本输入(照抄原版设计)+ 置零检测当 CI
QA 里复述了序列 同上,且指标虚高 造数据时就用置零检测验收
数据生成烧钱 GPT-4o 造 12 万条 API 费用 用本地 Qwen 当生成器
RNA-QA 重建质量差 复现分数系统性低于原版 先人工抽查 100 条,别直接上量
8B 全参微调带不动 OOM Stage 2 用 LoRA
"打平"变成长期漂移目标 一直调不出那个数 P3 就锁定报告口径,接受"同量级"而非"小数点一致"
Qwen3 thinking mode 污染输出 回复里带 thinking 块,ROUGE 崩 Stage 2 关 enable_thinking;评测前断言无 <|end▁of▁thinking|>
输出语言漂移成中文 参考答案是英文,ROUGE 归零 prompt 强制英文 + 评测前断言中文字符占比

6. 明确不做

  • ❌ 这一版不碰 RiNALMo / 结构编码器 / 修饰(v2 再说)
  • ❌ 不做全量 407,616(原版自己都没做;5K/121K 就够打平)
  • ❌ 不用 35B 模型(原版是 8B)
  • ❌ 不宣称"预测免疫原性"(那是 ImmuneRNAQwen 的方向,本阶段只是复现)
  • ❌ 不用生成的结构训结构理解(除非过独立物理校验)

7. 立刻能开始的三件事

  1. 拉 multimolecule/rnafm,喂一条序列 —— 维度已实测(640 / 12 层 / max_pos 1026),真正要验的是 tokenizer 行为与 >1026 时的报错方式(10 分钟)
  2. 写 RNA-QA 重建管线的最小版本,只做 50 条,人工看质量
  3. 实现评测脚本(ROUGE + 三种嵌入的 semantic P/R/F1),并先拿原版消融表的数字做一次自检(喂人工构造的"完美答案",看指标能否复现出高位)

附录 A · 已核实的资源

资源 状态
RNA-GPT 论文 arXiv 2411.08900(2024-10-29)· MLSB Workshop NeurIPS 2024
RNA-GPT 代码 ❌ 无(GitHub 组织 RNA-GPT 只有 RNA-GPT.github.io,★3)
RNA-GPT 权重 ❌ 无(HuggingFace 无命中)
RNA-QA 数据集 ❌ 无(HF datasets 搜 RNA-QA 无命中)
RNA-FM ✅ HF multimolecule/rnafm(dl≈3,780)· 实测 hidden=640 / 12 层 / 20 头 / vocab=28 / max_pos=1026
ProteinGPT 代码 ✅ GitHub OviaLabs/ProteinGPT(★36,Python,基于 MiniGPT-4)—— 本阶段用不到,但 v2 可参考其管线
评测/复现引用 MLSB Workshop 站 https://www.mlsb.io/(2024 届:https://www.mlsb.io/index_2024.html)

MLSB 规则(对本文档直接相关):workshop 为 non-archival(不影响以后投正会);承诺开源代码、模型权重、数据集的投稿优先获 spotlight。

附录 B · 本方向的相邻工作(MLSB 2025 accepted,62 篇里相关项)

#31  Improving RNA 3D Structure Prediction via Language Model-Augmented AlphaFold 3   ← 最对口,先读
#55  Curriculum-Augmented GFlowNets For mRNA Sequence Generation
#28  Rewriting protein alphabets with language models
#14  g-DPO: Scalable Preference Optimization for Protein Language Models
#26  ProteomeLM · #56 ProFam · #3 Self-Distillation FT · #59 SAE on Antibody LMs

附录 C · 后续(v2,本计划之外)

  • 换 RiNALMo(HF multimolecule/rinalmo-giga,hidden=1280,33 层,max_position_embeddings=1024)
  • 长度问题:2,013 nt > 1024 → 先读 RIBOSPAN(arXiv 2026-08,长上下文 RNA FM);备选 3Di 结构 token / 重叠窗口
  • 加结构这一路;加 m6A / m5C
  • 词表扩展 + 继续预训练(ProstT5 路线:Heinzinger 等,NAR Genomics and Bioinformatics 2024,DOI 10.1093/nargab/lqae150)
  • 若走免疫方向:标签来自物理流水线(TorusFold),不是实验真值 —— 对外口径必须写清
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for RomanCohort/RNAQwen