本欲结束AIGC的试用,后来的一场AIGC的专业培训讲解,觉得还是有必要再记录些什么。
个人揣摩是一回事,毕竟与专业还是有着差距。
揣摩是实践,专业是理论,无论从实践到理论,还是理论到实践,彼此结合总是有着更深入的理解。
* 培训内容 / 基础专业词汇 / 学习文档。。。,一点点的补起来。
看懂看不懂的,也许只是现在,慢慢会多明白一些。
Fine tuning and Prompt 调优和提示词
1. 生成式AI
- 定义:与AI模型进行交互的输入(指令、问题、文本),生成有效的输出(答案或描述)
- Prompt,提示词
- 短语、句子、段落 --> 引导模型 --> 生成相关文本、图像、音频
- 指令,参数,有效训练
- 对预训练模型的复用:将优化的下游任务目标转换为预训练任务
- 应清晰、具体
- 控制生成模型行为
- 生成符合特定需求或上下文的内容
- Prompt 是一种针对特定任务的指令
- Prompt 是一种对预训练目标的复用
- Prompt 本质是模型参数有效性训练 - 目的:生成任务的输入和预期的输出,生成符合特定需求或上下文的内容
- 分类
- 模型预训练 Pre-Training,自定义所有训练内容(词汇量,上下文长度,数据)
- 模型微调 Fine-Tuning,特定任务和特定数据,专项训练
- 提示词工程 Prompt Engineering,自定义提示词;通过清晰、具体的prompt,控制模型的行为,生成符合特定需求或上下文的内容 - 形式
- 问题或指令 --> 引导模型生成答案或文本
- 开放性描述(主题、概念) --> 由模型按理解生成输出
- 示例输入(样例)--> 模型从样例中学习,推断规则和模式
- 对话式(交互进行对话或指令)--> 模型基于上下文生成回应 - 为什么需要Prompt
- 引导:明确意图和任务
- 限制内容生成:避免随机、不相关、不适当、冒犯、不合规的输出
- 提高模型可控性:精确控制模型行为,符合上下文需求
- 增强模型适应性:适应不同任务、应用、领域、场景、类型
- 提高性能:提高试验收敛性,减少不必要的试错,节省时间和资源
- 实验和对比:对比结果,优化实验和训练,优化性能
- 个性化和定制:按不同用户需求,满足不同要求 - 类型
- 角色扮演
- 短提示。需求、样例、指标。。。
- 基于选择的问答提示
- 引导性提示(起个开头然后生成内容)。基于需求的问答依据(事实、信念或假设),引导至特定的方向
- 逐步提示,逐步深入。保持主观,基于需求进行描述性提示 - 构成 -- 再来个续2
参考,Prompt-Tuning——深度解读一种新的微调范式 - 知乎 (学习文档 1)
- Examples
- Directions
- Parameters
- Format
- Chaining
2. 预训练模型
- MLM,Multimodal Large Models,多模态大模型 (词汇 1)
- 基于深度神经网络的预训练模型
- 一种自监督的训练方法
- 先从大规模的无监督语料上通过固定的替换策略获得自监督语料,设计预训练的目标来训练模型 - PET,Pattern-Exploiting Training,模式探索训练 (词汇 2)
参考,提示学习:PET系列 - 知乎 (学习文档 2)
解读 PET:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference - 知乎 (学习文档 3)
Exploiting Cloze-Questions for Few-Shot Text Classification and Natural Language Inference - ACL Anthology (学习文档 4) - PVP,Pattern-Verbalizer-Pair,模板(Pattern)与标签映射器(Verbalizer)对 (词汇 3)
参考,Prompt Tuning:深度解读一种新的微调范式 (学习文档 5)
- Template
- 构建合适的pattern
- Pattern,模式:一个定义了用户提供的输入应该是什么样的结构或形式的规则或模板;用于生成式 AI 模型的输入,引导模型理解用户的请求或任务。
- Verbalizer,表述,标签词的映射:一个用自然语言示范了与Pattern匹配的输入应该是什么样的示例文本;用于说明模式中占位符的填充方式和期望的生成结果。 - LLM,Large Language Models,大语言模型
参考,万字长文:LLM能力与应用全解析 - 知乎 (学习文档 6) - PLM,Pre-trained Lanaguage Models,预训练语言模型
- CoT,Chain of Thought,思维链
参考,一文读懂:大模型思维链 CoT(Chain of Thought) - 知乎 (学习文档 7)
- Zero-Shot
- Zero-Shot CoT
- Manual CoT
- Auto-CoT - ToT,Tree of Thought,思维树
参考,[Paper Reading] 思维树 Tree of Thoughts - 知乎 (学习文档 8)
- Propose prompt
- Value Prompt
3. Prompt 的局限和风险
- 局限
- 无法拓展 LLM 的知识边界
- 受限于 LLM Context Windows - 风险
- 提示词注入,Prompt injection
- 信息泄露
- 越狱、破解,JailBreaking
4. LLM Fine-Tuning,大语言模型调优
- 基于预训练模型基础上,使用特定领域的语料进行继续训练,以便模型适应领域任务。步骤:
- 选择预训练好的通用语言模型
- 选择调优所需的特定领域语料
- 在预训练模型基础之上,使用特定领域的语料继续训练模型(以较少的参数调整,适应新语料)
- 在特定任务上调优模型,微调模型参数
- 获得一个性能提升、适用特定领域和任务的调优模型 - 调优适用情况
- 应用于模型预训练时没有遇到过的领域时(获得更好的性能,弥补数量或计算资源不足)
- 应于到模型不同的下游任务时
- 预训练语料和目标任务语料存在分布偏差时
- 目标任务数据较少时,先预训练再目标任务
- 希望获得定制化的语言模型时
- 计算资源有限时(训练所需GPU或服务资源有限)
- 想要快速适配不同任务时(基于预训练的非0基础训练) - Parameter-efficient Fine-tuning,模型参数有效性训练
参考,LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS (学习文档 9)
- 模型规模剧增,参数增加迅速
- 训练大型数据集可能需要很长时间
- 大型模型对于所选的硬件来说可能太大,导致无法训练,因为模型规模超过了 GPU 内存规模
- 分布式训练可以有效解决大规模数据、大参数下的模型训练的性能、资源问题