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

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

相关推荐
盼小辉丶6 小时前
OpenCV-Python实战(33)——构建实时目标检测与跟踪系统
python·opencv·目标检测·计算机视觉
bill32822780437 小时前
从 0 到 1 掌握 1688API:商品详情获取技巧
python
hboot14 小时前
AI工程师第五课 - 大语言模型基础
python·llm·fastapi
AOwhisky15 小时前
Python 学习笔记(第一期与第二期)——基础语法——核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发
星释15 小时前
鸿蒙智能体开发实战:23.常见问题
服务器·华为·ai·harmonyos·鸿蒙·智能体
STLearner16 小时前
ICML 2026 | LLM×Graph论文总结[1]【图基础模型,文本属性图,多模态属性图,图对齐,图提示学习,关系深度学习
论文阅读·人工智能·python·深度学习·学习·机器学习·数据挖掘
习明然17 小时前
我的本地化AI项目(三)
人工智能·python·electron·c#·avalonia
喜欢的名字被抢了17 小时前
Python实战:SQLAlchemy ORM与FastAPI项目集成
开发语言·python·sql·教程·fastapi
夏季疯19 小时前
读论文:STARS 是什么结构?一个统一的歌声自动标注框架
python
光测实验室20 小时前
3种Python降噪算法实测:我把处理速度提升了20倍
python