一、模型介绍
iFLYTEK Spark Chemistry-X1-13B 是由 iFLYTEK 团队开发的化学专业大型语言模型。该模型在多种化学任务数据集上对 iFLYTEK Spark-X1 基础模型进行了微调,展示了在解决复杂化学问题方面的卓越能力,同时保持了强大的通用能力。该模型在与化学相关的基准测试中表现出色,并且在大多数评估指标上明显优于领先的通用模型。
主要特点
-
深度推理架构 :结合长链思维(CoT)和双过程理论的统一框架,支持快速(反应式)和慢速(深思熟虑)两种思考模式
-
混合训练稳定性 :新颖的注意力掩码机制将不同推理模式的训练阶段解耦,防止数据分布之间的干扰
-
化学领域增强 :针对以下专业任务的多阶段优化:
- 高级知识问答
- 化学名称转换
- 分子属性预测
模型概要
参数 | 值 |
---|---|
总参数 | 13B |
上下文长度 | 32K |
窗口长度 | 32K |
层数 | 40 |
注意力隐藏维度 | 5120 |
注意力头数 | 40 |
词汇量 | 130K |
注意力机制 | GQA |
激活函数 | GeLU |
评估结果
*粗体 = 全球最佳
任务 | 指标 | Spark Chemistry-X1-13B | DeepSeek-R1 | Gemini 2.5 pro | GPT-4.1 | O3-mini |
---|---|---|---|---|---|---|
高级知识问答 | 准确率 | 84.00 | 77.00 | 64.00 | 76.00 | 80.00 |
名称转换 | 准确率 | 71.00 | 6.00 | 15.00 | 4.00 | 6.00 |
属性预测 | 准确率 | 85.33 | 41.73 | 51.19 | 51.66 | 67.58 |
评估说明 :
- 所有结果显示零样本性能平均值
- 对所有模型应用一致的评估协议
- DeepSeek-R1、Gemini 2.5 Pro、GPT-4.1 和 O3-mini 使用链式思维(CoT)推理并通过 API 验证进行评估
- Spark Chemistry-X1-13B 在 NVIDIA A800 80GB GPU 的本地环境中使用链式思维(CoT)推理进行评估
- 评估数据集是自行构建的
二、模型部署
1.下载模型及文件
下载地址:modelscope.cn/models/ifly...
下载命令
css
pip install modelscope
modelscope download --model iflytek/Spark-Chemistry-X1-13B
2.安装环境
bash
cd iflytek/Spark-Chemistry-X1-13B
pip install -r requirements.txt
pip install .
3.快速使用
ini
from modelscope import AutoModelForCausalLM, AutoTokenizer
import torch
# Load model and tokenizer
model_name = "iflytek/Spark-Chemistry-X1-13B"
tokenizer = AutoTokenizer.from_pretrained(model_name,trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float32,
device_map="auto",
trust_remote_code=True
)
# Reactive
chat_history = [
{
"role" : "user",
"content" : "请回答下列问题:高分子材料是否具有柔顺性主要决定于()的运动能力。\nA、主链链节\nB、侧基\nC、侧基内的官能团或原子?"
}]
inputs = tokenizer.apply_chat_template(
chat_history,
tokenize=True,
return_tensors="pt",
add_generation_prompt=True
).to(model.device)
outputs = model.generate(
inputs,
max_new_tokens=8192,
top_k=1,
do_sample=True,
repetition_penalty=1.02,
temperature=0.7,
eos_token_id=5,
pad_token_id=0,
)
response = tokenizer.decode(
outputs[0][inputs.shape[1] :],
skip_special_tokens=True
)
print(response)
ini
from modelscope import AutoModelForCausalLM, AutoTokenizer
import torch
# Load model and tokenizer
model_name = "iflytek/Spark-Chemistry-X1-13B"
tokenizer = AutoTokenizer.from_pretrained(model_name,trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float32,
device_map="auto",
trust_remote_code=True
)
# Deliberative
chat_history = [
{
"role" : "system",
"content" : "请你先深入剖析给出问题的关键要点与内在逻辑,生成思考过程,再根据思考过程回答给出问题。思考过程以<unused6>开头,在结尾处用<unused7>标注结束,<unused7>后为基于思考过程的回答内容"
}
,
{
"role" : "user",
"content" : "请回答下列问题:高分子材料是否具有柔顺性主要决定于()的运动能力。\nA、主链链节\nB、侧基\nC、侧基内的官能团或原子?"
}]
inputs = tokenizer.apply_chat_template(
chat_history,
tokenize=True,
return_tensors="pt",
add_generation_prompt=True
).to(model.device)
outputs = model.generate(
inputs,
max_new_tokens=8192,
top_k=1,
do_sample=True,
repetition_penalty=1.02,
temperature=0.7,
eos_token_id=5,
pad_token_id=0,
)
response = tokenizer.decode(
outputs[0][inputs.shape[1] :],
skip_special_tokens=True
)
print(response)
可选:将 FP32 权重转换为 BF16
发布的 Spark Chemistry-X1-13B 权重以 FP32 精度存储。 为了提高推理效率,用户可以选择将权重转换为 bfloat16 (BF16) 格式。
ini
from modelscope import AutoModelForCausalLM
import torch
model_name = "iflytek/Spark-Chemistry-X1-13B"
# Load FP32 weights
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float32, # explicitly FP32
device_map="auto",
trust_remote_code=True
)
# Convert to BF16
model = model.to(torch.bfloat16)
# Save BF16 weights for later fast loading
save_path = "./Spark-Chemistry-X1-13B-bf16"
model.save_pretrained(save_path, safe_serialization=True)