langchain(5):评估

评估结果的好坏

(llm+)链评估其他llm、其他链和其他应用

评估链

  • 用什么数据集评估,通过查看数据创建评估问题

    # 方法1,通过观察不同数据集创建对应的QA
    examples = [
        {
            "query": "Do the Cozy Comfort Pullover Set\
            have side pockets?",
            "answer": "Yes"
        },
        {
            "query": "What collection is the Ultra-Lofty \
            850 Stretch Down Hooded Jacket from?",
            "answer": "The DownTek collection"
        }
    ]
    
    # 方法2,借助llm自动化这个过程,自动生成
    example_gen_chain = QAGenerateChain.from_llm(ChatOpenAI(model=llm_model))
    # 创建多组问题的答案示例
    new_examples = example_gen_chain.apply_and_parse(
        [{"doc": t} for t in data[:5]]
    )
    examples += new_examples
    # 将某个示例传入链并运行,看最终结果,无法观察中间结果
    qa.run(examples[0]["query"])
    
    # langchain的debug方法
    import langchain
    langchain.debug = True
    qa.run(examples[0]["query"])
    
    # 评估多个输入的结果及过程
    # 为多个评估Q进行测试答案Atest
    predictions = qa.apply(examples)
    # 进行评估
    llm = ChatOpenAI(temperature=0, model=llm_model)
    eval_chain = QAEvalChain.from_llm(llm)
    # 评估,Atest同A之间差异
    # 比较的并非精确匹配,而是语言的相似,表达含义的相似
    graded_outputs = eval_chain.evaluate(examples, predictions)
    
posted on 2025-02-21 16:04  CharXL  阅读(66)  评论(0)    收藏  举报