Prompt本质解密及Evaluation实战(二)

一、LangChain基于evaluation的prompt使用解析

我们来看下LangChain中关于prompt的使用,下面是取自LangChain源码中的一个经典的示例,描述了AI模型被授予访问几种工具来帮助回答用户的问题,其中“tool_descriptions”是至关重要的,在前面文章谈plugin开发时提到这是可配置的,决定了模型要不要使用以及什么时候来使用第三方的工具。“agent_trajectory”部分涉及到很多步骤,在这些步骤中,模型会根据需要来使用工具。Evaluation的过程是step by step的,第1点准则对于回答问题来说是一个overall的评估,第2点提到使用工具是否遵循了logical flow(因为可能会使用多个工具,这就涉及到先后顺序),另外如果模型回答问题时使用的步骤太多也可能会有问题。

Prompt本质解密及Evaluation实战(二)_第1张图片

按照上面的模板给出的样例如下,提示模型在不同的场景下使用这4个工具:,

Prompt本质解密及Evaluation实战(二)_第2张图片

给模型的具体问题是:

The question the human asked the AI model was: If laid the Statue of Liberty end to end, how many times would it stretch across the United States?

针对这个问题,模型首先使用SerpAPI进行搜索:

Step 1:

Tool used: Search the Web (SerpAPI)

Tool input: If laid the Statue of Liberty end to end, how many times would it stretch across the United States?

Tool output: The Statue of Liberty was given to the United States by France, as a symbol of the two countries' friendship. It was erected atop an American-designed ...

       下面是模型根据调用工具产生的“tool output”进行处理后返回的答案,答案显然是错误的:

The AI language model's final answer to the question was: There are different ways to measure the length of the United States, but if we use the distance between the Statue of Liberty and the westernmost point of the contiguous United States (Cape Alava, Washington), which is approximately 2,857 miles (4,596 km), and assume that the Statue of Liberty is 305 feet (93 meters) tall, then the statue would stretch across the United States approximately 17.5 times if laid end to end.

接下来按照5点准则对模型的回答进行评估,概括来说模型能够根据关键信息进行推理,但是给出的答案有误,工具描述部分有Calculator,但是模型没有使用,模型没有正确使用工具来回答问题。

Prompt本质解密及Evaluation实战(二)_第3张图片

二、关于评估结果的启示及symbol/pattern/text的作用解析

       这样的评估结果其实对于开发大模型驱动的应用来说是有很大价值的,譬如基于大模型和LangChain来开发一个基于学生学习的评分工具,在评分时显示最后结果是错误的,但是实际情况可能是在推导结果的中间过程中存在reasoning steps,而只是最后一步算错了。

从上面回答问题的评估结果来看,之所以存在有效性,就是因为以下三点:

-prompt中的所谓“symbols”的具体形式基本不影响模型的表现,“symbols”和“patterns”的正确性与任务解决率无关

-patterns可以增强模型对任务的理解,以及提示模型去获得正确的输出

-最重要的是,输入文本text和patterns形成了一种类似生物界的“共生”的一种关系,对于CoT(Chain of Thought)的成功起到至关重要的作用

从输入的信息或者上下文中产生patterns,patterns提取的是一种结构,这种结构会形成一种理解,由于语言模型具有自身的灵活性,所以形成了一种“imitating process”,即通过patterns让模型产生的输出需要遵循这样的”patterns”。

关于“Symbols”的作用,在前面提到的论文中提到了用抽象的占位符来替代symbols的试验,结果表明也可以进行有效的推理。

关于“patterns”的作用,论文中进行了如下试验验证:patterns的存在对于模型的成功推理是必要的但不是全部因素,另外模型对于“wrong patterns”的使用具有一定的健壮性,使用“wrong patterns”是一把双刃剑,其结果取决于目标任务的特性。

关于“text”的作用,提供输入信息或者上下文对模型产生正确的结果是有必要的,对于CoT来说,在输入信息中使用协调一致的“entities”很重要,输入信息的变形(譬如使用措辞的不同)对于模型的表现会有影响。

你可能感兴趣的:(AI,prompt,自然语言处理,人工智能)