Passaggio 2. Distribuire il PoC per raccogliere commenti degli stakeholder
Al termine di questo passaggio, si sarà distribuita l'app Agent Evaluation Review che consente agli stakeholder di testare e fornire feedback sul POC. I log dettagliati dall'uso degli stakeholder e i loro commenti e suggerimenti verranno trasmessi alle tabelle Delta nel tuo Lakehouse.
Requisiti
- Completare il passaggio 1. Clonare il repository di codice e creare passaggi di calcolo
- Dati del prerequisito
: raccogliere i requisiti sono disponibili nellaLakehouse all'interno di un volume di Unity Catalog .
Per il codice di esempio in questa sezione, vedere il repository GitHub.
Modello di verifica dell'applicazione RAG
Il primo passaggio dello sviluppo basato sulla valutazione consiste nel creare un modello di verifica (PoC). Un PoC offre i seguenti vantaggi:
- Fornisce una vista direzionale sulla fattibilità del caso d'uso con RAG
- Consente di raccogliere feedback iniziale dagli stakeholder, che a sua volta consente di creare la prima versione del set di valutazione
- Stabilisce una misurazione di base della qualità da cui iniziare l'iterazione
Databricks consiglia di creare il modello di verifica usando l'architettura RAG più semplice e le impostazioni predefinite consigliate di Databricks per ogni parametro.
Questo consiglio è dovuto al fatto che sono disponibili centinaia di possibili combinazioni di parametri che è possibile ottimizzare all'interno dell'applicazione RAG. Si possono facilmente passare settimane a effettuare l’ottimizzazione, ma se lo si fa prima di poter valutare sistematicamente la RAG, si finisce in quello che viene definito ciclo doom PoC- che esegue l’iterazione sulle impostazioni, ma senza la possibilità di capire in modo obiettivo se si è apportato un miglioramento - il tutto mentre gli stakeholder attendono impazientemente di poter rivedere.
I modelli poC in questa esercitazione sono progettati tenendo presente l'iterazione di qualità. Sono parametrizzati in base a ciò che il team di ricerca di Databricks ha mostrato essere importante per ottimizzare la qualità dei RAG. Questi modelli non sono "3 righe di codice che magicamente compongono un RAG", ma sono un'applicazione RAG ben strutturata che può essere ottimizzata per la qualità nei passaggi seguenti di un flusso di lavoro di sviluppo basato sulla valutazione.
In questo modo è possibile distribuire rapidamente un PoC, ma anche passare rapidamente all'iterazione di qualità senza dover riscrivere il codice.
Di seguito è riportata l'architettura tecnica dell'applicazione PoC:
Nota
Per impostazione predefinita, il PoC usa i modelli open source disponibili in Mosaic AI Foundation Model Serving. Tuttavia, poiché il PoC usa Mosaic AI Model Serving, che supporta qualsiasi modello di base, l'uso di un modello diverso è semplice: è sufficiente configurare tale modello in Model Serving e poi sostituire embedding_endpoint_name
e llm_endpoint_name
nel 00_config
notebook.
- Seguire le API del modello di base per la velocità effettiva con provisioning per altri modelli open source disponibili in Databricks Marketplace.
- Seguire Create_OpenAI_External_Model notebook o modelli esterni in Mosaic AI Model Serving per modelli ospitati da terze parti supportati, ad esempio Azure OpenAI, OpenAI, Cohere, Anthropic e Google Gemini.
Passaggi per distribuire il PoC per raccogliere commenti e suggerimenti
I seguenti passaggi illustrano come eseguire e distribuire un'applicazione di intelligenza artificiale generativa da un PoC. Dopo aver effettuato il deployment, ricevi un URL per l'app di revisione che puoi condividere con gli stakeholder per raccogliere feedback.
Aprire la cartella del codice PoC all'interno di A_POC_app in base al tipo di dati:
- Per i file PDF, usare il pdf_uc_volume.
- Per i file Powerpoint, usare il pptx_uc_volume.
- Per i file DOCX, usare il docx_uc_volume.
- I file JSON con testo, markdown, contenuto HTML e metadati, usano il json_uc_volume
Se i dati non soddisfano uno dei requisiti precedenti, è possibile personalizzare la funzione di analisi (
parser_udf
) all’interno di02_poc_data_pipeline
nelle suddette directory PoC per lavorare con i tipi di file.All'interno della cartella PoC sono visualizzati i seguenti notebook:
Nota
Questi notebook sono relativi al PoC specifico scelto. Ad esempio, se viene visualizzato un riferimento a
00_config
e si è sceltopdf_uc_volume
, è possibile trovare il notebook00_config
pertinente in A_POC_app/pdf_uc_volume/00_config.Facoltativamente, esaminare i parametri predefiniti.
Aprire il notebook
00_config
all'interno della directory POC scelta in precedenza per visualizzare i parametri predefiniti delle applicazioni POC per la pipeline di dati e la catena RAG.Importante
I parametri predefiniti consigliati di Databricks non sono progettati per essere perfetti, ma sono un punto di partenza. I passaggi successivi di questo flusso di lavoro illustrano l'iterazione di questi parametri.
Convalida della configurazione.
Eseguire
01_validate_config
per verificare che la configurazione sia valida e che tutte le risorse siano disponibili. Il filerag_chain_config.yaml
viene visualizzato nella directory, che viene usata per distribuire l'applicazione.Eseguire la pipeline di dati.
La pipeline di dati PoC è un notebook di Databricks basato su Apache Spark. Aprire il notebook
02_poc_data_pipeline
e premere Esegui tutto per eseguire la pipeline. La pipeline esegue le operazioni seguenti:- Carica i documenti non elaborati dal volume UC
- Analizza ogni documento, salvando i risultati in una tabella Delta
- Suddivide ogni documento, salvando i risultati in una tabella Delta
- Incorpora i documenti e crea un indice vettoriale usando la ricerca vettoriale di Mosaic AI
I metadati, come le tabelle di output e la configurazione, sulla pipeline di dati vengono registrati in MLflow:
È possibile esaminare gli output cercando i collegamenti all'output delle tabelle delta o degli indici vettoriali nella parte inferiore del notebook:
Vector index: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>_poc_chunked_docs_gold_index Output tables: Bronze Delta Table w/ raw files: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>__poc_raw_files_bronze Silver Delta Table w/ parsed files: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>__poc_parsed_docs_silver Gold Delta Table w/ chunked files: https://<your-workspace-url>.databricks.com/explore/data/<uc-catalog>/<uc-schema>/<app-name>__poc_chunked_docs_gold
Distribuire la catena PoC nell'app di revisione.
La catena PoC predefinita è una catena RAG di conversazioni a più turni creata con LangChain.
Nota
La catena PoC usa la registrazione basata sul codice MLflow. Per altre informazioni sulla registrazione basata su codice, vedere Registrare gli agenti di intelligenza artificiale.
Aprire il notebook
03_deploy_poc_to_review_app
Eseguire ciascuna cella del notebook.
La traccia MLflow mostra il funzionamento dell'applicazione PoC. Modificare la domanda di input in un caso d'uso pertinente ed eseguire di nuovo la cella per "vibe check" l'applicazione.
Modificare le istruzioni predefinite in modo che siano rilevanti per il caso d'uso. Questi vengono visualizzati nell'app di revisione.
instructions_to_reviewer = f"""## Instructions for Testing the {RAG_APP_NAME}'s Initial Proof of Concept (PoC) Your inputs are invaluable for the development team. By providing detailed feedback and corrections, you help us fix issues and improve the overall quality of the application. We rely on your expertise to identify any gaps or areas needing enhancement. 1. **Variety of Questions**: - Please try a wide range of questions that you anticipate the end users of the application will ask. This helps us ensure the application can handle the expected queries effectively. 2. **Feedback on Answers**: - After asking each question, use the feedback widgets provided to review the answer given by the application. - If you think the answer is incorrect or could be improved, please use "Edit Answer" to correct it. Your corrections will enable our team to refine the application's accuracy. 3. **Review of Returned Documents**: - Carefully review each document that the system returns in response to your question. - Use the thumbs up/down feature to indicate whether the document was relevant to the question asked. A thumbs up signifies relevance, while a thumbs down indicates the document was not useful. Thank you for your time and effort in testing {RAG_APP_NAME}. Your contributions are essential to delivering a high-quality product to our end users.""" print(instructions_to_reviewer)
Eseguire la cella di distribuzione per ottenere un collegamento all'app di revisione.
Review App URL: https://<your-workspace-url>.databricks.com/ml/review/<uc-catalog>.<uc-schema>.<uc-model-name>/<uc-model-version>
Concedere a singoli utenti le autorizzazioni per accedere all'app di revisione.
È possibile concedere l'accesso agli utenti non Databricks seguendo la procedura descritta in Configurare le autorizzazioni per usare l'app di revisione.
Testare l'app di revisione ponendo alcune domande e fornendo commenti e suggerimenti.
Nota
MLflow Traces e il feedback dell'utente dell'app di revisione vengono visualizzati nelle tabelle Delta nello schema del catalogo configurato. I log possono richiedere fino a 2 ore per essere visualizzati in queste tabelle delta.
Condividere l'app di revisione con gli stakeholder
È ora possibile condividere l'applicazione RAG POC con gli stakeholder per ottenere il loro feedback.
Importante
Databricks suggerisce di distribuire il Proof of Concept ad almeno tre stakeholder, chiedendo a ciascuno di loro di porre 10 - 20 domande. È importante che più stakeholder testino il POC così da ottenere un insieme di prospettive diversificato da includere nel set di valutazione.
Passaggio successivo
Continuare con Fase 3. Creare un set di valutazione dal feedback degli stakeholder.
< Precedente: Passaggio 1. Clonare il repository e creare il calcolo