科大讯飞/Spark-Chemistry-X1-13B
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

iFLYTEK Spark Chemistry-X1-13B 模型卡片

模型介绍

iFLYTEK Spark Chemistry-X1-13B 是由科大讯飞团队开发的化学专业大语言模型。该模型基于科大讯飞星火-X1(Spark-X1)基础模型,在多样化的化学任务数据集上进行了微调,不仅在解决复杂化学问题方面展现出卓越能力,同时还保持了强大的通用能力。该模型在化学相关基准测试中表现优异,在大多数评估指标上均优于主流通用模型。

核心特性

  • 深度推理架构:融合长思维链(Chain-of-Thought, CoT)与双加工理论的统一框架,支持快速(反应式)和慢速(深思式)两种思维模式

  • 混合训练稳定性:创新的注意力掩码机制,将不同推理模式的训练阶段解耦,避免数据分布间的干扰

  • 化学领域增强:针对特定任务的多阶段优化,包括:

  • 高级知识问答

  • 化学名称转换

  • 分子性质预测

模型概览

参数数值
总参数量13B
上下文长度32K
窗口长度32K
层数40
注意力隐藏维度5120
注意力头数40
词汇表大小130K
注意力机制GQA
激活函数GeLU

评估结果

*粗体 = 全球最优(Global SOTA)

任务指标Spark Chemistry-X1-13BDeepSeek-R1Gemini 2.5 proGPT-4.1O3-mini
高级知识问答Acc84.0077.0064.0076.0080.00
名称转换Acc71.006.0015.004.006.00
性质预测Acc85.3341.7351.1951.6667.58

评估说明:

  1. 所有结果均为零样本性能平均值
  2. 所有模型均采用一致的评估协议
  3. DeepSeek-R1、Gemini 2.5 Pro、GPT-4.1 和 O3-mini 的评估使用思维链(Chain-of-Thought, CoT)推理,并通过 API 验证
  4. Spark Chemistry-X1-13B 的评估在本地环境的 NVIDIA A800 80GB GPU 上使用思维链(Chain-of-Thought, CoT)推理进行
  5. 评估数据集为自建数据集

使用方法

需求

cd /path/to/Spark-Chemistry-X1-13B
# We recommend using Python 3.10
pip install -r requirements.txt
pip install .

快速入门

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)
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)格式。

from modelscope import AutoModelForCausalLM
import torch

model_name = " /path_to/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)

许可协议

iFLYTEK Spark Chemistry-X1-13B 根据 Apache 2.0 许可协议授权。