个人学习历程,持续更新中......
主要与NLP相关。
Contents
- 1.教程 一些成体系的课程书籍等
- 2.基础知识 一些深度学习的基础知识,可当成面经用
- 3.NLP NLP相关
- 4.LLM LLM相关
- 5.写作 论文写作相关
- 6.其他 算法题、Python、pytorch、服务器、Git、docker等
1. 教程
-
【机器学习必看】—吴恩达Stanford CS229
- CS229: Machine Learning (stanford.edu)
- CS229 课程讲义中文翻译
- 个人整理的229资料,主要是08年和18年吴恩达的。
-
【强推】李宏毅人工智能课
- Bilibili-2021/2022春机器学习课程
- 李宏毅老师YouTube频道,包括机器学习、自然语言处理、GAN、强化学习等一系列课程。
-
【机器学习经典书籍】—《统计学习方法》
- 手写实现李航《统计学习方法》书中全部算法,非常厉害且详细,每一章都有博客讲解和对应代码,且代码力求每一行都有注释,重要部分注明公式来源。
-
《神经网络与深度学习》
-
《动手学深度学习》
-
强化学习教程(蘑菇书):datawhalechina/easy-rl: 强化学习中文教程(蘑菇书)
-
深度学习圣经—花书
- 英文版原书:https://www.deeplearningbook.org/
- 中文版翻译:https://github.com/exacity/deeplearningbook-chinese
- 花书数学推导、原理剖析与源码级别代码实现:https://github.com/MingchaoZhu/DeepLearning
- 深度之眼花书啃书指导:https://www.bilibili.com/video/BV1kE4119726
- 花书各章笔记:https://zhuanlan.zhihu.com/p/38431213
-
【NLP必看】—Stanford CS224N
-
【NLP】大模型科普教程 Stanford CS324
-
【LLM-TAP】复旦LLM书籍-《大规模语言模型·从理论到实践》:大规模语言模型:从理论到实践 (intro-llm.github.io)
2. 基础知识
-
激活函数
-
评价指标
-
过拟合问题
- 解决方式:加大数据量、降低模型复杂度、Dropout、正则化、早停策略、warmup学习率、模型集成
- Early Stopping - 简书 (jianshu.com)
- 深度学习技巧之Early Stopping(早停法) | 数据学习者官方网站(Datalearner)
- 生动形象告诉你神经网络的Dropout为何有效_qiuzitao的博客-CSDN博客_dropout为什么有效
- 为什么正则化能减少模型过拟合程度_ybdesire的博客-CSDN博客
- L1正则化与L2正则化的区别_ybdesire的博客-CSDN博客_l1正则化和l2正则化的区别
- 为什么PCA不被推荐用来避免过拟合?
-
数据归一化
-
不同评价指标会具有不同的量纲和量纲单位,会影响数据分析的结果;也会让模型寻找最优解的过程变得不够平滑。
-
归一化可以消除奇异样本导致的不良影响,也能够加快梯度下降求最优解的速度,使模型训练过程更加平滑。
-
归一化方法
-
线性比例变换法
$x' = \frac{x}{max(x)}$ -
极差变换法,即最大最小标准化
$x' = \frac{x-min(x)}{max(x) - min(x)}$ - 适用于数值比较集中的情况,受max和min的影响较大;
-
z-score标准化
$x' = \frac{x- \mu}{\sigma}$ - 将数据归一化为标准正态分布
- 适用于需要使用距离来度量相似性的时候,或者使用PCA降维的时候。
-
-
需要归一化的算法和不需要归一化的算法
- 需要:基于距离计算的模型KNN;梯度下降求解的模型线性回归神经网络等。
- 不需要:决策树,随机森林等。
-
条件随机场CRF
-
支持向量机SVM
-
优化器
-
主动学习
-
持续/增量学习
-
强化学习
-
对比学习
-
Normalization
-
BatchNorm:
-
BatchNorm和LayerNorm区别:
- BatchNorm是对一个batch-size样本内的每个特征做归一化,LayerNorm是对每个样本的所有特征做归一化。
- BatchNorm与LayerNorm的异同 - 知乎 (zhihu.com)
-
-
霍普菲尔德网络
-
对神经网络的结果做显著性检验
-
分布式:
-
数据标注一致性评价---Kappa
-
Pointwise,Pairwise, listwise
-
乘积运算
-
判别式模型和生成式模型的区别
-
自编码器AE和变分自编码器VAE
3. NLP
3.1知识点
-
CNN, RNN, LSTM, GRU
- 一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)- 产品经理的人工智能学习库 (easyai.tech)
- 一文看懂循环神经网络 RNN(2种优化算法+5个实际应用) (easyai.tech)
- 一文看懂 LSTM - 长短期记忆网络(基本概念+核心思路) (easyai.tech)
- 深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks) - 黎明程序员 - 博客园 (cnblogs.com)
- [经典必读:门控循环单元GRU的基本概念与原理](https://www.jiqizhixin.com/articles/2017-12-24#:~:text=在本文中,我们将讨论相当简单且可理解的神经网络模型:门控循环单元(GRU)。 根据 Cho, et al. 在 2014,年的介绍,GRU 旨在解决标准 RNN 中出现的梯度消失问题。 GRU 也可以被视为 LSTM 的变体,因为它们基础的理念都是相似的,且在某些情况能产生同样出色的结果。)
-
Tokenizer分词
-
NLP--BPE、WordPiece、ULM、SentencePiece子词分词器总结【原理】_故事挺秃然的博客-CSDN博客
-
大模型中的分词器tokenizer:BPE、WordPiece、Unigram LM、SentencePiece - 知乎 (zhihu.com)
-
BPE字节对编码:
-
【推荐-huggingface BPE讲解】Byte-Pair Encoding tokenization - Hugging Face NLP Course
-
Openai出的字节对编码包
tiktoken
,比huggingface的快3~6倍:openai/tiktoken (github.com)
-
-
Unigram分词:
-
未登陆词问题OOV
- 未登录词识别,NER
- word2vec中,给未登录词一个随机初始化的向量;
- 预训练语言模型中,统一当成【UNK】来处理;
-
预训练模型中融入KG知识
- 清华ernie:T-encoder,K-encoder;T-encoder与bert相同,K-encoder用来融入知识图谱信息。
- 用NER技术识别出输入序列中的实体,并与知识图谱中的实体进行对应。采用TransE将其转化为向量表示,与原本的输入序列的向量表示拼接送入K-encoder。
- KG与预训练模型结合的问题
- 结构化文本与非结构化文本;
- 异构特征空间的对齐;
- 知识噪声的解决。
- 清华ernie:T-encoder,K-encoder;T-encoder与bert相同,K-encoder用来融入知识图谱信息。
-
Transformer
-
BERT
-
- BERT缺点
- 预训练和微调之间的GAP;
- 假设MASK掉的token是不相关的;
- 速度慢
- BERT缺点
-
BERT参数量计算:
-
Sentiment Analysis
-
对话情绪识别paper reading list: zhoucz97/ERC-Reading-List
-
情绪溯源paper reading list: zhoucz97/ECA-Reading-List
-
GNN
-
SimCSE 经典的无监督文本匹配模型
3.3Transformers Tasks
入门huggingface的transformers库强推
HarderThenHarder/transformers_tasks: ⭐️ NLP Algorithms with transformers lib. (github.com)
该项目集成了基于 transformers 库实现的多种 NLP 任务。,是何枝大佬的transformers教程,**很推荐!**尤其适合入门transformers的小白。
目前已实现的NLP任务有:文本匹配、文本分类、文本生成、信息抽取、prompt任务、RLHF、大模型应用、大模型微调。
4. LLM
-
【ChatGPT入门资料】见zhoucz97/awesome-ChatGPT: ChatGPT相关资源汇总 (github.com)
-
【In-Context Learning】
-
模型压缩及分布式训练
-
ChatGLM-6B
-
LangChain + ChatGLM搭建基于本地知识库的问题
-
Retrieval-based LLM教程
-
大模型时代该何去何从?
-
模型参数量和训练所占显存量计算
5. 论文写作
-
Latex写论文:https://www.overleaf.com/
-
LaTeX教程:
-
MLNLP-World/Paper-Writing-Tips: 该仓库是MLNLP社区用来帮助大家避免论文投稿小错误的整理仓库。 Paper Writing Tips (github.com)
-
LaTeX数学公式:
-
画图表:
-
画模型图:draw.io
-
对号和叉号:latex中的对与错(对号√与叉号×)
-
论文润色
6. 其他
算法题
- labuladong的算法小抄。100多道题,分门别类,先讲某个算法,再讲该算法下对应的力扣题目,Github标星已经80多k了。
- liweiwei1419。威威哥,长期活跃在力扣社区,为力扣官方贡献了大量的优质题解。liweiwei个人博客,liweiwei力扣主页
- 个人笔记之LeetCode题解与算法(语雀)
- 知乎问题—如何理解和掌握KMP算法
Python
-
Logging:python中logging日志模块详解
-
类型注释:
Pytorch
-
冻结参数
-
手动下载Pytorch
-
手动下载Transformers库的参数
- 如何优雅的下载huggingface-transformers模型 - 知乎 (zhihu.com)
wget https://s3.amazonaws.com/models.huggingface.co/bert/${model_name}-pytorch_model.bin
,- 例如
wget -L https://s3.amazonaws.com/models.huggingface.co/bert/roberta-base-pytorch_model.bin
-
huggingface模型下载
服务器
-
tmux
-
nohup
-
conda
-
Nvidia-smi命令
-
frp内网穿透
-
ubuntu实现科学上网:Ubuntu纯命令行走Clash终端代理(Linux同理) | 恒HengY1毅
-
英伟达GPU选购指南
-
切换CUDA版本
- 修改~/.bashrc文件,或者修改软链接。
- 【Ubuntu 切换 cuda 版本】_ubuntu切换cuda版本_梦难长的博客-CSDN博客
-
新服务器安装cuda
- 什么是显卡驱动?cuda toolkit?CuDNN?Nvidia显卡对应驱动,cuda toolkit 和 cuDNN 之间的版本关系_cudatoolkit-CSDN博客
Git
Docker
CUDA编程
收藏从未停止,学习从未开始
- 熬了几个通宵,我写了份CUDA新手入门代码 - 知乎 (zhihu.com)
- CUDA编程入门极简教程 - 知乎 (zhihu.com)
- 一、CUDA C++ 编程指导 - 知乎 (zhihu.com)
- 推荐几个不错的CUDA入门教程(非广告) - 知乎 (zhihu.com)
- 《CUDA C编程权威指南》
- CUDA 编程入门PPT-李Rumor
- https://www.easyhpc.net/problem/programming_lab/4 然后这里面有一些简单的函数应用,也有答案,如果想敲一下可以比着敲一敲,能加深理解
- https://developer.download.nvidia.cn/compute/DevZone/docs/html/C/doc/html/index.html 这是英伟达的官方文档,里面有各种函数和数据结构的介绍 不过比较简单