Sémantické vyhledávání: dotazování podle podobnosti vektorů

Automaticky přeloženo z Deepl

S rostoucím významem vektorového vyhledávání v aplikacích umělé inteligence, jako je sémantické vyhledávání, doporučovací stroje a zpracování přirozeného jazyka, zavádí 4D nativní podporu vektorových dotazů ve funkci query(). Toto vylepšení přináší porovnávání vektorové podobnosti přímo do jazyka DataClass.query() a EntitySelection.query().

Dotazování podle vektorové podobnosti

Nyní můžete vyhledávat entity, jejichž vektorová pole jsou podobná referenčnímu vektoru, pomocí známých operátorů porovnávání: >, >=, < a <=.

Základní syntaxe je:

// 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})

Vrátí entity, jejichž podobnost s $myVector je větší než výchozí prahová hodnota (0,5), a to pomocí výchozí metriky podobnosti: kosinové podobnosti.

Vyhledávání můžete zpřesnit explicitním definováním obou:

  • jaká metrika podobnosti je pro váš případ použití nejvhodnější pomocí atributu metrika

  • jak moc se musí výsledekpodobat referenčnímu vektoru, aby byl považován za relevantní, pomocí atributu prahové hodnoty.

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

KOMBINACE SÉMANTICKÉHO VYHLEDÁVÁNÍ S KLASICKÝM DOTAZEM

Klíčovou výhodou přístupu 4D je, že sémantické dotazy lze kombinovat s tradičními filtry ORDA v jednom dotazu.

To umožňuje vytvářet výkonná a přesná vyhledávání, která kombinují vyhledávání na základě významu se strukturovanými kritérii.

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

V tomto příkladu dotaz vyhledává zaměstnance, jejichž popis práce je sémanticky blízký vstupnímu textu a jejichž plat přesahuje 100 000.

KDY POUŽÍT (A KDY NE)

Sémantické vyhledávání (dotaz) je ideální, když chcete, aby aplikace rozuměla spíše významu než přesným shodám.

Je ideální pro:

  • Fuzzy nebo kontextové vyhledávání (např. „najdi dokumenty podobné tomuto“).

  • Dotazy v přirozeném jazyce (např. „zaměstnanci pracující v marketingu a designu“).

  • Doporučovací stroje a funkce pro zjišťování znalostí

Není však určen pro strukturované analytické úlohy.

Pokud je vaším dotazem něco jako „10 nejlépe placených zaměstnanců“, je rychlejší a vhodnější klasický dotaz.

Kombinací obou přístupů můžete vytvořit inteligentní a přesné vyhledávání. Sémantické vyhledávání dodává pozoruhodný výkon a dokonale se snoubí s tradičními atributovými dotazy ORDA.

Závěr

Díky sémantickému vyhledávání (dotazu), které je nyní zabudováno do 4D, můžete ve svých aplikacích snadno vytvářet funkce vyhledávání a zjišťování založené na umělé inteligenci.

Vyberte metriku podobnosti, která nejlépe vyhovuje vašemu případu použití, upravte práh relevance a kombinujte sémantické a strukturované filtry pro dosažení optimálních výsledků.

Tato nová funkce přináší sílu porozumění založeného na umělé inteligenci přímo do datového modelu 4D a otevírá dveře inteligentnějším dotazům zohledňujícím kontext.

V současné době nejsou vektorová pole indexována, ale podpora indexování bude zavedena v některé z příštích verzí 4D. Toto budoucí vylepšení výrazně zvýší výkon a umožní ještě rychlejší a efektivnější sémantické vyhledávání pro velké datové soubory.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.