出品人:
Towhee 技术团队 王翔宇、顾梦佳
扩散模型在图像生成领域有着难以撼动的地位,而其通常都选择了卷积 U-Net作为主干模型。那么在其他领域大杀四方的 Transformers 在扩散模型中是否还有用武之地呢?基于这一想法,DiT(Diffusion Transformer) 利用transformer结构探索了一种新的扩散模型。它不仅继承了Transformer模型类的优秀扩展特性,性能还优于先前使用U-Net的模型。研究表明,扩散模型可以成功地用 transformer 替换 U-Net 主干。另外,它还证明了网络复杂性与样本质量之间存在很强的相关性。通过简单地扩展 DiT 并训练具有高容量主干的潜在扩散模型,DiT 模型可以在类条件 256 × 256 ImageNet 生成基准上实现 FID 2.27 的最新结果。
DiT 首先将空间表示输入通过第一层网络,将每个 patch 线性嵌入到输入中,以此将空间输入转换为一个数个 token 序列。然后,模型会将标准的基于 ViT 频率的位置嵌入应用于所有输入 token。接着,输入 token 由一系列 transformer 块处理。除了噪声图像输入之外,扩散模型有时还会处理额外的条件信息,例如噪声时间步长、类标签、自然语言等。DiT 探索了四种transformer 块变体,分别以不同方式处理条件输入 。
相关资料:
通过本文的小实践,大家可以了解 Milvus 如何为 Kafka Topic 命名、使用 Topic 的机制,以及用户在 Kafka Topic 资源权限紧张情况下,对 Kafka Topic 的预设及使用。是 256(需要注意的是在新版本中我们调低了默认值),意思是最多创建 dml-channel topic 256 个,如果 collection 数量所需 topic 超过该值,则会对 topic 进行复用。参数为4,控制 dml-channel topic 的使用数量。来控制 topic 的复用。
事实上,自 Milvus 升级至 2.X 版本以来,我们一直在努力改进及优化,推出了诸如从文件中批量导入数据、基于磁盘的近似最近邻(ANN)索引算法、不停机滚动升级、Coordinator HA 高可用、资源组等新功能,也提高了诸如元数据存储、批量导入等性能。通过这一特性,用户可以更精确地管理数据。搜索(Search) 和查询(Query) API 的新选项:我们在查询参数中新增了跳过 Growing 数据的选项,启用此选项将跳过对所有 Growing 数据的搜索,在搜索插入场景下提供更好的搜索性能。
在2.3中,Milvus支持 Cosine metrics,再支持 Cosine metric 后,开发者对接 OpenAI 会更加便捷。在 2.3 中,Milvus 将会支持 Array 和 JSON 类型,有了 JSON 类型后用户可以更灵活的设计 schema,暂时绕过 Milvus 无法动态做 schema change 的限制。在标量过滤场景中,如果查询条件过滤掉大量数据会导致向量索引查询性能大幅下降,内核中加入了自动优化在此场景中会退化为暴力搜索,以提升性能。新增命令检查重复主键。
SAM 的本质是一个视觉大模型,其能力的亮点与 GPT-4 一样在于优秀的零样本迁移能力,即一个适用于不同任务的通用模型。论文中的实验结果表示 SAM 的模型效果令人惊喜,在多种任务中都展现出优秀的零样本迁移能力,其性能更是经常媲美或超越全监督模型。它以Tranformers 系列的视觉模型为基础,重新权衡和选择了组件,最终包括了一个强大的图像编码器、一个灵活的提示编码器、和一个轻量的掩码编码器。SAM 旨在创建一个用于图像分割的通用基础模型,为此将研究分为了任务、模型、数据三个相互关联的部分。
同时还配置了统一的查询入口,适配了 vearch 的查询语法。随着其 AI 业务的不断增加,更多的业务需求也随之而来,例如视频、教材、知识图谱等资源的搜索推荐,都会大量使用到向量化的数据来检索相似度,且需要通过使用的不同的模型训练和不同的业务匹配规则。张宇提到,智慧树通过不同的实时推理集群产生的实时向量和离线训练集群结合数据平台产生的离线向量数据,存储到 Milvus 的集群里,并且利用配置好的规则引擎,来处理向量的生产和相似度检索工作,大大提升了公司的向量生产性能和效率,更好地支持了业务的使用。
如果用户有物理资源隔离的需求,那么可以创建多个自定义资源组,然后将默认资源组中的节点分配转移到自定义的资源组中,实现对 Milvus 集群中 QueryNode 资源的划分和物理隔离。不过,由于向量搜索具备着高度的 CPU 密集型特征,所以在业务的高峰时间段,多个 Collection 的同时查询会争抢 CPU 资源,彼此影响。Milvus 通过资源组提供对 QueryNode 资源划分的能力,用户可以根据自身的需求灵活安排 Collection 的加载方案,实现各种级别的资源隔离,应对不同的场景和需求。
现有的 Milvus sdk 中,用户普遍会使用 num_entities 获取 collection 函数,但此接口有很多限制,例如会统计被删除的数据、未持久化的数据统计不准等问题。Annoy 索引在性能和召回率方面均不如 IVF、HNSW 等索引,维护成本比较高所以经过讨论决定在 2.3 中移出 Annoy 索引的支持,有使用的用户要注意。可以把 Milvus 作为用户、OpenAI 之间的缓存层,语义相似的问题会使用 Milvus 中的数据来回答,减少对 OpenAI 的调用。
,Redis 会将其定义为两个不同的问题,而事实上,这两个问题表达的是同一个意思。由于想让 GPTCache 变得更加透明(这样用户无需额外研发,便可将其轻松集成到我们的系统或其他基于 ChatGPT 搭建的系统中),所以适配器应该方便轻松集成所有 LLM,并可灵活扩展,从而在未来集成更多的多模态模型。正如开篇提到的,写这篇文章的初衷是站在 AIGC 从业者的角度,和大家分享 ChatGPT 引领的浪潮下,开发者【从 0 到 1】【从 1 到 100】的探索经历和心得,以求和大家讨论、共勉。
???? 写在前面黄老板的一句【AI 的 iPhone 时刻已至】震撼了半个科技圈。或许,应该把这句话再扩展一下:AI 的 iPhone 时刻早已势不可挡,它不是平静随和地跟大家 say hi,而是作为一个强悍的巨人携着一把名为 ChatGPT 的斧子,重重地砸开了那扇通向 AI 新世界的大门。接连几个月,ChatGPT、AutoGPT 等新事物的不断涌现持续刷新着大家的认知。与此同时,圈内不断有类 C...
HuggingGPT在第一步,任务规划中,设计了6个任务,pose-control, pose-to-image, image-class, object-det, image-to-text, text-to-speech,并安排了它们的依赖关系。第二步中,ChatGPT根据模型描述从候选在huggingface上的专家模型中选择模型,它们可能是在线的,可能是下载的。它的使用非常简单,比如给定一个复杂AI任务,如“请生成一个女孩正在读书的图像,她的姿势与图像example.jpg中的男孩相同。
GPTCache 中的相似性评估模块从 Cache Storage 和 Vector Store 中收集数据,并使用各种策略来确定输入请求与来自 Vector Store 的请求之间的相似性,该模块用于确定某一请求是否与缓存匹配。所以,我们决定将其开源,为更多用户提供便利。GPTCache 是 LLM 语义缓存层(caching layer),它采用语义缓存(semantic cache)[1]技术,能够存储 LLM 响应,从而显著减少检索数据所需的时间、降低 API 调用开销、提升应用可扩展性。
Zilliz Cloud 作为 Milvus 的全托管云服务,将数据迁移至 Zilliz Cloud 能够始终保证数据安全、可靠、可用,用户无需再担心备份问题或者硬件故障导致的数据丢失问题。越来越多的用户选择将数据从 Milvus 迁移至 Zilliz Cloud,通常情况下,将数据从本地迁移到云端的操作十分复杂。最近,我们发布了可处理十亿级向量数据的 Zilliz Cloud GA 版本,为用户提供开箱即用的向量数据库服务,大大降低了数据库的运维成本。即使是入门级用户,也均可轻松备份和恢复数据。
Zilliz Cloud GA 新增数据库迁移工具,只需 2 个步骤,Milvus 的用户便可将本地数据库轻松迁移至 Zilliz Cloud,省去用户需要进行系统维护的麻烦。Zilliz Cloud 致力于提供最佳的用户体验,服务从初创公司到大型企业的各类用户,满足多样的用户需求。为此,我们专门进行了相关测试,结果表明,在相同环境下,Milvus 2.2.3 版本的 QPS(每秒查询率) 比 2.0.0 版本提升了 4.5 倍,而高 QPS 对搭建大规模向量搜索平台的重要性不言而喻。
毋庸置疑,ChatGPT 在自然语言问答方面的能力十分出色,如果通过向量数据库为 ChatGPT 提供一个大规模可靠的知识库,并使用 prompt 将用户问题与相应的知识库文本对应起来,ChatGPT 便可以扬长避短,很大程度上避免 ChatGPT “捏造答案”。用过 ChatGPT 的小伙伴可能都遇到过类似的问题:当你向它询问专业垂域知识或实时信息时,由于受限于模型本身的训练数据集边界,ChatGPT 会生成看似正确但与事实不符的内容,这也是 ChatGPT 被业界广为诟病的一个重要缺陷。
其实大家想要的还是小的大模型,好在沉迷于元宇宙已久的Meta推出了 LLaMA(美洲驼)[1]系列模型来补上了这个缺口,该系列模型有四个版本(7B,13B,33B,65B),而且都是在超过 trillions tokens 的公开数据集上训练的,可以说就是为了 benchmark 而生的。LLaMA 让可以与 GPT 相比的能力可以广泛的被普及,而且社区内已经认可了使用 LLaMA 进行开发的潜力,也让经费没有工业界那么充裕的学术界可以充分参与这一次 AI 重大的机遇。出品人:Towhee 技术团队。
而来自汽车之家、智慧树、BOSS 直聘的三位平台级用户,将从不同业务场景、业务需求,为大家带来 Milvus 助力平台建设能力的精彩实践。4月15日(下周六),Milvus 社区将举办【线下 Meetup - 北京站】,本期活动,我们不仅集结了 Zilliz 的多位社区大佬,更有来自知名企业的 Milvus 深度用户,他们将用自己的真实业务实践,从各方面向大家展示 Milvus 是如何助力向量检索平台应用的。本次 Meetup 现场还会有一位“新朋友”随机闪现,他神秘、智慧、年轻、机敏又充满开源精神!
在系统中,设计上不允许一个没有任何 binlog、statslog 和 deltalog 的 sealed segment 存在,但是由于 2.1 版本中一个已经修复的 bug,在重启集群时,会产生一个行数为 0 的空 segment,使得系统进入一个无法恢复的错误状态。在当前的 Milvus 系统中,索引文件和 binlog 是“一一对应”的(实际上是一批对一批,原谅一个技术人对细节描述的强迫症),我们会在元数据中记录这批 binlog 的总行数和索引文件对应数据的总行数。
因此,GPT-4 可被视作通用人工智能的早期版本。总的来说,作者们在测试 GPT-4 的各种能力时,也强调了探索 GPT-4 局限性的重要,讨论了社会舆论对科技发展的影响、以及人工智能面临的挑战和研究方向。RBRMs 其实是一组零样本迁移的 GPT-4 分类器,为 GPT-4 的策略模型提供额外的奖励信号。GPT-4 是一个大规模的多模态模型,能够接收图像和文本两种输入,在理解输入的数据后生成并返回文本回复。GPT-4 进行了模型级干预,增加了引发不良行为的难度,大幅减少了不良行为产生的可能性。
在 Milvus 的数据架构中,数据分为 Growing 数据和 Sealed 数据,顾名思义,Sealed 数据是已经持久化并且建好索引的数据块,而 Growing 数据则没有索引,在查询时对于 Growing 数据使用暴力搜索的方式查找 TopK,再和 Sealed 数据中的 TopK 结果进行合并。Milvus 作为一款数据库产品,通过资源组对外提供资源隔离的能力,平台侧基于资源隔离的能力对业务用户提供多租户的能力,是一种很好的集成方式。优化对象存储访问的 IO,减少与对象存储间的 rpc 调用。
Milvus 作为世界上最快的向量数据库,一直在不断升级,力求为用户提供极致的性能体验。为了帮大家实现 Milvus 性能的最优化,本期 Deep dive 我们邀请到了 Zilliz 主任工程师刘力,深度揭秘 Milvus 性能提升的重要法则!“请问各位,使用同一句话在同一个 collection 中进行文本检索,会出现每个检索耗时不同的情况吗?在 Milvus 社区中时不时地会看到类似的提问,这背后或藏着诸如索引、部署等认知不清的问题,或是对某些性能的使用不得其法。