Retrieval
Alcuni dei concetti esaminati qui utilizzano modelli per generare query (ad esempio, per SQL o database a grafo). Ci sono rischi intrinseci nel fare questo. Assicurati che i permessi di connessione al database siano limitati il più possibile alle esigenze della tua applicazione. Questo mitigherà, anche se non eliminerà, i rischi di costruire un sistema basato su modelli capace di interrogare database. Per ulteriori informazioni sulle migliori pratiche di sicurezza, consulta la nostra guida alla sicurezza.
Introduzione
I sistemi di recupero sono essenziali nelle applicazioni AI, consentendo l'estrazione efficiente di dati rilevanti da ampi dataset. Questi sistemi supportano vari formati di dati:
- Il testo non strutturato (ad esempio, documenti) è spesso memorizzato in archivi vettoriali o indici di ricerca lessicale.
- I dati strutturati sono tipicamente ospitati in database relazionali o a grafo con schemi definiti.
Le moderne applicazioni AI mirano a rendere tutti i tipi di dati accessibili tramite interfacce in linguaggio naturale. I modelli facilitano questo convertendo le query in linguaggio naturale in formati compatibili con l'indice di ricerca o il database sottostante, consentendo interazioni più intuitive e flessibili con strutture di dati complesse.
Concetti di base
- Analisi delle query: I modelli trasformano o costruiscono query di ricerca per ottimizzare il recupero.
- Recupero delle informazioni: Le query di ricerca vengono utilizzate per recuperare informazioni da vari sistemi di recupero.
Analisi delle query
Gli utenti generalmente preferiscono interagire con i sistemi di recupero utilizzando il linguaggio naturale. Tuttavia, i sistemi di recupero possono richiedere una sintassi di query specifica o beneficiare di particolari parole chiave. L'analisi delle query colma il divario tra l'input grezzo dell'utente e le query di ricerca ottimizzate. Le applicazioni comuni includono:
- Riscrittura delle query: Migliorare le query per ricerche semantiche o lessicali migliori.
- Costruzione delle query: Creare query strutturate (ad esempio, SQL per database).
I modelli trasformano o costruiscono query di ricerca ottimizzate dall'input grezzo dell'utente.
Riscrittura delle query
I sistemi di recupero dovrebbero gestire una vasta gamma di input degli utenti, dalle domande semplici a quelle complesse. I modelli possono trasformare le query grezze degli utenti in query di ricerca più efficaci, che vanno dall'estrazione di parole chiave all'espansione e riformulazione sofisticata delle query. I vantaggi includono:
- Chiarificazione delle query: Riformulare le query ambigue per maggiore chiarezza.
- Comprensione semantica: Catturare l'intento dietro una query.
- Espansione delle query: Generare termini o concetti correlati.
- Gestione delle query complesse: Scomporre domande multipart in sotto-query più semplici.
Le tecniche per la riscrittura delle query includono:
Nome | Quando usare | Descrizione |
---|---|---|
Decomposizione | Quando una domanda può essere scomposta in sottoproblemi più piccoli. | Scomporre una domanda in sottoproblemi/domande, risolti sequenzialmente o in parallelo. |
Step-back | Quando è richiesta una comprensione concettuale di alto livello. | Fare una domanda generica di step-back sui concetti di alto livello, recuperare fatti rilevanti e utilizzare questa base per rispondere alla domanda dell'utente. Paper. |
HyDE | Se è difficile recuperare documenti rilevanti utilizzando input grezzi degli utenti. | Convertire le domande in documenti ipotetici, utilizzarli per recuperare documenti reali. Paper. |
Costruzione delle query
L'analisi delle query comporta anche la traduzione delle query in linguaggio naturale in linguaggi di query specializzati o filtri, cruciali per interagire con database che ospitano dati strutturati o semi-strutturati.
-
Dati strutturati: Per database relazionali e a grafo, vengono utilizzati linguaggi specifici del dominio (DSL).
- Text-to-SQL: Converte il linguaggio naturale in SQL per database relazionali.
- Text-to-Cypher: Converte il linguaggio naturale in Cypher per Graph Databases.
-
Dati semi-strutturati: Per archivi vettoriali, le query possono combinare la ricerca semantica con il filtraggio dei metadati.
- Linguaggio naturale a filtri di metadati: converte le query degli utenti in filtri di metadati appropriati.
Le tecniche includono:
Nome | Quando usare | Descrizione |
---|---|---|
Self Query | Se alle domande si risponde recuperando documenti basati su metadati. | Trasformare l'input dell'utente in una stringa semantica e un filtro di metadati. |
Text to SQL | Se le domande richiedono informazioni da un database relazionale. | Trasformare l'input dell'utente in una query SQL. |
Text-to-Cypher | Se le domande richiedono informazioni da un graph database. | Trasformare l'input dell'utente in una query Cypher. |
Recupero delle informazioni
Sistemi di recupero comuni
Indici di ricerca lessicale
Molti motori di ricerca abbinano le parole in una query alle parole nei documenti, noto come recupero lessicale. Questo approccio utilizza le frequenze delle parole, con un indice invertito che mappa le parole alle posizioni dei documenti. BM25 e TF-IDF sono algoritmi popolari.
Indici vettoriali
Gli indici vettoriali memorizzano dati non strutturati utilizzando modelli di embedding per comprimere i documenti in vettori ad alta dimensione, consentendo una ricerca di similarità efficiente.
Database relazionali
I database relazionali memorizzano dati strutturati in tabelle con schemi predefiniti, utilizzando SQL per le query. Eccellono nel mantenere l'integrità dei dati e gestire query complesse.
Graph Databases
I Graph Databases memorizzano dati interconnessi utilizzando nodes, edges e properties, rappresentando e interrogando in modo efficiente relazioni complesse. Sono utili per social networks, supply-chain management, rilevamento delle frodi e recommendation services.