lkdhy Mubuky commited on
Commit
971fd22
·
1 Parent(s): 0f8d2c9

Upload SciJudge-30B-2605 weights and model card (#1)

Browse files

- Upload SciJudge-30B-2605 weights and model card (eb1640dc953ba134aa6adecec3a682d28a52222b)
- Update SciJudge-30B-2605 model card links and tags (bd5cfa59028e9c896f199dfd2e02215afce8ef58)


Co-authored-by: Mingzhe Li <Mubuky@users.noreply.huggingface.co>

.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: apache-2.0
5
+ base_model: Qwen/Qwen3-30B-A3B-Instruct-2507
6
+ datasets:
7
+ - OpenMOSS-Team/SciJudgeBench
8
+ tags:
9
+ - scientific-taste
10
+ - GRPO
11
+ pipeline_tag: text-generation
12
+ library_name: transformers
13
+ model-index:
14
+ - name: SciJudge-30B-2605
15
+ results:
16
+ - task:
17
+ type: text-generation
18
+ name: Citation-based pairwise paper judgment
19
+ dataset:
20
+ name: SciJudgeBench MAIN_1000
21
+ type: OpenMOSS-Team/SciJudgeBench
22
+ split: test
23
+ metrics:
24
+ - type: accuracy
25
+ name: Avg. accuracy
26
+ value: 82.7
27
+ ---
28
+
29
+ # SciJudge-30B-2605
30
+
31
+ SciJudge-30B-2605 is a Qwen3-30B-A3B-Instruct-2507 MoE model fine-tuned for scientific paper evaluation. Given two papers' titles, abstracts, and publication dates, it predicts which paper has higher citation impact.
32
+
33
+ This release is part of [AI Can Learn Scientific Taste](https://arxiv.org/abs/2603.14473). The companion smaller model is [SciJudge-4B-2605](https://huggingface.co/OpenMOSS-Team/SciJudge-4B-2605), and the benchmark dataset is [SciJudgeBench](https://huggingface.co/datasets/OpenMOSS-Team/SciJudgeBench).
34
+
35
+ Resources: [Project page](https://tongjingqi.github.io/AI-Can-Learn-Scientific-Taste/) and [GitHub repository](https://github.com/tongjingqi/AI-Can-Learn-Scientific-Taste).
36
+
37
+ ## Usage
38
+
39
+ ```python
40
+ import torch
41
+ from transformers import AutoModelForCausalLM, AutoTokenizer
42
+
43
+ model_name = "OpenMOSS-Team/SciJudge-30B-2605"
44
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
45
+ model = AutoModelForCausalLM.from_pretrained(
46
+ model_name,
47
+ torch_dtype=torch.bfloat16,
48
+ device_map="auto",
49
+ )
50
+
51
+ messages = [
52
+ {"role": "system", "content": "You are a helpful assistant. You first think about the reasoning process in your mind and then provide the user with the answer."},
53
+ {"role": "user", "content": "Today is 2025-12-10. Based on the titles, abstracts, and publication dates of the following two papers A and B, determine which paper has a higher citation count.\nShow your reasoning process in <reason> </reason> tags. And return the final answer in <answer> </answer> tags. The final answer should contain only 'A' or 'B'.\n\nPaper A:\nTitle: ...\nAbstract: ...\nDate: ...\n\nPaper B:\nTitle: ...\nAbstract: ...\nDate: ..."}
54
+ ]
55
+
56
+ text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
57
+ inputs = tokenizer(text, return_tensors="pt").to(model.device)
58
+ outputs = model.generate(**inputs, max_new_tokens=2048, temperature=0.7, top_p=0.8, top_k=20)
59
+ response = tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
60
+ print(response)
61
+ ```
62
+
63
+ ## Training Details
64
+
65
+ - **Base model:** [Qwen/Qwen3-30B-A3B-Instruct-2507](https://huggingface.co/Qwen/Qwen3-30B-A3B-Instruct-2507)
66
+ - **Training method:** GRPO with DAPO loss
67
+ - **Reward:** external preference reward for citation-based pairwise judgment
68
+ - **Training data:** 720,341 preference pairs from SciJudgeBench
69
+ - **Precision:** bfloat16
70
+ - **KL coefficient:** 0.03
71
+
72
+ ## Evaluation
73
+
74
+ Accuracy on the SciJudgeBench `test` split, the 1,000-example MAIN_1000 in-domain evaluation set:
75
+
76
+ | Model | CS | Math | Physics | Others | Avg. |
77
+ | --- | ---: | ---: | ---: | ---: | ---: |
78
+ | Qwen3-30B-A3B-Instruct-2507 | 73.39 | 79.90 | 64.41 | 63.94 | 69.7 |
79
+ | SciJudge-30B-2605 | 83.47 | 89.71 | 81.18 | 77.40 | 82.7 |
80
+
81
+ ## Citation
82
+
83
+ ```bibtex
84
+ @misc{tong2026ailearnscientifictaste,
85
+ title={AI Can Learn Scientific Taste},
86
+ author={Jingqi Tong and Mingzhe Li and Hangcheng Li and Yongzhuo Yang and Yurong Mou and Weijie Ma and Zhiheng Xi and Hongji Chen and Xiaoran Liu and Qinyuan Cheng and Ming Zhang and Qiguang Chen and Weifeng Ge and Qipeng Guo and Tianlei Ying and Tianxiang Sun and Yining Zheng and Xinchi Chen and Jun Zhao and Ning Ding and Xuanjing Huang and Yugang Jiang and Xipeng Qiu},
87
+ year={2026},
88
+ eprint={2603.14473},
89
+ archivePrefix={arXiv},
90
+ primaryClass={cs.CL},
91
+ url={https://arxiv.org/abs/2603.14473},
92
+ }
93
+ ```
chat_template.jinja ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- for message in messages %}
18
+ {%- if message.content is string %}
19
+ {%- set content = message.content %}
20
+ {%- else %}
21
+ {%- set content = '' %}
22
+ {%- endif %}
23
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
24
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
25
+ {%- elif message.role == "assistant" %}
26
+ {{- '<|im_start|>' + message.role + '\n' + content }}
27
+ {%- if message.tool_calls %}
28
+ {%- for tool_call in message.tool_calls %}
29
+ {%- if (loop.first and content) or (not loop.first) %}
30
+ {{- '\n' }}
31
+ {%- endif %}
32
+ {%- if tool_call.function %}
33
+ {%- set tool_call = tool_call.function %}
34
+ {%- endif %}
35
+ {{- '<tool_call>\n{"name": "' }}
36
+ {{- tool_call.name }}
37
+ {{- '", "arguments": ' }}
38
+ {%- if tool_call.arguments is string %}
39
+ {{- tool_call.arguments }}
40
+ {%- else %}
41
+ {{- tool_call.arguments | tojson }}
42
+ {%- endif %}
43
+ {{- '}\n</tool_call>' }}
44
+ {%- endfor %}
45
+ {%- endif %}
46
+ {{- '<|im_end|>\n' }}
47
+ {%- elif message.role == "tool" %}
48
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
49
+ {{- '<|im_start|>user' }}
50
+ {%- endif %}
51
+ {{- '\n<tool_response>\n' }}
52
+ {{- content }}
53
+ {{- '\n</tool_response>' }}
54
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
55
+ {{- '<|im_end|>\n' }}
56
+ {%- endif %}
57
+ {%- endif %}
58
+ {%- endfor %}
59
+ {%- if add_generation_prompt %}
60
+ {{- '<|im_start|>assistant\n' }}
61
+ {%- endif %}
config.json ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Qwen3MoeForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 151643,
8
+ "decoder_sparse_step": 1,
9
+ "dtype": "bfloat16",
10
+ "eos_token_id": 151645,
11
+ "head_dim": 128,
12
+ "hidden_act": "silu",
13
+ "hidden_size": 2048,
14
+ "initializer_range": 0.02,
15
+ "intermediate_size": 6144,
16
+ "max_position_embeddings": 262144,
17
+ "max_window_layers": 48,
18
+ "mlp_only_layers": [],
19
+ "model_type": "qwen3_moe",
20
+ "moe_intermediate_size": 768,
21
+ "norm_topk_prob": true,
22
+ "num_attention_heads": 32,
23
+ "num_experts_per_tok": 8,
24
+ "num_hidden_layers": 48,
25
+ "num_key_value_heads": 4,
26
+ "num_local_experts": 128,
27
+ "output_router_logits": false,
28
+ "pad_token_id": null,
29
+ "rms_norm_eps": 1e-06,
30
+ "rope_parameters": {
31
+ "rope_theta": 10000000,
32
+ "rope_type": "default"
33
+ },
34
+ "router_aux_loss_coef": 0.001,
35
+ "sliding_window": null,
36
+ "tie_word_embeddings": false,
37
+ "transformers_version": "5.5.4",
38
+ "use_cache": true,
39
+ "use_sliding_window": false,
40
+ "vocab_size": 151936
41
+ }
model-00001-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f8d3577cc99f4dfcefdaa0cac3bc15012cb624d80108c7ac8a34d2ea48199098
3
+ size 4997189144
model-00002-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3dc8be63c496995f5fc5d1ecc799de92940569307717386ea4d0009358b56917
3
+ size 4997741584
model-00003-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ce04299e72df736c52bc84211d1dba17ca20c2036df002dc1fb60bd29ba0506b
3
+ size 4997742176
model-00004-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ae0030b5e5f52e9ccb5f8dde91f917ad42f6da0ed458c32577aad3e73765d31a
3
+ size 4997743160
model-00005-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:154a9b8394c478d649bd8ceddab89699370f175e04180a628ea1d66f901e710e
3
+ size 4997743160
model-00006-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f5c79b874cf36ee974453e115dcdc5b0d400fabad3b5fac3aa15ad4ccf5604af
3
+ size 4997743160
model-00007-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0a1465add3df3f36a980e5488ec08c0ed5fde79261d70f5c44eca4319d4abdfd
3
+ size 4997743160
model-00008-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4ee6b88a8e9f43c4b16a0b09c29095b20964323926b2b72a3312958a80e51974
3
+ size 4997743160
model-00009-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8f02cff7e37fdd8ba72ed5b4229ba88c4174c3fb4b9bd238afa439b28d801ba6
3
+ size 4997743160
model-00010-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:781681cb315460b9e2a37c64dbd75b98dd4f509577281f9985b6f80653ae9f38
3
+ size 4997743160
model-00011-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:510811a7a4f0c4f54e31c9c91ec0722827209925dae42a808eff5a75d520ae7a
3
+ size 4997743160
model-00012-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2e1eb0a5fbfbb072eee2d40e58977649461cdf05c954a4ac460f48cdca8e57b1
3
+ size 4997743160
model-00013-of-00013.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a41cf139f4b744c8c1fb706906f4b788500f98a877be32d485487f18b60fff6b
3
+ size 1094216064
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be75606093db2094d7cd20f3c2f385c212750648bd6ea4fb2bf507a6a4c55506
3
+ size 11422650
tokenizer_config.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": null,
5
+ "clean_up_tokenization_spaces": false,
6
+ "eos_token": "<|im_end|>",
7
+ "errors": "replace",
8
+ "extra_special_tokens": [
9
+ "<|im_start|>",
10
+ "<|im_end|>",
11
+ "<|object_ref_start|>",
12
+ "<|object_ref_end|>",
13
+ "<|box_start|>",
14
+ "<|box_end|>",
15
+ "<|quad_start|>",
16
+ "<|quad_end|>",
17
+ "<|vision_start|>",
18
+ "<|vision_end|>",
19
+ "<|vision_pad|>",
20
+ "<|image_pad|>",
21
+ "<|video_pad|>"
22
+ ],
23
+ "is_local": true,
24
+ "model_max_length": 1010000,
25
+ "pad_token": "<|endoftext|>",
26
+ "split_special_tokens": false,
27
+ "tokenizer_class": "Qwen2Tokenizer",
28
+ "unk_token": null
29
+ }