È richiesta un abbonamento a JoVE per visualizzare questo contenuto. Accedi o inizia la tua prova gratuita.

Articolo metodologico

Aumento di modelli linguistici di grandi dimensioni tramite incorporamenti vettoriali per migliorare la reattività specifica del dominio

1.5K visualizzazioni

⸱

DOI:

10.3791/66796

⸱

6 dicembre 2024

 ,  ,  ,  , 

In questo articolo

Sommario

In questo protocollo, la qualità della risposta del modello linguistico di base di grandi dimensioni viene migliorata tramite l'aumento con articoli scientifici specifici del dominio sottoposti a revisione paritaria attraverso un meccanismo di incorporamento vettoriale. Inoltre, viene fornito codice per facilitare il confronto delle prestazioni tra modelli linguistici di grandi dimensioni.

Abstract

I modelli linguistici di grandi dimensioni (LLM) sono emersi come una risorsa popolare per la generazione di informazioni rilevanti per una query utente. Tali modelli vengono creati attraverso un processo di formazione ad alta intensità di risorse che utilizza un ampio corpus statico di dati testuali. Questa natura statica comporta limitazioni per l'adozione in domini con conoscenze, informazioni proprietarie e dati sensibili in rapida evoluzione. In questo lavoro, vengono delineati i metodi per aumentare gli LLM generici, noti come modelli di fondazione, con informazioni specifiche del dominio utilizzando un approccio basato sull'incorporamento di manoscritti scientifici aggiornati e sottoposti a revisione paritaria. Ciò si ottiene attraverso strumenti open source come Llama-Index e modelli disponibili pubblicamente come Llama-2 per massimizzare la trasparenza, la privacy e il controllo degli utenti e la replicabilità. Sebbene i manoscritti scientifici siano utilizzati come caso d'uso di esempio, questo approccio può essere esteso a qualsiasi fonte di dati testuali. Inoltre, vengono discussi i metodi per valutare le prestazioni del modello in seguito a questo miglioramento. Questi metodi consentono il rapido sviluppo di sistemi LLM per domini altamente specializzati, indipendentemente dalla completezza delle informazioni nel corpus di formazione.

Introduzione

I modelli linguistici di grandi dimensioni (LLM) come ChatGPT di OpenAI o Llama di Meta AI sono diventati rapidamente una risorsa popolare per la generazione di testo pertinente a un prompt dell'utente. Originariamente funzionanti per prevedere gli elementi lessicali successivi in una sequenza, questi modelli si sono evoluti per comprendere il contesto, codificare le informazioni cliniche e dimostrare prestazioni elevate in una varietà di compiti 1,2,3,4. Sebbene i modelli linguistici precedono di decenni tali funzionalità e il loro attuale livello dipopolarità5, i recenti progressi nelle capacità di deep learning e calcolo hanno reso gli LLM commerciali pre-addestrati e di alta qualità ampiamente disponibili per gli utenti tramite tecnologie basate sul Web e interfacce di programmi applicativi (API)6. Tuttavia, ci sono diverse limitazioni notevoli all'utilizzo di LLM in questo formato.

Sfida 1: corpus di allenamento statico
Gli LLM sono addestrati su un enorme (ad esempio, due trilioni di token nel caso di Llama 27) ma statico di dati di testo. Ciò pone una sfida per la produzione di risposte accurate relative a campi in rapido sviluppo o in continua evoluzione della letteratura. In questo approccio statico, gli LLM richiederebbero frequenti riqualificazioni per stare al passo con i dati più recenti, il che non è né pratico né scalabile. Inoltre, i prompt che richiedono risposte basate su informazioni non presenti nei dati di addestramento possono impedire la generazione di testo utile o portare ad allucinazioni8. I casi di allucinazioni o di fabbricazione di fatti sollevano preoccupazioni significative sull'affidabilità degli LLM, in particolare in contesti in cui l'accuratezza delle informazioniè fondamentale.

Sfida 2: Mancanza di specificità del dominio
I modelli con training preliminare vengono spesso creati per l'uso generale, mentre gli utenti possono richiedere un modello ottimizzato in modo specifico per le prestazioni in un determinato dominio. Inoltre, le risorse computazionali e i dati necessari per l'addestramento de novo di un modello o per l'esecuzione di una messa a punto significativa sono proibitivi per molti utenti.

Sfida 3: Mancanza di privacy
Gli utenti che perseguono applicazioni che coinvolgono dati sensibili o informazioni proprietarie potrebbero non essere disposti o non essere in grado di utilizzare determinati servizi LLM poiché non dispongono di informazioni su come i dati possono essere archiviati o utilizzati.

Sfida 4: Mancanza di stabilità garantita
I servizi con LLM proprietari possono modificare i modelli disponibili o alterare il comportamento in qualsiasi momento, rendendo la stabilità un problema per l'implementazione di applicazioni che si basano su questi servizi.

La generazione aumentata dal recupero (RAG) è una tecnica sviluppata per migliorare le prestazioni dell'LLM, in particolare su query relative a informazioni al di fuori del corpus di addestramento 10,11 del modello. Questi sistemi aumentano gli LLM incorporando informazioni contestuali da considerare quando si genera una risposta a una query dell'utente. Vari lavori recenti hanno descritto le applicazioni dei sistemi RAG e i loro potenziali vantaggi 12,13,14.

L'obiettivo del metodo delineato in questo lavoro è dimostrare la costruzione di un tale sistema e fornire un quadro di riferimento per i ricercatori per sperimentare rapidamente su LLM aumentati specifici del dominio. Questo metodo è applicabile agli utenti che desiderano integrare un LLM con un'origine dati esterna basata su testo. In particolare, uno degli obiettivi generali di questo protocollo è quello di fornire un codice passo-passo che sia estendibile a una varietà di esperimenti pratici LLM e RAG senza la necessità di una significativa competenza tecnica nel dominio della modellazione del linguaggio, sebbene sia necessaria una conoscenza pratica di Python per applicare questo approccio senza modifiche. Per massimizzare il controllo dell'utente, la trasparenza, la portabilità e l'accessibilità delle soluzioni, vengono utilizzati strumenti open source disponibili pubblicamente. Il sistema proposto affronta le questioni precedentemente indicate nei seguenti modi:

Soluzioni 1 e 2: corpus di addestramento statico e mancanza di specificità del dominio
La metodologia fornita sfrutta un approccio RAG, utilizzando gli embedding per fornire informazioni specifiche del dominio non incluse nei dati di addestramento originali. A livello generale, l'incorporamento di modelli trasforma il testo o altri dati in una rappresentazione come un vettore o una matrice di numeri a dimensione singola. Questa tecnica è vantaggiosa in quanto converte le informazioni semantiche contenute nel testo in una forma densa e numerica. Proiettando una query utente nello stesso spazio di incorporamento, è possibile utilizzare vari algoritmi per calcolare la distanza15 e, quindi, la somiglianza semantica approssimativa, tra la query utente e le sezioni dei documenti di testo. Pertanto, la creazione di un database di tali vettori da documenti suddivisi in sezioni discrete può facilitare la ricerca su un numero significativo di documenti per il testo più rilevante per una query utente (Figura 1). Questo approccio è estendibile a qualsiasi documento di testo. Mentre altri approcci, come le funzionalità di ricerca online, stanno iniziando ad essere implementati per aumentare gli LLM, questo approccio consente agli utenti di scegliere fonti considerate di qualità sufficientemente elevata per il loro caso d'uso.

Soluzione 2: mancanza di privacy
In questa implementazione, è stato utilizzato un ambiente cloud sicuro per l'hosting, senza richieste dell'utente, risposte generate o altri dati che lasciano questo ecosistema. Tutto il codice è scritto in modo indipendente dalla piattaforma, tuttavia, per garantire che un altro provider cloud o hardware locale possa essere sostituito.

Soluzione 3: mancanza di stabilità garantita
Questo approccio utilizza librerie open source e si concentra sull'aumento degli LLM con pesi disponibili pubblicamente, consentendo un grado più elevato di trasparenza, stabilità e controllo delle versioni, se necessario.

Uno schema completo del sistema proposto è mostrato nella Figura 2 e le istruzioni dettagliate sulla replica di questo o di un sistema simile sono descritte nella sezione del protocollo. Un'ulteriore considerazione quando si modifica il comportamento del modello attraverso la messa a punto o l'aumento è la valutazione delle prestazioni. Nei modelli di generazione del linguaggio, questo rappresenta una sfida unica poiché molte metriche tradizionali di machine learning non sono applicabili. Sebbene esistano una varietà di tecniche16, in questo studio sono state utilizzate domande a scelta multipla (MCQ) scritte da esperti per valutare l'accuratezza e confrontare le prestazioni pre e post aumento, nonché rispetto ai popolari LLM alternativi.

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Protocollo

Nel caso d'uso dimostrato in questo articolo, l'archivio vettoriale è stato generato utilizzando le linee guida pubblicate dal Chicago Consensus Working Group17. Questo gruppo di esperti è stato istituito per sviluppare linee guida per la gestione dei tumori peritoneali. L'area tematica è stata scelta in quanto rientra nell'area di competenza clinica degli investigatori. La serie di articoli è stata consultata da archivi di riviste online tra cui Cancer e Annals of Surgical Oncology. Un modello di embedding compatto (33,4 milioni di parametri) creato dalla Beijing Academy for Artificial Intelligence (BAAI, https://www.baai.ac.cn/english.html), bge-small-en, è stato utilizzato per generare embedding da documenti di origine. Il database risultante è stato quindi utilizzato per aumentare i modelli di base Llama 2 e Open-AI7. Per comodità del lettore, il codice viene reso disponibile tramite GitHub (https://github.com/AnaiLab/AugmentedLLM). Per garantire la replicabilità, si consiglia di utilizzare le stesse versioni delle librerie utilizzate nell'elenco dei requisiti fornito, nonché la stessa versione di Python. Ulteriori dettagli sull'installazione o sulla documentazione relativa agli strumenti utilizzati nei seguenti metodi sono disponibili sui siti Web ufficiali dei fornitori per Python (https://www.python.org), git (https://git-scm.com), Llama-Index (https://llamaindex.ai) e Chroma (https://trychroma.com).

1. Prerequisiti: esaminare il codice e installare le librerie necessarie

  1. Verificare che git, python e pip siano installati.
    1. In un terminale, esegui i seguenti comandi per verificare l'installazione:
      git --versione
      python3 --version
      pip3 --versione
  2. Controllare il codice e i requisiti di installazione.
    1. In un terminale, esegui i seguenti comandi:
      Git clone https://github.com/AnaiLab/AugmentedLLM.git
      cd ./LLM AUMENTATO/

      pip3 install -r requirements.txt

2. Creazione di un database vettoriale con Llama-Index

  1. Converti i formati di file RTF (richiesto solo se i file sono in formato RTF).
    1. Modificare il file denominato config.py, sostituendo i percorsi dei file nel codice seguente con il percorso degli articoli RTF da convertire e il percorso in cui devono essere scritti i file di testo normale digitando i comandi seguenti. Salva il file.
      rtf_file_dir = './articles_rtf/'
      converted_file_dir = './articles_converted/'
    2. In un terminale, nella stessa directory, eseguire il codice per generare versioni di testo normale dei file RTF eseguendo il seguente comando:
      python3 ./convert_rtf.py
  2. Crea e salva il database vettoriale.
    1. Modificare il file config.py, sostituendo il valore della variabile seguente con il percorso del file della cartella contenente i documenti con cui si vuole aumentare l'LLM; Salvare il file.
      article_dir = './articoli/'
    2. In un terminale, nella stessa directory, eseguire il codice con il seguente comando per creare e rendere persistente il database. Verificare che il database sia ora salvato nella cartella vector_db.
      python3 ./build_index.py

3. Aumento di un modello di lama con database vettoriale generato nella sezione 2

  1. Creare un'istanza di LLM personalizzato in locale (facoltativo)
    NOTA: L'esecuzione di questo passaggio è necessaria solo se si desidera utilizzare un modello diverso dal Llama-2-7B predefinito. Se si desidera utilizzare il modello predefinito, procedere al passaggio 3.2.
    1. (Utilizzando un LLM personalizzato) Specificare un LLM da aumentare modificando run_augmented_llm.py e passando un oggetto LLM llama-index nel costruttore come parametro llm nelle righe di codice successive anziché Nessuno.
      augmentedLLM = AugmentedLLM(vector_store, llm=Nessuno)
  2. Interrogazione LLM aumentata
    1. Esegui il seguente comando nel terminale:
      python3 ./run_augmented_llm.py
    2. Esegui query utente per ottenere una risposta aumentata dai dati nel set di manoscritti (Figura 3 e Figura 4). Al termine, premere CTRL + C per uscire.

4. Confronto programmatico di LLM alternativi

  1. Creare MCQ.
    1. Modifica il file questions.py, prendendo nota del formato degli esempi. Aggiungi domande seguendo un formato simile. Salva il file.
  2. Connettiti a GPT-3.5, GPT-4, OpenChat o altri modelli di comparatori tramite API.
    1. Modifica il file config.py, aggiungendo la chiave API per OpenAI o Huggingface se l'obiettivo è confrontare i modelli di entrambi i fornitori. Salva il file.
      huggingface_key = ''
      openai_key = ''
    2. Modifica il file compare_llms.py e scegli l'insieme di modelli con cui eseguire il test rimuovendo il commento (eliminando i caratteri '# ' all'inizio di quella riga) i modelli con cui confrontare.
      NOTA: alcuni comparatori richiedono una chiave API come impostato nel passaggio 4.2.1. Inoltre, modificare il parametro output_dir per cambiare la posizione in cui viene memorizzato l'output LLM, se lo si desidera; In caso contrario, verrà utilizzato un valore predefinito.
      output_dir = './llm_responses/'
    3. In un terminale, esegui il codice con il seguente comando. Dopo l'esecuzione, visualizzare le risposte del modello nella cartella specificata nel passaggio 4.2.2 per la valutazione o un'altra revisione.
      python3 ./compare_llms.py
  3. (Facoltativo) Sperimenta la classificazione automatica delle risposte a scelta multipla. Il codice di esempio utilizza la libreria LMQL per vincolare l'output LLM in un formato previsto.
    1. Aprire il file automated_comparison.py e, analogamente al passaggio 4.2.2, rimuovere il commento dai modelli da includere, modificare la variabile output_dir o personalizzare in altro modo. Si noti che l'output del modello verrà comunque salvato in modo simile. Salva il file.
    2. Eseguire il codice del passaggio 4.3.1 eseguendo il comando seguente in un terminale:
      python3 ./automated_comparison.py

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Risultati

Una serie di 22 pubblicazioni del Chicago Consensus Working Group sono state utilizzate per aumentare il modello base del Llama-7b17. I documenti sono stati convertiti in un indice vettoriale utilizzando lo strumento Llama-Index per generare Llama-2-7b-CCWG-Embed. Anche i modelli OpenAI più diffusi, come GPT-3.5 e GPT-4, sono stati aumentati in modo simile per produrre modelli GPT-XX-CCWG-Embed. Sono state sviluppate un totale di 20 domande a scelta multipla (MCQ) per valutare le conoscenze relati...

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Discussione

I metodi qui forniti mirano a facilitare la ricerca di applicazioni specifiche di dominio degli LLM senza la necessità di una formazione de novo o di un'ampia messa a punto. Poiché gli LLM stanno diventando un'area di significativo interesse per la ricerca, gli approcci per aumentare le basi di conoscenza e migliorare l'accuratezza delle risposte diventeranno sempre più importanti 18,19,20,21.

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Dichiarazioni

Gli autori non hanno conflitti di interesse da dichiarare.

Ringraziamenti

Questo lavoro è stato facilitato da diverse librerie open source, in particolare llama-index (https://www.llamaindex.ai/), ChromaDB (https://www.trychroma.com/) e LMQL (https://lmql.ai/).

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Materiali

Elenco dei materiali utilizzati in questo articolo
NomeAziendaNumero di catalogoCommenti
pip3 versione 22.0.2 
Python versione 3.10.12

Riferimenti

  1. Singhal, K., et al. Large language models encode clinical knowledge. Nature. 620 (7972), 172-180 (2023).
  2. Gilson, A., et al. How does ChatGPT perform on the United States medical licensing examination? The implications of large language models for medical education and knowledge assessment. JMIR Med Educ. 9 (1), e45312(2023).
  3. Guerra, G. A., et al. GPT-4 artificial intelligence model outperforms ChatGPT, medical students, and neurosurgery residents on neurosurgery written board-like questions. World Neurosurg. 179, e160-e165 (2023).
  4. Terwiesch, C. Would Chat GPT3 get a Wharton MBA? A prediction based on its performance in the Operations Management course. , https://mackinstitute.wharton.upenn.edu/wp-content/uploads/2023/01/Christian-Terwiesch-Chat-GTP.pdf (2023).
  5. Weizenbaum, J. ELIZA-a computer program for the study of natural language communication between man and machine. Communications of the ACM. 9 (1), 36-45 (1966).
  6. Wu, T., et al. A brief overview of ChatGPT: The history, status quo and potential future development. IEEE/CAA Journal of Automatica Sinica. 10 (5), 1122-1136 (2023).
  7. Touvron, H., et al. Llama 2: Open foundation and fine-tuned chat models. arXiv [cs.CL]. , http://arxiv.org/abs/2307.09288 (2023).
  8. Huang, L., et al. A survey on hallucination in large language models: Principles, taxonomy, challenges, and open questions. arXiv [cs.CL]. , http://arxiv.org/abs/2311.05232 (2023).
  9. Thirunavukarasu, A. J., et al. Large language models in medicine. Nature Med. 29 (8), 1930-1940 (2023).
  10. Lewis, P., et al. Retrieval-augmented generation for knowledge-intensive NLP tasks. arXiv [cs.CL]. , http://arxiv.org/abs/2005.11401 (2020).
  11. Li, J., Yuan, Y., Zhang, Z. Enhancing LLM factual accuracy with RAG to counter hallucinations: A case study on domain-specific queries in private knowledge-bases. arXiv [cs.CL]. , http://arxiv.org/abs/2403.10446 (2024).
  12. Zhang, P., Xiao, S., Liu, Z., Dou, Z., Nie, J. -Y. Retrieve anything to augment large language models. arXiv [cs.IR]. , http://arxiv.org/abs/2310.07554 (2023).
  13. Ling, C., et al. Domain specialization as the key to make large language models disruptive: A comprehensive survey. arXiv [cs.CL]. , http://arxiv.org/abs/2305.18703 (2023).
  14. Ram, O., et al. In-Context retrieval-augmented language models. Trans Assoc Comput Linguist. 11, 1316-1331 (2023).
  15. Cormode, G. Sequence distance embeddings. , The University of Warwick. https://wrap.warwick.ac.uk/61310/7/WRAP_THESIS_Cormode_2003.pdf (2003).
  16. Guo, Z., et al. Evaluating large language models: A comprehensive survey. arXiv [cs.CL]. , http://arxiv.org/abs/2310.19736 (2023).
  17. Chicago Consensus Working Group. The Chicago Consensus Guidelines for peritoneal surface malignancies: Introduction. Cancer. 126 (11), 2510-2512 (2020).
  18. Wang, G., et al. OpenChat: Advancing open-source language models with mixed-quality data. arXiv [cs.CL]. , http://arxiv.org/abs/2309.11235 (2023).
  19. Jiang, A. Q., et al. Mistral 7B. arXiv [cs.CL]. , http://arxiv.org/abs/2310.06825 (2023).
  20. Megahed, F. M., et al. AI and the future of work in statistical quality control: Insights from a first attempt to augmenting ChatGPT with an SQC knowledge base (ChatSQC). arXiv [cs.HC]. , http://arxiv.org/abs/2308.13550 (2023).
  21. Wang, Y., Ma, X., Chen, W. Augmenting black-box LLMs with medical textbooks for clinical question answering. arXiv [cs.CL]. , http://arxiv.org/abs/2309.02233 (2023).
  22. Dodge, J., et al. Measuring the carbon intensity of AI in cloud instances. FACCT 2022. , (2022).
  23. Samsi, S., et al. From words to watts: Benchmarking the energy costs of large language model inference. arXiv [cs.CL]. , http://arxiv.org/abs/2310.03003 (2023).
  24. Khene, Z. -E., Bigot, P., Mathieu, R., Rouprêt, M., Bensalah, K. Development of a personalized chat model based on the European association of urology oncology guidelines: Harnessing the power of generative artificial intelligence in clinical practice. Eur Urol Oncol. 7 (1), 160-162 (2024).
  25. Kresevic, S., et al. Optimization of hepatological clinical guidelines interpretation by large language models: a retrieval augmented generation-based framework. NPJ Digit Med. 7 (1), 102(2024).
  26. Ge, J., et al. Development of a liver disease-specific large language model chat interface using retrieval augmented generation. medRxiv. , (2023).
  27. Rule-augmented artificial intelligence-empowered systems for medical diagnosis using large language models. Panagoulias, D. P., et al. 2023 IEEE 35th International Conference on Tools with Artificial Intelligence (ICTAI), , 70-77 (2023).
  28. Panagoulias, D. P., et al. Augmenting large language models with rules for enhanced domain-specific interactions: The case of medical diagnosis. Electronics. 13 (2), 320(2024).
  29. Jin, Q., et al. Matching patients to clinical trials with large language models. arXiv [cs.CL]. , http://arxiv.org/abs/2307.15051 (2023).
  30. Gupta, S. K., et al. PRISM: Patient records interpretation for semantic clinical trial matching using large language models. arXiv [cs.CL]. , http://arxiv.org/abs/2404.15549 (2024).
  31. Hendrycks, D., et al. Measuring massive multitask language understanding. arXiv [cs.CY]. , http://arxiv.org/abs/2009.03300 (2020).
  32. Lin, S., Hilton, J., Evans, O. TruthfulQA: Measuring how models mimic human falsehoods. arXiv [cs.CL]. , http://arxiv.org/abs/2109.07958 (2021).
  33. Bommasani, R., Liang, P., Lee, T. Holistic evaluation of language models. Ann N Y Acad Sci. 1525 (1), 140-146 (2023).
  34. Banerjee, D., Singh, P., Avadhanam, A., Srivastava, S. Benchmarking LLM powered Chatbots: Methods and Metrics. arXiv [cs.CL]. , http://arxiv.org/abs/2308.04624 (2023).
  35. Papineni, K., Roukos, S., Ward, T., Zhu, W. -J. Bleu. Proceedings of the 40th Annual Meeting on Association for Computational Linguistics - ACL '02. , (2001).
  36. Wang, A., Singh, A., Michael, J., Hill, F., Levy, O., Bowman, S. R. Glue: A multi-task benchmark and analysis platform for natural language understanding. , http://arxiv.org/abs/1804.07461 (2019).
  37. Johnson, D., et al. Assessing the accuracy and reliability of AI-generated medical responses: An evaluation of the chat-GPT model. Res Sq. , (2023).
  38. Lin, C. -Y. ROUGE: A package for automatic evaluation of summaries. Text Summarization Branches Out. , 74-81 (2004).
  39. Chen, S., et al. Evaluating the ChatGPT family of models for biomedical reasoning and classification. J Am Med Inform Assoc. 31 (4), 940-948 (2024).

Accesso limitato. Accedi o avvia una prova gratuita per visualizzare questo contenuto.

Ristampe e permessi

Esplora altri articoli

Aumento specifico del dominioLlama-Indexmanoscritti scientificibenchmarking dei modellistrumenti open sourcedatabase vettorialevalutazione dei modellimodelli di base