婴儿版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 预测下一个词:【 食 】

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

相关推荐
进击的明明12 小时前
当AI开始“边想边干”:深入聊聊ReAct,以及如何用Python手搓一个简单Agent
python·面试·agent
小七-七牛开发者12 小时前
周一上线 | DeepSeek 开始卷“许愿式编程”,Agent 手机来了,Character.AI 申请破产
ai·大模型·agent·claude·codex·deepseek·ai coding
全栈弄潮儿13 小时前
Python实战第8期:函数
后端·python·编程语言
卷无止境15 小时前
暗流与破局:AI时代的代码安全审查工具全景指南
后端·python
玩泥巴的16 小时前
MAF + 飞书:让大模型干活,但别让它乱干
ai·c#·.net·飞书·agent
卷无止境17 小时前
一人公司的全栈选型指南:让 AI Agent 写得快,也让生意跑得稳
后端·python
我才是银古17 小时前
OpenGIS 技能插件开发与使用:在 DeepSeek Harness 里按需加载 GIS 知识
ai·gis·dsh
sbjdhjd19 小时前
从签名重放到 Agent Harness:一堂安全课程如何把前端逆向、MCP 与工程约束串起来
网络安全·ai·github·agent·webshell·mcp·harness
滴啦嘟啦哒19 小时前
【具身笔记】【π0.5 微调与仿真】五、在MuJoCo中实现可视化仿真
笔记·python·vla·具身
奇牙coding19 小时前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai