LangChain : évaluation de l'application LLM

DEV - 10/05
À mesure que les modèles de langage (LLM) continuent de progresser, leurs applications deviennent de plus en plus complexes...

À mesure que les modèles linguistiques (LLM) continuent de progresser, leurs applications deviennent de plus en plus complexes et sophistiquées. Cependant, cette complexité s'accompagne du défi consistant à évaluer les performances et la précision de ces applications basées sur LLM. Dans cet article de blog, nous plongerons dans le monde de l'évaluation des applications LLM, en explorant les cadres et les outils qui peuvent vous aider à évaluer et à améliorer les performances de vos modèles.

Créez notre application Q&A

importer os depuis dotenv importer load_dotenv, find_dotenv depuis langchain.chains.retrieval_qa.base importer RetrievalQA depuis langchain.indexes importer VectorstoreIndexCreator depuis langchain.vectorstores.docarray importer DocArrayInMemorySearch depuis langchain_community.document_loaders.csv_loader importer CSVLoader depuis langchain_openai importer ChatOpenAI _ = dotenv( )) notebook_path = os.path.abspath("__file__") notebook_directory = os.path.dirname(notebook_path) csv_file_path = os.path.join(notebook_directory, '..', 'OutdoorClothingCatalog_1000.csv') chargeur = CSVLoader(file_path =csv_file_path) data = loader.load() index = VectorstoreIndexCreator(vectorstore_cls=DocArrayInMemorySearch).from_loaders( [loader] ) llm_model = "gpt-3.5-turbo" llm = ChatOpenAI(temperature=0.0, model=llm_model) qa = RetrievalQA. from_chain_type( llm=llm, chain_type="stuff", retriever=index.vectorstore.as_retriever(), verbose=True, chain_type_kwargs={"document_separator": "<<<<>>>>>"}, )
Entrer en mode plein écran Quitter le mode plein écran

Génération de données de test

Avant de pouvoir évaluer une application LLM, nous avons besoin d'un ensemble solide de données de test. Il existe deux approches principales pour générer des données de test :

1.1 Création manuelle d'exemples

La méthode traditionnelle consiste à examiner manuellement vos données et à créer des paires requête-réponse. Disons que vous travaillez avec un ensemble de données de catalogue de vêtements. Vous pouvez parcourir les descriptions et créer des questions telles que « L'ensemble de pulls Cozy Comfort a-t-il des poches latérales ? » et fournissez la réponse correspondante.

Bien que cette approche vous donne un contrôle total sur les exemples, elle peut prendre du temps et ne pas s'adapter à des ensembles de données plus volumineux.

# Exemples codés en dur examples = [ { "query": "L'ensemble de pulls Co...
[Courte citation de 8% de l'article original]
Loading...