从头实现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...
大模型自学记录Day2
注意力机制
注意力机制解决的问题,对比:
CNN
将输入压缩为中间状态,依赖该中间状态输入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{a}\cdot\mathbf{b}}{|\mathbf{a}||\math...
大模型自学记录Day1
终于结束了考研,现在重新拾起我的博客,记录学习。
近几个月计划
毕业前
[ ] 大模型相关内容
[ ] 雅思
[ ] 化妆
毕业后
[ ] 课题组内容
[ ] 科研技能和知识
[ ] 学车
[ ] 做饭
LLM学习
基础阶段决定先根据:张梅山老师发布的大模型基础学习路线
特此感谢!
笔记只记录一些关键代码,方便后续回顾复盘
文本数据处理
过程
输入文本
12345with open("the-verdict.txt", "r", encoding="utf-8") as f:# 以 UTF-8 编码打开文本文件(只读) raw_text = f.read() # 读取文件全部内容到 raw_text
词元化文本(分词)
分词(tokenize)后嵌入(embedding)
分词:用正规表达式来进行分割为词元(token)—> 构建一个词表
词元ID
嵌入:文本(token)转换成对应的数字编号(token ID)
后续嵌入层(embedding l...
写在前面
今天想着先把爬虫重新捡起来,再深入下。结果一打开,就看到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...
写在前面
每月总结按理应该在每月最后一天进行,但由于某些原因,决定今日考完六级后稍作总结,以及今年最后半个月的计划。
所得成就:
广师大之星——十佳三好学生
Android算吗…
更加勇敢不怕尝试
不满意的地方:
对于既定的事情(长战线)例如:考研、软考、六级,,都没有准备好
有想法问题,应该及时沟通
制定planB,以及多思考的能力好像削弱了
情绪把控不够好
动作太慢了
计划:
准备期末考
好好地了解爬虫做一些小项目
看WIFI感知的书籍
开启背单词、听听力、积累词汇的模式
多抽时间看书,看一本深度的书去了解
14-20:计网
21-25:接口
25-30:编译原理
31-4:软工
剩下时间就查缺补漏
早上背单词,晚上听力,早上复盘晚上听的读。日常读一些英语文章。
书籍晚上看。
总结
多思考,找最优解,预备方案,想清楚再立刻行动
贵在坚持
多沟通、心情不好也别太闷
做些想做的!!
激励话语
要把自己培养成理想型,你会更加爱自己
写在前面
现在时隔大概1-2月,又重新开始博客记录。没有记录的原因是前段时间都未曾开展技术学习。
谈及原因,是这学期参加大多数评优评奖而全力改动PPT和练演讲。因此,没有收入就没有产出。
数据分析平台
缘由
我个人一直想做,作为Python大作业,也当作练手项目。
当初看到这个参照项目时,刚好有个人做了这么个项目,也愿意教授。
另一方面,是2020年已然有这样的技术,感到惊叹。
再者则是,对于作者数据分析师但能不断求知和探索能力的赞赏。
Django主要就是mtv+URL,对于这种项目mt完全用不上,交互问题很吃亏。后续可以考虑改为前后端分离。
分析
ref:Python Django+SQL+Pandas+Pyecharts自建在线数据分析平台 | 知乎,特此鸣谢!
需求&改变
脱离Excel的展示框架
VBA+ADO运行效率瓶颈
未来扩展方向
目前实现核心的功能需求。
技术
后端Web框架:Python3.11 + Django
数据库:MySQL
数据处理:Pandas + Numpy + mkl + 其他
Javascript库:JQuery...
渐进式框架
10.1—10.13,学习了半个月,Vue3 快速入门和 Vue2 基础大体学完了。应该还会有部分补充,Vue3 实操和项目。
遇到的问题
启动错误
1PS D:\桌面\Vue\day04\day04\准备代码\08-事件总线-扩展> npm run serve > day04@0.1.0 serve > vue-cli-service serve 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序
解决方法
1234567node -vvue --version-- 查看版本npm install @vue/cli-service --save-dev-- 安装核心服务模块npm run serve-- 启动服务
不同符号
12alert(`姓名: ${item.name} 年纪: ${item.age}`);// 模板字面量:使用反引号 ` 包裹字符串,可以在其中嵌入变量或表达式。
单文件组件
1234567891011121314<script...
启动
12>>> django-admin startproject helloDjango # 脚手架工具创建项目>>> python manage.py runserver # 启动
APP分类
内置:框架自带应用,admin(后台管理)、auth(身份鉴权)、sessions(会话管理)
自定义:实现自身业务逻辑
第三方:社区提供
结构
层次1
1234567django_news├── django_news // 项目全局文件目录│ ├── __init__.py│ ├── settings.py // 全局配置│ ├── urls.py // 全局路由│ └── wsgi.py // WSGI服务接口(暂时不用纠结这个是神马)└── manage.py // 项目管理脚本
层次2 APP
123456789news // news 应用目录├...
Python_note
pycharm的便捷方式:
alt+shift+alt+鼠标左键
ctrl+home光标移到第一行
ctrl+end光标移到最后一行
ctrl+g输入要跳转的行数
字符串格式化
1message = "Python是%s的编程语言,能让我们%s" %(num1, num2)
1print(f"我是{name}")
精度控制
1print("数字11.345宽度限制7,小鼠精度2,结果:%7.3f" % num)
输入
1name = input("你是谁?") # 输入的都是字符串
List(列表)有序的可变序列
Tuple(元组)有序的不可变序列
Set(集合)无序不重复集合
Dictionary(字典)无需Key-Value集合
条件、循环语句
123456789101112131415"""条件"""if a>b : # 缩进elif a<b: # 缩进else...