OpenSpark-13B-Chat
中文 | English
⚠️ 注意: 这是讯飞星火的一个较早期版本(2024 年发布)。我们将其转换为 Hugging Face 格式,主要是为了研究目的——帮助社区研究早期大模型的架构设计、与现代模型进行效果对比,以及理解大模型技术的演进历程。
这是由社区将讯飞星火(iFlytek Spark)13B 模型转换为 Hugging Face 格式的版本。原始权重从官方 Megatron-DeepSpeed 格式转换而来,可无缝接入 transformers 生态。
权重来源
- 原始权重: 讯飞星火 Spark-13B (Gitee)
- 训练框架: Megatron-DeepSpeed
- 发布时间: 2024 年
环境要求
pip install torch transformers sentencepiece
使用方法
你可以使用 transformers 库直接加载。请确保设置 trust_remote_code=True 以加载模型和 Tokenizer 的逻辑代码。
基本用法
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_path = "freedomking/OpenSpark-13B-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
prompt = "<User> 你好,请自我介绍一下。<end><Bot>"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
使用 apply_chat_template (推荐)
对于多轮对话,请使用内置的对话模板:
messages = [
{"role": "user", "content": "你好,请自我介绍一下。"}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
return_tensors="pt",
add_generation_prompt=True
).to(model.device)
outputs = model.generate(
inputs,
max_new_tokens=8192,
temperature=0.7,
top_k=1,
do_sample=True,
repetition_penalty=1.02,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
多轮对话
messages = [
{"role": "user", "content": "什么是人工智能?"},
{"role": "assistant", "content": "人工智能是一种模拟人类智能的技术..."},
{"role": "user", "content": "它有哪些应用场景?"}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
return_tensors="pt",
add_generation_prompt=True
).to(model.device)
outputs = model.generate(inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
模型详情
| 参数 | 值 |
|---|---|
| 架构 | Transformer Decoder (Spark) |
| 参数量 | 约 13B |
| 隐藏层维度 | 5120 |
| 层数 | 40 |
| 注意力头数 | 40 |
| 词表大小 | 60,000 |
| 上下文长度 | 32K |
| RoPE 基数 (Theta) | 1,000,000 |
| 激活函数 | Fast GeLU |
推荐生成参数
| 参数 | 推荐值 |
|---|---|
max_new_tokens |
8192 |
temperature |
0.7 |
top_k |
1 |
do_sample |
True |
repetition_penalty |
1.02 |
为什么做这个转换?
本项目为研究社区提供以下价值:
- 历史参考: 研究早期中文大模型的架构设计
- 效果对比: 与现代模型(如 Qwen、DeepSeek 等)进行性能基准对比
- 教育价值: 理解大模型设计理念的演进过程
- 生态兼容: 使用标准的 Hugging Face API 运行模型
核心特性
- 对话模板: 支持
apply_chat_template进行多轮对话 (<User>...<end><Bot>...格式)。 - 标准化命名: 与 Qwen、Llama 等主流模型命名规范保持一致。
- 自定义 Tokenizer: 完整支持中文标点处理、制表符格式化以及特殊 Token(
<ret>,<end>)。 - BFloat16 支持: 针对现代 GPU 优化,使用 BF16 精度。
许可证
本项目遵循 Apache 2.0 许可证。