上篇文章 万字长文解析:大模型需要怎样的硬件算力 深入探讨了大型语言模型(LLMs)在硬件资源方面的需求和面临的挑战,详尽地阐述了如何进行大模型的硬件选型,以及在实际工作中如何根据模型的特定需求来优化硬件资源配置。继此话题之后,本篇文章将重点介绍支撑大模型运作的核心组件——集合通信库,介绍其在大模型架构中的关键作用和实现机制,以及B站是如何应用和改进它的。 随着模型规模的不断增长,单块显卡已经无法满足模型对于显存的需求,分布式训练逐渐成为主流,其中通信库负责了拓扑感知、集合通信原语实现、数据传输等工作,扮演着至关重要的角色。在分布式训练集群逐步普及和规模化的过程中,各个厂商,尤其是云和GPU硬件制造商,对于整个集群的性能和效率不断提出更高的要求,也因此涌现了一批xCCLs(x Collective Communication Libraries),例如HCCL、ACCL、oneCCL和TCCL等,从侧面也反映了通信库的重要性。 鉴于通信库的原理和实现都异曲同工,本文只针对开源的NCCL通信库来进行讲解,结合B站大模型训练的落地实践经验,拆分解析AI基础软件中通信库的实现
2023年疫情过后旅游行业复苏,业务量迎来爆发式增长。然而业务同学遇到了一个发布效率的难题:激增的业务需求导致核心大应用的发布时长大幅度增加,对用户的工作效率产生了严重影响。
随着大语言模型能力的增强,传统应用不可避免的需要调用LLM接口,提升应用的智能程度和用户体验,但是一般来说大语言模型的输出都是字符串,除了个别厂商支持JSON Mode,或者使用function call强制大语言模型输出json格式,大部分情况下,还是需要业务放自己去处理JSON格式,下面我来总结一下在解析JSON过程中遇到的一些问题和解决方案。
在上一篇《十年前的微信消息收发架构长啥样?》(点击标题可阅读)的文章中,有用户提到想了解自己每次微信红包只能抽中 0.01 元的反向手气最佳是怎么在技术上实现的,于是就有了本篇文章的诞生。 其实,微信红包最初在产品设计上有过很多思路,最初曾以多档次、按比例分配的方式,但最后大家试用下来发现还是随机才好玩。那种看到有人抢到 100 块,有人 0.01 元的快乐无以言喻。 最初的随机算法中,领取越早获得大额红包几率越高,为了避免抢红包变成一个拼手速的游戏,后来的随机算法也对随机范围区间进行了一定调整。 本文中,我们将介绍主流的红包算法,相信聪明的你一定能从中窥见微信红包技术实现的一些奥秘~
2016年,山西大学科学技术史研究所的厚宇德教授对杨振宁先生做了一个访谈。期间,杨先生比较系统地讲了自己对科学与哲学的关系的一些看法,他的观点是本文讨论人工智能与哲学关系的一个起点。 杨先生认为,在19世纪时,科学仍然被当作自然哲学,并被认为从哲学脱胎而来。即使到了19世纪末,马赫(Ernst Mach)等科学家依然认为物理学和哲学密不可分。而在相对论和量子力学建立之后,哲学对物理学的影响就变得越来越小,甚至量子力学的观念开始反过来影响哲学家对“何为实在”的理解。
在互联网早期时代,账号系统的功能非常广泛,包括账号管理、登录认证相关能力以及维护各类用户信息,比如头像、昵称、积分、等级等。随着业务的发展,每个功能逐渐分化出自己的需求和架构侧重点,独立出各自的领域服务也成了业界共识。 本文分享的账号系统,指的是提供用户账号管理、登录认证相关能力的系统。介绍了携程在不断发展的过程中,账号系统在领域化、中台化和多Region化方向上的演进、探索和一些思考。
曾看过很多并发模型相关的文章,但是这些文章大部分只讲了并发模型的实现原理,并没有给出具体的示例代码,看完总觉得对并发模型这个知识点是一知半解,不得要领。为了掌握高并发模型,我这里抛砖引玉,实现了20种常见的并发模型,并对每种并发模型进行了性能压测和分析。由于本人水平有限,文章中难免有一些不准确或者纰漏的地方,欢迎大家批评指正。