据说这本书很厉害,配有能一键运行的代码(github),十一期间买来学一学。
目录
Chapter | Notebook |
---|---|
Chapter 1: Introduction to Language Models | 第1章Jupyter笔记 |
Chapter 2: Tokens and Embeddings | 第2章Jupyter笔记 |
Chapter 3: Looking Inside Transformer LLMs | 第3章Jupyter笔记 |
Chapter 4: Text Classification | |
Chapter 5: Text Clustering and Topic Modeling | |
Chapter 6: Prompt Engineering | |
Chapter 7: Advanced Text Generation Techniques and Tools | |
Chapter 8: Semantic Search and Retrieval-Augmented Generation | |
Chapter 9: Multimodal Large Language Models | |
Chapter 10: Creating Text Embedding Models | |
Chapter 11: Fine-tuning Representation Models for Classification | |
Chapter 12: Fine-tuning Generation Models |
第1章 大语言模型简介
关键词
词袋、稠密向量嵌入、注意力、表示模型、编码器、生成模型、解码器。
2025-10-04
在colab上尝试的,好用是好用但还是麻烦了点。
可以看出来,这本书确实是着重在用插图讲概念,不会深入原理,但这样恰好方便入门。对于RNN、Transformer、注意力、解码器、编码器等概念,大概只能有一个模糊的认识,希望后面的章节有更深入的讲解吧。要是实在不深入只能去追着注解啃论文了。下载模型、分词器并生成输出的代码真的可以一键运行,就很好用。将听起来高深莫测的LLM变为python中可操作的对象,方便上手去感受,而不是仅仅纸上谈兵讲一堆概念,倒是很符合注重实践的工程思维。
2025-10-05
又在cloudstudio上运行了一遍,账号体系有点混乱,不小心搞了三个账号,部分地方需要稍微配个变量加个双引号才能正常运行。
比如
%%capture
!pip install transformers>=4.40.1 accelerate>=0.27.2
要改为
%%capture
!pip install "transformers>=4.40.1" "accelerate>=0.27.2"
在下载模型前要使用hugging face的镜像
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
第2章 词元和嵌入
关键词
词元、分词器(词、子词、字符、字节)、嵌入、分词器决策点(算法(BPE, WordPiece, SentencePiece)、参数(词表大小,特殊词元,大小写策略,不同语言处理)、数据集)、词嵌入方法(word2vec, Glove, fastText, 语言模型上下文)、skip-gram、负采样、推荐系统。
2025-10-05
这一章纠正了我一直以来的一个误解,可能受游戏影响吧,我一直以为token是算力代币或者一次问答被切分成多个批处理小段落的意思,结果是指更小的词元。
嵌入,不仅让人联想到在学校学的t-SNE。总结里还说了LLM前的word2vec等流行的词嵌入方法很大程度被上下文相关的词嵌入所取代。就感觉工业部门还确实是实用主义,有种机器学习把统计学拍在沙滩上的感触。再者就目前来看,python代码中对于LLM的框架不只是约定俗成,甚至好像成熟至写固定死了,不知道这些框架支不支持未来新型的架构呢?
有一个小想法,把大写换成小写加一个大写标记,这样既能享受大小写区分,又能不占用过多的词表空间。
继续在cloudstudio上实验。这次的install倒是不需要加双引号了。
分词器部分,文中列举的几个都不支持中文啊,全是乱码问号。感觉翻译为中文时可以适量添加本土化内容。
自己尝试了两个
text_chinese = """
中文是咋样分词的?
试试"bert-base-chinese"和"Qwen/Qwen2.5-1.5B"
"""
show_tokens(text_chinese, "bert-base-chinese")
show_tokens(text_chinese, "Qwen/Qwen2.5-1.5B")
第3章 LLM的内部机制
关键词
自回归、前向传播、分词器、Transformer块(前馈神经网络+自注意力)、语言建模头、贪心解码、采样、注意力头、查询/键/值(投影)矩阵、稀疏注意力、多头/分组查询/多查询注意力、残差连接、层归一化、位置嵌入。
2025-10-6
一如既往的只“讲个热闹”,有些地方被带过了。
一个矛盾的地方在于,强调了transformer支持并行计算,每个词元有独立的计算流,但又只计算最后一条计算流用于下一词元的预测。问了一下D老师,说训练的时候确实可以大规模并行,推理或者生成的时候编码器可以并行处理输入序列,但之后就只能串行输出了,像流水线那样。
再一个地方,关于查询/键/值(投影)矩阵的维度。
书中插图看起来,当前位置向量的维度是1x3,序列中的其他位置是3x3,查询/键/值投影矩阵三者都是3x3,查询/键/值投影矩阵三者都是4x3。又说到输入与投影矩阵相乘得到新矩阵,这里一开始理解为了当前位置向量(1x3)去乘投影矩阵(3x3)了,怎么也得不到(4x3)的矩阵啊,一度以为是要rbind,其实是要将其他位置(3x3)与当前位置(1x3)rbind一下形成(4x3)的输入矩阵。
总结一下输入矩阵是(序列长度x嵌入维度),投影矩阵是(嵌入维度x查询向量维度),查询矩阵(序列长度x查询向量维度),查询向量(1x查询向量维度),键矩阵(序列长度x查询向量维度),相关性分数(1x序列长度),这样就解释的通了。建议图中不要画那么多方阵,容易有误解。
1 条评论
新盘 上车集合 留下 我要发发 立马进裙