wxhdzh 发布的文章

星火工作室 Logo
由星火工作室 (Spark Studio) 从零开发并训练

SparkDeep-v1-lite 是 Spark 模型系列的首个基座模型。它不基于任何已有开源模型微调,从模型架构、分词器到权重全部从零实现与训练。

该模型专注于中文情感对话场景,旨在感知用户情绪变化,给出温暖、贴心、有同理心的回应。作为轻量级模型,它可在普通 CPU 上完成流畅推理,真正让 AI 触手可及。


📊 模型信息

项目参数详情
参数量200,052,608 (约 0.2B)
架构GPT 风格 Decoder-Only Transformer
词表大小8,192 (Byte-Level BPE,含 5 个特殊 token)
隐藏层维度896 (14 注意力头 × 64 头维度)
层数20 Layers
FFN 维度3,584
位置编码RoPE (theta=10,000)
最大序列长度512 tokens
激活函数GELU (tanh 近似)

训练细节

我们坚持极简、高效、透明的训练哲学:

  • 优化器:Lion Optimizer

    • 初始学习率:1e-4
    • 调度策略:余弦退火 (Cosine Schedule) + 40 步 Warmup
    • 权重衰减:0.1
  • 批量设置:batch_size=8,序列长度 256
  • 训练数据:

    1. SoulChatCorpus:中文情感/心理对话语料(约 25.8 万条多轮对话)
    2. 身份认知注入:84 条身份问答对 × 8 次重复强化
    3. 合计 Token 数:约 1.22 亿
  • 训练成果:

    • 最佳验证 Loss:1.5762
    • 困惑度 (PPL):≈ 4.84
    • 注:模型仍在持续迭代改进中

能力边界

✅ 擅长

  • 中文情感对话:具备优秀的倾听、共情与安慰能力,能敏锐捕捉用户情绪。
  • 明确的身份认知:清晰知道自己是“由星火工作室从零训练的 Spark 系列首个基座模型”,不易产生身份幻觉。
  • 流畅的短句生成:在日常闲聊和情感交互中表现自然。

⚠️ 局限

  • 规模限制:作为 0.2B 小模型,不具备复杂逻辑推理、代码编写或长文写作能力。
  • 知识储备有限:由于训练数据聚焦于情感对话,可能在事实性问答中出现错误。
  • 非专业建议:生成内容仅供情感陪伴参考,不应作为专业心理咨询或医疗建议。

快速开始

1. 环境准备

确保已安装 torch 和 tokenizers。

2. 代码示例

from tokenizers import Tokenizer
import torch

# 加载分词器
tokenizer = Tokenizer.from_file("path/to/tokenizer.json")

# 权重加载方式请参考项目开源代码仓库中的 generate.py
# model = load_model("path/to/sparkdeep-v1-lite.pt")

# 推理参数建议
generation_config = {
    "temperature": 0.8,
    "top_k": 50,
    "top_p": 0.95,
    "max_new_tokens": 120
}
💡 提示:完整的推理脚本、量化指南及微调示例请查阅 GitHub 仓库中的 generate.py 和 README.md。

📜 开源协议

Apache License 2.0

我们承诺完全开放:

  • ✅ 模型权重
  • ✅ 训练代码
  • ✅ 数据处理脚本

欢迎社区自由使用、修改及分发,共同探索轻量级 AI 的可能性。


🙏 致谢

  • 感谢 SoulChatCorpus 数据集作者提供的优质中文情感对话语料,为模型注入了温暖的灵魂。
  • 感谢所有在预览版阶段提供反馈的社区开发者。

星火工作室 · Spark Studio · Boli AI
📧 deepxing@hotmail.com
🔗 ModelScope: SparkDeep-v1-lite | GitHub Repository
AI 拥抱世界,世界信任 AI

星火燎原:从零锻造SparkDeep的极简主义AI之旅

星火工作室 Logo

星火工作室 · 2026年8月


写在前面

三天前,我们做了一个在很多人看来不太理智的决定:从零开始,训练一个属于我们自己的大语言模型。

不是基于Llama微调,不是套壳ChatGPT,而是从模型架构、分词器、训练数据到优化器,全部亲手搭建。

这个决定意味着什么?意味着没有现成的checkpoint可以复用,没有开源模型可以"继承"。意味着每一层网络都要自己写,每一个token都要自己分,每一份训练数据都要自己清洗。

但我们也知道,这意味着真正的自由。

今天,我们想和大家分享这个故事的起点——SparkDeep,星火工作室从零开发并训练的Spark系列基座模型。


为什么还要从零训练?

2026年,开源大模型已经遍地都是。Llama、Qwen、DeepSeek……选择一个优秀的基座进行微调,似乎是更"聪明"的选择。为什么不呢?

答案很简单:我们想真正理解这件事。

微调就像是站在巨人的肩膀上。但如果你想成为那个巨人呢?想理解模型的每一处细节,从梯度流动到注意力分布,从分词器词表到损失曲线——唯一的办法,就是亲手走一遍完整的路。

从零训练,不是为了证明我们比别人厉害,而是为了把知识的边界推到我们自己的脚下。

另一个原因更实际:我们想做的是一个轻量、高效、可移植的模型。0.2B的参数规模,意味着它可以在CPU上流畅推理,可以在资源受限的场景中落地,可以真正被用起来,而不是被锁在昂贵的GPU集群里。


它是什么?一个200M参数的"小"模型

SparkDeep是一个参数量约2亿的GPT风格解码器模型。放在今天的大模型生态里,这确实算"小"。但"小"有小的好处:

  • 它可以在普通笔记本的CPU上运行
  • 它的推理速度足够快,适合实时对话场景
  • 它的内存占用极低,部署成本几乎可以忽略不计

更重要的是,虽然规模不大,但它的设计并不简陋。

架构亮点:采用了RoPE旋转位置编码、RMSNorm、GELU激活函数,以及权重共享(Token Embedding与LM Head共享参数)——这些都是当前最先进模型(如LLaMA系列)所采用的技术方案。我们没有因为模型小就在架构上妥协。


身份认知:让模型"认识自己"

这是SparkDeep最独特的设计之一。

很多开源模型在被问及"你是谁"时,会回答"我是ChatGPT"或"我是由OpenAI开发的"——这是微调数据中身份信息不明确导致的"幻觉"。

我们从一开始就特别重视这个问题。在训练数据中,我们注入了64组身份问答对,涵盖各种不同的问法:

  • "你是谁?" → "我是SparkDeep,由星火工作室从零开发并训练的Spark系列基座模型。"
  • "你是GPT吗?" → "不是,我是SparkDeep,由星火工作室从零开发并训练的Spark系列基座模型。"
  • "谁开发了你?" → "我是由星火工作室开发并训练的……"

这些身份数据在训练中被重复了8次,确保模型在任何变体的提问下都能准确地"认识自己"。这不是一个简单的"系统提示词"能解决的问题,而是需要在训练过程中把身份认知刻进模型的权重里。


精简的分词器:8192词表的考量

另一个有意思的设计是词表大小:8192。

相比许多模型动辄3万、5万甚至10万的词表,8192显得格外克制。但这个选择是有意为之的:

  1. Byte-Level BPE:通过字节级的分词方式,即使词表不大,也能覆盖几乎所有中文和英文字符组合。
  2. 轻量部署:更小的词表意味着更小的嵌入层(Embedding Layer),这对模型的整体参数量和推理速度都有正面影响。
  3. 训练效率:在小规模训练中,过大的词表反而会分散模型的注意力,适度的词表更有利于收敛。

分词器的训练同样是从零开始的——我们采集了所有训练数据中的文本,训练了一个专属的BPE分词器,而不是复用任何现成的tokenizer。


数据准备:注入SparkDeep的"灵魂"

训练数据的设计同样体现了一种"克制与精准"的思路。

我们使用的数据主要包括两部分:

第一部分:对话数据
使用了数万条真实的情感对话数据,涵盖用户提问和对应的助手回复。这些数据经过清洗和格式化,被转换为统一的对话模板:

  • 系统提示词(注入SparkDeep的身份和性格)
  • 用户输入
  • 助手回复

第二部分:身份数据(64条 × 8次重复)
就是前面提到的64组身份问答对。每条数据都被完整地编码为对话格式,并重复8次,确保模型在任何时候都不会"忘记"自己是谁。

这种设计的核心思想是:让模型在学会对话的同时,始终记得自己的身份。


训练哲学:极简、高效、透明

SparkDeep的训练过程同样延续了这种极简风格。

优化器:我们选择了Lion优化器,而不是主流的AdamW。Lion只存储一阶动量,内存占用远低于AdamW。对于资源有限的环境来说,这个选择直接决定了训练能否进行。

硬件条件:整个训练在3核CPU、5.8GB内存的环境下完成,总耗时约100分钟。这个训练成本对大多数个人开发者来说都是可以接受的。

可复现性:我们不希望这个项目只是一个"黑盒"。所有的代码、配置、数据准备流程都是开源的,任何人都可以复现这个过程。


当前进度与后续计划

目前,SparkDeep已进入Demo预览阶段。

模型的初步训练已经完成,具备基础的对话能力和身份认知能力。你可以通过generate.py脚本与它进行交互对话,或通过单次提问测试它的回复质量。

需要说明的是: 目前的版本属于"拟合未完成"的预览状态。我们正在进行更充分的训练迭代,以确保模型的稳定性、泛化能力和情感理解深度达到预期水平。

正式版本预计将在3至4周后发布。

在正式版中,我们将完成:

  • 更充分的训练步数,进一步提升模型表现
  • 更完善的情感理解与共情能力
  • 更稳定的推理性能
  • 更丰富的使用文档和示例

如果你想提前体验,现在已经可以下载Demo版本进行测试。我们非常期待听到你的反馈。


写在最后

SparkDeep不是一个试图"超越 GPT-5.6"的模型。它不会写诗让你落泪,不会编程让你失业,也不会在基准测试中屠榜。

但它代表了一件事:在AI大模型时代,创造的门槛并没有人们想象的那么高。

你不需要几百张GPU,不需要几亿资金,不需要一个庞大的团队。你只需要:

  • 一个清晰的想法
  • 一些公开的数据
  • 一份扎实的代码
  • 和足够的耐心

SparkDeep就是这种"小而美"精神的产物。它不追求最大、最强,而是追求最纯粹、最透明、最可理解。

我们相信,只有当更多人能够亲手创造AI时,AI才能真正造福更多人。


关于星火工作室

星火工作室是一个由AI爱好者和工程师组成的小团队。我们相信技术应当服务于人,AI不应只是少数巨头的游戏。

我们选择从零开发,选择开放源代码,选择分享每一个技术细节。因为我们相信:

AI打造世界,世界拥抱AI。

欢迎通过以下方式联系我们:


星火工作室 · Spark Studio · Boli AI
AI 拥抱世界,世界信任 AI

Logo

当编译器学会“思考”:我们离AI自主编译还有多远?

过去一周,我反复回看 nova-lang-ai 的最后一组测试日志。当第 15,000 个随机生成的程序样本通过虚拟机验证、最终输出与参考编译器完全一致时,屏幕上的那行“PASS”显得格外平静——仿佛这一切理所当然。但我知道,这背后是一项持续了数月的探索:我们能否让神经网络真正学会编译?

这不是一个显而易见的问题。编译器的本质,是将人类可读的高级语言映射为机器可执行的二进制指令。这个映射过程极其复杂,涉及词法分析、语法分析、语义分析、中间代码生成、优化、寄存器分配、指令选择等数十个环节。自 20 世纪 50 年代以来,编译器一直由工程师手工编写规则来驱动。每一条规则,都是人类智慧的结晶,但也意味着巨大的开发成本和难以穷尽的边界情况。

而 nova-lang-ai 试图走一条截然不同的路:用一个轻量级的神经网络,直接学习从源代码到 x86-64 风格机器码字节的端到端映射,绕过所有人工编写的代码生成规则。这个想法并不新鲜,但此前鲜有人真正将它实现为一个可运行、可评估的完整系统。我们做到了。

nova-lang-ai 编译器基准测试综合报告

一、为什么“神经编译”值得认真对待?

在深入技术细节之前,有必要先回答一个更根本的问题:我们为什么需要 AI 来编译代码?传统编译器不是已经做得足够好了吗?

是的,GCC 和 LLVM 在过去几十年间支撑了整个软件工业的发展,它们在正确性、优化能力和稳定性上都达到了极高的水准。但问题在于,这些编译器本质上是“规则的手工艺品”。每当出现新的语言特性、新的硬件架构或新的优化机会,开发者都需要投入大量人力去编写、调试和维护新的规则。这是一个永无止境的过程,而且对技术变化反应迟钝。

更关键的是,编译器中存在大量“启发式”决策——比如寄存器分配策略、内联阈值选择、循环展开次数等。这些启发式规则通常是基于经验和有限测试集调优的,很难在所有场景下都达到最优。而深度学习恰恰擅长从大规模数据中发现复杂模式,这正是启发式决策的理想替代方案。

nova-lang-ai 正是基于这一洞察而诞生的。我们的目标不是立即取代 GCC,而是验证一条新路径的可行性:用数据驱动替代规则驱动,让编译器从“被编写”变成“被训练”。

二、系统架构:让 AI 只做它擅长的事

在系统设计上,我们面临一个核心挑战:编译任务太复杂了,如果让神经网络独立承担全部工作,模型规模和训练难度将急剧膨胀,甚至远超当前硬件可行范围。因此,我们采用了一个关键设计原则——职责分离。

我们将编译任务拆解为两部分。确定性部分包括词法分析、语法分析、符号表管理和跳转偏移计算,这些任务有明确的规则和算法,由参考编译器以确定性方式完成。可学习部分则是将源代码序列翻译为机器码字节序列,这部分交给神经网络。

特别是跳转偏移计算,这是控制流编译中最棘手的环节之一。if 分支和 while 循环的跳转偏移依赖于程序的全局结构,需要两遍扫描才能确定。如果让 AI 自己学习推断偏移值,不仅难度极大,而且容易出错。因此,我们在 AI 输入序列中预留了偏移位置,由参考编译器在两遍编译后回填真实值,AI 只需专注于生成指令序列本身。

这种设计大幅降低了模型的学习难度,使得仅有二十余万参数的小型网络也能处理复杂的控制流结构。

为了进行可控的实验,我们设计了一门自定义语言,它具备图灵完备性,支持变量声明与赋值、算术运算、比较运算、条件分支、循环以及输出。所有变量以栈槽位方式存储,最多支持十六个变量。为了构建训练数据集,我们实现了一个随机程序生成器,能够自动生成覆盖全部语法模式的程序样本,并保证语义正确。最终生成了超过一万个训练样本和数百个测试样本。

为了让神经网络理解源代码,我们将每条语句编码为固定长度的整数序列。词表覆盖了所有关键字、运算符、变量标识符和整数字面量。控制流语句的末尾预留偏移位置,由参考编译器在两遍编译后回填。

三、神经网络架构与训练策略

我们采用了一个轻量级的编码器-解码器架构,编码器和解码器均为两层结构,配合嵌入层将输入映射为稠密向量,输出层则预测字节值或终止符。模型总参数量约为二十四万,以标准精度存储仅占不到一兆字节。这个规模意味着它可以轻松部署在浏览器、移动端或边缘设备上。

训练过程采用了多项技术以确保稳定收敛,包括标签平滑防止模型过自信、Adam 优化器、余弦退火配合线性预热的学习率调度、梯度裁剪以及合理的参数初始化。我们在纯数值计算环境下实现了全套训练流程,不依赖任何主流深度学习框架,确保了系统的轻量化和可移植性。

经过四百轮训练,模型在测试集上取得了接近完美的字节级准确率,序列完全匹配的准确率也达到了很高的水准。与早期版本相比,通过增加数据量和模型容量,序列准确率提升了近五个百分点,验证了扩展策略的有效性。

四、实验评估:与参考编译器的全面对比

为了客观评估 AI 编译器的能力,我们从多个维度进行了系统性的对比实验。

在功能正确率方面,我们将测试用例分为基础语句、算术表达式、控制流和嵌套结构等类别。基础语句方面,AI 编译器已完美掌握,与参考编译器持平。控制流场景中,AI 展现出了真实的理解能力,而非简单的模式记忆。但算术表达式仍然是最大短板,AI 生成的机器码末尾存在多余字节,导致虚拟机将其误识别为未知指令。嵌套结构的准确率表明,跳转偏移的精确生成在长序列场景下仍有挑战。

在编译速度与资源占用方面,AI 编译器的延迟虽然比传统编译器慢一个数量级,但考虑到它运行在纯 Python 环境下,且模型需要逐字节自回归生成,这个速度已经相当可观。更重要的是,AI 编译器在内存占用上优势显著,仅需不到两兆字节,远小于任何传统编译器及其依赖库。

我们还设计了一个多维度的加权评分体系,综合评估各编译器的表现。参考编译器在正确性和鲁棒性上遥遥领先,这是意料之中的。AI 编译器的综合评分从早期版本到当前版本提升了近五分,验证了模型优化的有效性。

五、错误分析:两大核心病灶

在所有失败的测试用例中,绝大多数错误可归为两大类。深入理解这些错误模式,是下一步优化的关键。

第一类是算术表达式末尾多余字节,占比超过六成。典型情况是,模型在算术运算指令序列结束后多输出了一个零字节,虚拟机将其误识别为指令前缀,导致执行错误。其根本原因在于模型未精确学习终止符的输出位置。改进方向包括在训练中增加算术表达式样本的权重、添加后处理阶段自动截断多余字节、以及调整损失函数对终止位置施加更高惩罚。

第二类是控制流跳转偏移误差,占比约三成。跳转偏移值需要精确到字节级,而模型在长序列输出时难以保持精确计数,这本质上是序列生成中“计数”能力的缺失。改进方向包括为偏移字节设计专门的损失函数、引入强化学习微调让模型通过试错学习精确偏移、以及使用位置编码增强位置感知能力。

六、对比与迭代:优化带来的提升

当前版本相比早期版本的主要变化包括训练样本数增加了五成、模型容量适度扩大、参数量相应增加。这些变化带来了字节准确率和序列准确率的显著提升,证明了数据量扩充和模型容量扩展是有效的策略。

值得注意的是,当前版本在功能正确率测试中的总分略有下降,原因是测试集增加了更复杂的嵌套场景——这实际上反映了评估的严苛程度提升,而非模型能力退化。

七、AI 编译器的价值与边界

这项探索让我们看到了几个重要的价值。首先是无需人工编写规则,这是最根本的优势。只要提供足够的高质量训练数据,AI 编译器可以自动学习从源码到机器码的映射,无需人工设计任何指令选择或优化规则。其次是轻量化部署能力,不足两兆字节的模型可以在浏览器、移动端、嵌入式设备等受限环境中运行,为边缘计算场景提供了全新的编译方案。第三是适应性强,当语言规范或硬件指令集发生变化时,只需重新训练模型,无需重写数万行编译器代码。第四是可扩展性好,实验证明增加训练数据和模型容量可以直接提升编译准确率,这意味着我们有一条清晰的路线图来持续改进系统。

但我们也必须清醒地认识到当前的边界。复杂算术表达式和深层嵌套场景的准确率仍然偏低,距离生产可用还有较大差距。推理速度虽然可以满足交互需求,但与传统编译器相比仍有显著差距。当前实验仅限于自定义的小型语言,距离真实的工业级编程语言还有很长的路要走。

八、未来方向

基于当前的实验结果和错误分析,我们认为以下几个方向值得重点探索。

在模型架构方面,可以引入注意力机制的变体来增强长序列建模能力,或者尝试更高效的生成架构以提升推理速度。

在训练策略方面,可以为偏移字节设计专门的损失函数,或者通过强化学习微调来改善跳转精度。增加算术表达式的训练样本权重也是直接有效的改进手段。

在后处理方面,可以添加规则化的后处理阶段自动修正常见错误模式,比如截断多余字节、校验跳转偏移范围等。

在部署方面,可以探索模型蒸馏技术,将当前模型的知识迁移到更小的网络中,进一步降低推理延迟和内存占用。

结语

nova-lang-ai 的探索,验证了“数据驱动”编译器构造方法的可行性。它或许在短期内无法取代现有的工业级编译器,但它指明了一条有趣的新路径:未来的编译器,可能不再是一本写满规则的“字典”,而是一个能从海量代码中“领悟”编译之道的“学徒”。

这条路还很长,但迈出的第一步,已经让我们看到了远方的光。

论文doi
zenodo


Logo

星火旗下 · Boli AI
nova-lang-ai 神经编译研究项目

AutoMeta v2.5.4 版本发布

智能交互再升级,开启 AI 与世界的全新对话


版本概览

星火工作室 v2.5.4 正式发布。本次更新聚焦于 AI 能力的深度拓展与交互体验的全面优化,进一步践行我们“AI 打造世界,世界拥抱 AI”的核心理念。


新增功能

一、定时任务

v2.5.4 引入定时任务功能,支持在后台按计划自动执行 AI 任务。用户可预设特定时间触发 AI 操作,实现自动化工作流与智能调度,大幅提升效率与便捷性。

请输入图片描述

二、开发模式工具集

本次版本对开发模式下的本地工具进行了系统化整合与升级:

请输入图片描述

  • 屏幕时间:AI 可读取应用屏幕使用时间,辅助用户进行数字健康管理。
  • 日历:AI 支持查询和创建日历事件,实现日程智能管理。
  • 生图与修图:集成 DALL·E、Flux 等 AI 图像模型,支持图像生成与智能编辑。
  • 无障碍操控:AI 可“看见”屏幕并自主执行点击、滑动、输入等操作,实现手机端自动化控制。
  • 通知助手:AI 可读取通知并生成智能回复,提升沟通效率。
  • 浏览器工具:支持通过 WebView 打开网页、点击元素、滚动和输入文本,拓展信息获取边界。
  • 临时邮箱:AI 可接收和阅读临时邮件,方便验证码获取与确认链接处理。

三、记忆系统

请输入图片描述

  • 全局记忆:启用后所有助手共享同一内存存储,实现跨对话的信息连贯性。
  • 参考历史聊天记录:允许助手在过去的对话中搜索相关信息,提升上下文理解能力。
  • 时间提醒:在间隔较大的消息前自动插入时间提醒,帮助 AI 理解对话间隔。
  • 并行上下文:启用后 AI 首先检索记忆,然后使用工具摘要、记忆上下文和逐条消息摘要进行生成,提升响应质量。

请输入图片描述


更新说明

模块更新内容
定时任务新增后台自动执行功能
本地工具新增屏幕时间、日历、无障碍操控、通知助手等
图像能力新增 DALL·E 与 Flux 生图、智能修图
浏览器工具新增 WebView 网页交互能力
临时邮箱新增临时邮件接收与读取
记忆系统新增全局记忆、历史参考、时间提醒、并行上下文

结语

星火工作室 v2.5.4 不仅是功能的叠加,更是我们对“AI 与世界交互”这一命题的持续深耕。未来我们将继续拓展前沿技术,让算力惠及每一个人,让 AI 成为世界进化的桥梁,真正走进千家万户。


星火工作室 · Spark Studio · Boli AI
AI 打造世界,世界拥抱 AI