教程人工智能机器学习深度学习【免费下载链接】AI-For-Beginners12 Weeks, 24 Lessons, AI for All!项目地址https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners点击查看免费下载导读本课是 AI-For-Beginners 课程 自然语言处理NLP模块的第 20 课主题是预训练大语言模型Pre-Trained Large Language Models即以 GPT 为代表的生成式预训练 Transformer 家族。本文将从为什么大模型无需领域数据即可解决任务这一核心命题出发系统讲解文本生成与困惑度Perplexity的数学原理、GPT 模型家族演进、Prompt 工程提示词设计的基本方法并结合仓库内的 GPT-PyTorch.ipynb 动手实验覆盖 Hugging Face Transformers 管道的完整调用、多种解码采样策略贪心、束搜索、随机采样与参数调优读完后你将能够独立运行 GPT 文本生成、设计有效提示词并选择合适的生成策略。一、从监督训练到自监督预训练为什么需要大语言模型在本课之前课程中的任务如文本分类、情感分析、命名实体识别都是用带标签的数据集训练神经网络去完成某个特定任务。而对于 BERT 这类大型 Transformer 模型我们采用自监督self-supervised的语言建模方式构建一个通用语言模型然后再通过针对特定领域的下游微调fine-tuning将其专业化。本课的关键转折点在于大型语言模型可以在不做任何领域特定训练的情况下直接解决大量任务。能够做到这一点的模型家族就是GPTGenerative Pre-Trained Transformer生成式预训练 Transformer。这个思路来自论文Language Models are Unsupervised Multitask Learners其核心观点是许多任务都可以被建模为文本生成text generation——因为理解一段文本在本质上等同于能够生成它。由于 GPT 是在覆盖人类知识的海量文本上训练的它因此也知晓了广泛多样的主题。理解并能生成文本也意味着对周围世界有所认知。人类在很大程度上也是通过阅读来学习的GPT 网络在这方面与人类相似。二、文本生成的原理条件概率与困惑度2.1 从无条件概率到条件概率文本生成网络的工作原理是预测下一个词的概率$$P(w_N)$$。然而下一个词的无条件概率等于该词在整个文本语料库中出现的频率——这显然不足以生成有意义的文本。GPT 的价值在于它能够给出给定前文条件下的下一个词的条件概率$$P(w_N | w_{n-1}, ..., w_0)$$也就是说模型每生成一个 token都依据前面所有已生成的 token 重新计算概率分布。这是所有自回归auto-regressive语言模型从 GPT-2 到今天的 GPT 系列的基本工作方式。2.2 困惑度Perplexity无标签也能评估模型质量语言生成模型的质量可以用困惑度perplexity来度量。它是一个内在指标intrinsic metric允许我们在没有任何任务特定数据集的情况下评估模型质量。其基础是句子概率的概念模型会给很可能真实存在的句子以高概率即模型不会被它困惑会给不合理、不通顺的句子例如Can it does what?以低概率。当我们把来自真实语料库的句子喂给模型时我们期望它们获得高概率、低困惑度。数学上困惑度定义为测试集归一化的逆概率$$ \mathrm{Perplexity}(W) \sqrt[N]{1\over P(W_1,...,W_N)} $$直观理解困惑度越低说明模型对真实文本的惊讶程度越低、对语言模式的拟合越好。由于它只需要文本本身无需人工标注因此成为衡量预训练语言模型质量的通用标尺。2.3 立即可上手的在线实验Hugging Face 的 GPT 文本编辑器你可以用 Hugging Face 提供的 GPT 文本编辑器 立刻体验文本生成开始输入你的文字按Tab 键编辑器会给出多个续写候选如果候选太短或不合意再按一次 Tab会得到更多选项包括更长的文本段落。这是理解条件概率续写最直观的方式同一前缀在不同采样下会走向完全不同的分支。三、GPT 是一个模型家族而非单个模型GPT 并非单一模型而是由OpenAI开发和训练的一系列模型的集合。下表总结了 GPT 家族的主要成员| GPT-2 | GPT-3 | GPT-4 | | -- | -- | -- | | 语言模型最多 15 亿1.5 billion参数 | 语言模型最多 1750 亿175 billion参数 | 100T 参数同时接受图像和文本输入输出文本 |从规模演进可见GPT 系列的参数量跨越了三个数量级能力也从纯文本扩展到多模态输入。GPT-3 与 GPT-4 模型可以通过 Microsoft Azure 认知服务OpenAI 服务 以及 OpenAI API 获取。需要说明上表中的参数规模数字引自课程原始文档属于该文档记载的项目事实其中 GPT-4 的 100T 是课程文档的原始表述。四、Prompt 工程与预训练模型交互的关键因为 GPT 在海量数据上训练以理解语言和代码它会针对输入即prompt提示词产生输出。Prompt 是 GPT 的输入或查询其中包含要求模型执行任务的指令。为了引出期望的结果你需要最有效的 prompt——这涉及选择正确的措辞、格式、短语甚至符号。这一方法称为 Prompt 工程Prompt Engineering。课程文档同时推荐了 Semantic Kernel 的 Prompt 工程文档 作为深入学习材料其中涵盖了提示词的构造模式与优化方法。Prompt 工程的核心思想在下一节的实战笔记本中体现得非常具体你不需要重新训练模型只要给出结构化的示例与指令模型就能模仿你提供的模式去完成任务——这正是 GPT 作为无监督多任务学习者的实践形态。五、动手实验用 Hugging Face Transformers 玩转 OpenAI GPT本课配套的实战笔记本是 GPT-PyTorch.ipynb芬兰语翻译版位于 translations/fi/lessons/5-NLP/20-LangModels/GPT-PyTorch.ipynb。该笔记本使用 Hugging Face 的transformers库围绕openai-gpt模型逐步演示文本生成、Prompt 工程与采样策略。5.1 环境准备NLP 模块的依赖清单位于 requirements-pytorch.txt核心依赖包括torch2.12.1 transformers5.5.0 huggingface0.0.1 nltk3.10.0 numpy1.22.0安装命令在本地 Python 环境中pip install -r requirements-pytorch.txt注意NLP 部分的部分实验涉及较大模型建议在 GPU 环境下运行遇到 GPU 显存不足时可考虑减小 minibatch 大小详见 NLP 模块总览 中的 GPU 说明。5.2 第一步实例化文本生成管道笔记本的第一步演示了最基础的调用方式——使用 Hugging Face 的pipelineAPIfrom transformers import pipeline model_name openai-gpt generator pipeline(text-generation, modelmodel_name) generator(Hello! I am a neural network, and I want to say that, max_length100, num_return_sequences5)关键参数说明model_name openai-gpt指定基础模型首次运行会自动从 Hugging Face Hub 下载权重笔记本运行输出显示约 479MB 的model.safetensors及词表/合并文件max_length100生成文本的最大长度含 prompt 部分num_return_sequences5返回 5 条候选续写方便比较不同采样路径。运行后你会得到 5 段风格各异、但都延续了给定前缀的文本。例如笔记本中实际生成的示例片段以Hello! I am a neural network, and I want to say that ...开头延续出完全不同的故事走向——这正是条件概率驱动的体现。5.3 通过 Prompt 设计免费完成任务笔记本明确指出在某些问题上你可以直接通过设计正确的 prompt 来使用 openai-gpt 完成生成任务而无需任何微调。下面是四个经典示范。示例 1同义词生成generator(Synonyms of a word cat:, max_length20, num_return_sequences5)模型自动延续出cat of the woods、big cat等同义/相关表达。示例 2情感分类few-shot 示范generator(I love when you say this - Positive\nI have myself - Negative\nThis is awful for you to say this -, max_length40, num_return_sequences5)通过在 prompt 中给出句子 - 情感的示例对Positive / Negative模型学会了沿用该格式对新的句子进行情感标注——这就是少样本few-shot学习的直观演示。示例 3翻译few-shot 示范generator(Translate English to French: cat chat, dog chien, student , top_k50, max_length30, num_return_sequences3)同样的思路给出英文 法文的示例模型试图续写student 的翻译。注意这里首次出现了top_k50参数后文详解。示例 4推荐系统风格生成generator(People who liked the movie The Matrix also liked , max_length40, num_return_sequences5)模型基于The Matrix的上下文生成同类推荐风格的文本。这些示例共同说明了一个要点Prompt 中示例的格式、数量与措辞直接决定输出质量这正是上一节 Prompt 工程在实践中的落地。5.4 文本采样策略解码参数深入解析笔记本接下来专门讲解了三种解码/采样策略。理解它们是控制生成质量流畅度、多样性、稳定性的关键。策略一贪心Greedy解码前面所有示例默认使用的都是贪心策略——每一步都选择概率最高的下一个词prompt It was early evening when I can back from work. I usually work late, but this time it was an exception. When I entered a room, I saw generator(prompt, max_length100, num_return_sequences5)贪心解码的特点是确定性同一个 prompt 永远得到同一条结果。缺点是容易产生重复、乏味的文本且无法利用低概率但更有趣的词。策略二束搜索Beam Search束搜索允许生成器同时探索多条生成方向称为beams最终选择整体得分最高的那条路径generator(prompt, max_length100, num_return_sequences5, num_beams10, no_repeat_ngram_size2)参数解析num_beams10同时保留 10 条候选序列进行探索越大越接近全局最优但计算量也越大no_repeat_ngram_size2惩罚模型重复给定大小的 n-gram这里为二元组有效抑制文本循环重复。从笔记本的实际输出对比可以看出束搜索生成的故事在连贯性和通顺度上明显优于贪心策略。策略三随机采样Sampling采样策略非确定性地选择下一个词——根据模型输出的概率分布进行随机抽取generator(prompt, max_length100, do_sampleTrue, temperature0.8)关键参数解析do_sampleTrue开启采样模式temperature0.8温度系数。temperature 控制随机性——温度越低分布越尖锐、输出越趋于确定性温度越高分布越平坦、输出越多样但更容易跑偏。此外采样还可以搭配两个裁剪参数top_k限定采样时只考虑概率最高的 k 个词最小化奇怪低概率词混入文本的几率top_p核采样类似思路但选择的是累计概率刚好超过 p 的最小词子集——只在这组最可能的词中进行采样。笔记本建议读者自由组合top_k/top_p与temperature进行实验找到多样性与连贯性的平衡点。5.5 微调Fine-Tuning让模型适配你的数据除了直接使用与 Prompt 工程你还可以在自己的数据集上微调模型从而在保留语言模型主体能力的同时调整输出风格。这在领域数据充分、风格要求固定的生产场景如客服话术、文案生成中尤为重要课程文档给出了 Azure OpenAI 服务的微调指南 作为进阶参考。六、总结新一代通用预训练语言模型不仅建模了语言结构还内化了海量的自然语言知识。因此它们可以在zero-shot零样本或 few-shot少样本设定下通过精心设计的 prompt 有效解决多种 NLP 任务——无需领域特定的下游训练。回到本课在整个课程体系中的位置前序课程语言建模、RNN、Transformers 与注意力机制讲解了模型如何学习语言结构与上下文本课则展示了当模型规模足够大、预训练语料足够广时通用的语言能力本身就是任务求解能力。这也解释了为什么 GPT 家族从 15 亿参数的 GPT-2 到千亿级参数的 GPT-3/GPT-4会成为当代 AI 应用的基础设施。掌握本课之后你可以理解文本生成的条件概率原理与困惑度指标用 GPT-PyTorch.ipynb 独立完成 GPT 文本生成实验通过 few-shot 示例设计 prompt让基础模型零训练完成分类、翻译等任务根据场景在贪心、束搜索、随机采样之间选择策略并熟练调优temperature、top_k、top_p、num_beams等核心参数了解微调与 Prompt 工程在真实业务中的分工与边界。赞分享教程人工智能机器学习深度学习【免费下载链接】AI-For-Beginners12 Weeks, 24 Lessons, AI for All!项目地址https://gitcode.com/GitHub_Trending/ai/AI-For-Beginners点击查看免费下载相关推荐AI-For-Beginners 第 20 讲预训练大语言模型与 GPT 文本生成实战指南AI For Beginners 第 20 讲预训练大语言模型与 GPT 文本生成实战指南 本文围绕 AI For Beginners https://lin教程人工智能机器学习深度学习预训练大语言模型实战指南从 GPT 系列到文本生成与提示工程AI-For-Beginners 第 20 课预训练大语言模型实战指南从 GPT 系列到文本生成与提示工程AI For Beginners 第 20 课 本文基于 AI For Beginners h教程人工智能机器学习深度学习预训练大语言模型实战指南AI-For-Beginners 中的 GPT 课程与文本生成预训练大语言模型实战指南AI For Beginners 中的 GPT 课程与文本生成 导读 本文围绕 AI For Beginners 课程第 20 课教程人工智能机器学习深度学习上一篇YTMusicUltimate故障排除10个常见问题解决方案和优化技巧下一篇Outfit字体完全指南9种字重免费开源字体如何提升你的设计品质创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考