<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Transformer on Ray's Blog</title><link>https://raychi.site/tags/transformer/</link><description>Recent content in Transformer on Ray's Blog</description><generator>Hugo</generator><language>zh-CN</language><copyright>Copyright © 2025, Ray</copyright><lastBuildDate>Sat, 15 Mar 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://raychi.site/tags/transformer/index.xml" rel="self" type="application/rss+xml"/><item><title>RLHF: 基于人类偏好的强化学习</title><link>https://raychi.site/rlhf/</link><pubDate>Sat, 15 Mar 2025 00:00:00 +0800</pubDate><guid>https://raychi.site/rlhf/</guid><description>&lt;p>RLHF是&amp;quot;Reinforcement Learning from Human Feedback&amp;quot;的缩写，中文意思是&amp;quot;基于人类反馈的强化学习&amp;quot;。这是一种结合了强化学习和人类反馈的机器学习方法，旨在训练智能体（agent）在特定任务上表现得更好。以下是RLHF的一些关键特点：&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>强化学习&lt;/strong>：智能体通过与环境的交互来学习，不断调整策略以最大化累积奖励。它不需要显式的指导信号，而是通过试错来学习。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>人类反馈&lt;/strong>：在RLHF中，人类提供反馈来指导智能体的学习过程。这些反馈可以是奖励信号、偏好比较或直接的策略建议。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>结合两者&lt;/strong>：RLHF将强化学习与人类反馈相结合，以提高学习效率和性能。人类反馈可以纠正智能体的错误，提供更丰富的学习信号，帮助智能体更快地收敛到好的策略。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>应用广泛&lt;/strong>：RLHF可以应用于各种任务，如游戏、机器人控制、自然语言处理等。通过人类反馈，智能体可以更好地理解和适应人类的偏好和需求。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>可解释性和安全性&lt;/strong>：通过引入人类反馈，RLHF可以提高智能体行为的可解释性，减少潜在的不安全或不道德的行为。&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>总的来说，RLHF是一种有效的学习方法，通过结合强化学习和人类反馈，可以训练出更智能、更符合人类需求的智能体。这种方法在人工智能领域具有广泛的应用前景。&lt;/p>
&lt;h2 id="rlhf在大语言模型中的应用">RLHF在大语言模型中的应用&lt;/h2>
&lt;p>RLHF最初在自然语言生成任务中得到了广泛应用，尤其是大语言模型（如GPT系列）的训练。它帮助解决了以下关键问题：&lt;/p>
&lt;h3 id="1-对齐问题alignment">1. 对齐问题（Alignment）&lt;/h3>
&lt;p>&lt;strong>问题&lt;/strong>：预训练的大语言模型虽然能够生成流畅的文本，但可能会产生有害、偏见或不符合人类价值观的内容。&lt;/p>
&lt;p>&lt;strong>解决方案&lt;/strong>：通过RLHF，可以使模型的行为与人类的价值观和偏好对齐。&lt;/p>
&lt;h3 id="2-指令遵循">2. 指令遵循&lt;/h3>
&lt;p>&lt;strong>问题&lt;/strong>：模型很难理解并遵循复杂的人类指令。&lt;/p>
&lt;p>&lt;strong>解决方案&lt;/strong>：通过人类反馈训练模型，使其能够更好地理解和执行人类的指令。&lt;/p>
&lt;h3 id="3-创造性和安全性平衡">3. 创造性和安全性平衡&lt;/h3>
&lt;p>&lt;strong>问题&lt;/strong>：需要模型既有创造性，又不产生不当内容。&lt;/p>
&lt;p>&lt;strong>解决方案&lt;/strong>：通过精心设计的奖励函数，引导模型在创造性和安全性之间找到平衡。&lt;/p>
&lt;h2 id="rlhf的三个阶段">RLHF的三个阶段&lt;/h2>
&lt;h3 id="第一阶段监督微调sft---supervised-fine-tuning">第一阶段：监督微调（SFT - Supervised Fine-Tuning）&lt;/h3>
&lt;p>在这个阶段，研究者会收集高质量的问答对数据，让模型学习如何回答问题。这些数据通常由人类专家编写，确保高质量和准确性。&lt;/p>
&lt;p>&lt;strong>步骤&lt;/strong>：&lt;/p>
&lt;ol>
&lt;li>收集高质量的指令-回答数据&lt;/li>
&lt;li>使用这些数据对预训练模型进行监督微调&lt;/li>
&lt;li>得到一个能够理解和遵循指令的基础模型&lt;/li>
&lt;/ol>
&lt;h3 id="第二阶段奖励模型训练reward-model-training">第二阶段：奖励模型训练（Reward Model Training）&lt;/h3>
&lt;p>在这个阶段，研究者训练一个奖励模型，用于评估模型输出的质量。这个模型学会了人类的偏好和价值观。&lt;/p>
&lt;p>&lt;strong>步骤&lt;/strong>：&lt;/p>
&lt;ol>
&lt;li>收集人类偏好数据（通常是比较数据）&lt;/li>
&lt;li>训练一个奖励模型，能够给不同的输出打分&lt;/li>
&lt;li>这个奖励模型将用于后续的强化学习训练&lt;/li>
&lt;/ol>
&lt;h3 id="第三阶段强化学习优化ppo">第三阶段：强化学习优化（PPO）&lt;/h3>
&lt;p>在这个阶段，模型使用PPO（Proximal Policy Optimization）算法进行训练，优化其输出以最大化从奖励模型得到的分数。&lt;/p>
&lt;p>&lt;strong>步骤&lt;/strong>：&lt;/p>
&lt;ol>
&lt;li>使用PPO算法&lt;/li>
&lt;li>让模型生成多个候选回答&lt;/li>
&lt;li>使用奖励模型评估这些回答&lt;/li>
&lt;li>根据奖励信号更新模型参数&lt;/li>
&lt;/ol>
&lt;h2 id="rlhf的优缺点">RLHF的优缺点&lt;/h2>
&lt;h3 id="优点">优点&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>对齐效果显著&lt;/strong>：能够有效使模型行为与人类价值观对齐&lt;/li>
&lt;li>&lt;strong>提高安全性&lt;/strong>：显著减少了模型生成有害内容的概率&lt;/li>
&lt;li>&lt;strong>提升指令遵循能力&lt;/strong>：模型能够更好地理解和执行复杂指令&lt;/li>
&lt;li>&lt;strong>改善输出质量&lt;/strong>：整体上提高了模型输出的质量和有用性&lt;/li>
&lt;/ol>
&lt;h3 id="缺点">缺点&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>成本高昂&lt;/strong>：需要大量人工标注和反馈数据&lt;/li>
&lt;li>&lt;strong>训练复杂&lt;/strong>：RLHF的训练过程复杂且不稳定&lt;/li>
&lt;li>&lt;strong>数据依赖性&lt;/strong>：性能很大程度上依赖于人类反馈数据的质量和多样性&lt;/li>
&lt;li>&lt;strong>潜在偏见&lt;/strong>：可能继承训练数据中的偏见&lt;/li>
&lt;/ol>
&lt;h2 id="常见的rlhf实现">常见的RLHF实现&lt;/h2>
&lt;h3 id="instructgpt">InstructGPT&lt;/h3>
&lt;p>InstructGPT是OpenAI基于GPT-3.5开发的模型，通过RLHF技术显著提高了模型的指令遵循能力。&lt;/p>
&lt;h3 id="chatgpt">ChatGPT&lt;/h3>
&lt;p>ChatGPT是OpenAI开发的大型语言模型，基于GPT-3.5/4.0，使用了RLHF技术来实现更好的对话能力和安全性。&lt;/p>
&lt;h3 id="claude">Claude&lt;/h3>
&lt;p>Claude是Anthropic开发的AI助手，也使用了Constitutional AI和RLHF技术来实现安全性和有用性的平衡。&lt;/p></description></item><item><title>transformer</title><link>https://raychi.site/transformer/</link><pubDate>Sun, 01 Dec 2024 00:00:00 +0800</pubDate><guid>https://raychi.site/transformer/</guid><description>&lt;h1 id="transformer">Transformer&lt;/h1>
&lt;h2 id="nlp自然语言处理发展史">NLP（自然语言处理）发展史&lt;/h2>
&lt;p>自然语言处理（Natural Language Processing，NLP）是一门借助计算机技术研究人类语言的科学。&lt;/p>
&lt;p>大致可以分为两个阶段：&lt;/p>
&lt;h3 id="nnlm神经网络模型">NNLM神经网络模型&lt;/h3>
&lt;p>NNLM 模型的思路与统计语言模型保持一致，它通过输入词语前面的&lt;code> N−1 &lt;/code>个词语来预测当前词。&lt;/p>
&lt;p>NNLM 模型首先从词表 C 中查询得到前面&lt;code> N−1&lt;/code> 个词语对应的词向量 $C(w_{t−n+1}),…,C(w_{t−2}),C(w_{t−1})，$然后将这些词向量拼接后输入到带有激活函数的隐藏层中，通过 Softmax 函数预测当前词语的概率。&lt;/p>
&lt;p>特别地，包含所有词向量的词表矩阵 C 也是模型的参数，需要通过学习获得。因此 NNLM 模型不仅能够能够根据上文预测当前词语，同时还能够给出所有词语的词向量（Word Embedding）。&lt;/p>
&lt;h3 id="word2vec">Word2Vec&lt;/h3>
&lt;p>获取词向量&lt;/p>
&lt;p>Word2Vec 的模型结构和 NNLM 基本一致，只是训练方法有所不同，分为 CBOW (Continuous Bag-of-Words) 和 Skip-gram 两种，&lt;/p>
&lt;p>&lt;strong>CBOW&lt;/strong>词袋模型
使用周围的词语 $w(t−2),w(t−1),w(t+1),w(t+2)$ 来预测当前词 $w(t)$&lt;/p>
&lt;p>&lt;strong>Skip-gram&lt;/strong>
它使用当前词 $w(t)$ 来预测它的周围词语&lt;/p>
&lt;p>与严格按照统计语言模型结构设计的 NNLM 模型不同，Word2Vec 模型在结构上更加自由，训练目标也更多地是为获得词向量服务。特别是同时通过上文和下文来预测当前词语的 CBOW 训练方法打破了语言模型“只通过上文来预测当前词”的固定思维，为后续一系列神经网络语言模型的发展奠定了基础。&lt;/p>
&lt;p>但是Word2Vec没有办法处理多义词和上下文敏感的问题，因为他是单向的！&lt;/p>
&lt;p>我们常见的多义词情况，比如说：&lt;/p>
&lt;ul>
&lt;li>我们今天买了苹果手机。&lt;/li>
&lt;li>我们今天买了苹果派。&lt;/li>
&lt;/ul>
&lt;p>如果我们按照单向编码，&amp;ldquo;苹果&amp;quot;之前都是&amp;quot;我们今天买了&amp;rdquo;，从而得到的苹果的向量是一样的。但是在两个句子中的苹果含义是不同的！我们很明显没办法解决多义词问题和上下文理解的问题。&lt;/p>
&lt;h3 id="elmo模型embeddings-from-language-models">ELMo模型(Embeddings from Language Models)&lt;/h3>
&lt;p>Embeddings from Language Models&lt;/p>
&lt;p>为了更好解决多义词问题，研究者提出了ELMo模型
与 Word2Vec 模型只能提供静态词向量不同，ELMo 模型会根据上下文动态地调整词语的词向量。&lt;/p></description></item></channel></rss>