数据集准备
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;text-wrap: wrap;background-color: rgb(255, 255, 255);">首先,我们需要准备一个意图识别的数据集。以下是一个包含六类意图的示例数据集:train_data = {
'支付问题': [
"为什么我的支付失败了?",
"怎么绑定我的银行卡进行支付?",
],
'商品咨询': [
"这款商品有货吗?",
"请问这款手机有什么功能?",
],
'促销活动': [
"现在有什么促销活动吗?",
"我怎么参加你们的优惠活动?",
],
'发票问题': [
"我怎么申请电子发票?",
"发票什么时候可以开出来?",
],
'账户安全': [
"我的账户被盗了怎么办?",
"如何开启账户的双重验证?",
],
'售后服务': [
"你们提供售后服务吗?",
"保修期内维修是免费的吗?",
],
}classIntentDataset:
def__init__(self, data):
self.data = data
self.intent_labels = list(data.keys())
defgen_demonstration(self, shot_num):
demonstrations = []
forintent inself.intent_labels:
examples = random.sample(self.data[intent], shot_num)
demonstrations.append(self._format_demonstration(intent, examples))
return'\n'.join(demonstrations)classIntentClassifier(dspy.Signature):
"""定义意图分类器的输入输出接口"""
query = dspy.InputField(default="", desc="用户询问")
intent = dspy.OutputField(default="", desc="预测的意图标签")
classModel(dspy.Module):
"""定义意图分类模型"""
def__init__(self, demonstrations):
super().__init__()
self.demonstrations = demonstrations
defforward(self, **kwargs):
"""模型前向传播"""
query = kwargs.get('query', '')
prompt = f"{self.demonstrations}\n用户询问: {query}\n意图类别: "
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
],
max_tokens=1024,
temperature=0.7,
stream=False
)
intent = response.choices[0].message.content.strip()
returndspy.Example(input={'query': query}, output=intent)我们使用DSPy的BootstrapFewShot进行微调,并定义验证逻辑来评估模型性能。
# 初始化意图分类模型
model = Model(demonstrations)
# 微调意图分类模型
fromdspy.teleprompt importBootstrapFewShot
# 定义验证逻辑
defvalidate_intent(example, pred, trace=None):
returnpred.output == example.output最后,我们测试模型对新询问的意图识别能力,并打印预测结果。
# 测试新询问的意图识别
test_query = "我上周买的电脑坏了,可以换一台新的吗?"
# 获取预测
pred = compiled_model(query=test_query)
# 打印结果
print(f"测试询问: {test_query}")
print(f"预测意图: {pred.output}")告别手写Prompt怕DSPy学不会?10行代码捏一个Agent,用DSPy Optimizers帮你优化Prompt
重磅 | DSPy让你不写一句Prompt照样构建Agent,从此,你不再卑躬屈膝讨好LLM
别再写脆弱的prompt讨好LLM啦!快用DSPy拯救你宝贵的prompt思维,偷偷甩掉99%的人
ICLR2024重磅 | DSPy或将手写Prompt推进历史,悄悄学会DSPy,一线技术圈很缺你这类人才
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |