Ricerca semantica: interrogazione per similarità vettoriale

Tradotto automaticamente da Deepl

Vista la crescente importanza della ricerca vettoriale nelle applicazioni di intelligenza artificiale, come la ricerca semantica, i motori di raccomandazione e l’elaborazione del linguaggio naturale, 4D introduce il supporto nativo per le query vettoriali nella funzione query(). Questo miglioramento porta i confronti di similarità vettoriale direttamente nel linguaggio di DataClass.query() e EntitySelection.query().

Interrogazione per somiglianza vettoriale

È ora possibile cercare entità i cui campi vettoriali sono simili a un vettore di riferimento utilizzando i noti operatori di confronto: >, >=, < e <=.

La sintassi di base è:

// Call the OpenAI embeddings API to generate the vector for the input text
var $result:=$clientAI.embeddings.create("A general manager living in France"; $model)
Var $inputEmbedding:=$result.vector

var $results := ds.MyClass.query("myVectorField > :1"; {vector: $inputEmbedding})

Restituisce le entità la cui somiglianza con $myVector è superiore alla soglia predefinita (0,5), utilizzando la metrica di somiglianza predefinita: la somiglianza del coseno.

È possibile affinare la ricerca definendo esplicitamente entrambe le metriche:

  • Quale metrica di somiglianza è più rilevante per il vostro caso d’uso con l’attributo metrica

  • Quanto un risultato deve esseresimile al vettore di riferimento per essere considerato rilevante, con l’attributo threshold.

var $comparisonVector := {vector: $inputEmbedding; metric: mk cosine; threshold: 0.4}
var $results := ds.MyTable.query("myVectorField <= :1"; $comparisonVector)

COMBINARE LA RICERCA SEMANTICA CON LA QUERY CLASSICA

Un vantaggio fondamentale dell’approccio di 4D è che le query semantiche possono essere combinate con i filtri ORDA tradizionali nella stessa query.

Ciò consente di creare ricerche potenti e precise che combinano la scoperta basata sul significato con criteri strutturati.

var $comparisonVector := {vector: $myVector; metric: mk cosine; threshold: 0.4} 
var $results := ds.MyTable.query("myVectorField <= :1 AND salary>100000"; $comparisonVector)

In questo esempio, la query recupera i dipendenti le cui descrizioni delle mansioni sono semanticamente vicine al testo in ingresso e il cui stipendio supera i 100.000 euro.

QUANDO USARE (E QUANDO NON USARE)

La ricerca semantica (query) è ideale quando si vuole che l’applicazione comprenda il significato piuttosto che le corrispondenze esatte.

È perfetta per:

  • Ricerche sfumate o contestuali (ad esempio, “trova documenti simili a questo”)

  • Query in linguaggio naturale (ad esempio, “dipendenti che lavorano nel marketing e nel design”)

  • Motori di raccomandazione e funzioni di scoperta della conoscenza

Tuttavia, non è stato progettato per attività analitiche strutturate.

Se la vostra richiesta è qualcosa come “i 10 dipendenti più pagati”, una query classica è più veloce e più appropriata.

Combinando entrambi gli approcci, è possibile creare esperienze di ricerca intelligenti e precise. La ricerca semantica aggiunge una notevole potenza e si integra perfettamente con le tradizionali query ORDA basate sugli attributi.

Conclusione

Con la ricerca semantica (query) ora integrata in 4D, è possibile creare facilmente funzioni di ricerca e scoperta guidate dall’intelligenza artificiale nelle proprie applicazioni.

Selezionate la metrica di somiglianza più adatta al vostro caso d’uso, regolate la soglia di rilevanza e combinate filtri semantici e strutturati per ottenere risultati ottimali.

Questa nuova funzionalità porta la potenza della comprensione basata sull’intelligenza artificiale direttamente nel modello di dati 4D, aprendo le porte a query più intelligenti e consapevoli del contesto.

Attualmente i campi vettoriali non sono indicizzati, ma il supporto all’indicizzazione sarà introdotto in una prossima versione di 4D. Questo miglioramento futuro migliorerà significativamente le prestazioni e renderà la ricerca semantica ancora più veloce ed efficiente per i grandi insiemi di dati.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.