
原文: https://mp.weixin.qq.com/s/v3qLPwurhCtk7cJUzjN8tQ
Milvus向量数据库:高性能、多特性,助力AI应用开发新潮流!
milvus 是一个高性能、云原生的向量数据库,专为可扩展的近似最近邻(ANN)搜索设计。简单讲,它能快速查找相似的向量数据,比如用于图片、文本或语音的相似性搜索。适用人群:AI开发者、机器学习工程师、需要处理大规模向量检索的技术团队。
项目地址:https://github.com/milvus-io/milvus
主要语言:Go
stars: 38.7k

核心功能
Milvus 是一个高性能的向量数据库,专为大规模数据设计。它能够高效地组织和搜索海量的非结构化数据,如文本、图像和多模态信息,为 AI 应用提供强大支持。
代码架构特点
- 采用 Go 和 C++ 编写,实现了 CPU/GPU 的硬件加速,以达到一流的向量搜索性能。
- 拥有完全分布式和 K8s 原生架构,可进行水平扩展,能处理数十亿向量上的数万个搜索查询,并通过实时流更新保持数据的新鲜度。
- 支持单机部署的独立模式,还有轻量级版本 Milvus Lite,可通过
pip install在 Python 中快速启动。
优势
- 高性能与高可用性:分布式架构将计算和存储分离,可根据不同的工作负载独立增加查询节点或数据节点,实现最佳性能。K8s 上的无状态微服务支持快速故障恢复,确保高可用性。对副本的支持进一步增强了容错能力和吞吐量。
- 支持多种向量索引类型和硬件加速:分离系统和核心向量搜索引擎,支持多种针对不同场景优化的向量索引类型,如 HNSW、IVF、FLAT 等,还支持基于量化和 mmap 的变体。对高级功能如元数据过滤和范围搜索进行了优化,并实现了硬件加速,支持 GPU 索引。
- 灵活的多租户和冷热存储:支持在数据库、集合、分区或分区键级别进行隔离的多租户策略,允许单个集群处理大量租户,确保优化的搜索性能和灵活的访问控制。通过冷热存储机制,可显著降低成本,同时为关键任务保持高性能。
- 支持稀疏向量进行全文搜索和混合搜索:除了通过密集向量进行语义搜索外,还原生支持使用 BM25 进行全文搜索以及学习的稀疏嵌入,如 SPLADE 和 BGE - M3。用户可以在同一集合中存储稀疏向量和密集向量,并定义函数对多个搜索请求的结果进行重新排序。
- 数据安全和细粒度访问控制:通过强制用户认证、TLS 加密和基于角色的访问控制(RBAC)确保数据安全。用户认证确保只有具有有效凭证的授权用户才能访问数据库,TLS 加密保护网络内的所有通信。RBAC 允许根据用户角色分配特定权限,实现细粒度的访问控制。
应用场景
- 文本和图像搜索:可以高效地搜索文本和图像数据,为用户提供快速准确的搜索结果。
- 检索增强生成(RAG):帮助在生成模型中引入相关的外部知识,提高生成内容的质量和准确性。
- 推荐系统:通过对用户行为和物品特征的向量表示进行搜索和匹配,为用户提供个性化的推荐。
快速开始
可以通过 pip install -U pymilvus 安装 Milvus 的 Python SDK pymilvus,并使用 MilvusClient 创建客户端。可以创建本地向量数据库,也可以连接到已部署的 Milvus 服务器或 Zilliz Cloud。之后可以创建集合、插入数据并进行向量搜索。
生态系统和集成
Milvus 与一系列 AI 开发工具集成,如 LangChain、LlamaIndex、OpenAI 和 HuggingFace,是生成式 AI 应用的理想向量存储。它还提供了方便的实用工具 pymilvus[model],用户可以使用简单的包装代码将非结构化数据转换为向量嵌入,并利用重排序模型优化搜索结果。此外,Milvus 生态系统还包括用于 GUI 管理的 Attu、用于系统调试的 Birdwatcher、用于监控的 Prometheus/Grafana 等。
Tracy Profiler:实时纳秒级游戏及应用程序性能分析神器!
tracy 是一个用于帧性能分析的工具。简单讲,它能帮助开发者实时监控和优化程序的性能瓶颈,特别是图形渲染和游戏开发中的帧率问题。适用人群:游戏开发者、图形程序员、性能优化工程师。
项目地址:https://github.com/wolfpld/tracy
主要语言:C++
stars: 13.2k

Tracy Profiler 是一款用于游戏和其他应用程序的实时、纳秒级分辨率、远程遥测、混合帧和采样分析器。以下是对该项目的详细介绍:
核心功能
- 多语言 CPU 分析:直接支持 C、C++、Lua、Python 和 Fortran 语言的集成,同时网络上也存在许多其他语言的第三方绑定,如 Rust、Zig、C#、OCaml、Odin 等。
- GPU 分析:支持所有主流图形 API,包括 OpenGL、Vulkan、Direct3D 11/12、Metal、OpenCL 和 CUDA。
- 其他分析功能:可以对内存分配、锁、上下文切换进行分析,还能自动将截图与捕获的帧关联起来。
优势
- 高分辨率:具备纳秒级的分辨率,能够提供非常精确的性能分析数据。
- 实时性:可以实时获取应用程序的性能数据,方便开发者及时发现和解决问题。
- 远程遥测:支持远程分析,方便对不同环境下的应用程序进行性能分析。
- 多平台和多语言支持:不仅支持多种主流图形 API,还能与多种编程语言集成,具有广泛的适用性。
应用场景
- 游戏开发:在游戏开发过程中,通过分析 CPU 和 GPU 的性能,优化游戏的帧率和响应速度,提升玩家的游戏体验。
- 其他应用程序开发:对于其他需要高性能的应用程序,如图形处理软件、科学计算程序等,也可以使用 Tracy Profiler 进行性能分析和优化。
相关资源
- 文档:提供了使用说明和构建过程的详细文档,可从 这里 下载。
- 版本发布:包含文档(
tracy.pdf)和编译好的 Windows x64 二进制文件(Tracy-<version>.7z),可在 Releases 页面获取。 - 更新日志:记录了项目的更新历史,可查看 Changelog。
- 交互式演示:可以通过 这里 进行交互式演示,直观了解 Tracy Profiler 的功能。
- 视频教程:提供了多个版本的介绍视频,包括 An Introduction to Tracy Profiler in C++ - Marcos Slomp - CppCon 2023 以及不同版本新特性介绍视频,如 v0.2 - v0.8 版本。