抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

cutlass cute实现flash attention

用cutlass cute实现flash attentionflash attention自顶向下(虽然我学cutlass是自底向上学的但是感觉快速上手应该自顶向下学)。因为有了cutlass cute用户就可以方便的实现一些功能了, 即一些cuda编程的范式: cuda程序范式: global mem -> share mem -> reg -> compute blo...

DeepSeek-V2架构

DeepSeek-V2架构 简单的说MLA + MoE 参数嵌入更快: 利用类似lora的技术1234567891011self.q_a_proj = nn.Linear( self.hidden_size, config.q_lora_rank, bias=config.attention_bias)self.q_a_layernorm = DeepseekV2RMSNorm(co...

Deepspeed多机微调使用和踩坑记录

Deepspeed多机微调使用和踩坑记录官方demoDeepSpeedExamples step1_supervised_finetuning 基本使用NOTE: deepspeed只需要在一个节点上启动, 它会自动使用ssh根据hostfile的内容去其他节点启动程序。官方演示 多机训练主要有两个步骤: 配置ssh免密登陆: 以便deepspeed能访问其他节点然后自动启动其他节点的程序...

投机采样推理原理

投机采样推理原理 基本原理 正确性证明 推理加速证明 源码实现 基本原理一次正确的生成其实使用小模型模型就能大概率正确的完成, 但连续多次的正确的概率就会下降, 一步错步步错。如果以大模型为基准, 则大模型的生成的百分百正确的, 但是大模型相对小模型需要耗费更多的时间来完成。 在自回归模型中, 由于因果关系的存在, 模型在推理时每次只能生成下一个token, 这种一次生成一个token的阶...

手把手实现Ring Attention

手把手实现Ring Attention 官方ring attention是jax实现的,这里用pytorch实现一个ring attention的学习版本。 source code 是ring attention是attention机制的分布式版本。分布式的持有QKV分块从而降低单机的显存消耗。 主要流程: 数据并行模拟: 不想折腾DDP, 使用一些技巧来模拟 p2p通信 给ring at...

神经网络中的激活值

神经网络中的激活值 什么是激活值 一层神经网络是数据就是激活值 为什么要保存激活值 因为反向传播过程中需要对函数的参数求偏导, 那么结果就和激活值相关 如: f(x) = ax, g(x) = bx, 神经网络为: g(f(1)) $d = f(1)$, $g’_b(x) = \frac{dg}{db} = x$, $f’_a(x) = \frac{df}{da} = x$ $g’_b(...

CUDA编程小记

CUDA编程小记这个教程的小记/速查 核函数(kernel)kernel的定义和启动形如,使用__global__修饰的函数就是kernel,由host端启动,在device端运行。如果使用__host__就是就是host端代码,cuda编译器不会编译到gpu上。使用__device__修饰就是设备端代码,只能在设备上运行 1234__global__ void cuda_kernel(.....

llama2.c体验

llama2.c体验 Have you ever wanted to inference a baby Llama 2 model in pure C? No? Well, now you can! 为什么要体验llama2.c? 因为我现在在做一些大模型相关的东西, 但是设备资源又不是十分充足, 想要先通过一个很小很小的llama来验证跑通再迁移到实验环境。偶然发现llama2.c的环境...

聊天应用的系统设计

聊天应用的系统设计 ref https://www.youtube.com/watch?v=xyLO8ZAk2KE&ab_channel=ByteMonk https://medium.com/@m.romaniiuk/system-design-chat-application-1d6fbf21b372 https://bytebytego.com/courses/system-d...

leveldb读写操作笔记

leveldb读写操作笔记 https://leveldb-handbook.readthedocs.io/zh/latest/rwopt.html 整体架构 存内数据结构 MemTable 一种有序的存内结构(跳表) 写入先写入memtable, 当内容达到阈值后将其转换成immutable memtable Immutable MemTable 只读的memtable, 可以用来后...

1 / 24