婴儿版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 = embedding[input_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 = idx2word[pred_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 预测下一个词:【 食 】

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

相关推荐
我叫黑大帅5 分钟前
如何通过 Python 实现招聘平台自动投递
后端·python·面试
其实防守也摸鱼30 分钟前
CTF密码学综合教学指南--第九章
开发语言·网络·python·安全·网络安全·密码学·ctf
砚底藏山河33 分钟前
Python量化开发:2026最佳实时股票数据API接口推荐与对比
开发语言·windows·python
前端程序媛-Tian1 小时前
前端 AI 提效实战:从 0 到 1 打造团队专属 AI 代码评审工具
前端·人工智能·ai
Irissgwe1 小时前
LangChain之核心组件(输出解析器)
ai·langchain·llm·ai编程·输出解析器
研究点啥好呢1 小时前
专为求职者开发的“面馆”!!!摆脱面试焦虑!!!
python·面试·开源·reactjs·求职招聘·fastapi
kyriewen2 小时前
GPT-5.5 全员白嫖,DeepSeek 估值 3000 亿,但 Claude 今天被请喝茶了
gpt·claude·deepseek
DFT计算杂谈2 小时前
自动化脚本一键绘制三元化合物相图
java·运维·服务器·开发语言·前端·python·自动化
EW Frontier3 小时前
6G ISAC新范式:基于智能漏波天线的Wi‑Fi通感一体化系统设计与实测【附MATLAB+python代码】
开发语言·python·matlab·music·isac·doa·wi‑fi
姚青&3 小时前
测试技术体系
java·python