婴儿版GPT

##提供一个完整的Transformer架构推理程序,字典随便建的,嵌入向量矩阵、输出矩阵等都是随机产生的,未经过训练,缩小版的GPT,种在掌握注意力机制运算过程,其输入结果也是经常变的,因为没有训练。

import numpy as np

--------------------------

步骤1:构建词典(把字变成ID)

--------------------------

vocab = {"我":0, "喜":1, "欢":2, "中":3, "国":4, "美":5, "食":6, "END":7}

vocab_size = len(vocab) # 词典大小

d_model = 8 # 每个token用8维向量(小尺寸方便演示)

输入句子:我喜欢中国 → 转成ID

input_text = "我喜欢中国"

input_ids = vocab\[c for c in input_text]

seq_len = len(input_ids) # 自动匹配实际token长度,取消硬编码

print("输入文字:", input_text)

print("输入token ID:", input_ids)

print("实际序列长度:", seq_len)

--------------------------

步骤2:词嵌入(文字 → 向量)

--------------------------

随机初始化嵌入层

embedding = np.random.randn(vocab_size, d_model)

x = embeddinginput_ids # 形状:(5, 8)

print("\n输入变成向量形状:", x.shape)

--------------------------

步骤3:Transformer 核心 = 标准自注意力机制

--------------------------

定义稳定的softmax函数(防止指数爆炸)

def softmax(x):

exp_x = np.exp(x - np.max(x, axis=-1, keepdims=True)) # 减去最大值保证数值稳定

return exp_x / np.sum(exp_x, axis=-1, keepdims=True)

初始化 QKV 权重矩阵

Wq = np.random.randn(d_model, d_model)

Wk = np.random.randn(d_model, d_model)

Wv = np.random.randn(d_model, d_model)

计算 Q K V

Q = x @ Wq

K = x @ Wk

V = x @ Wv

计算标准注意力分数 + softmax归一化

scores = Q @ K.T / np.sqrt(d_model) # 形状:(5,5)

attention_weights = softmax(scores) # 注意力权重(归一化到0-1,和为1)

attention = attention_weights @ V # 标准自注意力输出,形状:(5,8)

--------------------------

步骤4:输出层 → 预测下一个词

--------------------------

output_layer = np.random.randn(d_model, vocab_size)

logits = attention-1 @ output_layer # 取最后一个token预测下一个词

pred_id = np.argmax(logits)

把预测ID转回文字

idx2word = {v:k for k,v in vocab.items()}

pred_word = idx2wordpred_id

--------------------------

最终输出

--------------------------

print("\n" + "="*50)

print(f"输入:{input_text}")

print(f"Transformer 预测下一个词:【 {pred_word} 】")

print(f"完整句子推测:{input_text} → {pred_word}")

输入文字: 我喜欢中国

输入token ID: 0, 1, 2, 3, 4

实际序列长度: 5

输入变成向量形状: (5, 8)

==================================================

输入:我喜欢中国

Transformer 预测下一个词:【 食 】

完整句子推测:我喜欢中国 → 食

相关推荐
小程故事多_8019 小时前
深入解析FlashAttention,大模型长序列训练的底层优化核心技术
人工智能·transformer
暴躁小师兄数据学院19 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第五章):条件判断与流程控制
大数据·人工智能·python·学习
Java 码思客19 小时前
【Spring AI实战】第2章 大模型基础调用:同步/异步/流式输出
java·人工智能·spring·ai
郝学胜-神的一滴19 小时前
系统设计 013:高并发系统缓存:从原理到实践全解析
java·开发语言·python·缓存·系统架构·php·软件构建
小陶来咯19 小时前
agent × 豆包:端到端语音实时交互
网络·ai·机器人·bug·交互
Resistance丶未来20 小时前
魔芋AI:构建安全、可控、合规的大模型生产力枢纽
gpt·安全·大模型·claude·gemini·企业ai·魔芋ai
z2023050820 小时前
RDMA之RDMA 的发展原因和软件架构基础(10)
linux·服务器·网络·人工智能·ai
z小猫不吃鱼20 小时前
09 GPT-2 论文精读:语言模型如何走向 Zero-shot?
人工智能·gpt·语言模型
半壶清水20 小时前
用 Python 和 OpenCV 提取书法作品中的每一个单字
python·opencv·计算机视觉
z小猫不吃鱼20 小时前
07 GPT-1 论文精读:生成式预训练如何用于 NLP 任务?
人工智能·gpt·自然语言处理