Generative AI for Beginners 入门第 1 课:生成式 AI 与大型语言模型(LLM)工作原理完全指南
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
本课是整个《Generative AI for Beginners》21 课课程体系的开篇(对应 01-introduction-to-genai 原始英文课件的希腊语译本 translations/el/01-introduction-to-genai/README.md),系统讲解生成式 AI(Generative AI)是什么、它与机器学习/深度学习的渊源,以及大型语言模型(LLM)"分词—预测—采样"的底层工作机理。读完本文,你将掌握 LLM 的 prompt / completion 基本用法与 temperature 等关键参数,并能结合仓库中的 Python 示例,立刻开始编写第一个基于大模型的文本生成应用。
本课学习目标
本课是"Learn"型课程,聚焦概念理解,覆盖四个核心话题:
- 引入贯穿全课程的商业场景——一家虚构教育创业公司的理念与使命;
- 生成式 AI 的历史脉络,以及我们如何走到今天的技术格局;
- 大型语言模型的内部工作机制;
- 大型语言模型的主要能力与贴近实际的使用场景(重点面向教育)。
完成本课后,你将理解:生成式 AI 是什么、大型语言模型如何工作,以及如何针对不同用例(尤其是教育场景)使用 LLM。
场景设定:我们的教育创业公司
课程以一个虚构创业公司(文中称为我们的创业公司)为主线。它身处教育领域,使命宣言为:
在全世界范围内改善学习可及性,保障人人平等获得教育机会,并根据每位学习者的需求提供个性化学习体验。
团队意识到,不借助当代最强大的工具之一——大型语言模型(LLMs)——就无法实现这一目标。生成式 AI 有望重塑今天的教与学:学生可以随时拥有 24 小时在线的"虚拟老师",获得海量信息与示例;教师则能利用创新工具评估学生并给出反馈。
仓库根目录 README.md 对整套课程做了定位说明:共 21 课,分为解释概念的 "Learn" 型课程与附带 Python/TypeScript 代码示例的 "Build" 型课程。本课即属于概念奠基性质的 Learn 型课程,为后续 04-prompt-engineering-fundamentals(提示工程)、06-text-generation-apps(文本生成应用)等实践课程铺垫理论基础。
我们是如何走到生成式 AI 这一步的?
尽管生成式 AI 模型近期引发了巨大轰动,但这项技术已发展数十年,最早的研究努力可追溯至上世纪 60 年代。今天,我们已拥有具备类人认知能力(如对话)的 AI,例如 ChatGPT 及基于 GPT 模型构建对话式搜索体验的 Microsoft Copilot。
回顾演进路径,大致可划分为四个阶段:
早期原型:基于知识库的打字机式聊天机器人
最早的 AI 原型是打字机式聊天机器人:由专家群体整理出知识库并存入计算机,系统根据输入文本中出现的关键词触发知识库中的对应答案。这种规则驱动的方式很快就暴露出致命弱点——不可扩展。
统计方法:机器学习(20 世纪 90 年代)
转折点出现在 90 年代,研究者开始把统计方法应用于文本分析,由此发展出一类新算法——机器学习(Machine Learning)。机器学习算法能够从数据中学习模式而无需被显式编程。具体到语言理解,一个统计模型在"文本-标签"配对数据上训练,从而能把未知输入文本归类到代表消息意图的预定义标签。这条路线让机器得以"模拟"对人类语言的理解。
神经网络与当代虚拟助手
近年来,硬件能力的飞跃使机器可处理更大规模数据与更复杂的计算,推动高级机器学习算法——神经网络 / 深度学习算法的发展。其中,循环神经网络(RNN)显著提升了自然语言处理能力:它能结合词在句子中的上下文,以更有意义的方式表示文本语义。
正是这类技术支撑了本世纪初诞生的虚拟助手——它们擅长解读人类语言、识别需求并执行动作(如按预设脚本应答或调用第三方服务)来满足需求。
当下:生成式 AI
从技术谱系看,生成式 AI 可视为深度学习的子集:
经过数十年研究,一种名为Transformer的新模型架构突破了 RNN 的局限,能够处理长得多的输入文本序列。Transformer 建立在**注意力机制(attention)**之上:模型可以对接收的输入赋予不同权重,"更多地关注"信息最集中的部分,而无需拘泥于它们在文本序列中的先后顺序。
当今多数生成式 AI 模型——因其输入输出均为文本而被称为大型语言模型(LLM)——正是基于这一架构。它们在海量未标注数据(书籍、文章、网站等多种来源)上训练,其迷人之处在于:既能被适配到极其多样的任务上,又能生成语法正确、带有"创造力"意味的文本。换言之,Transformer 架构不仅大幅增强了机器"理解"输入文本的能力,更赋予了机器用人类语言生成原创回答的能力。
大型语言模型是如何工作的?
下一课将探讨不同类型的生成式 AI 模型(参见 02-exploring-and-comparing-different-llms),这里先以 OpenAI 的 GPT(Generative Pre-trained Transformer)系列为焦点,拆解 LLM 工作的三个关键环节。
第一步:Tokenizer——把文本变成数字
LLM 接收文本、输出文本,但它本质是统计模型,处理数字远胜于处理字符序列。因此,任何输入在进入模型核心之前,都要先经过一个tokenizer。一个token是文本的一小段(由可变数量的字符组成),tokenizer 的核心任务就是把输入拆成一个 token 数组,再把每个 token 映射为整数编码——即token index。
仓库中 04-prompt-engineering-fundamentals/python/aoai-assignment.ipynb 的练习一就示范了如何用 OpenAI 开源 tokenizer(tiktoken)亲手观察这一过程:用tiktoken.encoding_for_model("gpt-4o")获取编码器后,调用encoding.encode(text)得到整数形式的 token 序列,再通过decode_single_token_bytes还原文本片段——可以直观验证"一个 token ≠ 一个词",也便于估算输入将消耗的 token 数。
第二步:预测输出 token——滑动窗口式的自回归
给定 n 个 token 作为输入(不同模型的最大 n 各不相同),模型会预测一个输出 token;该 token 会被并入下一轮迭代的输入,形成"窗口不断扩展"的模式,从而让用户获得一句或多句连贯的答复。这也解释了为何使用 ChatGPT 时偶尔会看到它在句子中间"停顿"——它其实是逐 token 续写、直到满足停止条件。
第三步:选择过程——概率分布与 temperature
输出 token 依据"它出现在当前文本序列之后"的概率被选中:模型基于训练习得的知识,对所有可能的"下一个 token"预测一个概率分布。但并不总是选取概率最高的 token——模型会向选择过程注入一定随机性,使其以**非确定性(non-deterministic)**方式工作:即便输入完全相同,输出也不会逐字一致。这种随机性是为了模拟"创造性思维"的过程,并可通过一个名为temperature的模型参数进行调节。
这一点不仅是理论概念,也直接体现在本仓库各示例的 API 调用中。例如 06-text-generation-apps/python/oai-app-recipe.py 中:
- 生成食谱正文时使用
temperature=0.1,让输出在稳定与适度变化间平衡; - 生成购物清单时使用
temperature=0,尽可能求得确定、忠实的结果。
response = client.responses.create( model=deployment, input=prompt, max_output_tokens=600, temperature=0.1, store=False )06-text-generation-apps/python/aoai-assignment.ipynb 也解释了调参的通用规律:temperature 越高输出越随机、越低越可预测;并给出了示例:要使用 0.5,只需传入temperature=0.5。实践时应当自问:这个应用到底想要输出多样性,还是可复现的稳定性?需要变化用高值、需要稳定用低值。
补充:上下文窗口与 max_output_tokens
除了 temperature,另一个直接影响"按 token 逐个生成"体验的参数是可生成 token 数上限。上述 notebook 通过max_output_tokens控制每次回答的最大长度(如max_output_tokens=600或对话续写时的max_output_tokens=1200)。结合前面的 tokenizer 知识就很容易理解:模型一次可处理的输入规模(上下文窗口)与单次生成的输出长度都受 token 预算约束,所以设计 prompt 时也要把长文本的开销考虑进去。
我们的创业公司能用 LLM 做什么?
我们已知 LLM 的核心能力是:从一段用自然语言书写的文本输入出发、从零生成一段文本。那这里的输入与输出具体指什么?
- 输入称为prompt(提示);
- 输出称为completion(补全)——该术语正对应了模型"生成下一个 token 以完成当前输入"的机制。
关于"什么是 prompt、如何设计 prompt 以最大化榨取模型能力"将在后续课程深入展开(见 04-prompt-engineering-fundamentals)。这里先说明:一个 prompt 可以包含多种内容形态。
指令(Instruction):指定期望的输出类型
指令可以(有时也会)内嵌示例或额外数据。典型用法包括:
- 摘要与信息抽取:对文章、书籍、产品评论等做摘要,并从非结构化数据中提炼洞察。
- 创意构思与写作:构思并起草一篇文章、一篇论文、一份作业等。
这两种形态恰好对应教育场景的高频需求:教师快速总结材料、生成讲义;学生获得写作起点与灵感。
问题(Question):以对话形式向智能体提问
把 prompt 组织成与智能体对话的一问一答,是交互类应用(如答疑机器人)的基础。后续课程 07-building-chat-applications 就会利用历史消息维护多轮对话上下文。
待补全文本(Text to complete)
给出一段未写完的文本,模型按语感续写——这隐式地构成一次"帮我写作"的请求,适合草稿续写、句子润色等辅助写作场景。
代码(Code)相关请求
可以是"解释并注释这段代码",也可以是"请写一段完成某任务的代码"。教育创业公司可用它辅助编程教学与代码审阅。
课程同时强调:上述示例都很简单,远非 LLM 能力的穷尽演示,目的仅是展示生成式 AI 的潜力——特别是(但不限于)教育场景。
不能忽视的一面:LLM 的固有局限
生成式 AI 的输出并非完美。有时模型的"创造力"会反噬——它产出的可能是让用户觉得歪曲现实甚至冒犯的词语组合。要清醒地认识到:
- 生成式 AI并不"智能"——至少不符合包含批判性推理、创造性思维或情绪智力的广义智能定义;
- 它是非确定性的;
- 它并不可完全信赖——错误的引用、内容与陈述可能和正确信息混杂在一起,并以极具说服力、信誓旦旦的口吻呈现。
这类编造现象即业界所说的"幻觉"。整套课程会在后续专门处理这些限制与缓解手段:03-using-generative-ai-responsibly 讨论负责任使用(偏见、伤害与缓解框架),04-prompt-engineering-fundamentals 则讲解如何通过提示词设计降低虚构等风险。这也解释了上一节为何要引入 temperature:参数只是控制随机程度,并不能根除幻觉。
动手实践:最小可运行的文本补全示例
仓库 06-text-generation-apps/python/oai-app.py 给出了一个极其精简的文本补全应用,正好演示"prompt → completion"最小闭环:
from openai import OpenAI import os from dotenv import load_dotenv # 从 .env 文件加载环境变量 load_dotenv() # 配置 OpenAI 客户端(也可用于 Azure OpenAI v1 端点) client = OpenAI() deployment = "gpt-4o-mini" # 添加你的补全代码 prompt = "Complete the following: Once upon a time there was a" # 使用 Responses API 发起请求 response = client.responses.create(model=deployment, input=prompt, store=False) # 打印响应 print(response.output_text)运行前需安装依赖并配置密钥。仓库为 Python 示例提供 requirements.txt:核心依赖为openai与python-dotenv;把 API Key 写入.env文件后由load_dotenv()加载。密钥配置方面,shared/python/env_utils.py 提供了配套校验工具:OPENAI_API_KEY、AZURE_OPENAI_ENDPOINT与AZURE_OPENAI_API_KEY等环境变量缺失时会给出明确报错;shared/python/api_utils.py 的create_openai_client/create_azure_openai_client则会按环境变量自动组装客户端(Azure 端点为<endpoint>/openai/v1/)。环境搭建的完整指引参见 00-course-setup。
课后练习:设计你的"梦想 AI 创业公司"
本课布置的作业是:进一步了解生成式 AI,找出一个"今天还没有使用生成式 AI、但你认为应该引入"的领域,并思考——相比"老办法",影响有何不同?是能做以前做不到的事,还是只是更快?请写一篇约 300 词的摘要,描述你理想的 AI 创业公司,并包含 "Problem"(问题)、"How I would use AI"(我将如何使用 AI)、"Impact"(影响)等小标题,可选项是加入商业计划。
知识自测
关于大型语言模型,下列说法正确的是?
- 每次都会得到完全相同的回答。
- 它能完美地做任何事:擅长做加法、能产出可运行代码等等。
- 即使使用相同 prompt,回答也可能不同;它很擅长先给你一版草稿(文本或代码),但你需要在此基础上改进。
答案:A 3(选项 3)。LLM 是非确定性的,回答会有变化,不过你可以通过 temperature 参数控制变化的程度;同时也不应期待它"一次做对"——它的价值在于替你完成繁重的基础工作,通常是给你一版不错的初稿,再交由你逐步打磨。
下一步:进入第 2 课
完成本课后,即可进入 第 2 课:探索并比较不同类型的 LLM,学习如何根据任务挑选模型。后续 03-using-generative-ai-responsibly 与 04-prompt-engineering-fundamentals 将分别补齐"负责任使用"与"提示工程"两块关键拼图,随后 05-advanced-prompts、06-text-generation-apps 将带你进入真实应用的编码实战。
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考