12k 词
多模态大模型 “视觉编码器对齐到 LLM”的完整流程跑通,并做 ablation(有图 vs 无图)对比 原理 多模态:将其他信号通过模态对齐映射为 tokens,实现 Any-to-Any 发展历程 CLIP:跨模态对比学习,图像-文本对训练,映射,建立联系 BLIP-2 & LLaVA:翻译,预训练好的LLM,通过Q - Forme r(BLIP-2) 或 线性投影层 (LLaVA) GPT-4o & Gemini 1.5 pro:端到端全模态融合,训练初期视为同等信号 架构范式 视觉编码器:常用CLIP-ViT 对齐方案: 线性映射(LLaVA):信息完整,token多,速度慢 1)输入形态:视觉编码器(常见是 CLIP-ViT)把图像切成 patch,输出一串向量 2)投影(Projector):用一个线性层或两层 MLP 把每个 vi 映射到LLM 的维度di 3)拼接进 LLM:把视觉向量当作一段前缀 token,与文本 token 拼在一起 查询提取(BLIP-2, InstructBLIP):抓重点,压缩token,加速,但丢...
4.1k 词
代码生成大模型 原理 任务: 生成代码 代码自动补齐 代码翻译与重构 要求: 语法严格 语义精确 代码大模型:在海量开源代码库(Github等)进行预训练或微调的大型语言模型(Codex和AlphaCode) 发展历史: 预设规则 补全功能 编写转向描述 评估体系: HumanEval pass@k 挑战: 正确性 语法错误 逻辑错误 可靠性 输出不稳定 逻辑不一致 性能波动 安全性 生成漏洞代码 泄露敏感信息 泛化能力 代码 导包 123import ast, builtins, math, re, tracebackimport numpy as np, torchfrom transformers import AutoTokenizer, AutoModelForCausalLM 模型选择 bigcode/tiny_starcoder_py 123AutoTokenizertok.pad_token=tok.eos_tokenAutoModelForCausalLM 数据集构造 name:任务名字 inst:任务说明...
5.7k 词
复杂推理(思维链) 原理 进阶推理 CoT作为草稿提供中间步骤 + 验证机制进行审计 步骤变长后,误差可能累积 事后编造 对提示敏感 为推理:看起来合理但实际不对 token/时延成本增加 结构化CoT A:Plan-and-Solve:列计划再逐步执行,减少跳步。 B:Least-to-Most:先解最简单子问题,逐步递进。先从确定性最强的子问题出发,逐步收缩推理空间,适合多约束任务。 ToT与多路径探索 相当于优化问题:多分支推理 + 分步评估 + 回溯选择 同一个问题同时探索多个候选思路(分支),每走几步就评估质量,不行就剪枝/回溯,再探索别的分支 工具调用 / ReAct思路 推理 - 行动(调用实际工具)- 更新修正 Prompt自动化 数学推理 PoT 把不擅长的环节交给擅长的工具:求 LLM在遇到需要精确计算的任务时,先生成一段可执行的程序(通常是 Python 代码或计算表达式),然后把计算交给解释器/计算器执行,再把执行结果组织成最终答案。 语义理解错误 代码生成错误 解决 强制分两段输出:可执行代码+最终答案 PRM 过程监督...
5.9k 词
文本生成任务(翻译+问答) 原理 核心特征 任务约束性 语义一致性 格式规范性 训练 基座预训练 - 任务微调 - 落地适配 语义对齐预训练 任务指令微调 挑战展望 幻觉、长文本生成效率、低资源场景适配(数据稀缺) 轻量化、多模态、可控生成、事实增强 代码 调库 12345import reimport numpy as npimport torchimport sacrebleufrom transformers import AutoTokenizer, AutoModelForSeq2SeqLM 加载模型 翻译:Helsinki-NLP/opus-mt-en-zh 问答:flan-t5-small 加载,同前,不再赘述。 AutoTokenizer AutoModelForSeq2SeqLM model_mt.eval() 统一生成函数 123456789101112131415161718192021222324# 通过 temperature/top_p 切换 greedy 与采样@torch.no_grad()# top_p:概率...
11k 词
通用信息抽取(IE)与序列标注 概念 信息抽取 lnformation Extraction 分类 信息抽取:非结构化文本到结构化知识的桥梁,是nlp里的任务 任务包括: 命名实体识别(NER):文本中识别出来实体,分类出类型 关系抽取(RE):在实体识别后,找出它们之间的关系类型和关系结构 事件抽取(EE):事件抽取依赖实体抽取和关系抽取 挑战 实体嵌套 非连续实体 Schema依赖与零样本:依赖于预先定义的标签集 序列标注协议 标注范式:将抽取任务转化为对序列中每个Token的分类任务 BIO:Begin, Inside, Outside BILOU:Begin, Inside, Last, Outside, Unit 应用于:中文分词、词性标注、NER、词法分析、文本加标点 实现技术 深度学习 条件随机场(CRF) 发射矩阵:每个词对应什么标签的得分表 转移矩阵:从一个标签转移到另一个标签的得分 解码方法 模型已经给出了每个Token的标签得分(发射矩阵)和标签间的转移规则(转移矩阵),解码算法要做的就是 筛选,找到总得分最高的最优序列 ...
9k 词
知识编辑 不重新训练条件下的知识修正 整个kl过程 cur_logits = model(p) KL(cur || base) 加入loss:loss = edit_loss + λ * KL λ :小,改得动,但容易污染 λ :大,很稳,但改不进去 反向传播:grad = ∂loss/∂params 更新参数:optimizer.step() 原理 不同方法对比 知识编辑:局部修正(reliability、locality、portability) 微调(PEFT/LoRA):训练(梯度) RAG:新知识放进外部检索 IKE:新知识+示例,放上下文(非持久的) 约束 Reliability:置信度(命中) Locality:局部性 Generalization:广义性 Portability:可移植性 Ripple Effects:连锁反应 主流做法 ROME(Parameter Edit) 单条事实写入 先定位:定位哪个层 再编辑:用解析式构造对 MLP 权重的低秩/定向更新 MEMIT(Mass Edit) 多条记忆的结构化注入 ...
13k 词
模型水印与防滥用 原理 攻击手段 复述:使用另一种生成模型进行改写和润色,改变token分布与相邻关系 插入/删除:少量编辑,造成链条错位,使得token的种子与绿/红名单分配发生偏移 其他安全手段 指纹技术:记录模型生成时的参数特质(留下可追溯的运行痕迹) 记录与这次生成绑定的参数特征/元数据(例如模型版本、解码设置、随机种子、调用方ID、时间戳,或对输出做哈希签名),形成一条“指纹记录” C2PA协议:打上数字签名(一份内容凭证:数字签名+元数据清单,来源说明) 包含生成/拍摄工具、发布者标识、时间、以及关键编辑步骤的记录,形成一条“内容履历” 红队测试:发布前找专家攻击模型、挖掘漏洞 系统性设计高风险提示(越狱、提示注入、诱导泄露、仇恨/暴力/违法内容等),记录模型在不同场景下的失败模式与触发条件。 代码过程 核心原理采用经典的 Greenlist/Redlist 词表分割水印(Kirchenbauer et al., 2023 的思路): 嵌入(embed):每步解码用密钥 + 上文生成一个“绿色 token 集合”,对绿色 token 的 lo...
7.2k 词
强化学习 知识点 风险: 幻觉 有害内容(毒性、歧视) 奖励黑客:找漏洞提升RM,编造废话和拒绝回答 阶段2奖励: 数据形式,标记 训练打分器 阶段3RL: PPO算法 要求: 调参数,提高RM 近端,小步快跑,限制每次更新的幅度 缺点: 训练不稳定:多个环节强耦合 DPO(直接偏好优化) 要求: 采用分类损失函数 比较相对概率差 W上升,L下降 优点: 省资源 稳 快 缺点: 复杂情况,推理不佳 初级任务 Banana任务——受限生成对齐 SFT:收集成千上万条人工编写的对话数据进行微调 RL:写出规则来“评分”,模型自己学习“怎么做” 硬性代码逻辑if-else 来控制输出格式 任务目标 “受限生成”任务: A:以Sure:开头 B:以banana结尾 C:回答简短(对冗长输出惩罚) Policy:Qwen Reward:Python函数,格式正确+1.0,否则不得分 必要导包 1234import torchfrom transformers import AutoToken...
8.9k 词
指令微调 有监督的指令微调 过程 检查安装包情况,使用的 准备数据集 instruction input(可选) output 数据条目整理成大模型可用的输入文本 Alpaca Phi-3 划分数据集(85%,10%,5%) 数据组织成训练批次 预分词 补齐输入和目标(50256):不同batch不同长度,同一batch相同长度 50256替换为-100 所得结果,与只用前两个样本计算得到的损失是一样的。说明忽略了-100的这个样本。cross_entropy 默认就带有 ignore_index=-100 的设置,会自动跳过标签为 -100 的位置。留一个方便知道收尾的位置,即回答结束的时候。 数据加载器 数据移到目标设备.device() 预先固定函数的部分参数 加载预训练大语言模型(这次使用中等规模的版本gpt2-medium (355M)) from gpt_download import download_and_load_gpt2 from previous_chapters import GPTModel,l...
174 词
2604 写在前面 算是这一年以来最轻松、最幸福的时光了,依旧感激。 总结 学习大模型知识,目前到微调部分 完成了毕设 大体规划了下后面到开学要做的事情 改进 表现很好,还可以增加: 每天看资讯 看boss直聘一些招聘要求不断调整 计划 把大模型这块看完,先去做个cs336的项目,巩固下 重心转移到备考雅思 存疑 有点纠结要做个项目,还是先全学完路线… 电脑没有GPU,算力不够