内容提要
微软的Copilot Runtime边缘AI开发平台的关键组件之一是DiskANN,一种新的向量搜索技术。DiskANN是在微软研究项目基础上构建的,用于管理应用程序内的向量索引。它使用内存和磁盘存储的混合方式,适用于频繁变化的数据和代理AI应用程序。微软提供了diskannpy Python实现,用于构建和搜索索引。DiskANN在Copilot Runtime中的应用将减少生成式AI的风险,并保护源数据的隐私和SLM的基础。
延伸解读
DiskANN 与 Copilot+ PC 硬件的关系
DiskANN 采用内存与磁盘混合存储,这解释了 Copilot+ PC 为何需要双倍基础内存和更大更快的 SSD。同时,它对 CPU 的需求低于其他向量搜索算法,在 Azure 大规模实现中仅需传统方法 5% 的 CPU。这意味着边缘设备在有限算力下也能高效运行向量搜索,但用户需关注内存和存储配置是否满足要求。
DiskANN 的定位:算法而非数据库
DiskANN 不是数据库,而是一组算法,用于为不支持向量搜索的存储(如关系型或 NoSQL 键值存储)添加向量索引。因此,你需要单独存储被索引的源数据。这种分离带来隐私风险:处理个人可识别信息时,必须确保源数据加密。微软正在开发软件安全 enclave,以加密静态和使用中的数据,降低泄露风险。
使用 diskannpy 的实践要点
diskannpy 提供构建和搜索索引的类,支持 NumPy 等工具,并可在 Jupyter Notebook 中快速原型验证。搜索时需定义返回邻居数量和列表复杂度:更大的列表提高准确性但增加延迟。索引复杂度和图度越大,索引质量越好但创建时间更长。建议在最终编码前进行实验,以平衡准确性与延迟。
DiskANN 在微软其他服务中的应用
除 Copilot Runtime 外,微软还将 DiskANN 用于 Cosmos DB、Microsoft 365 和 Bing。在 Cosmos DB 中,它为 NoSQL API 添加向量搜索,支持快速变化的数据,并与动态缩放配合,每个新分区添加新索引,查询可并行发送到所有分区索引。这表明 DiskANN 已从研究项目转化为广泛使用的产品技术。
Q&A
DiskANN是什么,它的主要功能是什么?
DiskANN是一种新的向量搜索技术,旨在管理应用程序内的向量索引,使用内存和磁盘存储的混合方式。
DiskANN与传统数据库有什么区别?
DiskANN不是数据库,而是一组算法,用于将向量索引添加到不支持向量搜索的其他存储中。
使用DiskANN时需要注意哪些硬件要求?
使用DiskANN的Copilot+ PC需要更高的内存和更快的SSD,但CPU需求低于其他向量搜索算法。
diskannpy是什么,它的用途是什么?
diskannpy是DiskANN的Python实现,提供构建和搜索索引的类,支持与NumPy等数据科学工具集成。
DiskANN如何处理个人可识别信息(PII)?
在处理PII时,确保源数据加密是必要的,微软正在开发安全的加密技术以减少数据泄露风险。
DiskANN在Copilot Runtime中的应用有什么好处?
DiskANN的使用将降低生成式AI的风险,保护源数据隐私,并提高搜索的准确性和效率。