O que é exatamente um vetor?#
Ao ouvir a palavra «vetor» pela primeira vez, a maioria das pessoas não faz ideia do que se trata. Quem estudou ciências exatas no ensino médio pode se lembrar vagamente das aulas de matemática (álgebra e geometria), mas para quem é de humanas o termo parece muito distante. A forma mais intuitiva de entender um vetor é pensar em um mapa.
Imagine ter um mapa à sua frente e traçar uma linha reta da estação de Tóquio até a estação de Ikebukuro. Esse é o conceito fundamental de um vetor. Em termos numéricos, é uma seta desenhada na diagonal de um retângulo com 3 cm de largura e 5 cm de altura. Em resumo, um vetor representa «direção e magnitude (comprimento)» de um ponto a outro. No mapa é bidimensional, mas adicionando altura torna-se tridimensional, amplamente utilizado na física para descrever o deslocamento de objetos.
O bolso mágico de Doraemon provavelmente se baseia em 4 eixos: largura, altura, profundidade e tempo (segundo Einstein, o quarto eixo é o tempo). Ao armazenar múltiplos valores além de 2D ou 3D, podemos representar matematicamente vetores multidimensionais. O espaço 3D é intuitivo por ser nosso mundo físico, mas ao definir 1024, 1536 ou 4096 dimensões como padrão de granularidade, o vetor torna-se incrivelmente preciso. Encare essas altas dimensões como uma forma de representação matemática: lembre-se apenas de que expressa «direção e quantidade».
Utilização em modelos modernos de IA (LLMs)#
Um grande salto na inteligência artificial moderna foi a vetorização de textos. Transformar frases em vetores facilita os cálculos matemáticos para prever as próximas palavras, base dos grandes modelos de linguagem (LLMs). Da mesma forma, na busca vetorial, gerenciar o significado semântico das frases como vetores aumenta drasticamente a precisão da pesquisa.
Isso se aplica à IA de texto; a geração de imagens utiliza modelos de difusão com fundamentos totalmente distintos.
Especificações atuais e arquitetura#
O ambiente de desenvolvimento da Kurousagi é construído sobre a infraestrutura da Cloudflare, utilizando o banco de dados D1 (baseado em SQLite) para gerenciar especificações. Inicialmente, os documentos ficavam salvos em arquivos Markdown ou HTML nos repositórios, mas com vários projetos em paralelo os arquivos tornaram-se dispersos e duplicados.
Por isso, adotamos uma estrutura de Monorepo e desenvolvemos um portal interno. A edição e criação de especificações via API e navegador permitiram uma gestão centralizada e filtros avançados, tornando qualquer documento acessível instantaneamente.
Contudo, fazer a IA pesquisar documento por documento consome muitos tokens. Para resolver isso, implementamos a busca vetorial para elevar a conveniência e eficiência do sistema.
Funcionamento básico#
Os textos das especificações ficam guardados no banco D1. A isso integramos o Cloudflare Vectorize, um serviço dedicado a bancos de dados vetoriais. Extraímos os textos do D1, processamos com Cloudflare Workers AI e salvamos como vetores no Cloudflare Vectorize (CF Vectorize).
Cota gratuita do Cloudflare Workers AI
- 10.000 Neurons gratuitos por dia por conta em todo o Workers AI
- Cobrança proporcional apenas para uso excedente
- Reinicialização diária às 00:00 UTC (09:00 no horário do Japão)
- Compartilhado entre todos os modelos do Workers AI na conta
Utilizamos o modelo de embedding @cf/baai/bge-m3. Por ser multilíngue, as especificações e as buscas são posicionadas no mesmo espaço vetorial.
Cota gratuita do Cloudflare Vectorize
- Armazenamento: 5 milhões de dimensões vetoriais
- Consultas: 30 milhões de dimensões vetoriais por mês
- Taxas de excedente: Nenhuma cobrança automática (requer plano pago para continuar após o limite)
- Egress, CPU e manutenção de índices: Sem custos adicionais
Como nossa conta possui um plano pago, acomodamos facilmente nosso volume no limite de 10 milhões de dimensões, mas ele ultrapassa a cota gratuita padrão. O fluxo é simples: um cron extrai os textos atualizados do D1 via Workers AI, os vetoriza e registra no Vectorize. Na busca, a consulta é vetorizada pelo Workers AI, comparada no Vectorize e as especificações correspondentes são recuperadas do D1.
Experiência de uso#
Nossa impressão após a implementação da busca vetorial: super prático! Em vez de palavras-chave como «dispositivo» ou «perda», agora buscando por «gerenciamento de contas em caso de perda de aparelho», a lista de especificações correspondente é exibida de imediato. Porém, devido ao limite da cota gratuita, grandes volumes exigirão um plano pago.
A imagem mostra o painel de gerenciamento da busca vetorial, onde é possível ver o limite gratuito excedido. Enquanto o Workers AI reinicia diariamente, o armazenamento vetorial é permanente.
É uma solução excelente para quem já utiliza planos pagos na Cloudflare. Esperamos que este relato seja útil para seus projetos!