第 23 页 / 共 100 页 / 飞书修订版 10

3.Generating test datasets

此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)

邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org

==================================================

OmaQbYFS7oJSJ5xyIE5cH4cjnCf.bin

构建自定义提示词评估工作流程首先需要创建一个可靠的提示词,然后生成测试数据来查看其表现如何。让我们逐步了解如何为一个帮助用户编写AWS特定代码的提示词设置评估系统。

Setting Up the Goal

我们的提示词需要协助用户为AWS用例编写三种特定类型的输出:

  • Python code
  • JSON配置文件
  • Regular expressions

关键要求是,当用户请求某项任务的帮助时,我们需要返回这些格式中的一种干净输出,不包含任何额外的解释、标题或页脚。

image1.png

这是我们的初始提示词(版本1):

prompt = f"""

Please provide a solution to the following task:

{task}

"""

创建评估数据集

评估数据集包含我们将输入到提示中的输入数据。对于提示和输入的每个组合,我们将运行提示并分析结果。

我们的数据集将是一个JSON对象数组,其中每个对象包含一个"task"属性,描述我们希望Claude完成的任务。我们可以手动创建这个数据集,也可以使用Claude自动生成。

image2.png

由于我们正在生成测试数据,这是使用更快模型(如Haiku)而不是完整Claude模型的绝佳机会。

使用代码生成测试数据

让我们创建一个自动生成测试数据集的函数。首先,我们需要用于与Claude交互的辅助函数:

def add_user_message(messages, text):

user_message = {"role": "user", "content": text}

messages.append(user_message)

def add_assistant_message(messages, text):

assistant_message = {"role": "assistant", "content": text}

messages.append(assistant_message)

def chat(messages, system=None, temperature=1.0, stop_sequences=[]):

params = {

"model": model,

"max_tokens": 1000,

"messages": messages,

"temperature": temperature

}

if system:

params["system"] = system

if stop_sequences:

params["stop_sequences"] = stop_sequences

response = client.messages.create(**params)

return response.content[0].text

现在我们将创建数据集生成函数:

def generate_dataset():

prompt = """

为提示词评估生成一个评估数据集。该数据集将用于评估专门为AWS相关任务生成Python、JSON或正则表达式的提示词。生成一个JSON对象数组,每个对象代表一个需要Python、JSON或正则表达式来完成的任务。

Example output:

```json

[

{

"task": "任务描述",

},

...additional

]

```

* 专注于可以通过编写单个Python函数、单个JSON对象或单个正则表达式来解决的任务

* 专注于不需要编写大量代码的任务

请生成3个对象。

"""

为了正确解析JSON响应,我们将使用预填充和停止序列:

messages = []

add_user_message(messages, prompt)

add_assistant_message(messages, "```json")

text = chat(messages, stop_sequences=["```"])

return json.loads(text)

测试数据集生成

让我们运行函数,看看能得到什么样的测试用例:

dataset = generate_dataset()

print(dataset)

这应该返回三个不同的测试用例,涵盖我们的目标输出 - Python 函数、JSON 配置和用于 AWS 特定任务的正则表达式。

Saving the Dataset

一旦我们有了数据集,我们将把它保存到文件中,这样在后续评估时就可以轻松加载:

with open('dataset.json', 'w') as f:

json.dump(dataset, f, indent=2)

这会在你的 notebook 同一目录下创建一个 dataset.json 文件,包含准备用于提示词评估的任务列表。

有了这个基础,你现在就有了一个系统化的方法来生成测试数据,用于评估你的提示词在不同类型的 AWS 相关编程任务中的表现如何。

==================================================



此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org