前文
我在问答业务
中遇到了这样的问题,用户的提问方式是千变万化的,有一种可能就是用户会为了节省时间,同时在一句话里面包含了多个问题,如用户输入“查询上城区管龄大于10年,管材是PE管的管线信息,再帮我统计一下上城区燃气管线长度,最后帮我看一下西湖区地下停车位情况”
,如果分开来应该包含下面的三个问题:
- 查询上城区管龄大于10年,管材是PE管的管线信息
- 统计上城区燃气管线长度
- 查看西湖区地下停车位情况
如果是类似这样的长问题多问题的输入,我们就要对问题进行分析,眼下最方便的实现方式是使用大模型先对原问题进行分析,然后拆分出合理的若干子问题。
准备
我所使用的是 qwen-max
模型,这个算是比较大的模型,效果也还可以。如果要使用其他的大模型也可以,但是一般都要申请 API_KEY
,目前 qwen 在做活动免费送的 token 数量足够我用了,我就干脆使用 qwen 。
实现
使用大模型来解决这种理解或者分析类型的问题,要解决以下这些问题:
- 编写
system 的 prompt
,将大模型“人设”进行预定,我这里将大模型作为了一个“精通问题总结的助手”
。 - 编写合理且有效的
user 的 prompt
,将使用大模型办的任务交代清楚,将自己的问题作为参数出入,我这里的 prompt 中有一个参数question
就是用户的提问问题。 - 编写合理且有效的
输出模板
,方便结果的提取,我这里要求比较简单,将用户的问题进行分析之后,使用特殊符号###
将分析出来的列表进行拼接并输出。 提供合适且有效的例子
,增强模型分析问题的功能,我这里就是简单列举了一个例子,如果多列举几个例子,大模型的效果会更好更稳定。
我的整个消息列表如下所示:
messages = [
{'role': 'system',
'content': '您是一名精通问题总结的助手,我的问题中可能只包含一个请求,也可能包含多个问题,请帮我总结并抽取出来,保证不会丢失关键信息、'},
{'role': 'user', 'content': f"""我现在的问题是“{question}” 请仔细理解并总结,直接返回答案,不要进行其他额外的赘述。答案的模板必须遵循下面的形式:\n
问题一###问题二###问题三
例如:我的问题是“查询凤起路地铁站附近100米范围内的管线信息,同时帮我查一下西湖区面积大于100的地下停车场信息”,经过解析结果使用模板输出:\n
查询凤起路地铁站附近100米范围内的管线信息###查询西湖区面积大于100的地下停车场信息"""
}
]
最终 qwen-max
使用 messages
的整个过程如下:
@app.route('/get_multi_questions', methods=["POST"])
def get_multi_questions():
data = request.get_json()
if 'question' not in data or not data['question']:
return []
questions = []
question = data['question']
logging.info(f"正在从问题 【{question}】 中抽取可能出现的多个问题...")
dashscope.api_key = config.API_KEY
response = Generation.call(model="qwen-max-0428", messages=messages, result_format='message')
if response.status_code == HTTPStatus.OK:
resp = response.output.choices[0]['message']['content']
if resp:
resp = resp.strip()
questions = resp.split("###")
logging.info(f"从问题【{question}】 中抽取可能出现的多个问题分别是: {resp}")
return questions
else:
return questions
后文
拓展开来,其实现在很多任务都可以使用大模型来解决,只要规定好输入和输出是什么即可,另外将任务描述清楚也是一项很重要的技能,否则模棱两可的描述在使用大模型的时候可能会出现适得其反的效果。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
-END-
👉AGI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉AGI大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉AGI大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓