附录B:参考文献
本附录整理了AI系统学习过程中推荐的参考文献和学习资源,包括经典书籍、在线课程、重要论文、技术文档和开源项目。按照不同主题分类组织,便于读者系统性地深入学习。
B.1 经典书籍
B.1.1 深度学习与机器学习基础
[1] 《深度学习》- Ian Goodfellow, Yoshua Bengio, Aaron Courville
这是一本全面介绍深度学习的经典教材,被称为"花书"。全书分为三部分:应用数学与机器学习基础、现代的深度学习技术、深度学习研究。涵盖了机器学习基础、深度网络实践、线性因子编码、自编码器、表示学习、蒙特卡洛方法、结构化概率模型、深层生成模型等核心内容。此书适合作为深度学习的入门教材和长期参考书。
推荐理由:内容全面、理论严谨、覆盖范围广,是深度学习领域的标准教材。
[2] 《动手学深度学习》- 李沐等
本书以亚马逊工程师视角编写,通过Jupyter笔记本和PyTorch实现深入浅出地讲解深度学习。内容涵盖从基础的多层感知机到现代的卷积神经网络、循环神经网络、注意力机制,以及优化算法和计算性能优化。配套视频课程和代码实践,是中文深度学习入门的优秀资源。
推荐理由:理论与实践结合,代码可运行,中文友好,适合快速入门。
[3] 《机器学习》- 周志华
被称为"西瓜书",是国内机器学习领域的经典教材。以西瓜的挑选为比喻,系统介绍了机器学习的基本概念和主流算法,包括决策树、神经网络、支持向量机、贝叶斯分类器、集成学习、聚类、降维、规则学习等。适合作为机器学习理论的系统学习资料。
推荐理由:中文机器学习经典,讲解清晰,配套南瓜书详解。
[4] 《Pattern Recognition and Machine Learning》- Christopher Bishop
机器学习和模式识别的权威教材,侧重于贝叶斯方法。内容涵盖概率分布、线性回归、线性分类、神经网络、核方法、稀疏核机器、高斯过程、概率图模型、采样方法等。数学推导详尽,适合深入理解机器学习的理论基础。
推荐理由:贝叶斯视角独特,数学严谨,适合研究生级别学习。
B.1.2 计算机体系结构
[5] 《计算机体系结构:量化研究方法》- John L. Hennessy, David A. Patterson
计算机体系结构领域的圣经级教材,已更新至第六版。系统介绍了计算机体系结构的设计原则、性能评估方法、指令集设计、流水线技术、存储器层次结构、并行处理器等。强调量化分析方法和实验评估,是体系结构研究的必备参考。
推荐理由:体系结构必读经典,侧重量化分析方法和实际性能评估。
[6] 《计算机组成与设计:硬件/软件接口》- David A. Patterson, John L. Hennessy
以RISC-V指令集为案例的系统介绍计算机组成的教材。内容包括指令集、算术运算、流水线、存储层次结构、并行处理器等。强调硬件与软件的接口关系,适合理解计算机系统底层原理。
推荐理由:以RISC-V为例,硬件软件接口清晰,适合入门学习。
[7] 《Modern Processor Design》- John Shen, Michel M. Guttag
专门介绍现代处理器设计原理的教材,内容涵盖指令集并行、流水线、超标量处理器、线程级并行等。适合有基础的同学深入理解处理器微架构。
推荐理由:处理器设计专业教材,内容深入但不失可读性。
B.1.3 编译器原理
[8] 《编译原理》- Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
即"龙书",编译器领域的经典教材。系统介绍了编译器的各个阶段:词法分析、语法分析、语义分析、运行时环境、中间代码生成、代码生成、代码优化等。是编译技术学习和研究的必备参考。
推荐理由:编译器领域权威教材,内容全面系统,适合系统学习。
[9] 《Engineering a Compiler》- Keith Cooper, Linda Torczon
另一本重要的编译器教材,强调实践和工程实现。内容包括词法分析、语法分析、语义分析、运行时环境、中间表示、目标代码生成、指令调度、寄存器分配等。相较于龙书更加注重编译器工程实践。
推荐理由:编译器工程实践导向,内容现代,代码示例丰富。
[10] 《LLVM Algorithms》- Abram D. Stern
专门介绍LLVM核心算法实现的书籍,深入解析LLVM代码库的算法设计。内容包括LLVM的核心数据结构、Pass管理、分析 passes、转换 passes等。适合想要深入理解LLVM实现或参与LLVM开发的读者。
推荐理由:LLVM实现细节揭秘,适合LLVM开发者和编译器研究人员。
B.1.4 并行计算与高性能计算
[11] 《并行程序设计原理》- Maurice Herlihy, Nir Shavit
系统介绍并行编程原理的教材,基于多核处理器和分布式系统的并发与同步机制。内容包括并发对象、并发空间、时间与顺序、原子操作、锁、无锁算法、事务内存等。适合深入理解并行计算的理论基础。
推荐理由:并行编程理论经典,讲解并发与同步机制深入浅出。
[12] 《Introduction to High Performance Computing for Scientists and Engineers》- Georg Hager, Gerhard Wellein
面向科学工程应用的高性能计算入门书。内容包括现代处理器架构、内存层次结构、并行编程模型(MPI、OpenMP)、性能分析工具、优化策略等。强调实际性能优化和问题诊断。
推荐理由:HPC实践导向,适合科学计算背景的读者学习。
B.2 在线课程
B.2.1 深度学习与机器学习
[1] Stanford CS231n: Convolutional Neural Networks for Visual Recognition
斯坦福大学计算机视觉课程,由李飞飞教授主讲。内容包括图像分类、目标检测、图像分割等视觉任务背后的深度学习模型。课程配套详尽的lecture notes、作业和项目,是计算机视觉入门的最佳课程之一。
链接:http://cs231n.stanford.edu/
推荐理由:计算机视觉必学课程,理论结合实践,资源丰富。
[2] Stanford CS224n: Natural Language Processing with Deep Learning
斯坦福大学自然语言处理课程,由Christopher Manning教授主讲。内容包括词向量、循环神经网络、Transformer、注意力机制、大语言模型等NLP核心技术。课程提供完整的 lecture videos、slides和 assignments。
链接:http://cs224n.stanford.edu/
推荐理由:NLP入门与进阶必学课程,讲解系统深入。
[3] DeepLearning.AI Specialization - Andrew Ng
吴恩达创办的深度学习专项课程,包含神经网络基础、改善神经网络、机器学习策略、卷积神经网络、序列模型五门课程。内容循序渐进,配有大量练习和编程作业,适合零基础入门。
链接:https://www.coursera.org/specializations/deep-learning
推荐理由:入门首选,循序渐进,配套完善。
[4] Fast.ai: Practical Deep Learning for Coders
由Jeremy Howard创办的实践导向深度学习课程。强调"自上而下"的学习方式,先让学习者看到实际效果再深入原理。课程涵盖计算机视觉、自然语言处理、推荐系统等应用,以及 fastai 库的使用。
链接:https://www.fast.ai/
推荐理由:实践导向,入门快速,适合想快速应用深度学习的开发者。
B.2.2 体系结构与编译器
[5] Stanford CS149: Parallel Computing
斯坦福大学并行计算课程。内容包括现代并行硬件(多核CPU、GPU)、并行编程模型(CUDA、OpenMP)、并行算法设计、性能分析等。强调从体系结构角度理解并行计算。
链接:https://cs149.stanford.edu/
推荐理由:并行计算系统学习,理论与实践结合。
[6] MIT 6.004: Computation Structures
MIT计算机体系结构入门课程。内容包括数字电路、组合逻辑、时序逻辑、指令集架构、流水线、缓存在内存、虚拟内存等。适合作为体系结构的基础学习。
链接:https://ocw.mit.edu/6.004
推荐理由:体系结构基础,概念清晰,配套完善。
[7] LLVM Tutorial
官方的LLVM编译器框架教程,通过一系列小例子教授如何使用LLVM开发编译器。内容包括词法分析、语法分析、AST构建、中间表示、代码生成、优化等。
链接:https://llvm.org/docs/tutorial/
推荐理由:LLVM入门必读,官方教程,循序渐进。
B.2.3 AI系统专项
[8] UCLA CS260: Large-Scale Machine Learning
加州大学洛杉矶分校的大规模机器学习课程。内容包括分布式机器学习、参数服务器、数据并行、模型并行、混合并行等。适合有一定基础后深入学习分布式训练。
推荐理由:分布式ML系统学习,专注大规模场景。
[9] University of Washington CSE599W: System for ML
华盛顿大学的机器学习系统课程。内容涵盖推理系统、模型服务、硬件加速、编译器优化等。课程PDF和 lecture notes公开可下载。
链接:http://dlsys.cs.washington.edu/
推荐理由:ML系统完整视角,内容前沿,资料公开。
B.3 重要论文
B.3.1 深度学习基础
[1] "Attention Is All You Need" - Vaswani et al., 2017
Transformer架构的奠基论文。提出了完全基于注意力机制的网络架构,摒弃了传统的卷积和循环结构。Transformer成为大语言模型和现代AI的基础架构,是AI领域最重要的论文之一。
推荐理由:现代AI的基石,必读论文。
[2] "ImageNet Classification with Deep Convolutional Neural Networks" - Krizhevsky et al., 2012
AlexNet论文,深度学习复兴的开端。展示了深度卷积神经网络在大规模图像分类任务上的巨大潜力,引发了深度学习在计算机视觉领域的革命。
推荐理由:深度学习复兴标志,CNN经典。
[3] "Very Deep Convolutional Networks for Large-Scale Image Recognition" - Simonyan and Zisserman, 2014
VGGNet论文,通过更深的网络证明网络深度对性能的重要性。采用3x3小卷积核堆叠的设计原则影响深远。
推荐理由:网络深度重要性的经典证明。
[4] "Deep Residual Learning for Image Recognition" - He et al., 2016
ResNet论文,提出了残差连接解决了深层网络训练困难的问题。残差连接成为现代深度学习模型的标准组件。
推荐理由:残差学习必读,解决深度网络训练问题。
[5] "Batch Normalization: Accelerating Deep Network Training" - Ioffe and Szegedy, 2015
Batch Normalization论文,提出了在每个batch上对数据进行归一化的技术,大幅加速深度网络的训练。
推荐理由:深度学习训练的重要技术,必读。
[6] "Dropout: A Simple Way to Prevent Neural Networks from Overfitting" - Srivastava et al., 2014
Dropout论文,提出了防止过拟合的简单有效技术。通过在训练时随机丢弃神经元来减少过拟合。
推荐理由:正则化经典,简单有效。
B.3.2 语言模型与大模型
[7] "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding" - Devlin et al., 2018
BERT论文,提出了基于Transformer的双向预训练语言模型,在多项NLP任务上取得了突破性成绩。
推荐理由:BERT开启预训练语言模型时代。
[8] "GPT-3: Language Models are Few-Shot Learners" - Brown et al., 2020
GPT-3论文,展示了超大参数语言模型的涌现能力。1750亿参数的模型展示出惊人的泛化能力。
推荐理由:大语言模型里程碑,涌现能力展示。
[9] "Language Models are Unsupervised Multitask Learners" - Radford et al., 2019
GPT-2论文,证明了语言模型可以通过无监督学习获得多任务能力。
推荐理由:GPT系列开端,zero-shot学习展示。
[10] "Scaling Laws for Neural Language Models" - Kaplan et al., 2020
OpenAI关于缩放定律的论文,发现了模型性能随参数、数据、计算量变化的幂律关系。
推荐理由:理解大模型Scaling的基础论文。
B.3.3 模型优化与压缩
[11] "Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding" - Han et al., 2015
模型压缩的经典论文,提出了剪枝、量化和霍夫曼编码结合的深度压缩方法。
推荐理由:模型压缩必读,经典三步法。
[12] "Learning both Weights and Connections for Efficient Neural Networks" - Han et al., 2015
Lottery Ticket Hypothesis的前身工作,证明了网络剪枝的有效性。
推荐理由:剪枝必读,实验详尽。
[13] "Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference" - Jacob et al., 2018
Google提出的训练后量化方法,也是TensorRT量化算法的理论基础。
推荐理由:工业级量化方法,实际应用广泛。
[14] "Distilling the Knowledge in a Neural Network" - Hinton et al., 2015
知识蒸馏的开山之作,提出了通过教师-学生网络进行知识迁移的方法。
推荐理由:知识蒸馏必读,经典框架。
B.3.4 AI编译器与系统
[15] "TVM: An Automated End-to-End Optimizing Compiler for Deep Learning" - Chen et al., 2018
TVM论文,提出了端到端的深度学习编译器框架,支持多种硬件后端自动优化。
推荐理由:AI编译器必读,工业级应用广泛。
[16] "XLA: Compiling Machine Learning for Performance and Portability" - TensorFlow团队
XLA编译器的设计论文,介绍了TensorFlow的编译器优化方法。
推荐理由:了解XLA架构必读。
[17] "Glow: Graph-Lowering Intermediate Representation" - Rotem et al., 2018
Glow编译器的论文,介绍了PyTorch的编译器架构设计。
推荐理由:Glow设计必读,PyTorch 2.0基础。
[18] "The LLVM Compiler Infrastructure" - Lattner and Adve, 2004
LLVM的原始论文,介绍了LLVM编译框架的设计和架构。
推荐理由:编译器基础设施必读,LLVM基础论文。
B.3.5 硬件加速
[19] "In-Datacenter Performance Analysis of a Tensor Processing Unit" - Jouppi et al., 2017
Google TPU论文,首次公开了TPU的设计和性能分析。
推荐理由:AI专用硬件必读,Google官方资料。
[20] "DianNao: A Small-Footprint High-Throughput Accelerator for Ubiquitous Machine-Learning" - Chen et al., 2014
寒武纪DianNao论文,神经网络加速器的开创性工作。
推荐理由:NPU设计经典,影响深远。
B.4 技术文档
B.4.1 深度学习框架
[1] PyTorch Documentation
PyTorch官方文档,提供完整的API参考、教程和指南。涵盖张量操作、自动微分、神经网络模块、优化器、数据加载等核心功能。是PyTorch开发的首选参考。
链接:https://pytorch.org/docs/
[2] TensorFlow Documentation
TensorFlow官方文档,包含TensorFlow 2.x的完整指南。涵盖 Keras API、数据管道、模型训练、部署等。是TensorFlow开发的首选参考。
链接:https://www.tensorflow.org/
[3] JAX Documentation
Google的JAX框架文档,介绍函数式编程风格的自动微分和XLA编译。适合对函数式编程和高级优化感兴趣的开发者。
链接:https://jax.readthedocs.io/
B.4.2 推理引擎与部署
[4] NVIDIA TensorRT Documentation
TensorRT官方文档,详细介绍推理优化和部署的方法。涵盖模型转换、精度校准、优化配置、推理API等。
链接:https://docs.nvidia.com/deeplearning/tensorrt/
[5] ONNX Documentation
ONNX官方文档,介绍模型交换格式的定义和使用方法。
链接:https://onnxruntime.ai/docs/
[6] NVIDIA Triton Inference Server Documentation
Triton推理服务框架文档,介绍模型服务化部署、动态批处理、模型管理等功能。
链接:https://docs.nvidia.com/deeplearning/triton-inference-server/
B.4.3 编译器与工具链
[7] LLVM Documentation
LLVM官方文档,提供LLVM工具链的完整参考。包括Clang C/C++编译器、LLVM IR文档、Pass开发指南等。
链接:https://llvm.org/docs/
[8] TVM Documentation
Apache TVM官方文档,介绍深度学习编译优化的使用方法。涵盖Relay IR、AutoTVM、Tensor Expression等模块。
链接:https://tvm.apache.org/docs/
[9] CUDA Documentation
NVIDIA CUDA官方文档,涵盖CUDA编程模型、内存管理、并行算法、性能优化等。
链接:https://docs.nvidia.com/cuda/
[10] ROCm Documentation
AMD ROCm官方文档,介绍GPU计算平台和工具链。
链接:https://rocm.docs.amd.com/
B.4.4 硬件架构
[11] NVIDIA CUDA Programming Guide
CUDA编程指南,详细介绍GPU并行编程的模型和实践。
链接:https://docs.nvidia.com/cuda/cuda-c-programming-guide/
[12] Intel Architecture Optimization Manual
Intel x86架构优化手册,包含处理器微架构细节和优化指南。
链接:https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
B.5 开源项目
B.5.1 深度学习框架
[1] PyTorch
Facebook开发的深度学习框架,以动态计算图和Python优先设计著称。是目前最流行的研究框架之一,拥有庞大的社区生态。
链接:https://github.com/pytorch/pytorch
[2] TensorFlow
Google开发的深度学习框架,2.x版本融合了Keras,提供静态和动态两种计算图模式。是工业界应用最广泛的框架。
链接:https://github.com/tensorflow/tensorflow
[3] JAX
Google开发的函数式深度学习框架,结合了自动微分和XLA编译。支持纯函数式编程和即时编译执行。
链接:https://github.com/google/jax
[4] MindSpore
华为开发的深度学习框架,支持端云协同的统一设计和自动并行。国产框架的重要代表。
链接:https://github.com/mindspore-ai/mindspore
[5] PaddlePaddle
百度开发的深度学习框架,中文文档友好,拥有丰富的产业级模型库。
链接:https://github.com/PaddlePaddle/Paddle
B.5.2 AI编译器
[6] Apache TVM
端到端的深度学习编译器,支持从高层模型到底层硬件的自动优化。是目前最活跃的开源AI编译器项目。
链接:https://github.com/apache/tvm
[7] MLIR
LLVM旗下的多级中间表示框架,提供可扩展的编译器基础设施。支持构建领域特定编译器。
链接:https://github.com/llvm/llvm-project
[8] ONNX
开放神经网络交换格式,支持不同框架间的模型互操作。是模型转换和部署的重要中间格式。
链接:https://github.com/onnx/onnx
B.5.3 推理引擎
[9] TensorRT
NVIDIA的高性能推理引擎,提供模型优化和运行时加速。支持多种精度推理优化。
链接:https://developer.nvidia.com/tensorrt
[10] OpenVINO
Intel的推理部署工具套件,支持Intel硬件上的模型优化和加速。
链接:https://github.com/openvinotoolkit/openvino
[11] NVIDIA Triton Inference Server
开源的推理服务框架,支持多模型管理和动态批处理。
链接:https://github.com/triton-inference-server/server
[12] NCNN
腾讯开源的端侧推理引擎,针对移动端优化,支持多平台。
链接:https://github.com/Tencent/ncnn
B.5.4 模型压缩工具
[13] Intel Neural Compressor
Intel的模型压缩工具,支持量化、剪枝、知识蒸馏等多种压缩方法。
链接:https://github.com/intel/neural-compressor
[14] AMD MIGraphX
AMD的模型优化和推理工具,支持GPU上的高效推理。
链接:https://github.com/ROCm/AMDMIGraphX
B.5.5 分布式训练
[15] DeepSpeed
Microsoft的深度学习优化库,专注于大模型分布式训练加速。支持 ZeRO优化、混合精度、梯度检查点等。
链接:https://github.com/microsoft/DeepSpeed
[16] Megatron-LM
NVIDIA的大规模Transformer训练框架,支持模型并行和混合并行。
链接:https://github.com/NVIDIA/Megatron-LM
[17] Horovod
Uber开源的分布式训练框架,支持TensorFlow、PyTorch等多种框架。
链接:https://github.com/horovod/horovod
B.6 学习资源
B.6.1 博客与专栏
[1] Lil'Log - Lilian Weng
OpenAI研究员的博客,内容涵盖深度学习、机器学习系统、安全等。文章深入浅出,配有详尽的图解。
链接:https://lilianweng.github.io/
[2] Towards Data Science - Medium
数据科学和机器学习的中文博客平台,收录大量优质技术文章。
链接:https://towardsdatascience.com/
[3] The Gradient - Medium
AI和深度学习领域的高质量博客,由学者和工程师撰写。
链接:https://thegradient.pub/
[4] 知乎 AI 话题
中文AI领域高质量问答和文章平台,包含众多专业人士分享。
链接:https://www.zhihu.com/topic/Artificial-Intelligence
B.6.2 视频课程
[1] 3Blue1Brown 深度学习系列
用动画直观展示神经网络和深度学习概念,B站有官方中文配音版本。
链接:https://space.bilibili.com/88461692
[2] 李沐 深度学习课程
亚马逊工程师李沐的中文深度学习课程,配合作者书籍《动手学深度学习》。
链接:https://space.bilibili.com/1567748478
[3] Two Minute Papers
每期两分钟介绍AI最新论文,涵盖前沿研究动态。
链接:https://www.youtube.com/@TwoMinutePapers
B.6.3 社区与论坛
[1] Papers with Code
结合论文和代码的学术平台,可以找到最新论文的实现代码。
链接:https://paperswithcode.com/
[2] Stack Overflow
程序员问答社区,可以找到大量技术问题的解答。
链接:https://stackoverflow.com/
[3] Reddit Machine Learning
机器学习社区,讨论前沿研究和应用实践。
链接:https://www.reddit.com/r/MachineLearning/
[4] GitHub
全球最大的开源代码托管平台,可以找到大量AI相关项目。
链接:https://github.com/
B.7 进阶阅读建议
B.7.1 学习路径建议
初学者建议按照以下路径学习:
- 机器学习基础:先掌握机器学习基本概念和算法
- 深度学习理论:学习深度学习的核心概念和经典网络
- 深度学习框架:选择一个主流框架(PyTorch或TensorFlow)进行实践
- 计算机体系结构:了解GPU、CPU架构和并行计算基础
- AI编译器原理:学习传统编译器和AI编译器知识
- 推理系统与优化:深入了解模型部署和优化技术
- 分布式训练:学习大规模训练的并行策略
B.7.2 专题深入建议
根据不同方向,建议深入阅读:
- 系统方向:重点学习计算机体系结构、并行计算、编译器技术
- 算法方向:重点学习优化理论、新型网络结构、模型压缩方法
- 部署方向:重点学习推理引擎、模型优化、硬件加速
- 大模型方向:重点学习分布式训练、并行策略、推理优化
B.7.3 论文阅读建议
建议从以下方式获取最新论文:
- arXiv:cs.LG、cs.CL、cs.CV分类下的最新论文
- Google Scholar:设置关键词提醒追踪最新研究
- Papers with Code:按任务和benchmark组织论文
- Conference proceedings:NeurIPS、ICML、CVPR、ACL等顶会论文集
本参考文献列表将持续更新,欢迎读者推荐优质资源共同完善。