社区讨论LinuxDo 最新
从零开始的OCR-0——基础篇[大模型工程基础]
从零开始的OCR-0——基础篇[大模型工程基础] 学习目标:理解大模型项目的完整训练与推理流程 → 掌握模型文件组织、权重加载与 Checkpoint → 理解 FP32/FP16/BF16、混合精度和量化 → 掌握训练显存、计算量与 FLOPs 估算 → 理解 LLM 解码策略与推理流程 → 了解 Scaling Law、推理加速及常见工程技术 → 能够独立阅读基础模型训练与推理代码。 难度: 重要性: 昔日只知神通如何施展,却不识其背后的万千阵法。如今,以参数为骨,以数据为血,以算力为炉,窥模型运转之玄机,掌…
内容摘要
作者:#xuancx
板块:#文档共建
从零开始的OCR-0——基础篇[大模型工程基础]
学习目标:理解大模型项目的完整训练与推理流程 → 掌握模型文件组织、权重加载与 Checkpoint → 理解 FP32/FP16/BF16、混合精度和量化 → 掌握训练显存、计算量与 FLOPs 估算 → 理解 LLM 解码策略与推理流程 → 了解 Scaling Law、推理加速及常见工程技术 → 能够独立阅读基础模型训练与推理代码。
难度:
重要性:
昔日只知神通如何施展,却不识其背后的万千阵法。如今,以参数为骨,以数据为血,以算力为炉,窥模型运转之玄机,掌训练推理之法门。自此,神通不再只是纸上玄谈,亦可亲手铸就。
大模型项目是怎样组织的?
假设现在有一个大模型,我们想要用它进行问答,那么至少需要四个组成部分:
Model: 网络架构 + 已训练的权重参数
Data:Tokenizer + 训练样本 + 数据预处理
Training:Forward,Loss,Backward,Optimizer
Inference:输入问题,模型计算,解码,输出答案
其中模型结构与权重决定神经网络如何计算;数据决定模型学习什么;训练程序负责更新参数;推理程序负责利用训练后的模型生成结果。
这些部分可以放在一个项目里,也可以分布在不同的代码仓库和模型文件目录中。例如如果自己从头写一个 模型,一个经典的文件架构:
my_llm_project/
│
├── model.py # 定义神经网络结构
├── config.py # 模型和训练配置
├── dataset.py # 读取并处理训练数据
├── train.py # 模型训练
├── inference.py # 模型推理
│
├── data/
│ ├── train.jsonl # 训练集
│ └── val.jsonl # 验证集
│
└── checkpoints/
资讯来源
LinuxDo