随着ChatGPT和Stable Diffusion的发布,最近一两年,生成式AI已经火爆全球,已然成为移动互联网后一个重要的“风口”。就图片/视频生成领域来说,Stable Diffusion模型发挥着极其重要的作用。由于Stable Diffusion模型参数量是10亿参数的大模型,通常业界都是运行部署在显卡上。 但是随着量化、剪枝等模型压缩技术的进步,以及手机等终端设备的算力、带宽、内存持续增大。使得大模型在终端设备部署也成为的可能。大模型在终端部署可以有效保护用户隐私,而且终端设备日常广泛使用、用户可以随时随地生成想要的内容。
本文系统性回顾了数据库技术的发展历程与现状,从层次数据库 IMS 到新兴的向量数据库 Milvus,每一类数据库的诞生都映射了特定时代的技术挑战与应用需求。
刚工作时,代码写得不太好,师兄每次 CR 代码,总是会指着屏幕里的一坨代码说 “把它抽成一个类或函数”;“为什么呢?写在一起不是挺好的吗?” 我反问道;师兄老道地回答 “为了方便复用”;我仿佛若有所得,回到工位上把那些很长的代码全部抽象成了类和函数,感觉今天又有所成长。 但是随着工作经验的增加,我对此又产生了困惑。随着业务发展得越来越复杂,我当初写的那个类被大量复用,为了适应不同的场景,里面充满了 if...else...;最能代表复用的业务中台,因为分支太多,发布和开发无比复杂,很小的一个改动却需要拉一堆团队讨论。 所以类和函数的存在究竟是为了什么?只有站在更高的视角才能解决我的困惑,这也是本文的内容。 根据奥卡姆剃刀原则,本文其实用一句话就能概括, 它也是 《复杂软件设计之道》 中我最喜欢的一句话 :类和函数不是为了复用而存在,而是他们本来就 “应该” 在那里。 如果您对这句话已经意会了,可以直接跳到评论区聊一聊看法了。 下文中主要结合历史上各位软件泰斗的观点,分别从成本和效益角度聊聊 “应该” 一词的含义。
在软件工程领域,复用与扩展性一直是开发者追求的目标,然而,这两者之间存在着天然的矛盾。本文探讨了复用的双面性——它既可能是提升效率的利器,也可能是引入复杂性和维护难题的根源。
最近,基于大型语言模型 (LLM) 的Agent在各个领域取得了重大进展。最受欢迎的研究领域之一是将这些Agent应用于电子游戏上。 传统的方法往往依赖于游戏的API来通过内存访问游戏内环境和动作数据。然而,这种方法受到API可用性的限制,并且不能反映人类玩游戏的方式。 此外,在动作角色扮演游戏 (ARPG) 中,基于强化学习 (RL) 的方法很普遍,但其泛化能力较差,需要大量训练。
随着大模型应用持续火热,应用门槛也越来越低,去年底开始我们利用少部分精力做了一些 AI 探索和实践,并完成了业务所在垂直领域答疑机器人产品的上线。这里主要从普通使用者的视角,把一边学习一边实践的过程记录下来,和大家一起学习交流。 本文定位无门槛。本文受众主要是入门玩家,但对大模型感兴趣想做一些小工具,或者在平常的业务工作中希望使用大模型来提效的读者。
随着互联网业务的快速发展,系统架构日益复杂,对下游资源(如数据库)的保护成为系统稳定性的重要环节。传统的限流方式往往依赖于人为设定的固定阈值,难以应对动态变化的业务需求,容易造成资源浪费或系统过载。为此,本文介绍了KLimiter自适应限流器,它可以基于下游资源(如db)水位,对多个不同优先级的上游入口进行自适应调流。