<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>生成式预训练 on 辰远</title>
        <link>/tags/%E7%94%9F%E6%88%90%E5%BC%8F%E9%A2%84%E8%AE%AD%E7%BB%83/</link>
        <description>Recent content in 生成式预训练 on 辰远</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>Lee</copyright>
        <lastBuildDate>Fri, 28 Aug 2026 22:58:11 +0800</lastBuildDate><atom:link href="/tags/%E7%94%9F%E6%88%90%E5%BC%8F%E9%A2%84%E8%AE%AD%E7%BB%83/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>GPT-1/2：生成式预训练与 few-shot 萌芽</title>
        <link>/p/gpt-01/</link>
        <pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate>
        
        <guid>/p/gpt-01/</guid>
        <description>&lt;img src="/p/gpt-01/cover.jpg" alt="Featured image of post GPT-1/2：生成式预训练与 few-shot 萌芽" /&gt;&lt;h2 id=&#34;从-bert-到-gpt一个对称的思路&#34;&gt;从 BERT 到 GPT：一个对称的思路
&lt;/h2&gt;&lt;p&gt;2018 年是 NLP 的转折年。Google 的 BERT 用双向编码器横扫了理解类任务，OpenAI 的 GPT-1 则在同一年走了另一条路——只用 Decoder，只做生成。&lt;/p&gt;
&lt;p&gt;BERT 擅长把一句话变成一组向量然后分类，GPT 擅长从一段文字续写下一段。两者共享同一个技术底座——Transformer——但选择了完全相反的架构配置。这个架构上的分歧决定了此后五年大模型发展的两条主线，直到 GPT-3 出现后生成式路线才逐渐成为主流。&lt;/p&gt;
&lt;h2 id=&#34;核心设计decoder-only-与自回归&#34;&gt;核心设计：Decoder-only 与自回归
&lt;/h2&gt;&lt;p&gt;GPT-1 的架构改动非常小：从 Transformer 原论文里取出 Decoder 部分，去掉 Encoder-Decoder 交叉注意力层，只保留 Masked Multi-Head Self-Attention + Feed Forward，堆 12 层。&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;/p/gpt-01/gpt-architecture.png&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;图 1：GPT-1 Decoder-only 架构（tldraw 绘制）&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&#34;每一层的技术细节&#34;&gt;每一层的技术细节
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Masked Self-Attention&lt;/strong&gt;：每个 token 只能看到自己和左边的 token。实现方式是在 softmax 之前把未来位置的分数设为 &lt;code&gt;-∞&lt;/code&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 因果掩码的伪代码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;scores&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Q&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;@&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;K&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;T&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sqrt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;d_k&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;          &lt;span class=&#34;c1&#34;&gt;# [seq_len, seq_len]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;mask&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;torch&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;triu&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;torch&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ones&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;L&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;L&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;diagonal&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bool&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;scores&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mask&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;float&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;inf&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;          &lt;span class=&#34;c1&#34;&gt;# 未来位置 → -∞&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;attn&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;softmax&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scores&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dim&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;        &lt;span class=&#34;c1&#34;&gt;# 未来位置 → 0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这个掩码是三角形的（triangular mask），对角线以下是可见的，对角线以上被遮住。softmax 之后，被遮位置的权重为 0，不会影响后续计算。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Feed Forward&lt;/strong&gt;：两层全连接网络，使用 GELU 激活函数：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;FFN(x) = W2 · GELU(W1 · x + b1) + b2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GPT-1 的 inner 维度是 3072（隐藏维度 768 的 4 倍），输出维度 768。GELU 比 ReLU 更平滑，在负半轴保留非零梯度，对深层网络的训练更稳定。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Layer Normalization 的位置&lt;/strong&gt;：GPT-1 把 LayerNorm 放在每个子层&lt;strong&gt;之前&lt;/strong&gt;（pre-norm），而原始 Transformer 放在之后（post-norm）。这个看似微小的改动后来被证明对训练稳定性至关重要——pre-norm 更容易训练深层网络。&lt;/p&gt;
&lt;h3 id=&#34;训练细节&#34;&gt;训练细节
&lt;/h3&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;参数&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;GPT-1&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;GPT-2 Small&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;层数&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;12&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;12&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;隐藏维度&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;768&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;768&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;注意力头&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;12&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;12&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;参数量&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;117M&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;124M&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;训练数据&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;BookCorpus (~1B 词)&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;WebText (~40GB)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Batch size&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;64&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;512&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;学习率&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2.5e-4 (warmup + cosine)&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;2.5e-4&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;优化器&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Adam&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Adam&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;最大序列长度&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;512&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1024&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;GPT-2 的改动主要是加大序列长度（512→1024）和 batch size（64→512），架构几乎不变。&lt;/p&gt;
&lt;h2 id=&#34;核心思想为什么-decoder-only-能做理解&#34;&gt;核心思想：为什么 Decoder-only 能做理解？
&lt;/h2&gt;&lt;p&gt;当时的主流观点是：理解任务需要双向上下文，所以 Encoder-only（BERT）更合理。GPT 用实验证明了一个反直觉的结论：&lt;strong&gt;生成式预训练本身就能学会理解&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;直觉是这样的：语言模型在预测下一个词时，必须理解前面所有词的含义、语法关系、指代关系、甚至常识。如果模型能准确预测&amp;quot;小明去了超市，他买了一个___&amp;quot;，它必须知道&amp;quot;他&amp;quot;指代&amp;quot;小明&amp;quot;、&amp;ldquo;超市&amp;quot;暗示可以买&amp;quot;苹果&amp;quot;而不是&amp;quot;汽车&amp;rdquo;。&lt;strong&gt;预测下一个词这个任务，天然包含了理解。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;GPT-1 在 12 个 NLP 任务中的 9 个上取得了 SOTA。虽然绝对分数不如 BERT（因为 BERT 的双向编码确实在理解任务上更优），但 GPT-1 证明了生成式预训练这条路是可行的。&lt;/p&gt;
&lt;h2 id=&#34;gpt-2-的关键发现隐式多任务学习&#34;&gt;GPT-2 的关键发现：隐式多任务学习
&lt;/h2&gt;&lt;p&gt;GPT-2 沿用了 GPT-1 的架构，核心变化是放大规模和数据，但发现了更重要的东西。&lt;/p&gt;
&lt;h3 id=&#34;零样本能力&#34;&gt;零样本能力
&lt;/h3&gt;&lt;p&gt;GPT-2 最令人惊讶的发现是：&lt;strong&gt;完全没有经过微调&lt;/strong&gt;，在零样本设定下测试：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;机器翻译&lt;/strong&gt;（WMT-14 英法）：零样本 BLEU 11.5——虽然远不如专有模型，但这是在没有任何平行语料的情况下做到的&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;阅读理解&lt;/strong&gt;（CoQA）：零样本 55 F1，接近有监督 baseline&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;摘要&lt;/strong&gt;（CNN/Daily Mail）：零样本 ROUGE-L 与有监督模型相当&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这意味着什么？GPT-2 在训练时从没见过任何翻译任务的数据，但当给它一段&amp;quot;English sentence = French sentence&amp;quot;的格式时，它自动学会了翻译。&lt;strong&gt;模型在预训练过程中隐式地学习了一个多任务学习器。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;规模的影响&#34;&gt;规模的影响
&lt;/h3&gt;&lt;p&gt;GPT-2 发布了四个版本，参数量从 124M 到 1.5B。实验发现：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;模型&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;参数量&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;零样本 LAMBADA 准确率&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;GPT-2 Small&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;124M&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;45.0%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;GPT-2 Medium&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;355M&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;55.0%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;GPT-2 Large&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;774M&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;58.0%&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;GPT-2 XL&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;1.5B&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;63.0%&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;规模越大，零样本准确率越高，而且没有饱和的迹象。这个趋势直接影响了两件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;GPT-3 的 175B 参数决策&lt;/strong&gt;——既然 1.5B 还没饱和，再放大 100 倍会怎样？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scaling Law 的提出&lt;/strong&gt;——Kaplan 等人 2020 年的 Scaling Law 论文直接引用了 GPT 系列的数据&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;单向注意力掩码的可视化&#34;&gt;单向注意力掩码的可视化
&lt;/h2&gt;&lt;figure&gt;&lt;img src=&#34;/p/gpt-01/gpt-mask.png&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;图 2：GPT 因果掩码——每个 token 只能看到自己和左边（tldraw 绘制）&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;图中展示的是 GPT 在预测每个位置时的注意力可见范围。预测 SOS 时只能看自己，预测&amp;quot;你&amp;quot;时可以看到 SOS、我、爱，但看不到后面的 EOS。这个看似简单的三角掩码，决定了 GPT 的生成能力和理解局限。&lt;/p&gt;
&lt;h2 id=&#34;为什么-gpt-12-值得关注&#34;&gt;为什么 GPT-1/2 值得关注
&lt;/h2&gt;&lt;h3 id=&#34;技术启示&#34;&gt;技术启示
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Decoder-only 成为主流&lt;/strong&gt;。GPT-3、LLaMA、Mistral、DeepSeek 都采用了 GPT 开创的 Decoder-only 路线。Decoder-only 最终被证明在大规模下最有效——原因是：Encoder-only 只能做理解，Encoder-Decoder 需要同步两个模块，而 Decoder-only 可以无限堆叠，单纯靠规模解决问题。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;零样本能力改变了一切&lt;/strong&gt;。GPT-2 证明了模型可以不经微调就迁移到未见过的任务。这个发现直接催生了 GPT-3 的 in-context learning，以及后来指令微调、RLHF 等技术路线。如果没有 GPT-2 的零样本发现，GPT-3 可能不会选择&amp;quot;few-shot prompt&amp;quot;这个方向。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Scaling 路线的起点&lt;/strong&gt;。GPT-1 117M → GPT-2 1.5B → GPT-3 175B，这条增长曲线不是偶然的。GPT-2 的实验数据直接支持了&amp;quot;越大越好&amp;quot;的假设。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;格局变化&#34;&gt;格局变化
&lt;/h3&gt;&lt;p&gt;GPT-1 发布时（2018 年 6 月），NLP 领域的主流是 LSTM + Attention。GPT-1 证明了 Transformer 在生成任务上同样有效。半年后 BERT 在理解任务上全面超越 GPT-1，所以 GPT-1 的注意力被抢走了。&lt;/p&gt;
&lt;p&gt;但 GPT-2 发布时（2019 年 2 月），情况变了。OpenAI 因为担心滥用，最初只发布了 124M 的小模型，九个月后才全面开源 1.5B 的完整版。这个&amp;quot;不开源&amp;quot;的决定本身就说明：&lt;strong&gt;他们意识到这个方向可能比想象中更强大&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id=&#34;参考资料&#34;&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Radford, A., et al. (2018). &lt;em&gt;Improving Language Understanding by Generative Pre-Training&lt;/em&gt;. OpenAI.&lt;/li&gt;
&lt;li&gt;Radford, A., et al. (2019). &lt;em&gt;Language Models are Unsupervised Multitask Learners&lt;/em&gt;. OpenAI.&lt;/li&gt;
&lt;li&gt;Devlin, J., et al. (2018). &lt;em&gt;BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding&lt;/em&gt;. arXiv:1810.04805.&lt;/li&gt;
&lt;li&gt;Brown, T., et al. (2020). &lt;em&gt;Language Models are Few-Shot Learners&lt;/em&gt;. arXiv:2005.14165.&lt;/li&gt;
&lt;li&gt;The Illustrated GPT-2 (Jay Alammar): &lt;a class=&#34;link&#34; href=&#34;http://jalammar.github.io/illustrated-gpt2/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;http://jalammar.github.io/illustrated-gpt2/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
