刚工作时,代码写得不太好,师兄每次 CR 代码,总是会指着屏幕里的一坨代码说 “把它抽成一个类或函数”;“为什么呢?写在一起不是挺好的吗?” 我反问道;师兄老道地回答 “为了方便复用”;我仿佛若有所得,回到工位上把那些很长的代码全部抽象成了类和函数,感觉今天又有所成长。 但是随着工作经验的增加,我对此又产生了困惑。随着业务发展得越来越复杂,我当初写的那个类被大量复用,为了适应不同的场景,里面充满了 if...else...;最能代表复用的业务中台,因为分支太多,发布和开发无比复杂,很小的一个改动却需要拉一堆团队讨论。 所以类和函数的存在究竟是为了什么?只有站在更高的视角才能解决我的困惑,这也是本文的内容。根据奥卡姆剃刀原则,本文其实用一句话就能概括, 它也是 《复杂软件设计之道》 中我最喜欢的一句话 :类和函数不是为了复用而存在,而是他们本来就 “应该” 在那里。
随着电商行业的快速发展,用户对于在线购物体验的要求也在不断提高。特别是在服装领域,用户希望能够更加直观地了解商品的实际穿着效果。为此,淘宝试衣项目应运而生,通过AI技术为用户提供个性化的试衣体验。本文将详细介绍淘宝试衣项目的背景、现状、合作场景以及技术实现,特别是如何通过定时任务驱动的试衣素材高效写入IC(商品中心)拓展结构,提升用户体验和转化率。
作为一款高性能的推理引擎框架,MNN高度关注Transformer模型在移动端的部署并持续探索优化大模型在端侧的推理方案。本文介绍权重量化的模型在MNN CPU后端的推理方案:动态量化。动态量化指在运行时对浮点型feature map数据进行8bit量化,然后与8bit/4bit的权重数据做矩阵乘法并将结果反量化为浮点类型输出。
随着ChatGPT和Stable Diffusion的发布,最近一两年,生成式AI已经火爆全球,已然成为移动互联网后一个重要的“风口”。就图片/视频生成领域来说,Stable Diffusion模型发挥着极其重要的作用。由于Stable Diffusion模型参数量是10亿参数的大模型,通常业界都是运行部署在显卡上。 但是随着量化、剪枝等模型压缩技术的进步,以及手机等终端设备的算力、带宽、内存持续增大。使得大模型在终端设备部署也成为的可能。大模型在终端部署可以有效保护用户隐私,而且终端设备日常广泛使用、用户可以随时随地生成想要的内容。
本文系统性回顾了数据库技术的发展历程与现状,从层次数据库 IMS 到新兴的向量数据库 Milvus,每一类数据库的诞生都映射了特定时代的技术挑战与应用需求。