课程
高二人工智能:生成式人工智能与智能体工程
用提示词、API、检索和工具做大语言模型应用,再检查它们是否安全。
按顺序学习各课。学完后,你能数词元,用嵌入相似度比较文本,并讲清采样和上下文窗口。你能写结构化提示词,并用测试用例比较提示词的不同版本。你能找出人工智能写的代码里的错误和风险,并写出它必须通过的测试。你能得到符合模式的结构化 JSON 输出,做一个有花费上限的聊天机器人,并做一个从文档里找答案、还给出处的应用。你能做一个工具有限、有停止规则的智能体,挡住提示词注入,做一套自动测试套件,并发布一个有依据的研究助手。
这些课怎么用
- 从标着做这个的课开始。标题下面那一行你自己会了,再往下。
- 先玩游戏。再做测验。10题里对8题就通过。练习纸在纸上。答案在最下面。
- 每一课都接在前一课后面。每个应用都留一套测试,每次改完都跑一遍。
- 编程课用 Python。只用老师批准的人工智能服务,别把 API 密钥写进代码,设一个花费上限,绝不要把个人数据发给模型。
每一课都有游戏、测验和练习纸。
0/36
大语言模型基础
- 1词元和词表数词元,并讲清它们为什么重要。
- 用真正的分词器把文本分成词元。
- 比较不同语言的词元数量。
- 把词元和费用、上下文限制连起来。
- 2嵌入用嵌入相似度比较文本。
- 从模型得到嵌入。
- 计算余弦相似度。
- 按意思给句子排序,不按共同的词。
- 3大语言模型怎样生成讲清生成时的采样、温度和上下文窗口。
- 讲清下一个词元预测。
- 改变温度,并比较输出。
- 演示文本超出上下文窗口时会发生什么。
- 4预训练和调优分清预训练、微调和指令调优。
- 说出每一步用什么数据。
- 讲清来自人的反馈。
- 说出模型为什么有知识截止日期。
提示词工程
- 5结构化提示词写出带角色、任务、规则和格式的结构化提示词。
- 把说明和输入数据分开。
- 写明输出格式。
- 比较结构化提示词和没有结构的提示词。
- 6少样本示例用少样本示例改进输出。
- 加上两个或三个示例。
- 选能盖住边界情况的示例。
- 在测试集上量出变化。
- 7约束用约束限制长度、语气和格式。
- 定下长度和阅读难度的限制。
- 告诉模型不知道时该怎么做。
- 按每一条约束检查输出。
- 8提示词测试写测试用例,并比较提示词的不同版本。
- 写二十个测试输入和期望结果。
- 给两个提示词版本打分。
- 留下赢的那一版。
人工智能辅助编程
- 9生成代码按清楚的规格生成能运行的代码。
- 写规格:输入、输出和示例。
- 用它生成代码。
- 在示例上运行代码。
- 10审查人工智能代码审查人工智能写的代码,找出错误和风险。
- 检查边界情况和错误处理。
- 找出编造的函数和库。
- 找出不安全的代码,比如源码里的密钥。
- 11测试先行写出人工智能代码必须通过的测试。
- 用 pytest 写测试。
- 让人工智能写代码来通过这些测试。
- 每找到一个错误,就加一条测试。
- 12用人工智能调试用人工智能修好一个错误,并讲清这个修复。
- 做一个能露出这个错误的小例子。
- 向人工智能问原因,不只问怎么修。
- 讲清为什么这个修复有效。
大语言模型 API
- 13第一次 API 调用发出一次 API 聊天请求,并读回复。
- 从环境变量读取 API 密钥。
- 用 SDK 发请求。
- 读回复和词元用量。
- 14系统消息和用户消息使用系统消息和用户消息。
- 把规则放进系统消息。
- 把用户输入放进用户消息。
- 保留对话的历史。
- 15结构化输出得到符合模式的结构化 JSON 输出。
- 定义一个 JSON 模式。
- 要求输出遵守这个模式。
- 检查输出,失败了就再试一次。
- 16聊天机器人做一个有历史和花费上限的聊天机器人。
- 保留对话历史。
- 裁掉旧消息,好放进上下文。
- 到达花费上限就停止。
检索增强生成
- 17为什么要检索讲清为什么检索并依据原文能减少编出来的答案。
- 问模型一份它没见过的文档。
- 加上这份文档,再问一次。
- 画出先检索、再生成的流程。
- 18分块把文档分成块。
- 按大小切,并留重叠。
- 按标题切。
- 每块都留下出处和页码。
- 19向量搜索用向量搜索找出离问题最近的块。
- 给块做嵌入并存起来。
- 取出和问题最匹配的块。
- 量出正确的块被找到的频率。
- 20文档问答做一个从文档里找答案、还给出处的应用。
- 把检索到的块放进提示词。
- 每条说法都要有出处。
- 检查出处指向真实的段落。
人工智能工具与智能体
- 21工具调用让模型做工具调用,去调用一个函数。
- 用模式描述一个工具。
- 运行模型要求的那个工具。
- 把结果送回模型。
- 22规划做规划:把任务拆成模型能执行的步骤。
- 先向模型要一份计划。
- 一次执行计划里的一步。
- 检查完这一步再往下。
- 23状态和记忆用状态和记忆记住智能体已经做了什么。
- 存下每一步和它的结果。
- 把很长的历史做成摘要。
- 决定智能体该忘掉什么。
- 24受控智能体做一个工具有限、有停止规则的智能体。
- 只允许安全的、只读的工具。
- 限制步骤的数量。
- 任何会改变东西的动作,先问人。
多模态生成式人工智能
- 25图像生成讲清扩散模型怎样生成图像。
- 讲清加上噪声和去掉噪声。
- 讲清文字怎样引导图像。
- 讨论生成图像的同意和版权。
- 26视觉和语言用视觉和语言,就一张图像向模型提问。
- 把图像和问题一起发出去。
- 得到一份有结构的描述。
- 找出模型说错的一个细节。
- 27语音把语音转成文字,把文字转成语音。
- 转写一段短录音。
- 测量词错误率。
- 生成语音,并标明是人工智能做的。
- 28多模态原型做一个用两种输入的多模态原型。
- 选两种输入,比如语音和图像。
- 在一个应用里把它们接起来。
- 找五个用户来测试。
可靠性与安全
- 29幻觉找出幻觉:来源支持不了的答案。
- 拿来源核对每一条说法。
- 再用一次模型调用,标出来源支持不了的说法。
- 量出答案被完全支持的频率。
- 30提示词注入挡住应用里的提示词注入。
- 写出藏在用户输入和文档里的攻击。
- 把可信的说明和不可信的文本分开。
- 限制攻击能碰到哪些工具。
- 31评估用评分标准和测试集给输出打分。
- 写一份评分标准。
- 用手打分,也用模型打分。
- 看它们多久意见一致。
- 32测试套件给大语言模型应用做一套自动测试套件。
- 覆盖准确率、格式、安全和费用。
- 用一条命令运行它。
- 分数下降时,让构建失败。
人工智能产品工作室
- 33产品规格写清用户、功能和成功标准。
- 选一套老师批准的研究文档。
- 写出用户和他们的问题。
- 定下准确率、出处和费用的目标。
- 34搭建流水线搭建检索、回答和出处的流水线。
- 给文档建索引。
- 回答时给出处。
- 运行测试套件。
- 35说我不知道让应用在证据不够时说「我不知道」。
- 发现检索没有找到有用的内容。
- 回答「来源里没有说」,不要猜。
- 用文档答不了的问题来测试。
- 36人工智能研究助手发布并展示一个有依据的研究助手。
- 把应用部署给自己的班级。
- 展示准确率、依据、安全和费用的分数。
- 讲清它的限度。