Skip to content

Latest commit

 

History

History
1586 lines (1096 loc) · 48.7 KB

机器学习解决方案.md

File metadata and controls

1586 lines (1096 loc) · 48.7 KB

关键词

  1. 召回
  2. 搜索相关性
  3. query改写/理解
  4. bert/ernie
  5. paddle/pytorch
  6. 文本相关性
  7. 向量化/检索
  8. 预训练/推理资源
  9. 参考写法 https://github.com/chenzomi12/AISystem/tree/main

前沿技术

  1. MLSys 2024有哪些值得关注的文章? - Mskg4b8的回答 - 知乎 https://www.zhihu.com/question/653657864/answer/3473761245
  2. EMNLP 2023 Best Paper公布啦:https://mp.weixin.qq.com/s/NQ2eLJ47Oni85O7m1oGWtA
  3. sigir‘23「快手」SESRec: When Search Meets Recommendation: Learning Disentangled Search Representation - 猫的薛定谔的文章 - 知乎 https://zhuanlan.zhihu.com/p/670956973
  4. [VLDB 2019] 如何为 HTAP 负载寻找最优的列式存储布局 - 马克刘的文章 - 知乎 https://zhuanlan.zhihu.com/p/668222560
  5. MoE 入门介绍 核心工作回顾 模型篇 - 原石人类的文章 - 知乎 https://zhuanlan.zhihu.com/p/671434414
  6. CIKM'22 腾讯 | 召回模型大一统:U2I/U2U/I2I召回联合建模 - Gordon Lee的文章 - 知乎 https://zhuanlan.zhihu.com/p/671371188
  7. 【EMNLP 2023】基于大语言模型的复杂任务认知推理算法CogTree - 阿里灵杰的文章 - 知乎 https://zhuanlan.zhihu.com/p/671744294
  8. ACL 2023获奖论文全分享!NLP领域最新研究进展都在这了 - 鱼子酱的文章 - 知乎 https://zhuanlan.zhihu.com/p/643033773
  9. 因果推断技术的实际应用落地情况是怎样的? - 阿里妈妈技术的回答 - 知乎 https://www.zhihu.com/question/515386955/answer/2609255138
  10. 《LLM+搜索召排》10篇论文一览 - 情迷搜广推的文章 - 知乎 https://zhuanlan.zhihu.com/p/672777138
  11. ATorch:蚂蚁开源PyTorch分布式训练扩展库,助你将硬件算力压榨到极致 - AI Infra的文章 - 知乎 https://zhuanlan.zhihu.com/p/674090806
  12. 苹果最新研究:将LLM放在闪存推理显著提升推理效率 - 岳廷的文章 - 知乎 https://zhuanlan.zhihu.com/p/673812879
  13. 超长序列推荐:如何让推荐系统“读懂”你的“人生轨迹” - AI Box专栏的文章 - 知乎 https://zhuanlan.zhihu.com/p/668343442
  14. VLDB 2022有哪些值得关注的论文? - Hsword的回答 - 知乎 https://www.zhihu.com/question/549857210/answer/2687128931
  15. 【性能工具】HPC/ML/OS/SW性能工具总结 - eyesighting的文章 - 知乎 https://zhuanlan.zhihu.com/p/673459718
  16. 世界范围内有哪些研究流处理(stream processing)的高校和团队? - 孙挺Sunt的回答 - 知乎 https://www.zhihu.com/question/516225132/answer/2346639834
  17. 谷歌出品 | TIGER:生成式检索推荐系统 - Houye的文章 - 知乎 https://zhuanlan.zhihu.com/p/674703547
  18. 图解高级RAG技术 - iyacontrol的文章 - 知乎 https://zhuanlan.zhihu.com/p/674755232
  19. AI编译优化---访存密集算子优化 - sunshinelala的文章 - 知乎 https://zhuanlan.zhihu.com/p/674804131
  20. 商品推荐系统场景,商品点击序列信息有多重要? - magicwt的回答 - 知乎 https://www.zhihu.com/question/635887488/answer/3333662517
  21. 关于特征工程里面的特征选择法? - 郑昀昊的回答 - 知乎 https://www.zhihu.com/question/274263273/answer/2819168772
  22. 淘宝主搜 | 大模型在长尾Query改写召回上的实践 - Gordon Lee的文章 - 知乎 https://zhuanlan.zhihu.com/p/675421157
  23. CIKM23向量检索5篇论文一览 - 情迷搜广推的文章 - 知乎 https://zhuanlan.zhihu.com/p/675179867
  24. 12家研究机构、160页、参考了650篇论文:基础模型推理最全综述 Part3 - 北方的郎的文章 - 知乎 https://zhuanlan.zhihu.com/p/675541255
  25. 从 0 手撸一个 pytorch - 易迟的文章 - 知乎 https://zhuanlan.zhihu.com/p/675673150
  26. A Survey on Large Language Models for Recommendation:大模型用于推荐系统-论文阅读 - 韩恪的文章 - 知乎 https://zhuanlan.zhihu.com/p/673491147
  27. 浅谈推荐算法之长序列模型TWIN - feng的文章 - 知乎 https://zhuanlan.zhihu.com/p/667311200
  28. PyTorch Parallelism - talk notes - JackonYang的文章 - 知乎 https://zhuanlan.zhihu.com/p/677808809
  29. 最小熵原理(六):词向量的维度应该怎么选择:https://kexue.fm/archives/7695
  30. 维度公式可用性分析:https://kexue.fm/archives/8711
  31. Havenask在线检索服务:https://github.com/alibaba/havenask
  32. 如何入门 GPT 并快速跟上当前的大语言模型 LLM 进展? - 叶兀的回答 - 知乎 https://www.zhihu.com/question/599713780/answer/3018222382

框架安装

虚拟环境
sudu  apt install python3.10-venv -y

python3 -m venv myml
source myml/bin/activate
python3 -m pip install requests


初学者建议统一安装cpu版本

安装pytorch
http://arthurchiao.art/blog/gpt-as-a-finite-state-markov-chain-zh/#21-%E5%AE%89%E8%A3%85-pytorch

pip3 install torch torchvision -i https://pypi.mirrors.ustc.edu.cn/simple # 用国内源
pip3 install graphviz -i https://pypi.mirrors.ustc.edu.cn/simple


安装paddlepaddle全家桶
pip3 install paddlepaddle==2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple    
pip3 install paddleocr


进阶者安装GPU
cuda安装
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run
sudo sh cuda_12.4.1_550.54.15_linux.run

验证
nvidia-smi
nvcc -V

pytroch
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 -i https://pypi.mirrors.ustc.edu.cn/simple # 用国内源

前置安装

apt install python3.9
apt install python3-pip
# openGL库
apt-get install libgl1-mesa-glx

transformers 安装

安装rust
curl https://sh.rustup.rs -sSf | sh
# rust生效
source "$HOME/.cargo/env"

pip3 install setuptools_rust
pip3 install transformers

juypter 安装

pip install --upgrade pip
pip3 install --upgrade pip
pip3 install --upgrade pip3

pip3 install setuptools_scm
pip3 install argon2-cffi-bindings
pip3 install jupyter

镜像安装

阿里云
https://cr.console.aliyun.com/cn-shanghai/instances/artifact

cpu
docker pull dsw-registry.cn-hangzhou.cr.aliyuncs.com/pai/pytorch:1.8-cpu-py36-ubuntu18.04

gpu
dsw-registry.cn-hangzhou.cr.aliyuncs.com/pai/pytorch:1.8PAI-gpu-py36-cu101-ubuntu18.04

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100 --slave /usr/bin/g++ g++ /usr/bin/g++-9


工具向

翻译工具

训练Transformer 模型将 中文翻译成英语:https://zhuanlan.zhihu.com/p/469388563

数据处理

paddle:https://paddlenlp.readthedocs.io/zh/latest/data_prepare/data_preprocess.html



并行式加载/读写/缓存

不平衡数据

  1. 处理不平衡数据的10个方法:imbalanced-learn操作指南 - 新语数据故事汇的文章 - 知乎 https://zhuanlan.zhihu.com/p/702281863
  2. 一文带您理解机器学习中的类别不平衡问题 - 新语数据故事汇的文章 - 知乎 https://zhuanlan.zhihu.com/p/681450992
  3. Delving into Deep Imbalanced Regression:https://arxiv.org/pdf/2102.09554
因为 数据不平衡
所以导致问题
准确率 指标 不准,不具备参考性

解决
SMOTE(Synthetic Minority Over-sampling Technique,合成少数类过采样技术)
RandomOverSampler随机增加少数类的样本数量
RandomUnderSampler随机减少多数类的样本数量
ADASYN(Adaptive Synthetic Sampling,自适应合成采样)
Tomek Links可以移除不同类别之间的最近邻对,减少噪音样本的数量


正负样本理解

  1. 正负样本构造(Negative Sampling) - 松鼠NLP的文章 - 知乎 https://zhuanlan.zhihu.com/p/587033700
  2. 召回模型内负采样在batch内采样和全局采样有什么区别? - 杨旭东的回答 - 知乎 https://www.zhihu.com/question/570722391/answer/3224925189
  3. 5.3.2 双塔召回--正负样本选取 - 曾凡喜的文章 - 知乎 https://zhuanlan.zhihu.com/p/688998790

Embedding

介绍

向量检索引擎:https://zhuanlan.zhihu.com/p/364923722
IndexFlatL2(基于欧氏距离的暴力索引)
IndexIVFFlat(加聚类的倒排索引,支持欧式距离和向量内积两种距离算法)
IndexIVFPQ(加聚类、加量化的倒排索引)

开源项目
facebook:https://github.com/facebookresearch/faiss
阿里:https://github.com/alibaba/proxima

手把手搭建一个语义检索系统:https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/neural_search

OpenAI官方教程:如何使用基于embeddings检索来解决GPT无法处理长文本和最新数据的问题 - 数据学习的文章 - 知乎
https://zhuanlan.zhihu.com/p/622365401

https://github.com/openai/openai-cookbook/blob/main/examples/Question_answering_using_embeddings.ipynb

模型和工业实践

Embedding技术的两个小应用:鲁迅全集检索 & 新闻早报聚类 - 段誉的文章 - 知乎
https://zhuanlan.zhihu.com/p/672400191

标签 转 embedding



数值 转 embedding



文字 转 embedding



数学公式 转 embedding



pdf 转 embedding

pdf文本加载
https://zhuanlan.zhihu.com/p/644938147

paddleOCR解析文本:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/ppstructure/docs/quickstart.md



安装ocr工具
yum install mupdf-devel


paddleocr --image_dir=/home/aistudio/data/pdf/IETS13_A.pdf --type=structure --recovery=true --use_pdf2docx_api=true

paddleocr --image_dir=/home/aistudio/data/pdf/IETS13_A.pdf --type=structure --recovery=true --lang='en'

paddleocr --image_dir=/home/aistudio/data/pdf/MOBIUS\ Towards\ the\ Next\ Generation\ of\ Query-Ad\ Matching\ in\ Baidu\ Sponsored\ Search.pdf --type=structure --recovery=true --lang='en'



图片 转 embedding



语音 转 embedding



语音

https://aistudio.baidu.com/aistudio/projectdetail/4353348?sUid=2470186&shared=1&ts=1660878142250

# 前置依赖
apt-get update
apt install sudo -y
# programm
apt install -y gcc-9 g++-9
apt install -y python3.8
apt install -y python3-pip

apt-get install libsndfile1 -y
apt-get install ffmpeg -y


# 新增speech环境
git clone https://gitee.com/mirrors/pyenv.git ~/.pyenv
export PYTHON_BUILD_MIRROR_URL="https://npm.taobao.org/mirrors/python/"
export HOME=~
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

pyenv virtualenv 3.8.10 speech 
pyenv activate speech
source speech/bin/activate
pip3 install paddlepaddle==2.4.2 -i https://mirrors.aliyun.com/pypi/simple/
pip3 install paddlespeech -i https://mirrors.aliyun.com/pypi/simple/
pip3 install paddlespeech_ctcdecoders -i https://mirrors.aliyun.com/pypi/simple/
# mp3 to wav 格式
pip3 install pydub -i https://mirrors.aliyun.com/pypi/simple/

# 退出
pyenv deactivate


paddlespeech asr --lang zh --input /docker/root/projects/demo/data/mp4/剑4真题听力/test1/test1_section1.wav

检索系统

  1. hnsw:https://github.com/nmslib/hnswlib
  2. [SIGIR'23|Huawei]Beyond Two-Tower Matching - 失落的萨特的文章 - 知乎 https://zhuanlan.zhihu.com/p/663855432
  3. 百度内容理解推理服务FaaS实战——Punica系统:https://mp.weixin.qq.com/s/v5wUF0ZYuHUPNdkYJQ6vPQ
  4. 从稀疏表征出发、召回方向的前沿探索:https://mp.weixin.qq.com/s/hFYOzwueaJIdm6rHDDWTFw

ES安装

官网:https://www.elastic.co/cn/downloads/elasticsearch




━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.

ℹ️  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  V-W=e0BF3SBK+a2mspgU

ℹ️  HTTP CA certificate SHA-256 fingerprint:
  5c75487e8bb0c8126f493257e6772e33a17bc763b64096886b0246ca853483b5

ℹ️  Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjEwLjQiLCJhZHIiOlsiMTEuMy45Ljk0OjkyMDAiXSwiZmdyIjoiNWM3NTQ4N2U4YmIwYzgxMjZmNDkzMjU3ZTY3NzJlMzNhMTdiYzc2M2I2NDA5Njg4NmIwMjQ2Y2E4NTM0ODNiNSIsImtleSI6IlhWWlJWb3NCaFlzTUZYWWZCNmNoOkV6WExwOTFoVGh5N1hxUUVzNVIyQXcifQ==

ℹ️  Configure other nodes to join this cluster:
• On this node:
  ⁃ Create an enrollment token with `bin/elasticsearch-create-enrollment-token -s node`.
  ⁃ Uncomment the transport.host setting at the end of config/elasticsearch.yml.
  ⁃ Restart Elasticsearch.
• On other nodes:
  ⁃ Start Elasticsearch with `bin/elasticsearch --enrollment-token <token>`, using the enrollment token that you generated.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


长文本

大模型检索增强生成(RAG)有哪些好用的技巧? - 战士金的回答 - 知乎
https://www.zhihu.com/question/625481187/answer/3260085982




case 1

你现在是一个关系提取的大模型,我会输入一段文本给你
    输入结构
    1. 背景
    2. 问题
    输出结构
    1. 三元组<实体,属性名,属性值>
    2. 如果你不知道答案,请不要打多余的字,直接回复:没有找到该问题对应的知识
    
    背景如下
    <
    科列斯尼科夫,别名,科列斯尼科夫
科列斯尼科夫,外文名,Kolesnikov
科列斯尼科夫,国籍,俄罗斯
科列斯尼科夫,出生日期,1985年12月26日
科列斯尼科夫,身高,195CM
科列斯尼科夫,体重,78kg
科列斯尼科夫,运动项目,篮球
科列斯尼科夫,所属运动队,圣彼得堡俱乐部
科列斯尼科夫,中文名,科列斯尼科夫
科列斯尼科夫,位置,后卫
科列斯尼科夫,号码,5号
科列斯尼科夫,出生地,俄罗斯
科列斯尼科夫,性别,男
科列斯尼科夫,出生年月,1985年12月26日
科列斯尼科夫,星座,魔羯座
科列斯尼科夫,职业,篮球
米哈伊尔·彼特罗维奇·科列斯尼科夫,别名,米哈伊尔·彼特罗维奇·科列斯尼科夫
米哈伊尔·彼特罗维奇·科列斯尼科夫,中文名,米哈伊尔·彼特罗维奇·科列斯尼科夫
米哈伊尔·彼特罗维奇·科列斯尼科夫,外文名,Михаи́л Петро́вич Коле́сников
米哈伊尔·彼特罗维奇·科列斯尼科夫,出生日期,1939.10
米哈伊尔·彼特罗维奇·科列斯尼科夫,逝世日期,2007.3.26
同第三帝国决斗,作者,玛·瓦·科列斯尼科娃 / 米·谢·科列斯尼科夫
>
    问题如下
    <我想了解一下科列斯尼科夫这位篮球运动员。我知道他是一位后卫球员,且运动技能很高。但是他的出生年月,以及他在哪个队伍效力,他的身高和体重等等,这些我都不太清楚。你能告诉我这些信息吗?>
    输出如下
    输出结果以三元组形式返回: <实体,属性名,属性值>




你现在是一个关系提取的大模型,我会输入一段文本给你
    输入结构
    1. 背景
    2. 问题
    输出结构
    1. 三元组<实体,属性名,属性值>
    2. 如果你不知道答案,请不要打多余的字,直接回复:没有找到该问题对应的知识
    
    背景如下
    <
许仕廉,别名,许仕廉
许仕廉,中文名,许仕廉
许仕廉,国籍,中国
许仕廉,出生地,湖南湘潭
许仕廉,出生日期,1896年
许仕廉,毕业院校,爱荷华大学
许仕廉,主要成就,中国著名社会学家
许仕廉,主要从事,社会、人口学的调查研究教学工作
许仕廉,籍贯,湖南湘潭
许仕廉,性别,男
许仕廉,民族,汉族
许仕廉,出生年月,1896年
许仕廉,职业,社会学家
许仕廉,代表作品,《文化与政治》;《一个市镇调查的尝试》;《社会教育与社会理论》;《中国人口问题》;《人口论纲要》
许仕廉,国 籍,中国
>
    问题如下
    <许仕廉主要是任职什么的?>
    输出如下
    输出结果以三元组形式返回: <实体,属性名,属性值>


faiss

看faiss源码解析

https://github.com/facebookresearch/faiss/wiki

faiss使用-入门级小白篇代码教程 - 程序员小丁的文章 - 知乎
https://zhuanlan.zhihu.com/p/642959732

向量数据库入坑指南:初识 Faiss,如何将数据转换为向量
https://cloud.tencent.com/developer/article/2153613

pip install  -i https://mirrors.aliyun.com/pypi/simple faiss-cpu 
pip install  -i https://mirrors.aliyun.com/pypi/simple  faiss-gpu





puck

https://github.com/baidu/puck

sudo apt-get remove cmake
apt-get install -y libssl-dev
wget https://github.com/Kitware/CMake/releases/download/v3.21.0/cmake-3.21.0.tar.gz
tar -zxvf cmake-3.21.0.tar.gz
cd cmake-3.21.0
./bootstrap -DCMAKE_USE_OPENSSL=OFF
make -j8  && make install
cmake --version




query理解

搜索召回算法实践:文本召回综述 - 南枫的文章 - 知乎
https://zhuanlan.zhihu.com/p/467939766
深入理解搜索引擎——详解query理解 - 药老算法的文章 - 知乎
https://zhuanlan.zhihu.com/p/344631739
美团搜索——基于用户Session的Query改写 - 药老算法的文章 - 知乎
https://zhuanlan.zhihu.com/p/355132926



query结构分析
query改写
query纠错、query对齐、query扩展

搜索召回

Que2Search(上):FaceBook新一代query搜索召回模型分享 - MECH的文章 - 知乎
https://zhuanlan.zhihu.com/p/615284379
深入理解搜索引擎-搜索召回 - 药老算法的文章 - 知乎
https://zhuanlan.zhihu.com/p/348159133
Que2Search(下):OPPO搜索广告召回模型落地分享 - MECH的文章 - 知乎
https://zhuanlan.zhihu.com/p/616880233
[召回|KDD2020|FaceBook]Embedding-based Retrieval in Facebook Search论文超级详细解读 - 杰尼小子的文章 - 知乎
https://zhuanlan.zhihu.com/p/438047408

经典推荐算法学习(十三)| 常见推荐召回算法梳理 - 秋雨淅淅l的文章 - 知乎 https://zhuanlan.zhihu.com/p/472770659


文本相关性

百度搜索相关性算法笔记 - 张备的文章 - 知乎
https://zhuanlan.zhihu.com/p/586676631
知乎搜索文本相关性与知识蒸馏 - DataFunTalk的文章 - 知乎
https://zhuanlan.zhihu.com/p/422185499

NLP - 纠错

资料

  1. 中文纠错技术综述 - 低级炼丹师的文章 - 知乎 https://zhuanlan.zhihu.com/p/357812484
  2. 百度中文纠错技术:https://mp.weixin.qq.com/s/r0kWgPHKthPgGqTbVc3lKw
  3. PyCorrector文本纠错工具实践和代码详解 - Roger的文章 - 知乎 https://zhuanlan.zhihu.com/p/138981644

信息抽取

BM25

  1. BM25算法的通俗理解 - 徐波的文章 - 知乎 https://zhuanlan.zhihu.com/p/420048609

ernie

  1. 文本分类
  2. 命名实体识别
  3. 超详细中文预训练模型ERNIE使用指南 - 飞桨PaddlePaddle的文章 - 知乎 https://zhuanlan.zhihu.com/p/76757794

ernie_vil

蒸馏技术

https://aistudio.baidu.com/modelsdetail/21/intro?modelId=21 ERNIE-Tiny: A Progressive Distillation Framework for Pretrained Transformer Compression ERNIE 3.0 Titan: Exploring Larger-scale Knowledge Enhanced Pre-training for Language Understanding and Generation

TTS

paddleSpeech
https://paddlespeech.readthedocs.io/en/latest/tts/demo.html

模型推理预估

TensorRT详细入门指北,如果你还不了解TensorRT,过来看看吧! - OLDPAN的文章 - 知乎
https://zhuanlan.zhihu.com/p/371239130

TensorRT-Index:https://docs.nvidia.com/deeplearning/tensorrt/quick-start-guide/index.htmlAPI:https://docs.nvidia.com/deeplearning/tensorrt/api/ONNX GraphSurgeon: https://docs.nvidia.com/deeplearning/tensorrt/onnx-graphsurgeon/docs/index.htmlhttps://docs.nvidia.com/deeplea

作者:OLDPAN
链接:https://zhuanlan.zhihu.com/p/371239130
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


大模型MLSYS学习随笔- 训推框架总览(DRAFT) - Bruce 仗剑走天涯的文章 - 知乎
https://zhuanlan.zhihu.com/p/692438094


纯原生 PyTorch 加速生成式 AI 模型
代码地址:https://github.com/pytorch-labs/gpt-fast

mamba
https://github.com/state-spaces/mamba.
论文链接:https://arxiv.org/ftp/arxiv/papers/2312/2312.00752.pdf

llama.c
https://github.com/karpathy/llama2.c

Xinference
https://zhuanlan.zhihu.com/p/663065437


llamacpp


chatglm
https://github.com/li-plus/chatglm.cpp

地址标准化服务AI深度学习模型推理优化实践 - 阿里云云栖号的文章 - 知乎
https://zhuanlan.zhihu.com/p/552908554

大模型推理加速论文阅读(三) - 风不语的文章 - 知乎
https://zhuanlan.zhihu.com/p/676309607


大模型如何高效部署?CMU最新万字综述纵览LLM推理MLSys优化技术 - Hsword的文章 - 知乎
https://zhuanlan.zhihu.com/p/677635306


大模型推理加速调研(框架、方法) - mingming的文章 - 知乎
https://zhuanlan.zhihu.com/p/683986024


flash attention V1 V2 V3 V4 如何加速 attention - RedHerring的文章 - 知乎
https://zhuanlan.zhihu.com/p/685020608

前沿关键词

  • FlashAttention、Flash Attention v2、Flash-Decoding的作者
  • Mamba
  • llama.c
  • llamacpp

加速思路

  1. 量化
  2. 权重量化
  3. kv cache int8量化

离线批量预测性能

容灾能力

  1. checkpoint
  2. 断点续训

模型评估

**平均绝对误差**(MAE)
均方误差(MSE)
标准化加权均方根对数误差(NWRMSLE)
交叉熵

模型结构

  1. onnx结构:https://github.com/microsoft/onnxruntime

Mixtral 8x7B(Mistral MoE) 模型解析 - CodeLearner的文章 - 知乎
https://zhuanlan.zhihu.com/p/684922663





GPT

制作一个BadyGpt

参考文档:http://arthurchiao.art/blog/gpt-as-a-finite-state-markov-chain-zh/#21-%E5%AE%89%E8%A3%85-pytorch

langchain方式
https://github.com/chatchat-space/langchain-ChatGLM

chatGLM

https://github.com/RonaldJEN/FinanceChatGLM.git



比赛
官网论坛:https://tianchi.aliyun.com/competition/entrance/532126/forum
全训练过程:https://tianchi.aliyun.com/forum/post/573555
数据集:https://modelscope.cn/datasets/modelscope/chatglm_llm_fintech_raw_dataset/summary?spm=a2c22.21852664.0.0.68171434jkTm0x
baseline代码:https://github.com/RonaldJEN/FinanceChatGLM/
参赛笔记:https://tianchi.aliyun.com/forum/post/571708
基于paddlepaddle的chatglm推理实现代码:https://tianchi.aliyun.com/forum/post/572601

微调模型:https://github.com/THUDM/ChatGLM-6B/tree/main/ptuning
paddle结合GLM:https://aistudio.baidu.com/aistudio/projectdetail/6195067
动手搭建一套端到端文本语义检索系统:https://aistudio.baidu.com/projectdetail/3351784

思路 
gpt生成关键词 prompt 区分文本分析 数学计算
先测试分类效果 
请将下述问题区分为搜索信息类,计算数值类,总结陈述类

关键词语义搜索找到相关pdf paddle语义召回
5000行构建花了10分钟 cpu

pdf识别语义



解析pdf逻辑参考
Traceback (most recent call last):
  File "paddle_model.py", line 16, in <module>
    pprint(docprompt([{"doc": pdf_path, "prompt": ["财报利润率多少",  "住宅投资是多少?"]}]))
  File "/usr/local/lib/python3.8/dist-packages/paddlenlp/taskflow/taskflow.py", line 850, in __call__
    results = self.task_instance(inputs)
  File "/usr/local/lib/python3.8/dist-packages/paddlenlp/taskflow/task.py", line 515, in __call__
    inputs = self._preprocess(*args)
  File "/usr/local/lib/python3.8/dist-packages/paddlenlp/taskflow/document_intelligence.py", line 90, in _preprocess
    ocr_result = self._ocr.ocr(example["doc"], cls=True)
  File "/usr/local/lib/python3.8/dist-packages/paddleocr/paddleocr.py", line 637, in ocr
    img = check_img(img)
  File "/usr/local/lib/python3.8/dist-packages/paddleocr/paddleocr.py", line 527, in check_img
    img, flag_gif, flag_pdf = check_and_read(image_file)
  File "/usr/local/lib/python3.8/dist-packages/paddleocr/ppocr/utils/utility.py", line 96, in check_and_read
    for pg in range(0, pdf.pageCount):


下载模型和数据集
参考链接:https://tianchi.aliyun.com/forum/post/573555
pip3 install datasets==2.13.0
pip3 install dill==0.3.6
pip3 install multiprocess==0.70.14
pip3 install numpy pandas urllib3
pip3 install torch
pip3 install transformers -U
pip3 install accelerate -U
pip3 install sentencepiece -U
pip3 install torch torchvision -U
pip3 install modelscope -U 

打包当前环境
pip3 freeze > requirements.txt

数据集
git clone http://www.modelscope.cn/datasets/modelscope/chatglm_llm_fintech_raw_dataset.git

异常
RuntimeError: "addmm_impl_cpu_" not implemented for 'Half'
原因
机器没有gpu,需要配置只跑cpu。加参数 trust_remote_code=True
model = Model.from_pretrained('ZhipuAI/chatglm2-6b', low_cpu_mem_usage=False, trust_remote_code=True, revision='v1.0.7')



export PYTHONPATH=$PYTHONPATH:/docker/root/projects/demo/project/chatglm/baseline_demo/FinanceChatGLM

总结
大模型现阶段一些问题和优势
问题:
模型需要的资源太多了,响应慢,开发慢。这些都是成本
模型对数据质量要求很高,不然基本不可用
输出结果不可控
不适合做大数据计算
不适合做搜索引擎

优势
在提供足量的正确的数据,能融合数据,并生成可看的结果

大模型 + 向量 + 搜索 + 大数据
数据存储成本
索引构建成本
向量生成成本
大模型运行成本
每一个成本都很高
而且pipeline很长
数据同步延迟高,排查问题慢,同时依赖没有简化现有的软件开发模式,反而新增一个链路

我理想中认为的大模型
存储所有的大数据内容,完成端到端的数据链路更新

实际中,因为大模型的成本问题
大模型应该需要具备推理和分析能力,来代替人,生成sql,生成代码。然后提交执行命令
完成一系列自动化机器运维,软件开发,bug修复等操作
这样就能带来明显的价值效益


chatglm3-本地部署

https://modelscope.cn/models/Xorbits/chatglm3-ggml/summary

高性能推理

mac
./Library/Python/3.9/bin/xinference -p 9997

AI小镇

https://github.com/joonspk-research/generative_agents

huggingface

SkyTextTiny 模型

git clone https://huggingface.co/SkyWork/SkyTextTiny.git    


NLP 技术图谱

  1. 自监督词表示学习
    1. 词向量模型(Word2Vec)
    2. 语言模型(Language Modeling, LM)
  2. 句子编码网络
    1. 自回归 n-gram语言模型
    2. 循环神经网络(Recurrent Neural Network, RNN)
    3. 注意力机制 Transformer
  3. 自回归、自编码预训练模型
    1. GPT(自回归)
      1. 无马尔科夫链
      2. self-attention
      3. 大规模自监督学习
    2. BERT 自编码
      1. cbow
      2. 利用上下文预测中间词
      3. 作为encoder 能看到整个句子的信号
  4. 任务类型
    1. classification
    2. entailment
    3. similary
    4. multiple choice
  5. 语言任务
    1. 字理解
    2. 词理解
    3. 句子理解
    4. 篇章理解
    5. 多义 同义 歧义
    6. 语境
    7. 语义理解
      1. 双向语言模型建模 建模上下文信息
      2. 两层lstm 建模不同层次语义信息 (单词特征 句法特征 语义特征)
    8. 单句分类
    9. 句对分类 自然语言推断
    10. 文本匹配
      1. query - document
      2. question - answer
      3. utterance - response
    11. 命名实体识别
    12. 事件关系抽取
    13. 机器阅读理解
  6. ELMo
    1. pre-training
      1. 双向语言模型建模 建模上下文信息
      2. 两层lstm 建模不同层次语义信息 (单词特征 句法特征 语义特征)
    2. fine-tuning
      1. 基于feature-based方式
    3. 问题
      1. 不完全双向训练
      2. 任务相关网络结构设计
      3. 仅有词向量,无句向量
  7. GPT
    1. pre-training
      1. transform decoder
      2. bookscorpus
    2. fine-tuning
      1. 基于model-based方式
  8. Bert
    1. pre-training
      1. LM -> Auto-encoder
      2. sentence-level
    2. fine-tuning
      1. add token-level
      2. add sentence-level
    3. 单句分类
    4. 句对分类
    5. 序列标注任务
  9. ernie
    1. ernie-vil
    2. unimo
    3. -M
    4. -Doc
  10. 语言
    1. 语序
    2. 语义:关联,非关联,同话题
    3. 逻辑关系
  11. 信息抽取
    1. 实体
    2. 关系
    3. 事件
    4. 方法
      1. 抽取解析式
      2. 理解生成式
  12. 问答系统
    1. 文本
    2. 知识库
    3. 表格
    4. 视频
    5. 方法
      1. 稀疏向量
      2. 稠密向量
  13. 数学工具
  14. 前向传播
  15. 反向传播
  16. 损失函数
  17. 负梯度反向传播
  18. 网络层
  19. embedding

模型

  1. 2013
    1. cbow skip-gram glove
  2. 2014
    1. cnn rnn lstm seq-to-seq
  3. 2015
    1. transformer
  4. 2018
    1. elmo gpt bert

论文

  1. 基础论文
    1. Efficient Estimation of Word Representations in Vector Space.
    2. RNN
    3. self-attention
    4. elmo
    5. gpt
    6. bert
    7. ernie
    8. A continual pre-training framework for language understanding
  2. 问答系统论文
    1. Reading Wikipedia to Answer Open-domain Questions
    2. Questions for Machine Comprehension of Text
    3. DuReader: a Chinese Machine Reading Comprehension Dataset from Real-world Applications
    4. Dense Passage Retrieval for Open-Domain Question Answering.

bias问题

  1. position-bias pCTR 华为
  2. exposure-bias ESMM 阿里
  3. popularity-bias ESAM

模型效果优化

  1. 为什么回归问题不能用Dropout - Lukan的文章 - 知乎 https://zhuanlan.zhihu.com/p/561124500

精排模型

快手精排模型实践 - DataFunTalk的文章 - 知乎
https://zhuanlan.zhihu.com/p/602322538


一文说尽推荐系统中的精排模型 - Tang AI的文章 - 知乎
https://zhuanlan.zhihu.com/p/586162228

小红书如何实现高效推荐?解密背后的大数据计算平台架构 - 阿里云云栖号的文章 - 知乎
https://zhuanlan.zhihu.com/p/77409613

推荐算法—精排模型DIN/DIEN/SIM/DFN/DCIN - 一分钟666的文章 - 知乎
https://zhuanlan.zhihu.com/p/674125085


embedding 空间对齐


特征重要性对齐


召回

TDM系列解读-概述 - 星翰的文章 - 知乎
https://zhuanlan.zhihu.com/p/583118370

TDM到二向箔:阿里妈妈展示广告Match底层技术架构演进 - 阿里妈妈<em>技术</em>的文章 - 知乎
https://zhuanlan.zhihu.com/p/443113850

召回概念解释 kv kkv vector
https://help.aliyun.com/zh/airec/be/getting-started/data-specifications?spm=a2c4g.11186623.0.0.40ab6485O50VoV

召回策略打分实践
https://help.aliyun.com/zh/airec/be/use-cases/custom-rough-sort-scores?spm=a2c4g.11186623.0.nextDoc.67e82724ezcZy3


java召回系统代码示例
https://help.aliyun.com/zh/airec/be/developer-reference/quick-start-on-sdks-for-java?spm=a2c4g.11186623.0.0.21bd583bnItklV

混排 粗排



WWW2022|美团基于强化学习的信息流广告混排算法 - papacai的文章 - 知乎
https://zhuanlan.zhihu.com/p/558087806

阿里定向广告最新突破:面向下一代的粗排排序系统COLD - 萧瑟的文章 - 知乎
https://zhuanlan.zhihu.com/p/186320100

阿里广告技术最新突破:全链路联动-面向最终目标的全链路一致性建模 - 萧瑟的文章 - 知乎
https://zhuanlan.zhihu.com/p/413240790

工业界(搜索 推荐)粗排模型一般怎么做? - 谢杨易的回答 - 知乎
https://www.zhihu.com/question/441037971/answer/3338246520

召回算法有哪些? - 余文毅的回答 - 知乎
https://www.zhihu.com/question/423384620/answer/3344167214

OPPO 广告全链路一致性召回算法实践与探索 - 余文毅的文章 - 知乎
https://zhuanlan.zhihu.com/p/675351007


推荐系统多目标优化专题(1)——深入理解推荐系统 - iwtbs的文章 - 知乎
https://zhuanlan.zhihu.com/p/476753154

广告召回论文阅读笔记(2)-从TDM到二向箔 - magicwt的文章 - 知乎
https://zhuanlan.zhihu.com/p/675418752


阿里的TDM树深度模型为什么很少有人用,是有哪些问题吗? - magicwt的回答 - 知乎
https://www.zhihu.com/question/485938484/answer/3349977619


OPPO 广告召回算法实践与探索 - DataFunTalk的文章 - 知乎
https://zhuanlan.zhihu.com/p/675609025



统计


字节跳动数据挖掘岗面经(杭州) - starfly的文章 - 知乎
https://zhuanlan.zhihu.com/p/518212490



基础概念

  1. 标准误差SE
  2. 置信区间
  3. p值:
  4. 差值:实验组-对照组数量
  5. 变化率:差值/对照组数量
  6. T分布,Z分布
  7. F检验,卡方检验

置信区间

如何通俗地解释「置信区间」和「置信水平」? - 猴子的回答 - 知乎
https://www.zhihu.com/question/24801731/answer/251576717


相爱相杀的置信区间和p值 - 医小咖的文章 - 知乎
https://zhuanlan.zhihu.com/p/32432629


Z检验、T检验下 P-value 和置信区间的计算 - energy百分百的文章 - 知乎
https://zhuanlan.zhihu.com/p/386921569

火山引擎ab实验
https://www.volcengine.com/docs/6287/65818
https://www.volcengine.com/docs/6287/65837

【AB实验统计学】P-value和置信区间 - Effyyy的文章 - 知乎
https://zhuanlan.zhihu.com/p/372485716



特征 - 样本

  1. 近3年关于特征交叉、特征选择的顶会文章集合 - 甲丙寅的文章 - 知乎 https://zhuanlan.zhihu.com/p/694157745

SequenceExample

  1. 超长序列特征:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/example/example.proto

FlatBuffer

  1. 二进制及FlatBuffer

特征表达式


SparseTensor


TFRecord

  1. spark生成:https://github.com/linkedin/spark-tfrecord
  2. spark-tensorflow-connector:https://github.com/tensorflow/ecosystem/tree/master/spark/spark-tensorflow-connector
  3. 扩展能力记录数据位置、实时分发数据、断点续训、底层缓存、多线程拉取等功能

样本分发




























paper reading

Actions Speak Louder than Words Trillion-Parameter Sequential Transducers for Generative Recommendations

GPT

论文介绍
背景与挑战:介绍了大规模推荐系统的背景,包括其对高基数、异构特征的依赖,以及处理数十亿用户日常行为的需求。尽管深度学习推荐模型(DLRMs)在大量数据和特征上进行了训练,但它们在计算扩展性上存在限制。

创新方法:论文提出了一种新架构HSTU(Hierarchical Sequential Transduction Units),它是为了处理高基数、非平稳的流式推荐数据而设计的。HSTU在合成数据集和公共数据集上的性能优于基线模型,并且在序列长度为8192的序列上比基于FlashAttention2的Transformer快5.3倍到15.2倍。

Generative Recommenders (GRs):提出了一种新的推荐范式,将推荐问题重新定义为生成模型框架内的序列转导任务。GRs通过1.5万亿参数的模型,在在线A/B测试中提高了12.4%的指标,并已部署在拥有数十亿用户的互联网平台上。

模型质量与训练计算的关系:发现生成推荐模型的模型质量与训练计算量之间存在幂律关系,这减少了未来模型开发所需的碳足迹,并为推荐系统中的第一个基础模型铺平了道路。

主要贡献:论文详细介绍了将DLRMs转换为GRs的过程,包括统一DLRMs中的异构特征空间,将排名和检索任务重新定义为GRs中的纯序列转导任务,并提出了一种新的序列转导架构HSTU。

实验验证:通过在合成数据集、公共数据集以及大型互联网平台的多个界面上的部署,验证了所提出技术的 effectiveness。

相关工作:讨论了先前关于序列推荐器的工作,以及高效注意力机制和硬件感知公式的研究。

结论:论文总结了GRs的优势,包括在生产中部署更复杂的模型,以及与传统DLRMs相比的优越扩展性能。同时,强调了用户行为在生成建模中的潜力。

广泛影响:论文讨论了其工作可能带来的积极影响,包括提高推荐、搜索和广告系统的隐私友好性,改善用户体验,以及减少模型研究和开发所需的碳足迹。






DLRMs(Deep Learning Recommendation Models)和GRs(Generative Recommenders)是两种不同类型的推荐系统模型,它们在设计理念、处理方式和应用场景上存在一些关键区别:

设计理念:

DLRMs:这类模型通常依赖于大量的手工特征工程,使用深度学习技术来学习用户和物品之间的复杂交互。它们通常包括多种类型的神经网络组件,如嵌入层、多层感知机(MLPs)、注意力机制等,以处理异构特征并进行最终的推荐。
GRs:生成推荐器将推荐任务视为序列转导问题,并通过生成模型框架来解决。它们将用户的交互历史视为序列,并尝试直接从这些序列中学习并预测下一个可能的交互或推荐内容。这种方法强调了端到端的学习,减少了对特征工程的依赖。
处理方式:

DLRMs:传统DLRMs通常在训练时使用复杂的网络结构来捕捉特征间的交互,并且在推理时可能需要大量的计算资源来处理每个用户的个性化推荐。
GRs:生成推荐器通过统一的特征空间和序列转导任务来简化模型结构。它们使用如HSTU这样的高效编码器来处理长序列数据,并通过生成训练来提高数据利用率和模型效率。
应用场景:

DLRMs:适用于需要精细化特征处理和模型调优的场景,特别是在特征维度高且需要复杂交互建模的情况下。
GRs:更适合于大规模、实时的推荐系统,尤其是在用户交互数据量大、更新频繁的环境中。
性能和效率:

DLRMs:可能在特定场景下提供良好的性能,但随着模型复杂度的增加,它们的扩展性和计算效率可能会受到限制。
GRs:通过端到端的生成方式和高效的序列处理,GRs在处理大规模数据时显示出更好的扩展性和计算效率。
总的来说,GRs代表了一种新的推荐系统范式,它通过生成模型的方法来简化推荐任务,减少了对复杂特征工程的依赖,并且在大规模数据集上显示出了优越的性能和扩展性。




总结论文中的异构特征


在论文 "Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations" 中,异构特征(Heterogeneous Features)指的是推荐系统中使用的多种不同类型的数据属性,这些属性可以是数值型的(dense),也可以是类别型的(sparse)。这些特征通常包括但不限于以下几种:

数值特征(Numerical Features):这些特征通常是连续的数值,例如用户的点击率(CTR)、观看时长、评分等。这些数值型特征可以是加权的、衰减的计数器或比率,它们反映了用户与内容之间的交互强度。

类别特征(Categorical Features):这些特征是离散的,如用户ID、物品ID、创建者ID、用户所在的社区、用户语言等。这些特征通常用于表示用户或物品的属性,并且在推荐系统中起着至关重要的作用。

用户行为序列:用户的交互历史,如喜欢的物品、关注的创建者、发起请求的城市等,这些序列化的特征在生成推荐模型中被统一处理。

论文中提出的方法将这些异构特征整合到一个统一的时间序列中,以便在生成推荐模型(GRs)中进行处理。这种整合允许模型以一种更加连贯和有效的方式学习特征之间的相互作用,而不是像传统的深度学习推荐模型(DLRMs)那样依赖于复杂的特征工程和多个神经网络组件。

通过这种方式,生成推荐模型能够更好地捕捉用户的长期行为模式,并据此生成个性化的推荐。论文中提出的HSTU(Hierarchical Sequential Transduction Units)架构特别设计了一种新的注意力机制,以适应大规模、非平稳的词汇表和长序列数据,从而提高了模型在处理异构特征时的效率和准确性。




异构特征(Heterogeneous Features)在数据科学和机器学习领域中指的是来自不同来源、类型或格式的特征集合。这些特征可能包括数值型数据(如年龄、温度读数)、类别型数据(如性别、产品类别)、文本数据(如用户评论)、图像数据(如商品图片)等。异构特征的“异构”一词强调了这些特征在本质上的差异性和多样性。

在推荐系统中,异构特征的理解可以从以下几个方面进行:

数据类型多样性:推荐系统可能需要处理各种类型的数据,包括用户的基本资料信息(如年龄、性别)、用户的行为日志(如点击、浏览历史)、用户生成的内容(如评分、评论)以及物品的属性(如商品的类别、品牌)等。

数据来源多样性:特征可能来自不同的数据源,如内部数据库、第三方数据提供商、社交媒体平台等。这些数据源可能提供不同格式和质量的数据。

数据结构多样性:即使在同一类型的数据中,结构也可能有所不同。例如,用户行为日志可能包括时间序列数据(用户在不同时间点的行为),而用户生成的内容可能是非结构化的文本数据。

数据尺度多样性:特征可能具有不同的尺度和范围。例如,用户的年龄可能是一个较小的整数范围,而用户的浏览历史可能是一个非常长的序列。

在处理异构特征时,推荐系统需要采用适当的方法来整合和利用这些多样化的信息。这可能涉及到特征工程(如归一化、编码)、模型设计(如使用多模态神经网络)以及训练策略(如处理不同特征的缺失值和不平衡问题)。

在论文 "Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations" 中,作者通过将异构特征整合到一个统一的时间序列中,并使用HSTU架构来处理这些特征,从而简化了模型的复杂性,并提高了处理大规模、非平稳推荐数据的效率。这种方法允许模型在生成推荐时更好地捕捉和利用异构特征中的信息。


论文结构拆解

  1. 优化目标是什么
    1. From DLRMs to GRs,从深度推荐模型转向生成式推荐
    2. 设计新架构HSTU优化高基数、非平稳的流式数据的推荐场景
  2. 业务场景来源和灵感
    1. 灵感:Actions speak louder than words 事实胜于雄辩
  3. 如何实验验证呢
    1. 数据集:NDCG
  4. 运用技术和细节
    1. 支持8k长度序列输入
    2. 5.3x-15.2x faster than state-of-the art Transformers
    3. M-FALCON 新算法
    4. 异构特征的处理
  5. 关键语句
    1. We reformulate recommendation problems as sequential transduction tasks within a generative modeling framework
    2. propose a new architecture, HSTU, designed for high cardinality,non-stationary streaming recommendation data.
    3. a unified feature space to be used across domains 一个统一的特征空间跨域使用
  6. 概念扫盲
    1. 序列转导任务(Sequential Transduction Tasks)是一种自然语言处理(NLP)中的序列建模方法,它涉及到将输入序列转换为输出序列的过程。这种任务通常在生成模型中出现,其中模型需要基于给定的输入序列生成一个新的序列,而不是简单地分类或回归。

GR复现

论文
https://github.com/facebookresearch/generative-recommenders?tab=readme-ov-file

apt install -y python3.8
apt install -y python3-pip
pip3 install gin-config absl-py scikit-learn scipy matplotlib numpy apex hypothesis pandas fbgemm_gpu iopath -i https://mirrors.aliyun.com/pypi/simple

构建时序样本
mkdir -p tmp/ && python3 preprocess_public_data.py

movielens_seq_features_from_row
historical_lengths 是历史序列的长度,形状为 [B],其中 B 是批次大小。
historical_ids 是历史序列的项目标识符,形状为 [B, N],其中 N 是历史序列的最大长度。
historical_ratings 是历史序列的评分,形状与 historical_ids 相同。
historical_timestamps 是历史序列的时间戳,形状与 historical_ids 相同。
target_ids 是目标项目的标识符,形状为 [B, 1]。
target_ratings 是目标项目的评分,形状与 target_ids 相同。
target_timestamps 是目标项目的时间戳,形状与 target_ids 相同。

用户
item_embedding_dim 商品/电影/书籍/广告
获取item向量
获取点击或者mol相似函数

用户向量 user_embedding_norm l2_norm

L2NormEmbeddingPostprocessor
LearnablePositionalEmbeddingInputFeaturesPreprocessor
添加可学习的位置嵌入,适应给定的序列长度和嵌入维度。

get_sequential_encoder
函数 get_sequential_encoder 是一个自定义函数,用于创建一个序列编码器模型。
module_type 是模型的类型,main_module 是一个变量,用于指定模型的具体类型。
max_sequence_length 是输入序列的最大长度。
max_output_length 是输出序列的最大长度,这里加1是因为模型的输出会比输入多一个时间步。
embedding_module 是用于将输入序列进行嵌入的模块。
interaction_module 是用于对嵌入后的序列进行交互的模块。
input_preproc_module 是用于对输入序列进行预处理的模块。
output_postproc_module 是用于对输出序列进行后处理的模块。
verbose=True 表示在创建模型时打印详细信息。
model.debug_str() 是模型的调试方法,返回模型的详细信息的字符串表示。



损失函数
SampledSoftmaxLoss
InBatchNegativesSampler



Module
RelativeAttentionBiasModule
RelativePositionalBias

RelativeAttentionBiasModule
RelativeBucketedTimeAndPositionBasedBias

SequentialTransductionUnitJagged

why
HSTUCacheState = Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]













思考题


embedding维数越多越好吗

为什么Transformer 需要进行 Multi-head Attention? - 取个好名字真难的回答 - 知乎
https://www.zhihu.com/question/341222779/answer/3476103514

GPT-3 的embedding维数是12288。线性代数告诉我们,当空间维数非常非常大时,向量都非常分散——整个空间太大了,很难得到两个非常靠近的向量。














图可视化

dolphinscheduler
wget https://dlcdn.apache.org/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-bin.tar.gz

安装介绍
https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/guide/installation/standalone

tar -xvzf apache-dolphinscheduler-*-bin.tar.gz
chmod -R 755 apache-dolphinscheduler-*-bin
cd apache-dolphinscheduler-*-bin
bash ./bin/dolphinscheduler-daemon.sh start standalone-server

默认的用户名和密码是 admin/dolphinscheduler123


搜索dag接口
https://dataverse.search.sankuai.com/kuggetPlatform/dag/handle


阿里云开源组件 小蝴蝶
http://10.216.241.123:5080/
https://github.com/aliyun/react-lineage-dag
https://github.com/alibaba/butterfly/blob/master/README.md


sql助手
http://doc.sqlzhushou.com/quick-start/support
https://github.com/youqiang95/DAG-SQL-Builder