4D AI: Descubra o poder dos Vectores 4D

Tradução automática de Deepl

Quando se trabalha com aplicações modernas, especialmente as que envolvem Inteligência Artificial, processamento de linguagem natural, ou dados espaciais, a matemática vetorial é fundamental. É por isso que 4D 20 R10 introduz um novo objeto: 4D.Vector, desenhado para ajudar desenvolvedores a armazenar e comparar vetores de dados com apenas algumas linhas de código.

Por exemplo, se está construindo uma caraterística para classificar imagens baseadas em quão bem elas combinam com um texto, apenas gere vetores, compare-os usando similaridade de cosseno, e ordene seus resultados do mais para o menos relevante, tudo diretamente em 4D.

Vectores HDI 4D

A integração de inteligência artificial não é apenas uma tendência – está se tornando um motor chave para aplicações de negócios modernas. É por isso que 4D está investindo profundamente em capacidades nativas de IA para apoiá-lo. Com 4D 20 R10, o suporte para dados vetoriais começa com a introdução de 4D.Vector – que estabelece as bases para um conjunto de recursos mais poderoso que virá em 4D 21.

Este primeiro lançamento dá aos desenvolvedores experientes as ferramentas para começar a construir funcionalidades mais inteligentes e alimentadas por IA diretamente nas suas aplicações 4D. Mas é apenas o começo. Melhorias importantes como um índice vetorial – essencial para escalar a performance – ainda estão por vir. Enquanto isso, estamos focando em casos de uso do mundo real que mostram o que é possível hoje, incluindo busca semântica e correspondência de linguagem natural.

Então… O que é exatamente um vetor?

Na sua essência, um vetor é apenas uma lista de números, mas esses números representam algo significativo.

Na IA, usamos vectores para descrever coisas complexas como palavras, imagens ou até mesmo o comportamento do cliente de uma forma que as máquinas possam comparar. Cada número na lista capta parte do significado dessa coisa: o seu tom, estilo, tópico ou contexto.

Por exemplo, a palavra “maçã” pode tornar-se um vetor como [0,12, -0,45, 0,78, …]. Estes números reflectem a forma como é utilizada na linguagem, talvez relacionada com fruta, talvez com a empresa de tecnologia, dependendo do contexto.

Estes vectores vivem num espaço de grande dimensão, onde significados semelhantes estão próximos uns dos outros e coisas não relacionadas estão afastadas.

Esta estrutura torna as comparações simples:

“Esta imagem está concetualmente próxima daquela mensagem?”

“Estes dois documentos estão a falar da mesma coisa?”

Utilizamos a matemática vetorial, como a semelhança de cosseno, para medir a proximidade entre dois vectores. Quanto mais próximos estiverem, mais relacionados estão os significados. É assim que as caraterísticas modernas como a pesquisa semântica, recomendações e classificação funcionam.

Apresentando 4D.Vetor: Matemática Vetorial Nativa em 4D

Começando em 4D 20 R10, agora pode trabalhar com vetores diretamente em seu código graças a um novo objeto nativo: 4D.Vector.

Foi desenhado para fazer a matemática vetorial simples e acessível para que possa armazenar, comparar e ordenar dados de alta dimensão sem depender de bibliotecas externas. Precisa de medir a semelhança entre dois itens? Apenas chame métodos embutidos como similaridade de cosseno, produto de ponto, ou distância Euclidiana, tudo dentro de 4D.

Criando um Vetor em 4D

Há duas maneiras simples de criar um vetor 4D.Vectordependendo de onde seus dados vêm:

1. Gerar a partir de texto usando 4D AI Kit

Se quiser transformar um pedaço de texto em um vetor, por exemplo, para comparar ideias ou fazer pesquisa semântica, pode usar o modelo de incorporação de OpenAI através de 4D AI Kit:

var $AIKey:="tDGWULQsrG..."
var $clientAI:=cs.AIKit.OpenAI.new($AIKey)
var $inputText:="Apple"
	
// Name of the embedding model to use
var $model:="text-embedding-ada-002"
	
// Call the OpenAI embeddings API to generate the vector for the input text
var $result:=$clientAI.embeddings.create($inputText; $model)

Var $myVector:=$result.embedding.vector
// $myVector=[0.013417294,-0.005096785,-0.001601552,-0.04005942,...]

Isto dá-lhe uma lista de números de ponto flutuante que captam o significado do seu input. Pode agora usá-lo em comparações, ranking, ou tarefas de classificação.

2. Criar diretamente a partir de uma lista de números

Se já tiver dados vectoriais – talvez a partir de um serviço ou modelo externo – pode criar um 4D.Vector manualmente:

var $vector := 4D.Vector.new([0.123; -0.456; 0.789])

Similaridade de cosseno: Ideal para comparações semânticas de textos

A similaridade de cosseno é uma das métricas de similaridade mais usadas no Processamento de Linguagem Natural (NLP) – ideal para comparar o significado de frases ou documentos. Mede a proximidade entre dois vectores que apontam na mesma direção, com base no ângulo entre eles e não no seu tamanho.

Visual illustrating cosine similarity between vectors A, B, and C, with angle-based similarity scores, used in NLP for comparing sentence embeddings and semantic similarity.

var $anotherVector := 4D.Vector.new([0.598; -0.951; 0.789])
var $similarity := $vector.cosineSimilarity($anotherVector)
// $similarity = 0,8949424061203
  • Intervalo: -1 (oposto) a 1 (idêntico)

  • Ideal para: comparação de embeddings de frases, pesquisa semântica e classificação de documentos

Produto de pontos: Direção e magnitude combinadas

A semelhança de pontos (também chamada de produto escalar) combina a direção e o comprimento dos vectores. Isto significa que não analisa apenas o alinhamento de dois vectores, mas também a sua força.

Se dois vectores apontarem numa direção semelhante e tiverem grandes magnitudes, o produto escalar será elevado, representado pelas setas mais grossas no diagrama.

Visual illustrating dot product similarity by combining vector angle and magnitude, with vectors A, B, and C, used in NLP, recommendation systems, and attention models.

var $score := $vector.dotSimilarity($anotherVector)
// $score = 1,129731
  • Valores mais altos = mais similaridade e alinhamento mais forte.

  • Ideal para: mecanismos de recomendação, modelos de transformação, embeddings ajustados

Distância euclidiana: Medida de dissimilaridade

A distância euclidiana dá-lhe uma medida real entre vectores. Mostra a distância entre dois vectores no espaço – quanto mais próximos estiverem, mais semelhantes são. Quanto mais afastados, mais diferentes são.

É perfeita quando é necessária uma verdadeira medida de dissimilaridade – ideal para agrupamento, deteção de anomalias ou raciocínio geoespacial.

Visual illustrating Euclidean distance between vectors A, B, and C, showing similarity based on spatial distance, used in clustering, anomaly detection, and geospatial analysis.

var $distance := $vector.euclideanDistance($anotherVector)
//$distance = 0,6860393574716
  • Menor = mais semelhante

  • Ideal para: dados estruturados, deteção de anomalias ou proximidade espacial

Escolhendo a métrica de similaridade correta

Comparison table of similarity metrics—Cosine Similarity, Dot Product, and Euclidean Distance—highlighting best use cases like semantic search, attention mechanisms, and clustering, along with what each metric measures.

 

Os vectores são apenas o começo

O objeto 4D.Vector estabelece as bases para um conjunto totalmente novo de recursos em seus aplicativos. Com apenas algumas linhas de código, você pode:

  • Criar ferramentas de pesquisa que compreendem a intenção

  • Fazer recomendações com contexto real

  • Classificar, agrupar e filtrar dados baseados em significado, não apenas metadados

E tudo isso roda nativamente em 4D – rápido, flexível, e pronto para escalar.

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.