4D AI: descubra el poder de los vectores 4D

Cuando se trabaja con aplicaciones modernas, especialmente aquellas que involucran Inteligencia Artificial, procesamiento de lenguaje natural o datos espaciales, la matemática vectorial es clave. Por eso 4D 20 R10 introduce un nuevo objeto: 4D.Vector, diseñado para ayudar a los desarrolladores a almacenar y comparar vectores de datos con sólo unas pocas líneas de código.

Por ejemplo, si está creando una funcionalidad para clasificar imágenes basándose en lo bien que coinciden con un texto, simplemente genere vectores, compárelos usando la similitud coseno, y ordene sus resultados de más a menos relevante, todo directamente en 4D.

Vectores HDI 4D

La integración de la inteligencia artificial no es sólo una tendencia, se está convirtiendo en un factor clave para las aplicaciones profesionales modernas. Es por eso que 4D está invirtiendo profundamente en capacidades nativas de IA para apoyarlo. Con 4D 20 R10, el soporte para datos vectoriales comienza con la introducción de 4D.Vector, sentando las bases para un conjunto de funcionalidades más poderosas que llegarán en 4D 21.

Esta primera versión da a los desarrolladores experimentados las herramientas para empezar a crear funciones más inteligentes, impulsadas por la IA directamente en sus aplicaciones 4D. Pero esto es sólo el principio. Mejoras clave como un índice vectorial – esencial para escalar el rendimiento – están aún por llegar. Mientras tanto, nos centramos en casos de uso reales que muestran las posibilidades actuales, como la búsqueda semántica y la correspondencia de lenguaje natural.

¿Qué es exactamente un vector?

En esencia, un vector no es más que una lista de números, pero esos números representan algo significativo.

En IA, utilizamos vectores para describir cosas complejas como palabras, imágenes o incluso el comportamiento de los clientes de una forma que las máquinas puedan comparar. Cada número de la lista capta parte de lo que esa cosa significa: su tono, estilo, tema o contexto.

Por ejemplo, la palabra «manzana» puede convertirse en un vector como [0,12, -0,45, 0,78, …]. Esos números reflejan cómo se utiliza en el lenguaje, quizá relacionado con la fruta, quizá con la empresa tecnológica, según el contexto.

Estos vectores viven en un espacio de alta dimensión, en el que los significados similares están cerca unos de otros y las cosas no relacionadas están lejos.

Esta estructura simplifica las comparaciones:

«¿Esta imagen es conceptualmente parecida a ese mensaje?

«¿Estos dos documentos hablan de lo mismo?».

Utilizamos matemáticas vectoriales, como la similitud del coseno, para medir lo cerca que están dos vectores. Cuanto más cercanos estén, más relacionado estará su significado. Así es como funcionan funciones modernas como la búsqueda semántica, las recomendaciones y la clasificación.

Presentamos 4D.Vector: Matemáticas vectoriales nativas en 4D

A partir de 4D 20 R10, ahora puede trabajar con vectores directamente en su código gracias a un nuevo objeto nativo: 4D.Vector.

Está diseñado para hacer las matemáticas vectoriales simples y accesibles para que pueda almacenar, comparar y ordenar datos de alta dimensión sin depender de librerías externas. ¿Necesita medir la similitud entre dos elementos? Sólo tiene que llamar a los métodos integrados como la similitud coseno, el producto punto, o la distancia euclidiana, todo al interior de 4D.

Crear un vector en 4D

Hay dos formas sencillas de crear un vector 4D.Vector dependiendo de la procedencia de los datos:

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

Si quiere transforma un texto en un vector, por ejemplo, para comparar ideas o potenciar la búsqueda semántica, puede utilizar el modelo de integración de OpenAI a travé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,...]

Esto le da una lista de números de punto flotante que capturan el significado de su entrada. Ahora puede utilizarlo en tareas de comparación, ranking o clasificación.

2. Crear directamente a partir de una lista de números

Si ya dispone de datos vectoriales – tal vez de un servicio o modelo externo – puede crear un modelo vectorial 4D.Vector manualmente:

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

Similitud coseno: Ideal para LAS comparaciones semánticas de textos

La similitud coseno es una de las métricas de similitud más utilizadas en el procesamiento del lenguaje natural (NLP), ideal para comparar el significado de frases o documentos. Mide hasta qué punto dos vectores apuntan en la misma dirección, basándose en el ángulo entre ellos, no en su tamaño.

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 (opuesto) a 1 (idéntico)

  • Ideal para: comparar incrustaciones de frases, búsqueda semántica y clasificación de documentos

Producto de puntos: Dirección y magnitud combinadas

La similitud de puntos (también llamada producto escalar) combina la dirección y la longitud de los vectores. Esto significa que no sólo se fija en lo alineados que están dos vectores, sino también en lo fuertes que son.

Si dos vectores apuntan en una dirección similar y tienen magnitudes grandes, el producto escalar será alto, como muestran las flechas más gruesas del 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 más altos = más similitud y alineación más fuerte.

  • Ideal para: motores de recomendación, modelos transformadores, incrustaciones ajustadas.

Distancia euclidiana: Medida de disimilitud

La distancia euclídea proporciona una medida real entre vectores. Muestra lo alejados que están dos vectores en el espacio: cuanto más cerca están, más similar es su significado. Cuanto más alejados, más diferentes.

Es perfecta cuando se necesita una medida real de disimilitud, ideal para la agrupación, la detección de anomalías o el razonamiento 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
  • Más bajo = más similar

  • Ideal para: datos estructurados, detección de anomalías o proximidad espacial

Elegir la métrica de similitud adecuada

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.

Los vectores son sólo el principio

El objeto 4D.Vector sienta las bases para un nuevo conjunto de funciones en sus aplicaciones. Con sólo unas pocas líneas de código, puede:

  • Crear herramientas de búsqueda que entiendan la intención

  • Potenciar recomendaciones con contexto real

  • Clasificar, agrupar y filtrar datos basándose en el significado, no sólo en metadatos

Y todo se ejecuta de forma nativa en 4D – rápido, flexible y listo para escalar.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.