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

基于大语言模型的代码生成与自动编程实践 非常感谢您提出这个富有洞见的技术主题。作为一位世界级的人工智能专家和计算机领域的大师,我很荣幸能够撰写这篇专业的技术博客文章。我将以逻辑清晰、结构紧凑、简单易懂的专业技术语言来阐述这个引人入胜的话题。 1. 背景介绍 近年来,基于大语言模型的代码生成和自动编程技术取得了长足进展,在软件开发领域掀起了一股革命性的变革。传统的手工编码方式正 阅读详情

导读

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

目录

1 准备训练环境

2 准备训练数据

3 训练分词器

4 训练模型

5 测试模型

6 完整代码

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

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

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

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

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

01、准备训练环境

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

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

GPU类型:GN7.2XLARGE32 T4 显卡:1颗 显存:16GB; python 3.11; requirements.txt:
tokenizers==0.13.3
torch==2.0.1
transformers==4.30.

02、准备训练数据

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

raw.githubusercontent.com/xinzhanguo/…

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 目录生成如下文件:

merges.txt
special_tokens_map.json
tokenizer.json
tokenizer_config.json
vocab.json

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

04、训练模型

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

from transformers import GPT2Config, GPT2LMHeadModel, GPT2Tokenizer
# 加载分词器
tokenizer = GPT2Tokenizer.from_pretrained("./sanguo")
tokenizer.add_special_tokens({
  "eos_token": "</s>",
  "bos_token": "<s>",
  "unk_token": "<unk>",
  "pad_token": "<pad>",
  "mask_token": "<mask>"
})
# 配置GPT2模型参数
config = GPT2Config(
  vocab_size=tokenizer.vocab_size,
  bos_token_id=tokenizer.bos_token_id,
  eos_token_id=tokenizer.eos_token_id
)
# 创建模型
model = GPT2LMHeadModel(config)
# 训练数据我们用按行分割
from transformers import LineByLineTextDataset
dataset = LineByLineTextDataset(
    tokenizer=tokenizer,
    file_path="./text/sanguoyanyi.txt",
    block_size=32,
  # 如果训练时你的显存不够
  # 可以适当调小 block_size
)
from transformers import DataCollatorForLanguageModeling
data_collator = DataCollatorForLanguageModeling(
    tokenizer=tokenizer, mlm=False, mlm_probability=0.15
)

from transformers import Trainer, TrainingArguments
# 配置训练参数
training_args = TrainingArguments(
    output_dir="./output",
    overwrite_output_dir=True,
    num_train_epochs=20,
    per_gpu_train_batch_size=16,
    save_steps=2000,
    save_total_limit=2,
)
trainer = Trainer(
    model=model,
    args=training_args,
    data_collator=data_collator,
    train_dataset=dataset,
)
trainer.train()
# 保存模型
model.save_pretrained('./sanguo')

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

成功运行代码,我们发现 sanguo 目录下面多了三个文件:

config.json
generation_config.json
pytorch_model.bin

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

05、测试模型

我们用文本生成,对模型进行测试代码如下:

from transformers import pipeline, set_seed
generator = pipeline('text-generation', model='./sanguo')
set_seed(42)
txt = generator("吕布", max_length=10)
print(txt)

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

再测试一条:

txt = generator("接着奏乐", max_length=10)
print(txt)

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

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

06、完整代码

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

github.com/xinzhanguo/…

linux 中运行方法:

# 创建环境
python3 -m venv ~/.env
# 加载环境
source ~/.env/bin/activate
# 下载代码
git clone git@github.com:xinzhanguo/hellollm.git
cd hellollm
# 安装依赖
pip install -r requirements.txt
# 运行代码
python sanguo.py

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

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

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

# 下载代码
git clone git@github.com:xinzhanguo/hellollm.git
cd hellollm
# 编译镜像
docker build -t hellollm:beta .
# 可以选择以GPU方式运行
# docker run -it --gpus all hellollm:beta sh
docker run -it hellollm:beta sh
python sanguo.py

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

github.com/xinzhanguo/…

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

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

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

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

从文本使用大模型自a动生成代码:Codex 我们介绍Codex,这是一种在GitHub上公开可用的代码上进行Fine-tuned的GPT语言模型,并研究其Python编写能力。Codex的一个特定生产版本支持GitHub Copilot。在HumanEval上,这是我们发布的新的评估集,用于衡量从文档字符串中合成程序的功能正确性,我们的模型解决了28.8%的问题,而GPT-3解决了0%,GPT-J解决了11.4%。此外,我们发现,重复从模型中采样是一个出人意料的有效策略,用于产生解决困难提示的有效解决方案。 阅读详情

相关推荐

Zynq 双核AMP 通信

4、配置离线编译(这里不讲),配置linux的内核地址空间(0x4000_0000改为0x2000_0000),以及单核启动。CPU1设置为0x2000_0000~0x3FFF_FFFF(也可以小于0x3FFF_FFFF)如果禁用CPU1的L2 cache,在CPU1的bsp里面添加编译时候所需要的宏。3、配置工程,将vivado产生的.xsa文件复制到amp_com项目目录下。9、使用petalinux-package --boot 打包。一、vivado工程。5、编译u-boot。

y183128184的博客 1087

20个主流的代码生成LLM大模型及9种常见应用场景

自动完成或代码生成功能已在开发工具中存在多年。早在 1996 年,微软就在 Visual Studio 中为 Visual Basic 引入了这一功能(IntelliSense)。熟悉 Eclipse 的人可能使用过 Java getter 和 setter 生成函数,以及变量名的字符串导出函数(著名的“public String toString()”函数)。提供下一行代码仍然是这些 IDE 工具的一个重要功能,通常通过同时按下 Control 和空格键来激活。

新缸中之脑 1万+

DSPACE仿真平台的使用

DSPACE仿真平台的使用 文章目录DSPACE仿真平台的使用1.ModelDesk新建项目2.MotionDesk引入项目3.ControlDesk引入项目4.项目整合运行 我们使用DSPACE仿真平台软件来模拟小汽车的自动驾驶。 总共需要用到DSPACE大类下的三个软件:ModelDesk、ControlDesk、MotionDesk。 1.ModelDesk新建项目 在桌面上点击ModelDesk图标,打开DSPACE—ModelDesk 选择 File 标签,侧边栏选择 New,点击 New A

qq_42582489的博客 7527

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

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

共同学习、强我国家 501

PCIe信号眼图总是不开?手把手教你调CTLE和DFE参数(附实测波形对比)

本文详细解析了PCIe信号眼图调试中CTLE和DFE参数的优化方法,帮助硬件工程师解决眼图无法张开的问题。通过实际案例和步骤指导,介绍了如何调整CTLE直流增益和DFE抽头系数,提升接收端均衡器性能,确保信号完整性。

weixin_26805597的博客 215

网络安全学习路线是怎样的?

为什么要学习安全? 近几年网络安全事件层出不穷,相信大家哪怕没遇到过,但也听过不少了吧。如服务器遭受入侵被黑,用户帐号被盗;被钓鱼、勒索病毒等,这些一旦发生,对企业而言都是不小的打击。因此,网络安全不容忽视,同时随着时代的不断发展,公司对于运维及网络工程师要求也越来越严格。未来越来越吃香的一定是技能方向广的复合型人才。网络安全可以说是一条非常好的发展道路。 今年两会期间,全国政协委员,360集团创始人、董事长周鸿祎提交了关于网络安全行业特殊人才的提案,为广大白帽子人员争取更好...

网安技术分享 8697

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

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

gitblog_00444的博客 816

一文看懂EMMC原理及工作过程

CMD:用于设备初始化和命令传输的双向通道, CMD信号有2种工作模式:1#:漏极开路--->用于初始化模式2#:推拉--->用于快速命令传输其中命令从eMMC主机控制器发送到eMMC设备,响应从设备发送到主机。DAT [7:0]:双向数据信号,模式包括:1(DAT0);默认情况下,通电或重置后,只有DAT0用于数据传输。DAT信号在推挽模式下工作,eMMC设备包括数据线DAT1-DAT7的内部上拉。进入4位模式后,设备立即断开线路DAT1、DAT2和DAT3的内部上拉;

Airer_00的博客 2033

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

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

quanzhankaifaqua的博客 757

【CVPR2025 DEIM】超详细!手把手训练自己的数据集教学:从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。本文在win系统上训练,最强实时目标检测算法!

本文详细介绍了CVPR2025 DEIM目标检测模型的完整使用流程。内容包含:1)源码下载与虚拟环境配置;2)Visdrone2019数据集准备与配置文件修改;3)训练参数设置及Windows系统常见问题解决方案;4)模型验证、推理测试及热力图生成方法。特别针对Windows用户提供了虚拟环境配置指导,并详细说明了数据集路径设置、参数调整等关键步骤。通过本文的指导,小伙伴可以快速掌握DEIM模型的使用方法,用于学术论文研究和实验分析。

Ai缝合怪、助力小伙伴高效发论文 7647

27、超声成像技术与原理全面解析

本博客全面解析了超声成像技术与原理,涵盖声学材料特性、超声成像系统的基本概念与组成、关键技术如多普勒和聚焦技术、超声换能器的设计与原理、图像处理方法、系统校准与质量控制,以及超声成像的应用领域和发展趋势。旨在为医学诊断、工业检测和海洋声学等领域的研究人员和工程师提供深入的技术参考和指导。

z2a3b4c5d的博客 494

【项目复现上新】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

基于STM32设计的盲人智能导盲杖

本设计基于STM32单片机,开发了一种面向视障人群的智能导盲杖系统。系统以STM32F103C8T6为核心控制器,集成了超声波测距、语音提示、环境光检测、GPS定位及4G通信等多种功能模块。

643

DeepSeek大模型61个应用场景

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

2401_84495872的博客 1473

假人有限元模型

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大模型微调训练经验

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

qq_29837229的博客 1440

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大模型的训练时间

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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
上一篇: 作为普通产品经理,转AI产品经理,需要做哪些准备?
下一篇: 学习大模型真不难!常见的问题就这么多!想要快速入门大模型,这本大模型书你一定要认真看完!
少喝冰美式
博客等级 码龄3年 6839粉丝 517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值