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,算力不够
11k 词
针对分类任务的微调 微调:在预训练模型的基础上做二次训练,把模型的能力对齐到某个明确任务或者使用场景上 本节任务:使用已有的预训练模型做邮件分类 分类微调:类别和数量是预定义好的 指令微调如下图所示: 前期流程 导包 读取数据 查看种类数量 控制数量一样多:下采样(降采样) 分类编码(0/1) 划分子集 1234567891011121314151617181920def random_split(df,train_frac,validation_frac): """ sample:随机抽样 - frac=1 表示“抽取 100% 的行”,相当于全量洗牌,随机打乱 reset_index:重新生成索引 - drop=True 表示不要把原来的索引作为一列保留下来。 """ # 下标 df=df.sample(frac=1,random_state=123).reset_index(drop=True) train_end=int(len(df)*train_...
16k 词
无标签预训练 关键内容 预训练大模型的训练循环 模型评估代码,检查效果与质量 解码策略 保存和加载预训练权重 现代大模型与原先区别 不使用dropout nn.Linear不使用bias 过程记录 训练 方便文本与token ID之间来回转换 12345678910111213141516import tiktokendef text_to_token_ids(text,tokenizer): encoded=tokenizer.encode(text,allowed_special={'<|endoftext|>'}) # 把 token id 列表转成 PyTorch 张量,形状是 [seq_len] # torch.tensor(encoded) -> 1D 张量,例如 [15496, 1234, ...] # unsqueeze(0) 在最前面增加一个 batch 维度,变成 [1, seq_len] # 这么做是因为大多数模型的输入都要求带 batch 维...
20k 词
从头实现GPT模型 过程 参数含义 1234567"vocab_size": 50257, # 词汇表大小(token 总数)"context_length": 1024, # 上下文长度(一次最多处理的 token 数)"emb_dim": 768, # 嵌入维度(每个 token 向量的长度)"n_heads": 12, # 注意力头数(多头注意力的 head 数量)"n_layers": 12, # Transformer 层数(block 的数量)"drop_rate": 0.1, # Dropout 概率(训练时用于防止过拟合)"qkv_bias": False # Q/K/V 线性映射是否使用 bias(是否加偏置项) 完整GPT模型 GPT完整骨架 123456789101112131415161718192021222324252627...
11k 词
大模型自学记录Day2 注意力机制 注意力机制解决的问题,对比: RNN 按顺序逐词的方式处理文本 将输入压缩为中间状态,但容易遗忘。依赖该中间状态输入token容易丢失细节,要求不断会看完整输入(遗忘) 自注意力机制 访问全部输入状态的历史信息 回看整个输入 有选择回看(权重) 点积 计算点积:torch.dot(input_query, input_1) 对dot进行展开写: 12345678# enumerate:给每个元素自动编号res=0. # 小数形式i=0for idx, ele in enumerate(inputs[i]): res+=inputs[i][idx] * input_query[idx]res 点积与余弦相似度区别 点积:相关性的“原始分数”,关键取决于夹角(很强+很像) a⋅b=∣a∣∣b∣cosθa⋅b=∣a∣∣b∣cosθ a⋅b=∣a∣∣b∣cosθ 方向 长度 余弦相似度:去掉长度影响后的“纯方向相似度”(很像,语义检索常用) cos⁡θ=a⋅b∣a∣∣b∣\cos\theta=\frac{\mathbf...
5.3k 词
大模型自学记录Day1 终于结束了考研,现在重新拾起我的博客,记录学习。 近几个月计划 毕业前 [ ] 大模型相关内容 [ ] 雅思 [ ] 化妆 毕业后 [ ] 课题组内容 [ ] 科研技能和知识 [ ] 学车 [ ] 做饭 LLM学习 基础阶段决定先根据:张梅山老师发布的大模型基础学习路线 特此感谢! 笔记只记录一些关键代码,方便后续回顾复盘 文本数据处理 过程 分词(encode) **标准化:**读取文本,处理标点符号 **拆分 (Split):**使用 正则表达式将文本切分为列表 **去重与排序:**提取所有唯一的单词 **构建映射表:**词 —— ID 引入特殊上下文词元 未知单词 文档分隔符 反过来(decode) 输入文本 12345with open("the-verdict.txt", "r", encoding="utf-8") as f:# 以 UTF-8 编码打开文本文件(只读) raw_text = f.read() # 读取文件全...
33 词
写在前面 作为我最喜欢的一本书,做摘录。 内容 网站参照:天才基本法语录
6.2k 词
写在前面 今天想着先把爬虫重新捡起来,再深入下。结果一打开,就看到12.14有4名因为非法爬取判处有期徒刑的新闻。。 只能说,接下来我要小心谨慎点了。 爬虫框架 调度器:相当于cpu,调度下面几个之间协调工作 URL管理器:带爬取URL和已爬取URL,通过内存、数据库、缓存数据库实现 网页下载器:传入URL下载网页,转为字符串。urllib 网页解析器:字符串进行解析,提取我们需要的。有:re、html.parser、beautifulsoup(可以多种)、lxml(解析xml和HTML)。html.parser、beautifulsoup、lxml都以DOM树方式进行解析。 可以测试能否爬取: 看robots.txt 网站测试 检验robots 豆瓣爬取 大部分的人启蒙应该都从豆瓣开始 在爬取之前,需要先补一下正则表达式的大坑(详见下一章),因为此次主要用正则表达式。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535...
389 词
写在前面 每月总结按理应该在每月最后一天进行,但由于某些原因,决定今日考完六级后稍作总结,以及今年最后半个月的计划。 所得成就: 广师大之星——十佳三好学生 Android算吗… 更加勇敢不怕尝试 不满意的地方: 对于既定的事情(长战线)例如:考研、软考、六级,,都没有准备好 有想法问题,应该及时沟通 制定planB,以及多思考的能力好像削弱了 情绪把控不够好 动作太慢了 计划: 准备期末考 好好地了解爬虫做一些小项目 看WIFI感知的书籍 开启背单词、听听力、积累词汇的模式 多抽时间看书,看一本深度的书去了解 14-20:计网 21-25:接口 25-30:编译原理 31-4:软工 剩下时间就查缺补漏 早上背单词,晚上听力,早上复盘晚上听的读。日常读一些英语文章。 书籍晚上看。 总结 多思考,找最优解,预备方案,想清楚再立刻行动 贵在坚持 多沟通、心情不好也别太闷 做些想做的!! 激励话语 要把自己培养成理想型,你会更加爱自己