
1. 跑ChatGPT体量模型,从此只需一块GPU
在发展技术,让大模型掌握更多能力的同时,也有人在尝试降低AI所需的算力资源。最近,一种名为FlexGen的技术因为「一块RTX 3090跑ChatGPT体量模型」而获得了人们的关注。
虽然FlexGen加速后的大模型看起来仍然很慢 —— 跑1750亿参数的语言模型时每秒1个token,但令人印象深刻的是,它已经把不可能变成了可能。传统上,大型语言模型(LLM)推理的高计算和内存要求使人们必须使用多个高端AI加速器进行训练。本研究探索了如何将LLM推理的要求降低到一个消费级GPU并实现实用性能。
链接:
https://mp.weixin.qq.com/s/ZdW_jZov3bAcGc_9SqiL-A
2. ChatGPT数据集之谜
至今,OpenAI并没有公开ChatGPT的相关训练数据集来源和具体细节,一定程度上也暂时卡了追赶者的脖子,更何况,业界公认中文互联网数据质量堪忧。本文作者则整理分析了2018年到2022年初从GPT-1到Gopher的相关大型语言模型的所有数据集相关信息,希望帮助有志于开发“类ChatGPT”模型的团队少走一步弯路。
链接:
https://mp.weixin.qq.com/s/9vOc-OyqvzrO_w5LApurbg
ChatGPT能否取代Google、百度这样的传统搜索引擎?为什么中国不能很快做出ChatGPT?当前,对这些问题的探讨大多囿于大型语言模型(LLM)的技术可行性,忽略或者非常粗糙地估计了实现这些目标背后的经济成本,从而造成对LLM的开发和应用偏离实际的误判。
本文作者从经济学切入,详细推导了类ChatGPT模型搜索的成本、训练GPT-3以及绘制LLM成本轨迹的通用框架,为探讨LLM成本结构和其未来发展提供了可贵的参考视角。
链接:
https://mp.weixin.qq.com/s/aAg1ptEkQ6ahdjs-3s_g3A
4. 解读ChatGPT背后的技术重点:RLHF、IFT、CoT、红蓝对抗
近段时间,ChatGPT 横空出世并获得巨大成功,使得 RLHF、SFT、IFT、CoT 等这些晦涩的缩写开始出现在普罗大众的讨论中。这些晦涩的首字母缩略词究竟是什么意思?为什么它们如此重要?我们调查了相关的所有重要论文,以对这些工作进行分类,总结迄今为止的工作,并对后续工作进行展望。
链接:
https://zhuanlan.zhihu.com/p/602458131
5. 为什么所有GPT-3复现都失败了?使用ChatGPT你应该知道这些
为什么所有公开的对 GPT-3 的复现都失败了?我们应该在哪些任务上使用 GPT-3.5 或 ChatGPT?对于那些想要复现一个属于自己的 GPT-3 或 ChatGPT 的人而言,第一个问题是关键的。第二个问题则对那些想要使用它们的人是重要的(下文提到 GPT-3,主要是指 GPT-3.5 或 InstructGPT 的最新版本,除了一些指向 GPT-3 原文的情况)。
链接:
https://mp.weixin.qq.com/s/fWe9RtP8qe8uxMSukeAjKA
6. 超越GPT 3.5的小模型来了
众所周知,ChatGPT 是在 GPT-3.5 系列模型的基础上微调而来的,我们看到很多研究也在紧随其后紧追慢赶,但是,与 ChatGPT 相比,他们的新研究效果到底有多好?近日,亚马逊发布的一篇论文,他们提出了包含视觉特征的 Multimodal-CoT,该架构在参数量小于 10 亿的情况下,在 ScienceQA 基准测试中,比 GPT-3.5 高出 16 个百分点 (75.17%→91.68%),甚至超过了许多人类。
链接:
https://mp.weixin.qq.com/s/gv_FJD0aIpDNbky54unj2Q
7. 聊聊对大模型的一些看法
外行看热闹,内行看门道。逻辑链的把握,对长程上下文的捕捉和适应,以及生成语句的通顺度,这几点在作者试验过的大量的case里都得到了验证,于是对于大模型这个技术方向"现实上的怀疑"也开始被打消了。
链接:
https://zhuanlan.zhihu.com/p/607680446
8. 一文理解大型语言模型的“上下文学习”
最近几年大语言模型(LLM) 获得了越来越多的关注,其中最知名的当属 ChatGPT模型。ChatGPT模型展现了一些大模型才具备的突现能力(就是模型规模必须得增大到一定程度才会显现的能力,比如至少百亿级),其中一项能力就是上下文学习(In-Context Learning)。这也引发了研究人员对该能力产生原因的思考和探索。
链接:
https://mp.weixin.qq.com/s/sTTRl7QPyFDYVw4Jwzn9dQ
9. 理解GPU的底层架构
笔者是新进GPU行业从业者,之前在CPU芯片行业做一些底层软件驱动开发工作,深知熟悉CPU的底层结构原理对驱动编写和阅读他人驱动代码大有裨益,本文则介绍了GPU的底层工作原理。
链接:
https://zhuanlan.zhihu.com/p/598173226
10. ML System入坑指南
最近ChatGPT大火,越来越多开始关注大模型,但对于大模型落地,除了先进的算法,其背后的ML System(机器学习系统),从分布式训练到高效推理的完整链路同样重要,好的基础设施是应用爆发的基础。本文主要围绕作者学习的经历来构筑,希望能给希望入坑的新人一个指引,也给非Mlsys背景但感兴趣的其他领域的同学一些启发。
链接:
https://zhuanlan.zhihu.com/p/608318764
过去十年,只要构建过ML模型的人都知道MLOSS至关重要,无论是Deepmind的研发工程师,还是印度的高中生都无一例外会使用开源软件来构建模型。作者采访了24名ML从业者,他们都给出了相同的答案:MLOSS工具在模型构建中的地位举足轻重。
从业者都在免费使用MLOSS工具,也就意味着这类工具会对人工智能发展产生巨大影响。然而,探索MLOSS对AI发展影响的研究人员却寥寥无几。
链接:
https://mp.weixin.qq.com/s/7bB3_32h0jKBJ-8OGEiLSw
OneFlow静态图的训练效率远高于动态图(eager模式)。本文试图通过一个简单例子,结合v0.8.0版本的代码,解读一下静态图和运行时的实现机制。
链接:
https://mp.weixin.qq.com/s/3sR7fLWC80sG2nFToJa7vA
13. CUDA编程:矩阵乘运算从CPU到GPU
本文主要介绍用CUDA实现矩阵乘法运算(C = A x B)的几个基本方法,帮助理解矩阵在GPU上面的运算与CPU上的有何异同,通过实践上手CUDA的优化计算,相比基础方法,能提速10倍以上。本文内容涉及到CUDA矩阵1D运算、2D运算、共享内存、CUBLAS的使用。
链接:
https://zhuanlan.zhihu.com/p/573271688
14. CUDA SASS汇编器:CuAssembler
尽管CuAssembler主要的目的是把nvdisasm的输出重新转回cubin,但它并不是从零开始写汇编。作者推荐从CUDA C开始,除了kernel代码外,其他初始化代码都是尽量用Runtime API,这样使用和修改都最简单直接。
链接:
https://zhuanlan.zhihu.com/p/348234642
15. 全面碾压AdamW:谷歌新出优化器内存小、效率高
来自谷歌、 UCLA 的研究者提出了一种通过程序搜索发现深度神经网络训练的优化算法的方法,进而发现 Lion(EvoLved Sign Momentum)优化器。
实现这一目标面临两个挑战:首先是在无限稀疏的程序空间中寻找高质量的算法;其次是选择可以从小型任务泛化到更大、SOTA 任务的算法。为了应对这些挑战。该研究采用了一系列技术,包括具有热启动和重启的进化搜索、抽象执行、funnel 选择和程序简化。
链接:
https://mp.weixin.qq.com/s/QK7mBxmjkNfWyLKiNhTL2Q
16. YOLOv5全面解析教程③:更快更好的边界框回归损失
本文总结了边界框回归中的三个几何因素,即重叠面积(overlap area)、中心点距离(central point distance)和高宽比(aspect ratio),在此基础上提出了完全IoU(CIoU)损失,从而促进了更快的收敛和更优的性能。
链接:
https://mp.weixin.qq.com/s/LIOnJqJj_GrpakKbLeWEDQ
在开源创业公司里,MinIO的成长之路对其他开源企业/项目来说无疑是一个很好的参考范例。近期,他们的CMO Jonathan Symonds在一篇博客中分享了MinIO如何超越专有软件公司,以及如何在未来巩固自身优势,重点阐述了他们在开源商业模式、产品、社区构建以及开源信仰方面的想法,这些内容或许值得开源社区的初创企业借鉴。
链接:
https://mp.weixin.qq.com/s/ecgooN_5ggM3lS6AXThEDg
其他人都在看
英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
Transformers开始在视频识别领域的“猪突猛进”,各种改进和魔改层出不穷。由此作者将开启VideoTransformer系列的讲解,本篇主要介绍了FBAI团队的TimeSformer,这也是第一篇使用纯Transformer结构在视频识别上的文章。如果觉得有用,就请点赞、收藏、关注!paper:https://arxiv.org/abs/2102.05095code(offical):https://github.com/facebookresearch/TimeSformeraccept:ICML2021author:FacebookAI一、前言Transformers(VIT)在图
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion我正处于学习Ruby的阶段,我想查看一些小型库的源代码以了解它们是如何构建的。我不知道什么是小型图书馆,但希望SO能推荐一些易于理解的图书馆来学习。因此,如果有人知道一两个非常小的库,这是新手Rubyists学习的好例子,请推荐!我想使用Manveru'sInnatelib,因为它试图保持在2000LOC以下,但我还不熟悉其中经常使用的Ruby速记。也许大约100-5
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实
由于匿名block和散列block看起来大致相同。我正在玩它。我做了一些严肃的观察,如下所示:{}.class#=>Hash好的,这很酷。空block被视为Hash。print{}.class#=>NilClassputs{}.class#=>NilClass为什么上面的代码和NilClass一样,下面的代码又显示了Hash?puts({}.class)#Hash#=>nilprint({}.class)#Hash=>nil谁能帮我理解上面发生了什么?我完全不同意@Lindydancer的观点你如何解释下面几行:print{}.class#NilClassprint[].class#A
在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题: