- 博客(45)
- 问答 (2)
- 收藏
- 关注
原创 第10节——三角函数积分(Trigonometric Integrals)
∫sinnxdx∫cosnxdx∫sinmxcosnxdxsin2x21−cos2xcos2x21cos2xsinxcosxsinxcosx21sin2x)sin2k1x奇数幂→留一个sin用换元cos2k1x奇数幂→留一个cos用换元∫sin3xsinx1−cos2x)ucosx∫sinxcosxd。
2025-12-10 20:15:28
653
原创 第9节——部分分式积分(Partial Fraction Decomposition)
∫QxPxdxdegPdegQ)多项式部分x1低阶QxPxx2−11x2−1x−1x1)x2−11x−1Ax1B21x−11−x11)x24x1x24AxBx2x−11xAx2Bx−1C∫x−a1dxln∣x−a∣∫ax2bxc1dxar。
2025-12-09 05:16:01
1108
原创 第7节——积分技巧(Integration Techniques)-代换积分法
【代码】第7节——积分技巧(Integration Techniques)-代换积分法。
2025-12-06 21:36:27
719
原创 第6节——微积分基本定理(Fundamental Theorem of Calculus,FTC)
【代码】第6节——微积分基本定理(Fundamental Theorem of Calculus,FTC)
2025-12-06 21:36:00
831
原创 第5节——定积分与面积
∫abfxdxlimN→∞∑i1NfxiΔx∫abfxdxN→∞limi1∑NfxiΔx把区间切成很多小段,每段宽度 dx用矩形逼近面积全部加起来小段越小 → 越准确极限就是积分的值。
2025-12-06 21:35:19
858
原创 第4节——高阶导数与反导数(积分的前置概念)
已经知道导数是“变化率”那么反导数就是“从变化率恢复原函数”反导数也叫 原函数(antiderivative)f′x2x⟹fxx2Cf′x2x⟹fxx2C注意这里有一个常数 C,这是因为:导数会把常数消掉,所以反导数必须保留它。
2025-12-05 18:19:46
1389
原创 第2节——Derivative(导数)
f′alimh→0fah−fahf′ah→0limhfah−fa这个公式非常重要,可以叫:差商(difference quotient)割线斜率逼近切线速度是位移变化 / 时间变化。
2025-12-05 18:18:29
969
原创 第1节——Limit(极限)
极限 = 逼近值。不是到达值。只要靠近 a,两侧都越来越接近某个 L,那 L 就是极限即使 f(a) 没定义,也不影响极限极限研究的不是“点的值”,而是“靠近点时的行为”。
2025-12-05 18:17:49
886
原创 第24节——手搓一个“ChatGPT”
训练循环基本可以沿用之前的的 LM 训练代码,只是 vocab_size 换成新的,数据换成这个 loader。注意:模型结构参数必须和当初训练时一样,否则 load 会报错。确保使用上面的加载词表加载了之前模型保存的词表,否则会映射出错。
2025-12-01 14:44:28
2043
2
原创 第23节——手搓 Chat 聊天机器人
之前的 encode_text / decode_ids 可以继续用:Chat 模板:给用户一句话,让模型续写“Assistant 的回答”格式化成:然后让模型从这里开始自回归生成。改写一下生成函数"""user_input: 用户输入的中文字符串返回:模型生成的 assistant 回复(字符串)"""# 构造 prompt:模仿训练时的格式user_input: 用户输入的中文字符串返回:模型生成的 assistant 回复(字符串)
2025-12-01 14:43:57
382
原创 第21节——手搓一个 LM (语言模型-文本续写)训练和推理器
复用之前的组件:MultiHeadSelfAttention、PositionwiseFeedForward、PositionalEncoding、TokenEmbedding现在写一个「只有 Self-Attn + FFN」的层:"""pad_mask: (B, L) —— 1 表示 PAD"""# 生成因果 mask(不能看未来)) # (L, L)x,pad_mask=pad_mask, # 屏蔽 PADattn_mask=subsequent_mask # 屏蔽未来# FFN。
2025-11-26 07:43:52
413
原创 第20节——实战:手搓一个 Copy Task 训练器
任务设计:输入 src_ids:一串整数 token(比如 [7, 10, 5, 9])目标:输出同样的序列(复制)目标侧我们用 teacher forcing:对于一条样本的目标序列(含 BOS):tgt_full = [BOS, x1, x2, x3, x4]模型输入:tgt_input = [BOS, x1, x2, x3]目标标签:tgt_output = [x1, x2, x3, x4]
2025-11-26 07:42:03
420
原创 第19节——手搓Transformer代码
如果你不是jupyter环境,自己把上面的代码复制粘贴到学习目录下的MyTransformer.py,确保可以在其他文件导入。jupyter notebook运行下面的Cell自动封装代码,记得改名为 MyTransformer.py。改输出的文件名为 MyTransformer.py,否则无法导入。
2025-11-26 07:39:39
292
原创 第18节——Transformer架构
经过 embedding -> 加位置编码 -> N 层 EncoderLayer(自注意力 Self-Attention)输入:源句子 src_ids。
2025-11-26 07:37:57
385
原创 第14节——Cross-Attention(交叉注意力机制)
2.Decoder 生成 “喜欢”3.Decoder 生成 “机器”4.Decoder 生成 “学习”1.Decoder 生成 “我”
2025-11-25 09:31:14
384
原创 第12节——Masked Self-Attention(掩码自注意力机制)
【代码】第12节——Masked Self-Attention(掩码自注意力机制)
2025-11-25 09:26:02
387
原创 第9节——手搓EncoderLayer代码
FFNxW2ReLUW1xb1b2FFNxW2ReLUW1xb1b2W1 让维度升高(产生更多特征)ReLU 引入非线性(更强表达力)W2 把维度降回 d_model(保证残差连接)这个结构满足:输入维度 = 输出维度 = d_model计算速度快、简单易训、参数量高,但又不会太高这是一种“最小化但有足够表达力”的结构。完全能加更多层:d_model → d_ff → d_ff → d_ff2 → d_model。
2025-11-24 06:53:43
1299
原创 第6节——Position-wise Feed Forward Network(FFN-逐位置前馈网络)
FFN = 对序列中每个 token 的向量独立地做同样的两层全连接网络。它完全不看上下文,只对每个位置(token)单独做非线性变换。FFN 就是把每个 token(向量)单独拿出来,通过一个小的两层神经网络进行“变形”,让 token 的内部特征表达更丰富。Transformer 的本质就是 —— MLP 架构 + Attention(信息混合器)Transformer 的本质就是一个能够通过 Attention 动态生成权重的 MLP。
2025-11-23 10:01:35
796
原创 第4节——Attention(batch、mask、MultiHead)(加入批次、掩码的多头注意力机制)
这里已经实现了一个完整的 Multi-Head Attention:输入:(B, L, d_model) 的序列向量通过 W_Q/W_K/W_V 生成 Q/K/Vreshape 成 (B, H, L, head_dim) 拆分多头使用 scaled_dot_product_attention 计算注意力(支持 mask)合并多头,映射回 (B, L, d_model)mask 用于屏蔽 pad、未来 token 等位置,防止模型“看见不该看的信息”。
2025-11-23 09:50:19
1166
原创 第3节——Mask(掩码机制)
注意力前的 Q·Kᵀ 得到 scoreMask 在 softmax 前屏蔽掉某些位置Causal Mask 保证解码器不能看到未来 tokenPadding Mask 屏蔽无效 padding tokenmasked_fill(-inf) + softmax = 屏蔽位置权重变 0。
2025-11-23 09:16:07
285
原创 第2节——Attention(注意力机制)
注意力机制是Transformer的核心,它通过动态加权机制自适应地关注输入序列中的相关信息。与传统CNN和RNN不同,注意力允许模型直接计算词与词之间的关联权重,解决了长距离依赖问题。具体实现中,每个词生成查询(Q)、键(K)和值(V)三个向量,通过Q与K的内积计算相似度得分,经softmax归一化后对V加权求和得到输出。代码示例展示了如何从输入矩阵X通过线性变换得到Q/K/V,并计算注意力权重。实际应用中,这些变换矩阵通过训练学习最优参数,使模型能有效捕捉语义关联。注意力机制通过√d_k缩放解决了维度导
2025-11-23 09:10:33
919
原创 第0节——带你从 0基础、0概念、0代码到理解和手搓 Transformer
《零基础手把手教你理解并实现Transformer》是一篇面向初学者的Transformer模型入门教程。作者Teng作为生物背景的学习者,通过自学整理出这套从概念到代码的完整学习路径。教程涵盖Encoder/Decoder结构、Attention机制等核心概念,并提供实战案例。学习要求包括基本Python语法和神经网络知识,强调动手实践(建议配合Jupyter notebook)。教程特点在于用浅显语言解释复杂概念,适合跨领域学习者,最终目标是帮助读者理解算法原理而非纠结具体计算。
2025-11-22 11:23:26
715
2
原创 基于大语言模型的pdf高亮翻译阅读器
👉项目开源地址:https://github.com/twy2020/PDF_Highlighter-AI_Translator。AI 提取关键生词,逐句翻译,一件导出生词表,句子表,导出带翻译注释的 pdf 文件!PDF Highlighter-AI Translator 应用发布了!🤗为有经常人工审阅,学习英文文献需求的老师和同学打造的 AI 辅助翻译pdf高亮阅读器!✨记得给作者 github 点个 star 😘。作者第一次发布自己的应用,希望大家提供建议。👏欢迎大家使用并提交建议和bug日
2025-07-06 05:43:13
203
原创 生信基础——三、Linux指令之文件操作
cd {path}的缩写,切换目录lslist的缩写,列出内容的缩写,创建目录,创建新文件cpcopy的缩写,复制文件或目录(复制目录需要-r参数)mvmove的缩写,移动文件或目录,或者给文件或目录改名vim,调用一个编辑器命令nano,也是调用一个编辑器的命令pwd,查看当前目录的路径find,查找相关内容以上是对本章的重要指令的概括,这些是探索 Linux 最基本的命令,如果出现遗忘,可以直接百度用法,或者问AI。
2025-01-22 12:33:29
918
原创 生信基础——二、安装Ubuntu
以下简单介绍有哪些方法来获取并使用Ubuntu系统,根据不同的使用场景选择合适的安装方式,一般来说,如果你需要一台长期运行,可稳定远程访问的服务器,用于科学计算,服务部署等,那么我推荐直接在物理主机上安装一个Ubuntu系统。如果你只是为了在Ubuntu环境下使用某些软件,并且仍然需要长期在Windows环境下工作,那么你应该考虑使用虚拟机软件来安装Ubuntu,特别的,如果你同时需要强大高效的硬件支持(如对GPU的调用),那么你应该考虑使用WSL技术来支持你的Ubuntu系统。
2025-01-20 17:04:19
946
原创 生信基础——一、Linux操作系统简介
Linux 是一种开源的操作系统,基于 Unix 设计,由 Linus Torvalds 于 1991 年首次发布内核。它具有免费、灵活、稳定和安全的特点,是现代服务器、嵌入式设备、超级计算机和开发环境中广泛使用的系统。Linux 提供命令行界面(CLI)和图形用户界面(GUI),可以满足开发者、企业和普通用户的多样化需求。常见的 Linux 发行版包括 Ubuntu、Fedora 和 CentOS,非常适合初学者学习和使用。
2025-01-20 16:57:44
1360
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅