网站建设培训班网站硬件建设方案

张小明 2025/12/28 10:12:16
网站建设培训班,网站硬件建设方案,龙江网站建设,甘肃项目信息网在当今人工智能领域#xff0c;大型语言模型#xff08;LLM#xff09;的开发已经成为一个热门话题。这些模型通过学习大量的文本数据#xff0c;能够生成自然语言文本#xff0c;完成各种复杂的任务#xff0c;如写作、翻译、问答等。 https://github.com/FareedKhan-de…在当今人工智能领域大型语言模型LLM的开发已经成为一个热门话题。这些模型通过学习大量的文本数据能够生成自然语言文本完成各种复杂的任务如写作、翻译、问答等。https://github.com/FareedKhan-dev/train-llm-from-scratch本文将为你提供一个简单直接的方法从下载数据到生成文本带你一步步构建大院模型。步骤1GPU设备在开始训练语言模型之前你需要对面向对象编程OOP、神经网络NN和 PyTorch 有基本的了解。训练语言模型需要强大的计算资源尤其是 GPU。不同的 GPU 在内存容量和计算能力上有所不同适合不同规模的模型训练。以下是一个详细的 GPU 对比表帮助你选择合适的硬件。13M LLM 训练参数规模1300 万参数。应用场景适合初学者和小型项目例如简单的文本生成、情感分析或语言理解任务。硬件需求相对较低。大多数中高端 GPU如 NVIDIA RTX 3060 或更高都可以胜任。特点训练速度快资源消耗低适合快速迭代和实验。2B LLM 训练参数规模20 亿参数。应用场景适合更复杂的任务如高质量的文本生成、多语言翻译或更高级的语言理解任务。硬件需求较高。需要至少 16GB 内存的 GPU如 NVIDIA RTX 3090 或更高配置。特点能够生成更流畅、更自然的文本但训练时间长资源消耗大。步骤2导入环境在开始之前我们需要导入一些必要的 Python 库。这些库将帮助我们处理数据、构建模型以及训练模型。# PyTorch for deep learning functions and tensorsimport torchimport torch.nn as nnimport torch.nn.functional as F# Numerical operations and arrays handlingimport numpy as np# Handling HDF5 filesimport h5py# Operating system and file managementimport os# Command-line argument parsingimport argparse# HTTP requests and interactionsimport requests# Progress bar for loopsfrom tqdm import tqdm# JSON handlingimport json# Zstandard compression libraryimport zstandard as zstd# Tokenization library for large language modelsimport tiktoken# Math operations (used for advanced math functions)import math步骤3加载数据集The Pile 数据集是一个大规模、多样化的开源数据集专为语言模型训练设计。它由 22 个子数据集组成涵盖了书籍、文章、维基百科、代码、新闻等多种类型的文本。# Download validation dataset!wget https://huggingface.co/datasets/monology/pile-uncopyrighted/resolve/main/val.jsonl.zst# Download the first part of the training dataset!wget https://huggingface.co/datasets/monology/pile-uncopyrighted/resolve/main/train/00.jsonl.zst# Download the second part of the training dataset!wget https://huggingface.co/datasets/monology/pile-uncopyrighted/resolve/main/train/01.jsonl.zst# Download the third part of the training dataset!wget https://huggingface.co/datasets/monology/pile-uncopyrighted/resolve/main/train/02.jsonl.zst最终处理好的数据集格式如下#### OUTPUT ####Line: 0 {text: Effect of sleep quality ... epilepsy.,meta: { pile_set_name: PubMed Abstracts }}Line: 1{text: LLMops a new GitHub Repository ...,meta: { pile_set_name: Github }}步骤4Transformer 架构Transformer 通过将文本分解成更小的单元称为“标记”token并预测序列中的下一个标记来工作。Transformer 由多个层组成这些层被称为 Transformer 块它们一层叠一层最后通过一个最终层来进行预测。每个 Transformer 块包含两个主要组件自注意力头Self-Attention Heads自注意力头的作用是确定输入中哪些部分对模型来说最为重要。例如在处理一个句子时自注意力头可以突出显示单词之间的关系比如代词与其所指代的名词之间的关系。通过这种方式模型能够更好地理解句子的结构和语义。多层感知器MLPMulti-Layer Perceptron多层感知器是一个简单的前馈神经网络。它接收自注意力头强调的信息并进一步处理这些信息。MLP 包含输入层接收来自自注意力头的数据。隐藏层为处理过程增加复杂性。输出层将处理结果传递给下一个 Transformer 块。输入嵌入与位置编码输入的文本被分解为标记tokens然后转换为嵌入向量embeddings。同时加入位置编码position embeddings以提供标记的位置信息。Transformer 块堆叠模型由多个例如 64 个相同的 Transformer 块组成这些块依次对数据进行处理。多头注意力机制每个 Transformer 块首先通过多头注意力机制例如 16 个头分析标记之间的关系捕捉不同类型的关联。MLP 处理注意力机制处理后的数据通过一个 MLP多层感知器进行进一步处理先扩展到更大维度例如 4 倍再压缩回原始维度。残差连接与层归一化每个 Transformer 块中使用残差连接residual connections和层归一化layer normalization以帮助信息流动并稳定训练。最终预测理后的数据通过最终层转换为词汇表大小的预测结果生成下一个最有可能的标记。文本生成模型通过反复预测下一个标记逐步生成完整的文本序列。步骤5多层感知器MLP多层感知器MLP是 Transformer 架构中前馈神经网络Feed-Forward Network, FFN的核心组成部分。它的主要作用是引入非线性特性并学习嵌入表示中的复杂关系。在定义 MLP 模块时一个重要的参数是n_embed它定义了输入嵌入的维度。MLP 的整个序列转换过程使得它能够对注意力机制学习到的表示进行进一步的精细化处理。具体来说引入非线性通过 ReLU 激活函数MLP 能够捕捉到嵌入表示中的复杂非线性关系。特征增强隐藏层的扩展操作为模型提供了更大的空间来学习更丰富的特征。维度一致性投影线性层确保 MLP 的输出维度与输入维度一致便于后续的 Transformer 块继续处理。# --- MLP (Multi-Layer Perceptron) Class ---class MLP(nn.Module): A simple Multi-Layer Perceptron with one hidden layer. This module is used within the Transformer block for feed-forward processing. It expands the input embedding size, applies a ReLU activation, and then projects it back to the original embedding size. def __init__(self, n_embed): super().__init__() self.hidden nn.Linear(n_embed, 4 * n_embed) # Linear layer to expand embedding size self.relu nn.ReLU() # ReLU activation function self.proj nn.Linear(4 * n_embed, n_embed) # Linear layer to project back to original size def forward(self, x): Forward pass through the MLP. Args: x (torch.Tensor): Input tensor of shape (B, T, C), where B is batch size, T is sequence length, and C is embedding size. Returns: torch.Tensor: Output tensor of the same shape as the input. x self.forward_embedding(x) x self.project_embedding(x) return x def forward_embedding(self, x): Applies the hidden linear layer followed by ReLU activation. Args: x (torch.Tensor): Input tensor. Returns: torch.Tensor: Output after the hidden layer and ReLU. x self.relu(self.hidden(x)) return x def project_embedding(self, x): Applies the projection linear layer. Args: x (torch.Tensor): Input tensor. Returns: torch.Tensor: Output after the projection layer. x self.proj(x) return x步骤6Single Head Attention注意力头Attention Head是 Transformer 模型的核心部分其主要作用是让模型能够专注于输入序列中与当前任务最相关的部分。在定义注意力头模块时有几个重要的参数head_size决定了键key、查询query和值value投影的维度从而影响注意力机制的表达能力。n_embed输入嵌入的维度定义了这些投影层的输入大小。context_length用于创建因果掩码causal mask确保模型只能关注前面的标记从而实现自回归autoregressive特性。在注意力头内部我们初始化了三个无偏置的线性层nn.Linear分别用于键、查询和值的投影。此外我们注册了一个大小为context_length x context_length的下三角矩阵tril作为缓冲区buffer以实现因果掩码防止注意力机制关注未来的标记。# --- Attention Head Class ---class Head(nn.Module): def __init__(self, head_size, n_embed, context_length): super().__init__() self.key nn.Linear(n_embed, head_size, biasFalse) # Key projection self.query nn.Linear(n_embed, head_size, biasFalse) # Query projection self.value nn.Linear(n_embed, head_size, biasFalse) # Value projection # Lower triangular matrix for causal masking self.register_buffer(tril, torch.tril(torch.ones(context_length, context_length))) def forward(self, x): B, T, C x.shape k self.key(x) # (B, T, head_size) q self.query(x) # (B, T, head_size) scale_factor 1 / math.sqrt(C) # Calculate attention weights: (B, T, head_size) (B, head_size, T) - (B, T, T) attn_weights q k.transpose(-2, -1) * scale_factor # Apply causal masking attn_weights attn_weights.masked_fill(self.tril[:T, :T] 0, float(-inf)) attn_weights F.softmax(attn_weights, dim-1) v self.value(x) # (B, T, head_size) # Apply attention weights to values out attn_weights v # (B, T, T) (B, T, head_size) - (B, T, head_size) return out步骤7Multi Head Attention多头注意力Multi-Head Attention是 Transformer 架构中的关键机制用于捕捉输入序列中多样化的关联关系。通过将多个独立的注意力头attention heads并行运行模型能够同时关注输入的不同方面从而更全面地理解序列信息。n_head决定了并行运行的注意力头的数量。每个注意力头独立处理输入数据从而让模型能够从多个角度捕捉输入序列中的关系。上下文长度context_length定义了输入序列的长度用于创建因果掩码causal mask确保模型只能关注前面的标记从而实现自回归特性。class MultiHeadAttention(nn.Module): Multi-Head Attention module. This module combines multiple attention heads in parallel. The outputs of each head are concatenated to form the final output. def __init__(self, n_head, n_embed, context_length): super().__init__() self.heads nn.ModuleList([Head(n_embed // n_head, n_embed, context_length) for _ in range(n_head)]) def forward(self, x): Forward pass through the multi-head attention. Args: x (torch.Tensor): Input tensor of shape (B, T, C). Returns: torch.Tensor: Output tensor after concatenating the outputs of all heads. # Concatenate the output of each head along the last dimension (C) x torch.cat([h(x) for h in self.heads], dim-1) return x步骤8Transformer 块Transformer 块是 Transformer 架构的核心单元它通过组合多头注意力机制和前馈网络MLP并应用层归一化Layer Normalization以及残差连接Residual Connections来处理输入并学习复杂的模式。n_head多头注意力中并行注意力头的数量。n_embed输入嵌入的维度也是层归一化的参数维度。context_length上下文长度用于定义序列的长度并创建因果掩码。每个 Transformer 块包含以下部分多头注意力层Multi-Head Attention负责捕捉输入序列中不同位置之间的关系。前馈网络MLP用于进一步处理多头注意力层的输出引入非线性特性。层归一化Layer Normalization在每个子层之前应用有助于稳定训练。残差连接Residual Connections在每个子层之后应用帮助信息流动并缓解深层网络训练中的梯度消失问题。class Block(nn.Module): def __init__(self, n_head, n_embed, context_length): super().__init__() self.ln1 nn.LayerNorm(n_embed) self.attn MultiHeadAttention(n_head, n_embed, context_length) self.ln2 nn.LayerNorm(n_embed) self.mlp MLP(n_embed) def forward(self, x): # Apply multi-head attention with residual connection x x self.attn(self.ln1(x)) # Apply MLP with residual connection x x self.mlp(self.ln2(x)) return x def forward_embedding(self, x): res x self.attn(self.ln1(x)) x self.mlp.forward_embedding(self.ln2(res)) return x, res步骤9完整模型结构到目前为止我们已经编写了 Transformer 模型的一些小部件如多头注意力Multi-Head Attention和 MLP多层感知器。接下来我们需要将这些部件整合起来构建一个完整的 Transformer 模型用于执行序列到序列的任务。为此我们需要定义几个关键参数n_head、n_embed、context_length、vocab_size和N_BLOCKS。# --- Transformer Model Class ---class Transformer(nn.Module): The main Transformer model. This class combines token and position embeddings with a sequence of Transformer blocks and a final linear layer for language modeling. def __init__(self, n_head, n_embed, context_length, vocab_size, N_BLOCKS): super().__init__() self.context_length context_length self.N_BLOCKS N_BLOCKS self.token_embed nn.Embedding(vocab_size, n_embed) self.position_embed nn.Embedding(context_length, n_embed) self.attn_blocks nn.ModuleList([Block(n_head, n_embed, context_length) for _ in range(N_BLOCKS)]) self.layer_norm nn.LayerNorm(n_embed) self.lm_head nn.Linear(n_embed, vocab_size) self.register_buffer(pos_idxs, torch.arange(context_length)) def _pre_attn_pass(self, idx): B, T idx.shape tok_embedding self.token_embed(idx) pos_embedding self.position_embed(self.pos_idxs[:T]) return tok_embedding pos_embedding def forward(self, idx, targetsNone): x self._pre_attn_pass(idx) for block in self.attn_blocks: x block(x) x self.layer_norm(x) logits self.lm_head(x) loss None if targets is not None: B, T, C logits.shape flat_logits logits.view(B * T, C) targets targets.view(B * T).long() loss F.cross_entropy(flat_logits, targets) return logits, loss def forward_embedding(self, idx): x self._pre_attn_pass(idx) residual x for block in self.attn_blocks: x, residual block.forward_embedding(x) return x, residual def generate(self, idx, max_new_tokens): for _ in range(max_new_tokens): idx_cond idx[:, -self.context_length:] logits, _ self(idx_cond) logits logits[:, -1, :] probs F.softmax(logits, dim-1) idx_next torch.multinomial(probs, num_samples1) idx torch.cat((idx, idx_next), dim1) return idx步骤10训练参数配置现在我们已经完成了模型的编码工作接下来需要定义训练参数包括注意力头的数量、Transformer 块的数量等以及数据路径等相关配置。VOCAB_SIZE词汇表大小表示词汇表中唯一标记的数量。CONTEXT_LENGTH模型能够处理的最大序列长度。N_EMBED嵌入空间的维度决定了标记嵌入和位置嵌入的大小。N_HEAD每个 Transformer 块中的注意力头数量。N_BLOCKS模型中 Transformer 块的数量决定了模型的深度。T_BATCH_SIZE训练时每个批次的样本数量。T_CONTEXT_LENGTH训练批次的上下文长度。T_TRAIN_STEPS总训练步数。步骤11模型训练我们使用 AdamW 优化器这是一种改进版的 Adam 优化器适用于深度学习任务。高初始损失20 亿参数模型在训练初期的损失值通常非常高。这是因为模型的参数量巨大初始权重随机分布导致模型在开始时对数据的理解非常有限。剧烈波动在训练的前几轮损失值可能会出现剧烈波动。这是因为模型需要在庞大的参数空间中寻找合适的权重组合而初始的学习率可能过高导致优化过程不稳定。快速下降尽管初始损失很高但随着训练的进行损失值通常会迅速下降。这是因为模型逐渐开始学习数据中的模式和结构。波动调整在快速下降之后损失值可能会出现一些波动。这是因为模型在调整权重时可能会在不同的局部最优解之间徘徊。这种波动表明模型在寻找更稳定的全局最优解。步骤12生成文本接下来我们将创建一个函数generate_text用于从保存的模型中生成文本。该函数接受保存的模型路径和输入文本作为输入并返回生成的文本。我们还将比较数百万参数模型和数十亿参数模型在生成文本时的表现。def generate_text(model_path, input_text, max_length512, devicegpu): # Load the model checkpoint checkpoint torch.load(model_path) # Initialize the model (you should ensure that the Transformer class is defined elsewhere) model Transformer().to(device) # Load the models state dictionary model.load_state_dict(checkpoint[model_state_dict]) # Load the tokenizer for the GPT model (we use r50k_base for GPT models) enc tiktoken.get_encoding(r50k_base) # Encode the input text along with the end-of-text token input_ids torch.tensor( enc.encode(input_text, allowed_special{|endoftext|}), dtypetorch.long )[None, :].to(device) # Add batch dimension and move to the specified device # Generate text with the model using the encoded input with torch.no_grad(): # Generate up to max_length tokens of text generated_output model.generate(input_ids, max_length) # Decode the generated tokens back into text generated_text enc.decode(generated_output[0].tolist()) return generated_text想入门 AI 大模型却找不到清晰方向备考大厂 AI 岗还在四处搜集零散资料别再浪费时间啦2025 年AI 大模型全套学习资料已整理完毕从学习路线到面试真题从工具教程到行业报告一站式覆盖你的所有需求现在全部免费分享扫码免费领取全部内容​一、学习必备100本大模型电子书26 份行业报告 600 套技术PPT帮你看透 AI 趋势想了解大模型的行业动态、商业落地案例大模型电子书这份资料帮你站在 “行业高度” 学 AI1. 100本大模型方向电子书2. 26 份行业研究报告覆盖多领域实践与趋势报告包含阿里、DeepSeek 等权威机构发布的核心内容涵盖职业趋势《AI 职业趋势报告》《中国 AI 人才粮仓模型解析》商业落地《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》领域细分《AGI 在金融领域的应用报告》《AI GC 实践案例集》行业监测《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。3. 600套技术大会 PPT听行业大咖讲实战PPT 整理自 2024-2025 年热门技术大会包含百度、腾讯、字节等企业的一线实践安全方向《端侧大模型的安全建设》《大模型驱动安全升级腾讯代码安全实践》产品与创新《大模型产品如何创新与创收》《AI 时代的新范式构建 AI 产品》多模态与 Agent《Step-Video 开源模型视频生成进展》《Agentic RAG 的现在与未来》工程落地《从原型到生产AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。二、求职必看大厂 AI 岗面试 “弹药库”300 真题 107 道面经直接抱走想冲字节、腾讯、阿里、蔚来等大厂 AI 岗这份面试资料帮你提前 “押题”拒绝临场慌1. 107 道大厂面经覆盖 Prompt、RAG、大模型应用工程师等热门岗位面经整理自 2021-2025 年真实面试场景包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题每道题都附带思路解析2. 102 道 AI 大模型真题直击大模型核心考点针对大模型专属考题从概念到实践全面覆盖帮你理清底层逻辑3. 97 道 LLMs 真题聚焦大型语言模型高频问题专门拆解 LLMs 的核心痛点与解决方案比如让很多人头疼的 “复读机问题”三、路线必明 AI 大模型学习路线图1 张图理清核心内容刚接触 AI 大模型不知道该从哪学起这份「AI大模型 学习路线图」直接帮你划重点不用再盲目摸索路线图涵盖 5 大核心板块从基础到进阶层层递进一步步带你从入门到进阶从理论到实战。L1阶段:启航篇丨极速破界AI新时代L1阶段了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理、关键技术以及大模型应用场景。L2阶段攻坚篇丨RAG开发实战工坊L2阶段AI大模型RAG应用开发工程主要学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3阶段跃迁篇丨Agent智能体架构设计L3阶段大模型Agent应用架构进阶实现主要学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造Agent智能体。L4阶段精进篇丨模型微调与私有化部署L4阶段大模型的微调和私有化部署更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。L5阶段专题集丨特训篇 【录播课】四、资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容​2025 年想抓住 AI 大模型的风口别犹豫这份免费资料就是你的 “起跑线”
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

南开区网站建设公司在电脑上建设网站

验证索引效率在未建立索引之前,执行如下SQL语句,查询SQL的耗时:select * from tb_sku where snSN0003450001针对字段创建索引create index idx_sku_sn on tb_sku(sn);创建完索引之后,再来看这条查询sql的耗时。查看sql的执行计划最…

张小明 2025/12/27 14:30:49 网站建设

未来网站建设想法网站后台文章栏目

第一章:行为树的设计行为树(Behavior Tree)是一种用于建模智能体决策逻辑的层次化结构,广泛应用于游戏AI、机器人控制和自动化系统中。其核心思想是将复杂的任务分解为一系列可组合、可复用的节点,通过定义节点间的执行…

张小明 2025/12/27 6:47:20 网站建设

网站开发的业内人士跨境电商平台注册开店流程

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个电商CMS系统的商品详情编辑器,基于tiptap实现以下功能:1. 支持富文本编辑和Markdown语法;2. 可插入商品图片和视频;3. 支持自…

张小明 2025/12/27 6:46:45 网站建设

湖南做防水堵漏工程商网站域名备案购买

StoryDiffusion革命性AI故事生成:从创意到视觉的完整解决方案 【免费下载链接】StoryDiffusion Create Magic Story! 项目地址: https://gitcode.com/GitHub_Trending/st/StoryDiffusion 你是否曾经为创作连贯的漫画故事而烦恼?或者为制作专业的故…

张小明 2025/12/26 13:51:34 网站建设

whois域名查询网站哈尔滨市土地局

A*搜索算法:原理、实现与应用 1. 路径搜索算法的困境与A*算法的诞生 在路径搜索问题中,传统的算法存在各自的局限性。例如,某些算法虽然能找到最快路径,但代价巨大。假设围绕点a的圆形边界半径r等于最终路径的长度,如果边界未被网格边界截断,可通过半径为r的圆面积大致…

张小明 2025/12/27 14:30:48 网站建设

电子商务网站建设各项费用预算是多少十大网页游戏排行

余姚东江名车专修厂 叶正祥 引导语 一辆12款本田歌诗图,冷机行驶中加速发闯。先后更换了进气歧管绝对压力传感器、空气流量传感器、曲轴位置传感器、凸轮轴位置传感器、火花塞、点火线圈及喷油器等,并多次校对发动机正时,故障依旧。看叶老…

张小明 2025/12/24 0:20:57 网站建设