armazenamento de vetoresTempo de execução em msOpensearch1695Postgresql1807Neptune2236S3 armazenamento de vetores2284 Unidade de Capacidade de Aurora (ACU)$ 0,12 por ACU por hora Tipo de loja de vetores Tempo de recuperaçãoPreço aproximado por mêsS3 Vector2284 ms$3.54Neptune2236 ms$345PostgreSQL1807 ms$86OpenSearch1695 ms$172 A partir de 15 de julho, a AWS adicionou suporte para lojas vetoriais S3 para as bases de conhecimento Bedrock. AWS managed: Others: OpenSearch MongoDB Atlas S3 vector store Pinecone PostgreSQL Redis Enterprise Cloud Neptune AWS managed: Others: OpenSearch MongoDB Atlas S3 vector store Pinecone PostgreSQL Redis Enterprise Cloud Neptune Gerenciamento da AWS: Os outros: O que é cada um? Gerenciamento da AWS: Sobre o OpenSearch: é um conjunto de pesquisas e análises distribuído, baseado na comunidade, licenciado pelo Apache 2.0, 100% de código aberto, usado para um amplo conjunto de casos de uso, como monitoramento de aplicativos em tempo real, análise de log e pesquisa de sites. OpenSearch fornece um sistema altamente escalável para fornecer acesso rápido e resposta a grandes volumes de dados com uma ferramenta de visualização integrada, OpenSearch Dashboards, que torna fácil para os usuários explorar seus dados. OpenSearch OpenSearch O S3 Vector: Amazon S3 Vectors is the first cloud object store with native support to store and query vectors, delivering purpose-built, cost-optimized vector storage for AI agents, AI inference, and semantic search of your content stored in Amazon S3. By reducing the cost of uploading, storing, and querying vectors by up to 90%, S3 Vectors makes it cost-effective to create and use large vector datasets to improve the memory and context of AI agents as well as semantic search results of your S3 data. O Amazon S3 Vectors é a primeira loja de objetos em nuvem com suporte nativo para armazenamento e consulta de vetores, fornecendo armazenamento vetorial projetado e otimizado para os agentes de IA, inferência de IA e pesquisa semântica de seu conteúdo armazenado no Amazon S3. Ao reduzir o custo de carregar, armazenar e consultar vetores em até 90%, o S3 Vectors torna econômico criar e usar grandes conjuntos de dados vetoriais para melhorar a memória e o contexto dos agentes de IA, bem como os resultados de pesquisa semântica de seus dados do S3. Sobre o AWS Aurora PostgreSQL: Amazon Aurora PostgreSQL is a cloud-based, fully managed relational database service that is compatible with PostgreSQL. It combines the performance and availability of high-end commercial databases with the simplicity and cost-effectiveness of open-source databases, specifically PostgreSQL. Essentially, it's a PostgreSQL-compatible database offered as a service by Amazon Web Services O Amazon Aurora PostgreSQL é um serviço de banco de dados relacional totalmente gerenciado baseado em nuvem que é compatível com o PostgreSQL. Ele combina o desempenho e a disponibilidade de bancos de dados comerciais de alto nível com a simplicidade e a eficiência de custos de bancos de dados de código aberto, especificamente o PostgreSQL. Sobre o Amazon Neptune: Amazon Neptune is a fast, reliable, fully managed graph database service that makes it easy to build and run applications that work with highly connected datasets O Amazon Neptune é um serviço de banco de dados gráfico rápido, confiável e totalmente gerenciado que facilita a construção e a execução de aplicativos que funcionam com conjuntos de dados altamente conectados. And non-AWS managed: MongoDB Atlas: O MongoDB Atlas é um serviço de banco de dados multi-nuvem criado pelas mesmas pessoas que criam o MongoDB. O Atlas simplifica a implantação e a gestão de seus bancos de dados, oferecendo a versatilidade necessária para construir aplicativos globais resilientes e de alto desempenho nos provedores de nuvem de sua escolha. Pinecone: Pinecone é um serviço de banco de dados vetorial baseado em nuvem projetado para aplicações de IA, especialmente aquelas que envolvem geração aumentada por recuperação. Redis Enterprise Cloud: Redis Enterprise Cloud é uma oferta totalmente gerenciada, on-demand, base de dados como um serviço (DBaaS) da Redis, construída sobre a base do código aberto Redis. Agora, entendemos o que cada uma das lojas suportadas é. Vou testar e comparar apenas as lojas gerenciadas pela AWS. Eu criei uma função lambda em Python. import json import time import boto3 def lambda_handler(event, context): """Demo: Bedrock Nova Micro with Knowledge Base timing comparison""" # Configuration - easily change these for testing MODEL_ID = "amazon.nova-micro-v1:0" # Allow override for comparison KNOWLEDGE_BASE_ID = event.get('kb_id') # Initialize clients bedrock_runtime = boto3.client('bedrock-runtime') bedrock_agent_runtime = boto3.client('bedrock-agent-runtime') query = event.get( 'query', 'Can you provide a list of bank holidays employers can have?') start_time = time.time() try: # 1. Retrieve from Knowledge Base kb_start = time.time() kb_response = bedrock_agent_runtime.retrieve( knowledgeBaseId=KNOWLEDGE_BASE_ID, retrievalQuery={'text': query}, retrievalConfiguration={ 'vectorSearchConfiguration': {'numberOfResults': 3}} ) kb_time = time.time() - kb_start # 2. Build context and prompt context = "\n".join([r['content']['text'] for r in kb_response.get('retrievalResults', [])]) prompt = f"Context: {context}\n\nQuestion: {query}\n\nAnswer:" # 3. Call Bedrock model model_start = time.time() response = bedrock_runtime.converse( modelId=MODEL_ID, messages=[{"role": "user", "content": [{"text": prompt}]}], inferenceConfig={"maxTokens": 500, "temperature": 0.7} ) model_time = time.time() - model_start total_time = time.time() - start_time answer = response['output']['message']['content'][0]['text'] return { 'statusCode': 200, 'body': json.dumps({ 'kb_id': KNOWLEDGE_BASE_ID, 'query': query, 'answer': answer, 'timing_ms': { 'kb_retrieval': round(kb_time * 1000), 'model_inference': round(model_time * 1000), 'total': round(total_time * 1000) }, 'chunks_found': len(kb_response.get('retrievalResults', [])) }) } except Exception as e: return { 'statusCode': 500, 'body': json.dumps({ 'error': str(e), 'kb_id': KNOWLEDGE_BASE_ID }) } Neste exemplo, usaremos o modelo de base do amazon.nova-micro-v1:0 para comparar o desempenho. Esta função lambda espera um evento de teste no formato: { "query": "Can you provide a list of bank holidays employers can have?", "kb_id": "AAUAL8BHQV" } Pergunta - é a nossa consulta do meu arquivo de exemplo de texto. Você pode usar qualquer arquivo de texto que você quiser. kb_id - ID de base de conhecimento; criaremos uma base de conhecimento base para testar E eu criei 4 diferentes bases de conhecimento usando diferentes fontes de dados: E por fim, temos tudo o que precisamos para fazer os nossos testes: Vamos executar a função lambda e mudar apenas o ID da base de conhecimento para testá-lo corretamente. OpenSearch: Neptune: PostgreSQL: S3 Vector store: E para um visual melhor, ordenado por tempo de execução: armazenamento de vetoresTempo de execução em msOpensearch1695Postgresql1807Neptune2236S3 armazenamento de vetores2284 Loja Vector Tempo de execução em ms Como você pode ver aqui, o OpenSearch é uma solução de armazenamento mais rápida. Pague como por OCU. OpenSearch OpenSearch Compute Unit (OCU) - Indexing $0.24 per OCU per hour OpenSearch Compute Unit (OCU) - Search and Query $0.24 per OCU per hour OpenSearch Compute Unit (OCU) - Indexing $0.24 per OCU per hour OpenSearch Compute Unit (OCU) - Search and Query $0.24 per OCU per hour O OCU mínimo que você pode pagar é de 0,5. Isso significa US $ 0,24 * 24 horas * 30 dias * 2 (indexar, pesquisar e pesquisar) * 0,5 (OCU mínimo) = US $ 172. A: PostgreSQL - pay per ACU Unidade de Capacidade de Aurora (ACU)$ 0,12 por ACU por hora A ACU mínima que você pode pagar é 0. mas 1 ACU custará $0.12 * 24 horas * 30 dias = $86 : Neptune Memory-optimized Neptune Capacity Units configuration Cost 16 m-NCUs $0.48 per hour 32 m-NCUs $0.96 per hour 64 m-NCUs $1.92 per hour 128 m-NCUs $3.84 per hour 256 m-NCUs $7.68 per hour 384 m-NCUs $11.52 per hour Memory-optimized Neptune Capacity Units configuration Cost 16 m-NCUs $0.48 per hour 32 m-NCUs $0.96 per hour 64 m-NCUs $1.92 per hour 128 m-NCUs $3.84 per hour 256 m-NCUs $7.68 per hour 384 m-NCUs $11.52 per hour A instância mínima é de $0.48 por hora. Isso significa que por mês vai custar-lhe $0.48 * 24 horas * 30 dias = $345. Wow! S3 vector store, here - you will need to pay for requests and storage. S3 Armazenamento de vetores /Mês - armazenamento lógico mensal de dados vetoriais, chaves e metadados = $0.06 per GB S3 Vectors request pricing Pedidos PUT (por GB)* GET, LIST e todos os outros pedidos (por 1000 pedidos) Os vetores do S3 pedem US$ 0,20 por GB US$ 0,055 *PUT está sujeito a uma carga mínima de 128KB por PUT. Para reduzir os custos de PUT, você pode batch múltiplos vetores por solicitação de PUT. S3 Preço do vetor S3 Pedidos de consulta de vetores (por 1.000 pedidos) $0.0025 S3 Dados do vetor - soma de vetores por índice multiplicado pelo tamanho médio do vetor (dados do vetor, chave e metadados filtráveis) Primeiros 100 mil vetores $0.0040 por TB Mais de 100 mil vetores $0.0020 por TB O TLDR: S3 Vectors storage charge ((4 bytes * 1024 dimensões) dados vetoriais/vector + 1 KB de metadados filtráveis/vector + 1 KB de metadados não filtráveis/vector + 0,17 KB de chave/vector) = 6,17 KB de armazenamento lógico por vector médio. 6.17 KB / vetor médio * 250.000 vetores * 40 índices de vetor = 59 GB de armazenamento lógico. Custo total de armazenamento mensal = 59 GB * $0.06/GB por mês = $3.54 Final comparison table: Tipo de loja de vetores Tempo de recuperaçãoPreço aproximado por mêsS3 Vector2284 ms$3.54Neptune2236 ms$345PostgreSQL1807 ms$86OpenSearch1695 ms$172 Tipo de Vector Tempo de recuperação Aproximadamente preços por mês Se a velocidade não for tão crítica, eu escolheria a loja de vetores S3.O vencedor óbvio, caso contrário, é o OpenSearch, que provavelmente seria uma escolha melhor. Qual loja de vetores você está usando em seu projeto?