大家好,今天继续聊聊科技圈发生的那些事。
一、tiny-gpu
GPU,到底是啥?
有的人说,GPU 就是显卡嘛。又有的人探出头说,不对,GPU 是显卡上的一块芯片。
那么 GPU 有什么用呢?常玩游戏的小伙伴说到,打游戏的时候需要显卡帮忙渲染呗,用来打游戏的!做人工智能的小伙伴说,需要算力来跑数据呗!再狠一点的,用来挖矿,赚点币花!
说了这么多,我们有没有真正的想过一个问题:GPU 到底是怎么工作的呢?似乎我们一直都没有研究过。
tiny-gpu 这个项目实现了一个最小的 GPU ,用于从基础开始学习 GPU 的工作原理。它的特点是,没有针对特定硬件的细节进行阐述,而是强调所有架构的一般原理。
项目主要分成三个大点:
- 架构 - GPU 的架构是怎样的?最重要的元素是什么?
- 并行化 - SIMD 编程模型是如何在硬件中实现的?
- 内存 - GPU 如何在有限的内存带宽限制下工作?
于是我们就能看到,项目从 GPU 的结构入手,逐渐往下进行介绍。运用一个一次只能执行一个内核的 GPU,项目手把手实现了 GPU 完整的工作原理。比如,演示 SIMD 编程,使用 GPU 执行的概念验证,以及渲染流水线等等。
作者说到,关于 CPU 的工作原理,大家可以很轻松的找到教程,而 GPU 市场竞争激烈,大家都想保护自己的技术,这导致了连底层的原理介绍都微乎其微。这就是这个教学向的项目创建的原因。
对 GPU 工作原理感兴趣的小伙伴,可以进项目自行学习看看。
项目地址:https://github.com/adam-maj/tiny-gpu
二、CoreNet
一向抠门的苹果,这回居然开源了自家训练神经网络的库。
CoreNet,苹果公司自家开源的一个深度神经网络工具包。它允许开发人员训练标准和新型的各种模型,以完成各种任务,包括基础模型(如 CLIP 和 LLM)、对象分类、对象检测和语义分割。
CoreNet 的青春版本叫 CVNets,当时是一个专注于计算机视觉的库,现在苹果对其进行了一次“升级进化”,现在它的功能面更广,不仅仅局限于视觉领域。
开发团队列出了使用 CoreNet 的项目列表,可以看到还是有不少实际应用的。不知道大家有没有关注近日苹果发布的开源大模型 OpenELM,用的就是它。
项目的主页更像是一个指导手册,比如提供使用实例,提供一些训练配方,数据集等等。毕竟这是人家自用的库,具体怎么用最合适,还是得专业人士自己才知道。
不过我们若是想体验,项目主页也提供了部署方法和使用教程,比如下面这个文件:
话说回来,连苹果都舍得开源大模型和训练大模型的库了,我们还不一起关注一下吗?感兴趣的小伙伴可以持续跟进了解 CoreNet 和苹果家的开源大模型。
项目地址:https://github.com/apple/corenet
三、IDM-VTON
老黄,今天不穿皮衣了?
这样的效果,是使用 IDM - VTON 实现的。虚拟试衣项目也是咱们的老朋友了,不过之前似乎没有细说什么是 VTON,事实上就是 virtual try-on,虚拟试穿嘛。
我们再来看几个示例:
嗯,这样看来,哈卷这裤子一换,还挺配这专辑封面的配色的。霉霉和碧梨也是风格各异,别说,还真是别有一番风味。
虚拟试衣类型的项目咱们分享的也不少了,比如先前的 OOTDiffusion 和 IP - Adapter,不同的项目都有其不同的长处。而这次的 IDM - VTON 更像是集大成者,它结合了这些项目的特点,并进行整合提升。
项目依旧是基于扩散模型实现。简单看看模型的架构,大致分为三部分:
- TryonNet:主UNet,用于处理人物图像。
- IP-Adapter:图像提示适配器,用于编码服装图像的语义。
- GarmentNet:并行UNet,用于提取服装的低级特征。
首先第一步,提供输入,整合数据。IDM - VTON 使用两个不同的模块对服装图像的语义进行编码;将从视觉编码器中提取的高级语义融合到交叉注意层,然后将从并行 UNet 中提取的低级特征融合到自我注意层。最后,输出结果。
项目的效果非常不错,在提供输入的时候还可以给定一句话的 prompt 进行描述,使生成效果更好。团队也提供了 Huggingface 的在线体验地址,感兴趣的小伙伴可以自行体验一下。
在线体验地址:https://huggingface.co/spaces/yisol/IDM-VTON
项目地址:https://github.com/yisol/IDM-VTON
四、Mini-Gemini
Mini-Gemini 是一个多模态 VLM 框架。VLM 即 Vision-Language Model,视觉语言模型。
我们对 Mini-Gemini 进行一次发问:
首先我们提供了一张可爱的 meme 图,我们尝试让 Mini-Gemini 对其进行解释,看看它能不能 get 到这个搞笑的点。同时,再让它生成一张周末到来时的图片。
不错,它居然真的看懂了,甚至还正确的给出了“期盼周末”这样的prompt。
作者团队在设计 Mini-Gemini 时,主要有以下三个侧重点:
- 高分辨率视觉 token,高分辨率与识别图上的细节部分紧密相关
- 高质量数据
- 扩展 VLM 应用场景
模型的实现,利用双视觉编码器,提供低分辨率视觉嵌入和高分辨率候选;提出补丁信息挖掘,在高分辨率区域和低分辨率视觉查询之间进行补丁级挖掘;利用 LLM 将文本与图像结合起来,同时进行理解和生成。
在近期的更新中,作者团队更新了在线体验的地址。现在,我们也可以一起感受一下这款强大的 VLM 模型了!
在线体验地址:https://huggingface.co/spaces/wcy1122/MGM
项目地址:https://github.com/dvlab-research/MGM
好了,本期的内容就是这么多,我们下期再见!
END
作者:陈同学
原文:Jack Cui
系列篇
更多AIoT领域有趣的算法应用及产品请关注有趣的AIoT应用专栏。