你的任务是用 Python 实现一个简化版的 GPT-2 风格文本生成函数。该函数将包含以下最小 GPT-2 架构的组件: 词嵌入:将输入的词元映射到稠密的向量表示。 位置嵌入:为词嵌入添加位置信息。 多头注意力:关注序列的不同部分。 前馈网络:通过稠密层处理注意力输出。 层归一化:稳定训练过程。 该函数必须接受以下参数: prompt:引导生成过程的初始文本。 生成的词数量:指定要输出多少个词。 你的函数应输出生成的文本。 实现时需要注意以下细节: 激活函数使用GELU: GELU(x) = 0.5 *x * (1 + tanh(√(2π) * (x + 0.044715x^3))) 词嵌入使用固定位置,由随机wpe给出 多头注意力中,mask采用下三角矩阵: (1 - np.tri(x.shape[0], dtype=x.dtype)) * -1e10 ; 并且分数计算需要除以 sqrt(d_k)进行缩放 Transformer Block 的顺序是 输入先经过多头注意力层,再加残差。 接着经过前馈网络,再加残差。 每一步都有对应的层归一化 输出词选择最大概率的输出 此外,利用辅助函数 load_encoder_hparams_and_params 来检索: 一个虚拟编码器。 模型超参数。 模型参数。
输入描述:
第一行输入prompt,第二行输入生成的词数量。
输出描述:
输出生成的文本
示例1
输出
hello hello hello <UNK> <UNK> <UNK>
备注:
1.对应的输入、输出已给出,您只用实现核心功能函数即可。2.支持numpy、scipy、pandas、scikit-learn库。
加载中...