Linux裸机配置
Linux裸机配置驱动,CUDA,Docker,Nvidia-Docker裸机配置深度学习环境只有网络功能,先挂载磁盘至/data。
安装GCC1sudo apt install build-essential
安装Nvidia驱动
查看显卡型号(4位16进制数)
1lspci | grep -i vga
进入网站 https://admin.pci-ids.ucw.cz/read/PC/10de/ ,查询4位16进制数,得到显卡型号
Nvidia官网下载对应版本的驱动(https://www.nvidia.com/en-us/drivers)文件 NVIDIA-Linux-x86_64-550.107.02.run,将文件放进/root目录下
安装驱动 sh /path/to/your/driver,nvidia-smi正常使用即为安装成功
安装CUDA
检查CUDA版本:12.4,查看Linux版本:Ubuntu 22.04.4 LTS
进入网站 https://developer.nvidia.com/cuda-12-4-0-download-archive, ...
CogVLM2部署实践
TGI部署CogVLM2入职智谱后的第一项工作的一个Part,浅浅记录。
前置准备CUDA 12.1 的ubuntu宿主机一台
注意:cuda版本应与torch版本对应,实测 CUDA 12.0 也可以正常运行
下载适配TGI的CogVLM2模型至路径/model:
123from modelscope import snapshot_download model_dir = snapshot_download('ZhipuAI/cogvlm2-llama3-chinese-chat-19B-tgi', cache_dir="/data/cogvlm2-llama3-chinese-chat-19B")
下载适配CogVLM2的TGI包至路径/tgi: https://github.com/leizhao1234/cogvlm2
正式流程12345678910111213141516171819202122232425262728# 下载conda并安装curl -O https://repo.anaconda.com/miniconda/Min ...
《黑神话-悟空》游玩感想
《黑神话-悟空》游玩感想前言8月24日上午,《黑神话-悟空》刚发售四天,打过二郎神和最终boss后,我想来不及进一步细细品味,便需要立即投身迫在眉睫的预推免之中,然而在此之前,还是有必要为这款游戏谈一谈感触,画上一个短暂不圆满的句号。
过去作为铁血魂小将,我在高二升高三的暑假肝了150小时的魂三,第一支预告片发出的第一时刻我便在现场见证历史,随后被其深深震撼,“魂游”(别喷我)+西游,要素拉满,而且Demo里的美术,场景等已经相对成熟,我当时便断定这款游戏必定会掀起轩然大波,随后了解到当时只是在开发初期,缺人手,发售遥遥无期。还记得哥几个都在开玩笑说,大学能玩上就是胜利,接着投入到备战高考的复习中去。
时间一晃过了四年,我经历了高考,选择了北航,沉浸式游玩了《艾尔登法环》,进入了计算机学院,遭受两年惨无人道的折磨并成长着,这款游戏想必也是如此。每年的相同时候都会发布最新预告片,我也会毫无例外的准时观看,然而随着课业压力的加重,大幅降低了很快想玩到的期待感,直至最近,正值在高考后的又一人生关键转折点,黑神话终于千呼万唤始出来,我见证了它的从无到有,彷佛它也见证了我的前半段人生。
现在发售 ...
分布式系统
分布式系统解决单节点的算例和内存不足
并行方法:
数据并行:一个批次内N个数据,使用M个并行设备训练,每个设备需要拷贝一份网络参数,各自计算出梯度后,由集合通信的AllReduce进行梯度聚合
模型并行:分为算子内并行(一个算子分配到不同的设备上),算子间并行(不同算子分配到不同的设备上)
混合并行:数据并行+模型并行
流水线并行:
模型并行的劣势:一个设备在计算时另一个设备会空闲
流水线改进:将一个小批次进一步拆分为多个微批次,如下图,提高并行训练效率。核心:微批次大小
过大:每个微批次样本过少,无法充分利用硬件加速
过小:更长时间的流水线气泡
机器学习的集群架构:
计算集群:机器学习模型分布训练的整套设备。多台服务器放置在一个机柜内,由架顶交换机管理,多台架顶交换机间可增加骨干交换机。即通常由树状的拓扑结构构建,叶子节点是服务器,上层是交换机。
核心设计需求:跨机柜通信会产生网络带宽超额认购,应将网络通信限制在机柜内
训练流程(共有N个模型副本分布在N个设备):
各自计算梯度后,N-1个模型副本的梯度同步到主模型中
主模型计算平均梯度
将平均梯度广播到 ...
Deepseekv2学习笔记
Deepseek V2笔记基于Decoder-Only架构,对FFN和Attention做出了改进
MLA(Multi-head Latent Attention):
传统MHA:需要 $2 \ast len \ast nhead \ast d_{nhead}$ 的空间存储 KV Cache
MLA: 将K和V进行低秩联合压缩,以减少KV缓存,类似LoRA。将KV以低维度缓存,使用时再通过投影层变换回去。减少内存占用的同时丢失部分精度。
旋转位置编码:待补充
FFN(MoE):
MoE: 混合专家模型,在本模型架构中主要是在FFN层体现
将专家分为共享专家与路由专家,以token为粒度:
共享专家:每个 $input$ 必须要通过$N_s$个共享专家,无权重,直接相加。
路由专家:在$N_r$个路由专家中选取$Top_k$个亲和度最高的专家激活,并计算每个激活专家归一化后的权重$g_{i,t}$,将输出按权重分配相加。
如何选择专家:router的权重为$R^{nRoutedExperts \ast gatingDim}$($gatingDim=h$),对每个token( ...
Ray学习笔记
Ray使用文档问题
ray的用法做个拆解,弄清ray的基础原理和用法
着重介绍利用ray如何部署 vLLM?比如怎么启动ray,怎么启动多个vLLM实例,多个dp rank 怎么调用它?
Ray是什么Ray是一个开源分布式计算框架,为AI等上层应用提供了并行处理的计算层,大幅降低分布式工作流程的复杂性。
可以跨多节点和GPU并行和分配ML的工作负载
可以提供计算抽象(统一的API)进行ML系统的扩展集成
自动处理关键流程,如编排,调度,容错,自动缩放等。
大量的库都使用Ray作为并行执行的组件
Ray的基本原理Ray CoreTask(任务):异步执行的Ray函数称作“任务”,也成为Ray远程函数。当一个新的Task被实例化时,会创建一个新的进程(worker)进行对其的调度。Ray使任务能够根据CPU,加速器等资源来指定其资源需求。
使用方式:
12345@ray.remote # 通过该装饰器将函数改装为Ray远程函数,默认分配一个CPUdef fun(a): return aobj_ref = fun.remote(a) # 通过使用remote()方法激活函 ...
软工感想
EPP小组软工感想_Copyfrom zjy_
hyx
经过这次软工项目的磨砺,我的专业能力、沟通技巧和团队合作意识得到了前所未有的提升,使我受益匪浅。在这个综合性的软件开发过程中,我身兼前端工程师、后端工程师和服务器运维工程师三重职责,全面锻炼了我的各项技能。
在前端开发的环节中,我逐渐摒弃了仅仅套用模板的陋习,开始深入理解前端开发的规范和技巧。特别是针对CSS样式的表现力,我获得了更加深刻的认知,能够灵活运用各种样式属性来打造出更加美观、符合用户体验的界面。在后端开发方面,我进一步加深了对Django框架的理解。通过对模型、视图、模板和ORM映射等关键概念的掌握,我能够更加熟练地运用Django进行业务逻辑的实现和数据库操作。此外,我还通过实践掌握了前后端部署的技巧,对SSL证书和Nginx的配置也有了更加清晰的认识。更值得一提的是,我自主设计并实现了一套Django项目本地、GitHub和服务器三端流水线部署的框架,极大地提高了项目的开发效率和可维护性。
在这个过程中,我深刻感受到了团队合作的重要性。尽管我们团队中每个人都面临着繁重的课外任务,但大家都能够积极投入,尽全力完成自己 ...
计网实验常用指令
计网实验期末考试常用指令配置NAT(关键)123456789101112131415161718[R1]acl basic 2001 // 在V7设备中(线下设备),使用acl basic命令;在V5设备中(线上设备),使用acl number命令[R1-acl-2001]rule permit source 10.0.0.0 0.0.0.255 // 根据局域网的网段配置[R1-acl-2001]rule deny sourse any // 允许IP源地址为10.0.0.0/24的外出数据包[R1]nat address-group 1 // 进入地址池1[R1-address-group-1]address 192.168.5.105 192.168.5.109 // 定义一个包含5个公网地址的地址池,地址池名为1[R1]interface e 1/0/1[R1-Ethernet 1/0/1]nat outbound 2001 address-group 1 // 在出接口e 1/0/1启动地址转换,指定number和group[R1]ip route-static 0.0.0. ...
大三下总结
大三下学期小结在大三下,我终将直面自己的未来。
即使如今本学期尚未结束,一切都并未尘埃落定,但在这寥寥几个月内我的心境,所思所想发生了翻天覆地的变化,我不清楚这趟列车究竟通往何方,迷茫与清晰,自卑与自信交错地占据了这个学期。
从年初到今年的四月份,我的心里只有一件事,那就是要在北航的冯如杯上证明自己,我们在征集的项目中选择了一个感兴趣的“变色龙”项目,并结识了一位专精学术的博士学长,一拍即合。我最初为自己定下的目标是保底二等奖(去年三等奖),从寒假开始固定一周一次的论文汇报,确定方向思路,再到学期初高强度的开发,没日没夜的改模型,跑实验,很幸运的是我们的方法work了,即使不多但还是在真实世界呈现了效果,同时我们的指导老师自诩明白“冯如杯”这个游戏怎么玩,在PPT和答辩上多次在有益的方向指导了我们,这和去年的我们比已是质的飞跃,一切都在往冲击更高奖项的方向发展。然而实际却不尽如人意,这也是我大三下迷茫的开始,现场答辩以惨淡收场,我看着其他项目人均与xx企业合作,xx篇论文中稿,而我们的项目仅仅只有我们的团队,还有博士学长尚未被接收的工作,再加之后来听说今年计院想找回去年的场子,各大实验 ...