我以独立研究项目的形式,从零开始开发了一个拥有2.7亿参数的语言模型
摘要
一个从零开始在英文维基百科上训练、并经过指令微调以用于对话式AI的2.7亿参数语言模型,作为独立研究项目开发。
查看缓存全文
缓存时间: 2026/07/05 20:38
pranavupadhyaya52/Wiki-SmartBotLM-Instruct · Hugging Face
来源:https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#wiki-smartbotlm-instructWiki-SmartBotLM-Instruct
ChatGPT图像(2026年7月5日,下午07:16:43)(https://cdn-uploads.huggingface.co/production/uploads/6806616ff8cc817f1413b970/7CsCqslOQ9p7mg3TaVTiJ.png)
一个270M参数、仅解码器的小型语言模型(SLM),在英文维基百科上预训练,并通过指令调优用于通用对话式AI。
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#overview概览
Wiki-SmartBotLM-Instruct 是一个紧凑的自回归语言模型,完全从头开发,作为独立研究项目。该模型旨在探索现代语言模型开发的完整生命周期——从预训练到指令调优——使用开放数据集和现代Transformer架构。
与依赖现有基础模型继续预训练的模型不同,Wiki-SmartBotLM-Instruct 使用随机权重初始化,并通过多阶段流水线进行训练。
该项目的主要目标是:
- 从第一性原理理解大语言模型训练。
- 构建一个紧凑但功能强大的语言模型。
- 探索现代Transformer架构。
- 展示在预训练基础模型上进行指令调优的效果。
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#model-details模型详情
| 属性 | 值 |
|---|---|
| 模型名称 | Wiki-SmartBotLM-Instruct |
| 架构 | 仅解码器Transformer |
| 参数 | 270M |
| 上下文长度 | 8192 tokens |
| 训练框架 | PyTorch |
| 精度 | BF16 / FP16 |
| 许可证 | Apache-2.0(或您选择的许可证) |
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#architecture架构
Wiki-SmartBotLM-Instruct 融合了多项现代Transformer改进,包括:
- 旋转位置嵌入(RoPE)
- RMSNorm
- SwiGLU 前馈网络
- 分组查询注意力(GQA)
- Flash Attention
- 因果自注意力
- 混合精度训练
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#training-pipeline训练流水线
该模型分两个阶段进行训练。
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#stage-1–pretraining第一阶段 — 预训练
模型在英文维基百科语料库上使用下一个词预测进行预训练。
目标:
- 学习英语语法
- 学习事实性知识
- 学习百科全书式写作风格
- 学习语义关系
- 学习长上下文语言建模
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#stage-2–supervised-fine-tuning-sft第二阶段 — 有监督微调(SFT)
预训练之后,模型使用开放式指令遵循数据集进行指令调优。
此阶段的目标是改进:
- 指令遵循能力
- 对话能力
- 问答能力
- 技术解释能力
- 整体有用性
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#training-data训练数据
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#pretraining预训练
- 英文维基百科(Hugging Face)
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#supervised-fine-tuning有监督微调
- Alpaca 指令数据集
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#capabilities能力
Wiki-SmartBotLM-Instruct 可以执行多种自然语言任务,包括:
- 通用问答
- 技术解释
- 编程辅助
- 教育内容生成
- 文本摘要
- 头脑风暴
- 长文本生成
- 基本推理
- 指令遵循
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#benchmarks基准
该模型在以下基于文本的基准上进行了评估:
- MMLU
- ARC Challenge
- HellaSwag
- Winogrande
- BoolQ
| 基准 | 分数 |
|---|---|
| MMLU | 待定 |
| ARC Challenge | 待定 |
| HellaSwag | 待定 |
| Winogrande | 待定 |
| BoolQ | 待定 |
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#example示例
提示
解释什么是人工智能。
响应
人工智能(AI)是计算机科学的一个分支,专注于构建能够执行通常需要人类智能的任务的系统。这些任务包括推理、学习、规划、感知、自然语言理解和决策。现代AI涵盖了机器学习、深度学习、计算机视觉和强化学习等技术,广泛应用于从推荐系统到自动驾驶车辆等各种应用。
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#intended-uses预期用途
Wiki-SmartBotLM-Instruct 适用于:
- 教育用途
- AI研究
- NLP实验
- 本地推理
- 学习Transformer架构
- 小规模部署
- 原型对话助手
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#limitations局限性
作为紧凑型语言模型,Wiki-SmartBotLM-Instruct 存在几个局限性。
- 可能会虚构事实信息。
- 推理能力与更大的前沿模型相比有限。
- 知识局限于预训练语料库。
- 可能难以处理高度专业化或领域特定的问题。
- 在非常长的对话中性能可能会下降。
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#ethical-considerations伦理考量
Wiki-SmartBotLM-Instruct 旨在用于研究和教育目的。
尽管指令调优提高了响应质量,但用户在高风险领域(如医疗、金融或法律建议)依赖生成内容之前,应独立验证信息。
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#future-work未来工作
Wiki-SmartBotLM 的未来版本计划包括:
- 改进的事实依据
- 更大的指令数据集
- 增强的推理性能
- 更好的多语言支持
- 检索增强生成(RAG)
- 工具调用支持
- 更长的上下文窗口
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#citation引用
如果您在研究中使用 Wiki-SmartBotLM-Instruct,请引用:
@misc{wikismartbotlm2026, title={Wiki-SmartBotLM-Instruct: A 270M Parameter Decoder-Only Small Language Model}, author={Pranav Upadhyaya}, year={2026}, howpublished={Hugging Face Model Repository} }
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#acknowledgements致谢
本项目的实现离不开开源AI社区的支持。
特别感谢:
- Hugging Face
- PyTorch
- 英文维基百科贡献者
- Alpaca 数据集贡献者
- 开源Transformer研究社区
https://huggingface.co/pranavupadhyaya52/Wiki-SmartBotLM-Instruct#about-the-project关于项目
Wiki-SmartBotLM-Instruct 是作为一项独立研究计划开发的,以更好理解现代语言模型开发。从随机初始化到预训练和指令调优,模型的每个阶段都是为了探索创建紧凑、高效、易访问的语言模型所面临的工程实践挑战。
欢迎反馈、问题报告和贡献。
相似文章
我从头开始预训练和后训练了一个500M参数的LLM和一个330M参数的图像生成器
作者详细介绍了从头开始预训练和后训练一个500M参数的语言模型和一个330M参数的图像生成器的过程。
我从零构建了一个扩散语言模型。它能写出语法完美的句子,但毫无意义,而这正是有趣之处。
作者从零构建了Joey,一个1.7亿参数的掩码扩散语言模型,在FineWeb-Edu上训练并在DailyDialog上微调,由于容量限制,模型能生成流畅但不连贯的句子。该项目突出了与自回归LLM的差异,以及从构建和调试系统中获得的经验教训。
我在Fineweb-edu数据集上训练了一个0.5M参数的模型,使用了10亿个token。
一个个人项目,使用Fineweb-edu数据集中的10亿个token训练了一个0.5M参数的语言模型。
自己从零写扩散语言模型比我想的简单多了[P]
开发者分享了一个极简的750万参数扩散语言模型,用莎士比亚文本从头训练,并开源代码供学习。
CS336:从零开始的语言建模
斯坦福大学提供一门综合课程CS336,学生将从零开始构建语言模型,涵盖数据收集、Transformer构建、训练和评估。