仅用61行代码,你也能从零训练大模型

Java 使用Hanlp训练模型的代码 Java 使用 HanLP 训练模型的代码主要分为以下几个步骤: 首先,你需要下载 HanLP 的源代码,并将其导入到你的 Java 项目中。可以从 GitHub 上下载 HanLP 源代码:https://github.com/hankcs/HanLP。 然后,你需要加载 HanLP 的配置文件,并创建一个 PerceptronTrainer 对象来训练模型。下面是一个示例代码: Pro... 阅读详情

导读

本文并非基于微调训练模型,而是从头开始训练出一个全新的大语言模型的硬核教程。看完本篇,你将了解训练出一个大模型的环境准备、数据准备,生成分词,模型训练、测试模型等环节分别需要做什么。AI 小白友好~文中代码可以直接实操运行。欢迎阅读体验。

👉目录

1 准备训练环境

2 准备训练数据

3 训练分词器

4 训练模型

5 测试模型

6 完整代码

通过这篇文章,你可以预训练一个全新大语言模型。

注意是全新的模型,不是微调。

全新训练的好处是训练的数据、训练的参数都是可修改的,通过调试运行我们可以更好的理解大模型训练过程。我们可以用特定类型数据的训练,来完成特定类型数据的输出。

关于大模型已经有很多文章,微调模型的文章比较多,全新预训练全新模型的文章很少。个人觉得有的也讲的很复杂,代码也很难跑通。本文不会讲的很复杂,代码也很容易运行。仅用61行代码,就能训练出一个全新大语言模型。

图片

本文以代码为主,运行代码需要 Python 环境。

01

准备训练环境

我的训练环境基于腾讯云的 GPU 机器。

地址:https://cloud.tencent.com/product/gpu

在这里插入图片描述
在这里插入图片描述

02

准备训练数据

首先我们要为训练准备数据,比如我就想基于《三国演义》训练一个模型。三国演义下载地址:

https://raw.githubusercontent.com/xinzhanguo/hellollm/main/text/sanguoyanyi.txt

图片

03

训练分词器

分词(tokenization)是把输入文本切分成有意义的子单元(tokens)。通过以下代码,根据我们的数据生成一个新的分词器:

from tokenizers import Tokenizer
from tokenizers.models import BPE
from tokenizers.trainers import BpeTrainer
from tokenizers.normalizers import NFKC, Sequence
from tokenizers.pre_tokenizers import ByteLevel
from tokenizers.decoders import ByteLevel as ByteLevelDecoder
from transformers import GPT2TokenizerFast

# 构建分词器 GPT2 基于 BPE 算法实现
tokenizer = Tokenizer(BPE(unk_token="<unk>"))
tokenizer.normalizer = Sequence([NFKC()])
tokenizer.pre_tokenizer = ByteLevel()
tokenizer.decoder = ByteLevelDecoder()

special_tokens = ["<s>","<pad>","</s>","<unk>","<mask>"]
trainer = BpeTrainer(vocab_size=50000, show_progress=True, inital_alphabet=ByteLevel.alphabet(), special_tokens=special_tokens)
# 创建 text 文件夹,并把 sanguoyanyi.txt 下载,放到目录里
files = ["text/sanguoyanyi.txt"]
# 开始训练了
tokenizer.train(files, trainer)
# 把训练的分词通过GPT2保存起来,以方便后续使用
newtokenizer = GPT2TokenizerFast(tokenizer_object=tokenizer)
newtokenizer.save_pretrained("./sanguo")

运行时显示如下图:

图片

成功运行代码后,我们在 sanguo 目录生成如下文件:
在这里插入图片描述

现在我们已经成功训练了一个大语言模型的分词器。

04

训练模型

利用下面代码进行模型训练:

在这里插入图片描述

在这里插入图片描述

运行比较耗时,显示训练数据如下图:

图片

成功运行代码,我们发现 sanguo 目录下面多了三个文件:
在这里插入图片描述

现在我们就成功生成训练出基于《三国演义》的一个大语言模型。

05

测试模型

我们用文本生成,对模型进行测试代码如下:
在这里插入图片描述

运行显示模型输出了三国相关的文本:“吕布十二回 张翼德 张翼德时曹操 武侯计计计”

图片

再测试一条:

在这里插入图片描述

“接着奏乐\u3000却说曹操引军因二人”

图片

这内容不忍直视,如果想优化,我们也可以基于全新的模型进行微调训练;我们也可以适当地调整下训练参数,以达到较好的效果。

06

完整代码

以下是完整代码,代码地址:

https://github.com/xinzhanguo/hellollm/blob/main/sanguo.py

linux 中运行方法:
在这里插入图片描述

以上我们就完成一个全新的模型训练。代码去除注释空行总共61行。

本文代码模型是基于 GPT2 的,当然你也可以基于 LLama 或者 Bert 等模型去实现全新的大语言模型。

代码虽然不是很多,但是如果初次尝试运行的话你也许会遇到很多问题,比如环境搭建。为了避免其他烦恼,我建议用 docker 方式运行代码:

在这里插入图片描述

更多代码可以参考:Hello LLM!

https://github.com/xinzhanguo/hellollm

以上就是本篇文章的全部内容。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
ChatGLM源码解析 main.py 这样做的好处是,训练过程结束之后,可以直接打开这个文件查看训练的结果,而不需要重新运行整个脚本。这部分代码首先给每个输入添加前缀,然后使用分词器对输入进行处理,包括分词、截断和填充,得到模型的输入数据。然后对样本集中的每个样本进行遍历,只有当样本中的提问和回答都存在时,才进行处理。,这是由源序列的最大长度和目标序列的最大长度之和得出的。然后,计算context的长度,并生成标签,标签是由-100和回答部分的token id组成。这行代码设置了日志的基本配置,包括日志信息的格式,日期的格式,以及日志处理器。 阅读详情

相关推荐

大模型预训练实践

其中,第一行的 nproc_per_node 参数用于指定训练的 GPU 数量,master_port 参数用于指定训练时通信的端口号。stage3_gather_16bit_weights_on_model_save 用于控制 ZeRO-3时存档点是否被分片,如果设置为 false 则保存时会分片,后续使用时需要使用里面脚本进行合并,否则在保存时不会分片,但在训练保存存档点的时间会变长。在下面的示例代码中,train() 函数涵盖了预训练过程中的主要步骤,包括模型与分词器的初始化、训练数据的准备等;

weixin_43961909的博客 659

从零开始训练大模型

我们更倾向于 SFT 的目的只是将 Pretrained Model 中的知识给引导出来的一种手段,而在SFT 数据有限的情况下,我们对模型的「引导能力」就是有限的。这将导致预训练模型中原先「错误」或「有害」的知识没能在 SFT 数据中被纠正,从而出现「有害性」或「幻觉」的问题。为此,一些让模型脱离昂贵标注数据,自我进行迭代的方法被提出,比如:[

太阳当空照,花儿对我笑,微风轻轻拂,心情无限好。 7263

详解APM的开方控制器sqrt_controller

前言 前面说过,sqrt_controller是对P项进行整定用途的,目的就是让P项的控制响应“软”下来,实际上就是一个经过改进的P控制器。读懂了sqrt_controller,那么你对APM的P控制器就了解得差不多了。 仅讨论P控制器,sqrt_controller的作用就是设定一个量linear_dist,以这个量的正负值为分界线划分出一个线性区域范围,在这个范围内表示误差量还很小,遵循Kp*error计算方式输出控制量。 超过linear_dist后,表明误差较大,此时不能由着误差单纯按照线性方式乘以

moumde的博客 4896

61行代码,从零训练大模型

本文并非基于微调训练模型,而是从头开始训练出一个全新的大语言模型的硬核教程。看完本篇,你将了解训练出一个大模型的环境准备、数据准备,生成分词,模型训练、测试模型等环节分别需要做什么。关于大模型已经有很多文章,微调模型的文章比较多,全新预训练全新模型的文章很少。全新训练的好处是训练的数据、训练的参数都是可修改的,通过调试运行我们可以更好的理解大模型训练过程。本文代码模型是基于 GPT2 的,当然你也可以基于 LLama 或者 Bert 等模型去实现全新的大语言模型。以上我们就完成一个全新的模型训练。

共同学习、强我国家 501

Pylon SDK C语言多相机采集的注意事项、关键设置及代码示例

前言 与单相机直接用句柄PYLON_DEVICE_HANDLE hdev进行操作所不同的是,在多相机连接采用索引值访问每个相机,对应句柄为PYLON_DEVICE_HANDLE hdev[deviceIndex] 。若连接N个相机设备,则索引值范围为[0,...,N-1]。显而易见,采用循环结构编程可以对多个相机采用同样的操作,包括参数设置、图像采集等。但多个相机的使用需要根据相机功能、相机与主机间的连接方式、网络适配器进行额外的设置。本文参考Pylon C开发者手册和Basler产品文档,对GigE类型

黑化咸鱼的博客 3089

OFDM时频脉冲形状与子载波正交性的理解

从多载波调制的角度来理解子载波间正交,首先要明确OFDM默认的脉冲成型是时域矩形窗,时域上每个子载波 ej2πfnte^{j2πf_nt}ej2πfn​t 都被一个矩形窗脉冲gT(t)g_T(t)gT​(t)成型。其次,OFDM子载波间隔 等于 OFDM符号周期的倒数,这是子载波正交的条件。 ​ 根据时频脉冲形状,可以从时域上理解如左图(注意是矩形脉冲 乘 复指数),从频域上理解如右图(sinc脉冲 卷 频点)。 ​

weixin_43803202的博客 2215

揭秘DeepSeek-V3零回滚训练:61层Transformer全程无Loss Spike

你还在为大型语言模型训练中的Loss Spike问题烦恼吗?是否曾因训练中断导致数周工作白费?DeepSeek-V3以671B参数规模(37B激活参数)实现了全程无Loss Spike、零回滚的稳定训练,本文将深入解析其背后的核心技术与工程实践。读完本文你将掌握: - 混合专家(MoE)架构的稳定性设计原理 - FP8混合精度训练的工业级配置方案 - 61层Transformer的训练加速与负载均...

gitblog_00444的博客 816

【图像超分】论文精读:RepSR: Training Efficient VGG-style Super-Resolution Networks with Structural Re-Paramete

摘要: 本文提出RepSR,一种基于结构重新参数化和批量归一化(BN)的高效VGG式超分辨率网络。针对SR任务中BN易引发伪影的问题,作者通过分析发现训练-测试阶段的不一致性是主因,并提出先使用小批量统计训练、后期切换为总体统计的优化策略。RepSR块设计包含干净的残差路径和带改进BN的扩展-压缩卷积路径,有效平衡了训练非线性与推理效率。实验表明,RepSR在不同模型规模下优于现有重参数化方法,且实际推理速度更快。该工作为SR提供了性能与效率兼优的解决方案,相关代码未开源。 关键词: 超分辨率、结构重参数化

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 305

新书速览|从零构建大模型:算法、训练与微调

此外,还系统地介绍了数据处理、数据增强、模型性能优化(包括混合精度训练和分布式训练)、对比学习、对抗训练、自适应优化器、动态学习率调度,以及模型蒸馏与剪枝技术等多个方面。,博士,毕业于北京航空航天大学,高级职称,长期从事模式识别、机器学习、统计理论的研究与应用,负责或参与科研项目多项,专注于人工智能、大语言模型的应用与开发,对深度学习、数据分析与预测等有独到见解。并深入剖析了GPT模型的核心实现与文本生成过程,以及BERT模型的预训练和微调技术。3. Transformer的诞生与自注意力机制的崛起2。

quanzhankaifaqua的博客 757

基于STM32设计的遥控小车(手机APP+GPS+温湿度+ESP8266)

一、环境介绍 小车主控MCU: STM32F103ZET6 STM32程序开发IDE: keil5 STM32程序风格: 采用寄存器方式开发,注释齐全,执行效率高,方便移植 手机APP: 采用QT设计,程序支持跨平台编译运行(Android、IOS、Windows、Linux都可以编译运行,对应平台上QT的环境搭建,之前博客已经发了文章讲解) 硬件包含: 淘宝购买的完整一套4轮遥控小车(采用STM32F103ZET6作为主控板)、DHT11温湿度传感器、中科微GPS模块、ESP8266 ...

6万+

C++经典面试题100例及答案

答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。答:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj文件后,再次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编译效率。答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。答:常对象是指在任何场合都不能对其成员的值进行修改的对象。答:所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。

usstmiracle的博客 3万+

【项目复现上新】Karpathy大神开源GitHub高分项目NanoChat!仅用100美元+8000行代码手搓ChatGPT

摘要: AI专家Andrej Karpathy开源项目nanochat以极低成本(100-1000美元)实现ChatGPT式对话功能,仅需8张H100 GPU训练4小时即可完成。该项目涵盖数据准备、预训练、微调等全流程(8000行代码),支持Rust分词器、强化学习优化及高效推理。大模型实验室Lab4AI提供“一键复现”工具链,简化环境配置与训练流程,支持科研复现和学习实践。平台还提供论文追踪、模型微调及LLaMA Factory官方课程,助力开发者低门槛探索大模型技术。 (150字)

Lab4AI的博客 1097

【人工智能】Claude服务访问受限报错的技术分析与解决方案

在使用Claude系列大模型服务的过程中,部分用户会遇到服务不可用的标准化拦截提示,导致无法正常访问模型核心能力。本文针对该类报错进行完整技术拆解,明确报错根因与底层校验逻辑,并分场景提供合规、可落地的排查与解决方案,同时规避相关使用风险。

奶爸的编程之路,也就一周冷个三天 2676

大模型微调训练经验

Prefix-tuning将预训练参数固定,Prefix参数进行微调:不仅只在embedding上进行微调,也在TransFormer上的embedding输入每一层进行微调。Prompt-tuning 给每个任务定义了自己的 Prompt,拼接到数据上作为输入,同时 freeze 预训练模型进行训练,在没有加额外层的情况下,可以看到随着模型体积增大效果越来越好,最终追上了精调的效果.微调:为了垂直推理场景,比如医疗问答。即参数冻结,对原始模型部分参数进行冻结操作,仅训练部分参数,就可以对大模型进行训练。

qq_29837229的博客 1440

加权均值向量算法(INFO)详解:从数学原理到智能算法

本文系统介绍了加权均值向量算法(INFO)的理论基础、数学模型与实现应用。该算法基于加权均值数学概念,通过MeanRule规则平衡探索与开发能力,具有结构新颖、参数合理的特点。核心内容包括:1) 算法理论基础,阐述加权均值数学定义与小波函数权重计算;2) 算法原理,详细解析更新规则、向量组合和局部搜索三阶段数学模型;3) 实现方法,提供MATLAB代码关键参数解析;4) 改进方向,介绍INFO-KELM混合模型等变体;5) 应用案例,涵盖函数优化、工程设计与机器学习领域。

qq_42212808的博客 234

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

DeepSeek大模型61个应用场景

随着科技的飞速发展,人工智能(AI)已经成为推动社会进步的重要力量。其中,人工智能大模型作为AI领域的璀璨明珠,凭借其强大的处理能力和广泛的应用场景,正逐步改变着我们的生活和工作方式。在当今科技飞速发展的时代,人工智能已然成为引领创新潮流的先锋力量,而在中国这片充满创新活力的土地上,DeepSeek犹如一颗冉冉升起的璀璨之星,正以其独特的技术优势、创新的商业模式和巨大的发展潜力,震惊着整个世界。近日,国产AI DeepSeek在中国、美国的科技圈受到广泛关注,甚至被认为是大模型行业的。

2401_84495872的博客 1473

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大模型的训练时间

text{训练时间} = \frac{8 \times 175 \times 10^9 \times 300 \times 10^9}{1024 \times 312 \times 10^{12} \times 0.45} \approx 2921340 \text{秒} \approx 34 \text{天} \][^4^]\frac{\text{总计算量}}{\text{GPU数量} \times \text{每个GPU的峰值FLOPS} \times \text{GPU利用率}}

知乎 2568

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

61亿参数撬动400亿性能:蚂蚁开源Ring-flash-2.0改写大模型性价比规则

当大模型行业还在为参数规模竞赛焦灼时,蚂蚁集团用Ring-flash-2.0撕开了新的突破口——以1000亿总参数、仅61亿激活参数的极致配置,在数学推理、代码生成等核心任务上超越400亿参数以内稠密模型,每百万token推理成本降至0.7美元。这个搭载独创"冰pop算法"的开源模型,正将大模型竞争带入"效能比"决胜的新阶段。 ## 行业现状:从参数军备赛到效能革命 2025年的大模型战场呈现出

gitblog_01139的博客 817

SP年薪61.8W!大模型岗位薪资爆了

现如今大模型岗位需求越来越大,但是相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,下面是我整理好的一套完整的学习路线,希望能够帮助到你们学习AI大模型。第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

2401_85379281的博客 1849

人工智能大模型应用场景大揭秘:61个案例,探索大模型开放场景的未来!非常详细建议收藏!

随着科技的飞速发展,人工智能(AI)已经成为推动社会进步的重要力量。其中,人工智能大模型作为AI领域的璀璨明珠,凭借其强大的处理能力和广泛的应用场景,正逐步改变着我们的生活和工作方式。

2401_84204207的博客 1878
上一篇: 推荐一本get新技能的大模型书籍,人人都可动手做AI Agent基础入门!!!
下一篇: NLP大模型如何应用到时间序列?5类方法大汇总!
我爱学大模型
博客等级 码龄3年 7883粉丝 687原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值