自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lusing的专栏

Android爱好者,C++爱好者,汇编爱好者,数学爱好者

  • 博客(286)
  • 收藏
  • 关注

原创 UserWarning: Glyph 39640 missing from current font问题

是因为不支持中文字体导致的,设置为一个支持中文的字体就行了。另外,上面的改动会引起负号显示为方块,需要额外再加一条设置。

2024-02-01 22:19:32 414

原创 PMP的智慧(2) - 系统性思考及复杂性

在2021年推出的第七版《管理专业知识体系指南》中,PMI在传统的过程和ITTO的基础上,重新增加了12大项目管理原则。我们可以看到,干系人,质量,风险这三项原封不动从管理过程变成了管理原则。管家式管理、价值、团队、领导力这三种可以对应为整合管理、资源管理、沟通管理等内容。裁剪是第6版引入的概念,第7版中被提升为原则。系统思考、复杂性、适应性和韧性、变革这四项是第7版中比较新的内容。下面我们就来重点看看这些新增的原则。

2023-10-22 00:08:09 269

原创 2023年的深度学习入门指南(27) - CUDA的汇编语言PTX与SASS

通过前面的学习,我们了解了在深度学习和大模型中,GPU的广泛应用。可以说,不用说没有GPU,就算是没有大显存和足够先进的架构,也没法开发大模型。有的同学表示GPU很神秘,不知道它是怎么工作的。其实,GPU的工作原理和CPU是一样的,都是通过指令来控制硬件的。只不过,GPU的指令集和CPU不一样。下面我们就走进GPU的内部,看看如何用汇编来写GPU的程序。

2023-09-17 22:11:29 2027

原创 2023年的深度学习入门指南(26) - 在自己电脑上运行通义千问7b模型

通过量化,通义千问4位量化的模型大小为5.86G,可以在3060等小于16G的家用GPU上也可以运行起来。

2023-09-02 23:40:40 2089 1

原创 2023年的深度学习入门指南(25) - 通义千问7b

最近发生的两件事情都比较有意思,一个是连续开源了7b和13b模型的百川,对其53b闭源了;另一个是闭源项目通义千问开源了自己的7b模型。下面我们就来研究下通义千问7b.

2023-08-10 23:24:25 1152 1

原创 2023年的深度学习入门指南(23) - ChatGLM2

在《在你的电脑上运行大模型》这一节,我们曾经介绍过ChatGLM模型,它是当时最好的中文大模型之一。现在,它又更新到了第二代,即ChatGLM2。当时,我们的技术储备还不足,只能让它运行起来,还不敢讲解它的原理和代码。现在,经过LLaMA 2和百川的代码的狂轰滥炸,大家已经适应了看代码的节奏了。现在,是时候来看看ChatGLM2的原理和代码了。

2023-08-01 23:50:14 2570

原创 2023年的深度学习入门指南(24) - 处理音频的大模型 OpenAI Whisper

在这一讲之前,我们所用的大模型都是针对文本的。这一讲我们增加一个新的领域,即音频。我们将介绍OpenAI的Whisper模型,它是一个处理音频的大模型。

2023-07-31 23:47:37 2879 1

原创 2023年的深度学习入门指南(22) - 百川大模型13B的运行及量化

不知道上一讲的大段代码大家看晕了没有。但是如果你仔细看了会发现,其实代码还是不全的。比如分词器我们就没讲。另外,13B比7B的改进点也没有讲。再有,对于13B需要多少显存我们也没说。13B光是模型加载就需要26GB的显存,加上推理需要的消i耗,没有个28GB以上的显存是比较悬的。恰好24GB的3090和4090单卡不够用。我们先从应用讲起。

2023-07-29 18:45:31 5053

原创 2023年的深度学习入门指南(21) - 百川大模型

前面我们用了三节的篇幅介绍了目前最强大的开源模型LLaMA2。这一节我们说一说国产大模型的一个代表,百川大模型。

2023-07-28 23:42:20 2853

原创 2023年的深度学习入门指南(20) - LLaMA 2模型解析

上一节我们把LLaMA 2的生成过程以及封装的过程的代码简单介绍了下。还差LLaMA 2的模型部分没有介绍。这一节我们就来介绍下LLaMA 2的模型部分。这一部分需要一些深度神经网络的基础知识,不懂的话不用着急,后面的文章我们都会介绍到。

2023-07-26 22:20:53 4954

原创 2023年的深度学习入门指南(19) - LLaMA 2源码解析

上一节我们学习了LLaMA 2的补全和聊天两种API的使用方法。本节我们来看看LLaMA 2的源码。

2023-07-25 23:53:32 3900 1

原创 2023年的深度学习入门指南(18) - 将LLaMA2跑起来

之前我们说到过,在GPT 3之后,大模型就很少有开源的了。其中,最为典型的开源支持者就是Meta公司的研究团队。年初他们发布的LLaMA基本上是各家开源模型的主要参考对象。不过,LLaMA是不能商用的。7月18日,Meta开放了LLaMA 2模型,并且同时开放了生成版本和聊天版本,包括7b,13b和70b三种规格的大模型。

2023-07-22 23:53:13 2621 4

原创 2023年的深度学习入门指南(17) - 深度学习的硬件加速技术

除了使用CPU,GPU这样的通用器件之外,采用专用的硬件来进行加速是一个大家都能想到的选择。

2023-06-20 18:23:06 1489 1

原创 2023年的深度学习入门指南(16) - JAX和TPU加速

上一节我们介绍了ChatGPT的核心算法之一的人类指示的强化学习的原理。我知道大家都没看懂,因为需要的知识储备有点多。不过没关系,大模型也不是一天能够训练出来的,也不可能一天就对齐。我们有充足的时间把基础知识先打好。上一节的强化学习部分没有展开讲的原因是担心大家对于数学知识都快忘光了,而且数学课上学的东西也没有学习编程。这一节我们来引入两个基础工具,一个可以说是各个Python深度学习框架必然绕不过去的NumPy库,另一个是Google开发的可以认为是GPU和TPU版的NumPy库JAX。

2023-06-08 18:19:13 858

原创 2023年的深度学习入门指南(15) - 大模型的幻觉

从产生的原因上来讲,幻觉的引入主要有数据原因和模型训练和推理的原因。数据方面,我们前面讲了缩放定律,大模型需要大数据,如果数据不够,那么投入更多的计算资源并不会取得更好的效果。但是,当数据越来越多时,手动去检查数据的重复就变得越来越不可能。这些重复的数据,在模型中的比重就会比不重复的数据可能更高。从而导致模型在生成时,更倾向于生成重复的内容。而在模型方面,越大的模型掌握的知识越多,这导致模型更容易犯参数化知识偏差的问题。也就是说,模型是从自己的知识中生成内容,而不是从输入的材料中生成内容。

2023-06-07 19:13:45 2514

原创 PMP的智慧(1) - 如何给采购合同以灵活性

三种合同主要是看由哪方承担风险。如果卖方承担风险,优先签总价合同。如果买方承担风险,优先签成本补偿合同。如果双方同担风险,优先签工料合同。

2023-05-21 19:47:49 514

原创 学习《信息系统项目管理师教程》第4版应关注的PMBOK的巨大变化

信息系统项目管理师教程》的第4版比起第3版来有不少变化。但是,这种变化完全没有体现出PMBOK第7版带来的巨大变化。因为,在从《信息系统项目管理师教程》第3版出版的2017年到现在,PMBOK已经连续更新了新6版和第7版两个大版本。

2023-05-21 11:39:32 1107

原创 2023年的深度学习入门指南(14) - 不能只关注模型代码

最近,有一张大模型的发展树非常流行:这个图是相当不错的,对于加深对于Transformer模型编码器、解码器作用的理解,模型的开源和闭源情况等等都相当有帮助,大家使用Hugging Face库的时候,也可以从这张图入手寻找相应的模型。但是,这篇论文是分为三部分的,除了模型之外,还有数据和下游任务两部分。它们被忽视的重要原因是没有一张像上面一样的图。而且,即使是在图上的部分,也并不一定是模型本身有升级,而可能是增加了其他的东西。

2023-05-19 03:12:28 813 1

原创 2023年的深度学习入门指南(13) - 写后端

我们前面学习了用python在本机上写前端,也学习了使用HTML在本机写前端。同理,我们可以写Windows应用,mac应用,iOS应用,Android应用等等以适合各种终端。其实,最通用的终端就是Web前端。为了使用Web前端,我们需要写后端,也就是服务端代码。

2023-05-13 03:04:43 670 1

原创 2023年的深度学习入门指南(12) - PEFT与LoRA

大家都知道,大模型的训练需要海量的算力。其实,即使是只对大模型做微调训练,也是需要大量的计算资源的。有没有用更少的计算资源来进行微调的方法呢?研究者研发出了几种被Hugging Face统称为参数高效微调PEFT(Parameter-Efficient Fine-Tuning)的技术。这其中常用的几个大家应该已经耳熟能详了,比如广泛应用的LoRA技术(Low Rank Adapters,低秩适配),Prefix Tuning技术,Prompt Tuning技术等等。

2023-05-07 21:12:41 3724 3

原创 2023年的深度学习入门指南(4) - 为不同的场景写专用的前端

使用gpt的时候,有很多技巧,比如问题要描述清晰,可以指定输出格式等等,这些跟用户输入相关的东西,是靠大模型编程解决不了的,这正是前端的用武之地。用过大模型的同学都知道,一个提示都是反复打磨才能写好的,如何能够帮助用户搞好这种交互,也是留给前端和设计同学的重要课题。针对通用的场景,前端要尽可能把模型能力都开放给用户来选择。针对特殊的场景,前端应该做好封装,简化用户的操作难度。总之,根据场景不同,运用之妙,存乎一心。

2023-04-30 22:57:37 392

原创 2023年的深度学习入门指南(3) - 前端同学如何进行chatgpt开发

在第二篇,我们使用openai的python库封装,搞得它有点像之前学习的PyTorch一样的库。这一节我们专门给它正下名,前端就是字面意义上的前端。

2023-04-29 05:02:05 2612 2

原创 2023年的深度学习入门指南(11) - Triton

Triton也是Openai的产品,虽然还在演进之中,但是可以做为优化的一个选项。

2023-04-26 02:58:47 1517

原创 2023年的深度学习入门指南(10) - CUDA编程基础

在Intel CPU还是8+4核20线程的时候,GTX 1060显卡做到1280个CUDA核,3060是3584个CUDA核,3090是10496个CUDA核,4090有16384个CUDA核。每个CUDA核上可以起比如1024个线程。所以,如果有大量可以并发的任务,应该毫不犹豫地将其写成核函数放到GPU上去运行。GPU编程既没有那么复杂,完全可以快速上手像写CPU程序一样去写。但也不是那么简单,适合GPU可能需要改用特殊的算法。这一篇我们就来学习用CUDA进行GPU编程

2023-04-25 21:02:00 980

原创 2023年的深度学习入门指南(9) - SIMD和通用GPU编程

深度学习从一开始就跟GPU有不解之缘,因为算力是深度学习不可或缺的一部分。时至今日,虽然多任务编程早已经深入人心,但是很多同学还没有接触过CPU上的SIMD指令,更不用说GPGPU的编程。这一篇我们先给SIMD和GPU编程扫个盲,让大家以后用到的时候有个感性认识。

2023-04-24 03:04:05 1785 3

原创 2023年的深度学习入门指南(8) - 剪枝和量化

从这一节开始,我们要准备一些技术专项了。因为目前大模型技术还在快速更新迭代中,各种库和实现每天都在不停出现。因为变化快,所以难免会遇到一些问题。对于细节有一定的把握能力起码可以做到出问题不慌,大致知道从哪方面入手。我们首先从如何优化大模型的大小,使其能够在更少计算资源的情况下运行起来。我们这一节先说模型压缩方法:剪枝和量化。

2023-04-22 02:10:05 1307

原创 2023年的深度学习入门指南(7) - HuggingFace Transformers库

这一节我们来学习下预训练模型的封装库,Hugging Face的Transformers库的使用。Hugging Face的库非常活跃,比如支持LLaDA大规型的类,是在本文开始写作的前一天发布的。库新到这种程度,而且相应配套的库也在不停修改中,这个时候进入这个领域一定要做好要花时间完善还不成熟的功能,尤其是花较多时间debug问题的思想准备。另外,还是再提醒大家,大模型算法不是普通编程。模型规模和思维链仍然非常重要。

2023-04-17 01:22:33 1564

原创 2023年的深度学习入门指南(6) - 在你的电脑上运行大模型

上一篇我们介绍了大模型的基础,自注意力机制以及其实现Transformer模块。因为Transformer被PyTorch和TensorFlow等框架所支持,所以我们只要能够配置好框架的GPU或者其他加速硬件的支持,就可以运行起来了。而想运行大模型,恐怕就没有这么容易了,很有可能你需要一台Linux电脑。因为目前流行的AI软件一般都依赖大量的开源工具,尤其是要进行优化的情况下,很可能需要从源码进行编译。一旦涉及到开源软件和编译这些事情,在Windows上的难度就变成hard模式了。

2023-04-10 01:32:58 3504 2

原创 2023年的深度学习入门指南(5) - 动手写第一个语言模型

上一篇我们介绍了openai的API,其实也就是给openai的API写前端。在其它各家的大模型跟gpt4还有代差的情况下,prompt工程是目前使用大模型的最好方式。不过,很多编程出身的同学还是对于prompt工程不以为然,认为编程实现才是王道。认为编程才能更好地理解原理,才能发掘出大模型的真正潜力。还有同学希望能用有限的算力希望挖掘出模型的潜力。有了这些积累之后,我们再看一些主流的大模型是如何实现的。

2023-04-09 02:21:26 976 1

原创 2023年的深度学习入门指南(2) - 给openai API写前端

使用openai的API,本质上是在写前端

2023-04-04 23:03:43 1348 1

原创 2023年的深度学习入门指南(1) - 从chatgpt入手

2012年,加拿大多伦多大学的Hinton教授带领他的两个学生Alex和Ilya一起用AlexNet撞开了深度学习的大门,从此人类走入了深度学习时代。2015年,这个第二作者80后Ilya Sutskever参与创建了openai公司。现在Ilya是openai的首席科学家,带领工程师研发出了可能再次改变世界的chatgpt.上图中,右面的就是图灵奖获得者,深度学习之父Hinton大牛。中间是AlexNet的第一作者Alex, 左边的就是Ilya Sutskever.

2023-04-02 23:10:46 6252 1

原创 强化学习环境升级 - 从gym到Gymnasium

作为强化学习最常用的工具,gym一直在不停地升级和折腾,比如gym[atari]变成需要要安装接受协议的包啦,atari环境不支持Windows环境啦之类的,另外比较大的变化就是2021年接口从gym库变成了gymnasium库。让大量的讲强化学习的书中介绍环境的部分变得需要跟进升级了。不过,不管如何变,gym[nasium]作为强化学习的代理库的总的设计思想没有变化,变的都是接口的细节。

2023-03-01 00:12:06 8004

原创 Rust语言教程(9) - if let表达式与枚举进阶

Rust通过if let语句来实现对于枚举匹配的简写,这也是现代语言的常见特性

2022-10-12 03:30:04 896

原创 省脑子的Javascript数据结构与算法教程(1) - 熟练操作数组

随着经济形势的变化,很多同学主动和被动的换工作。而对于技术同学来说,目前刷题的形势确实是比以前要卷一些。题目变多变难了,所以之前上学时学的东西可能不够用了,需要重新学习。但是,当你真正开始做题的时候,就会发现几个问题。我个人做题的感觉是,很多题目其实并不难,只是需要一定的耐烦的能力。一些题目的步骤和细节比较多,拆解出来之后每一步都很简单,但是组合在一起有些同学反馈就有点吃不消,容易顾此失彼。这时候,首先要有一个整体视角,先把问题拆解成小问题,然后再一个一个攻克,就会大大节省脑力,提升效率。...

2022-07-05 00:42:55 276

原创 用照片进行三维模型重建

用照片进行三维模型重建在元宇宙的世界里,需要有大量的3D模型。而3D模型的数量,一直是困扰从2D到3D转型的拦路虎。以游戏角色建模为例,这些角色背后是无数的雕刻师用996加班和一地的头发换来的。很多技术同学听说过类似于3DMax和Maya这样的建模工具,不知道是不是了解ZBrush雕刻的过程:雕刻只是第一步,针对每个具体的领域,还需要专门的工具来辅助。比如要给人穿上衣服,我们需要有Marvelous Designer来帮我们生成布料这样复杂的效果。裙子的建模要更复杂一些:虽然据说3D建

2022-05-11 14:59:43 5568 8

原创 欢迎来到WebGPU的世界

欢迎来到WebGPU的世界WebGPU是一门神奇的技术,在浏览器支持率0%,标准还没有定稿的情况下,就已经被Three.js和Babylon.js等主流3D和游戏框架支持了。而且被Tensorflow.js用来加速手机端的深度学习,比起WebGL能带来20~30倍的显著提升。在主流框架中WebGPU的例子在Three.js中使用WebGPU使用Three.js的封装,我们可以直接生成WebGPU的调用。我们照猫画虎引入WebGPU相关的库: import * as THREE from

2022-04-11 17:25:18 4860 2

原创 WebAssembly汇编语言程序设计初步

Web Assembly汇编语言程序设计初步随着前端页面变得越来越复杂,javascript的性能问题一再被诟病。而Javascript设计时就不是为了性能优化设计的,这使得浏览器上可以运行的本地语言一再受到青睐。从兼容性上看Web Assembly,从canIUse数据看,已经达到了94.7%的高覆盖率。这个值跟Javascipt的await支持程序差不多。基本上2017年以后的浏览器都支持,距现在已经5年了。主流的Chrome, Chrome for Android, Android Browser

2022-02-28 23:10:50 840

原创 ES6以上版本代码要不要转码成ES5?

ES6以上版本代码要不要转码成ES5?为了兼容老的浏览器,尤其是IE系列,使用ES6以上规范的前端代码往往使用Babel等转码工具转码成ES5的代码。距离发布ES6的2015年已经过去了6年了,现在浏览器对于ES6的兼容性如何呢?我们来看下CanIUse的数据:可以看到,有98.14%的浏览器支持ES6. 没有超过99%的原因是因为2015年发布的Opera Mini还有1.08%的使用率。针对手机端,2016年以后发布的Safari on iOS和Chrome等全部都支持ES6.Safari

2021-12-27 22:58:43 631

原创 如何使用机器学习自动修复bug: 数据处理和模型搭建

如何使用机器学习自动修复bug: 数据处理和模型搭建上一篇《如何使用机器学习自动修复bug: 上手指南》我们介绍了使用CodeBERT自动修复bug的操作方法。估计对于很多想了解原理的同学来说,只知道训练的推理的命令太不过瘾了,根本不了解原理,而且也不知道如何去做改进。这一篇我们开始介绍其中的细节。一点点BERT模型的基础知识首先复习一下上篇文章介绍的bug自动修复的原理。收集有bug的代码与修复代码的配对。通过语法解析器变成更通用的抽象bug/修复代码对。通过机器翻译的编码器-解码器结

2021-12-23 13:51:09 1578

原创 v8字节码的编译过程

v8字节码的编译过程前面的文章中我们学习了调用V8 API的方法。本文我们讲解一下v8编译成字节码的主要过程。我们来看一张编译的全局地图:API调用部分我们知道,v8中编译代码的方法是v8::Script::Compile: v8::Local<v8::Script> script = v8::Script::Compile(context, source).ToLocalChecked();这将会调用api.cc中的Compile:MaybeLo

2021-12-21 21:28:00 1385

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除