首页 > 其他分享 >大模型agent开发之提示词选择器

大模型agent开发之提示词选择器

时间:2024-08-19 20:49:10浏览次数:13  
标签:prompt 示例 模型 agent 选择器 group selector example

有时候单一的提示词模版无法满足复杂的任务需求,因此需要结合选择器使大模型有更加准确的判断,尤其是在高度上下文依赖性的对话或生成任务时,动态的选择最合适的示例或者提示词时尤其重要。本文同样使用langchain组件开发多用选择器方法。

 

长度智能选择器

在langchain组件中LengthBasedExampleSelector是根据长度要求智能选择示例。这种方法专门用于根据文本长度来选择适当的示例器,这种方法适用于控制文本长度的场景,例如某些Api限制字符数的情况下。

 def base_length_choose_prompt(self,example_group,prompt):
        #example_group表示示例组,prompt表示提示词模板
        example_selector = LengthBasedExampleSelector(
            #传入提示词示例组
            examples = example_group,
            #传入提示词模板
            example_prompt = prompt,
            max_length = 25,
        )
        #使用小样本提示词模板来实现动态示例调用
        dynamic_group = FewShotPromptTemplate(
            example_selector = example_selector,
            example_prompt=prompt,
            prefix = "请根据给出的句诗取一个男孩和女孩名",
            suffix = "诗句:{adjective}\n男孩名:\n女孩名:",
            input_variables= ["adjective"]
        )
        return  dynamic_group

在本示例中引用了LengthBasedExampleSelector选择器,其中参数有example_group(提示词示例组),prompt(提示词模板),max_length(最大长度)。返回一个选择器对象,然后使用小样本提示词模板来实现动态示例调用,并返回动态示例组,根据长度要求返回对应长度的示例组,最后将结果返回。

相似度选择示例器-最大边际相关性

MaxMarginalRelevanceExampleSelector也是langchain中的一个选择示例器,旨在根据最大边际相关性(MMR)原则选择示例器。MMR结合了相关性和多样性的原则多用于信息检索和文本生成的任务中。适用于,信息检索、推荐系统和多轮对话等任务中。

    def base_mmr_prompt(self,example_group,prompt,model_name='all-MiniLM-L6-v2',k=2):
        #使用SentenceTransformer 加载模型
        #自定义嵌入搜索
        embeddings = CustomEmbeddings(model_name= model_name)
        # mmr
        example_selector = MaxMarginalRelevanceExampleSelector.from_examples(
            #传入示例组
            example_group,
            # 使用自定义嵌入搜索
            embeddings,
            # 设置使用的向量数据库
            FAISS,
            k=k,
        )
        # 使用小样本提示词模板来实现动态示例调用
        mmr_prompt = FewShotPromptTemplate(
            example_selector = example_selector,
            example_prompt= prompt,
            prefix="请根据给出的句诗取一个男孩和女孩名",
            suffix="诗句:{adjective}\n男孩名:\n女孩名:",
            input_variables=["adjective"]
        )
        return mmr_prompt

这里同样的引用方式,只是从第二个参数开始变化,embeddings是嵌入式搜索对象,FAISS是2一种向量数据库,k是保留多样性示例数。这里同样使用小样本提示词模板实现动态示例调用。

相似性选择示例器-最大余弦相似度

SemanticSimilarityExampleSelector也是langchain中的一个选择示例器,用于基于语义相似度选择与输入最相关的示例。它使用嵌入模型计算输入与每个示例之间的语义相似度,然后选择最相似的示例。这种选择器特别适用于需要根据上下文找到最相关内容的自然语言处理任务。

 def base_chroma_prompt(self,example_group,prompt,model_name='all-MiniLM-L6-v2',k=2):
        embeddings = CustomEmbeddings(model_name=model_name)
        example_selector = SemanticSimilarityExampleSelector.from_examples(
            example_group,
            embeddings,
            Chroma,
            k=k,
        )
        #小样本提示词模板
        similar_prompt = FewShotPromptTemplate(
            example_selector= example_selector,
            example_prompt = prompt,
            prefix="请根据给出的句诗取一个男孩和女孩名",
            suffix="诗句:{adjective}\n男孩名:\n女孩名:",
            input_variables=["adjective"]
        )
        return similar_prompt

这里引用的方式和参数解释与MMR一样,只是向量数据库换成了Chroma,其他含义和模型与MMR一致。

总结

总的来说,在特殊场景和多轮对话中,使用选择示例器,可以动态的选择提示词模板,使大模型能够输出更加稳定和准确的答案。

 

标签:prompt,示例,模型,agent,选择器,group,selector,example
From: https://www.cnblogs.com/Ethereal-hzc/p/18365944

相关文章

  • tcp与udp的总结+connect阻塞+tcp三次握手、四次挥手+常见的服务器IO(发送数据+接收数
    一,TCP与UDP的基本总结TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议。TCP是面向连接的,提供可靠、顺序的传输,适用于需要高可靠性的应用,如网页浏览和文件传输。它通过重传机制和流量控制确保数据完整性。UDP是无连接的,速度快但不保证数据的可靠性和顺序,适用于对实时性......
  • [Base] Agent Attention
    1.BaseInfoTitleAgentAttention:OntheIntegrationofSoftmaxandLinearAttentionAdresshttps://arxiv.org/pdf/2312.08874Journal/Time202312ECCV2024Author清华自动化系Codehttps://github.com/LeapLabTHU/Agent-AttentionTableAttention2.CreativeQ&AQ:Swin......
  • 四十、【人工智能】【机器学习】- 梯度下降(Gradient Descent Algorithms)算法模型
     系列文章目录第一章【机器学习】初识机器学习第二章【机器学习】【监督学习】-逻辑回归算法(LogisticRegression)第三章【机器学习】【监督学习】-支持向量机(SVM)第四章【机器学习】【监督学习】-K-近邻算法(K-NN)第五章【机器学习】【监督学习】-决策树(......
  • 书生大模型实战营3期 - 进阶岛 - 3 - LMDeploy 量化部署进阶实践
    文章目录闯关任务完成结果闯关任务任务描述:LMDeploy量化部署实践闯关任务任务文档:LMDeploy量化部署进阶实践完成结果使用结合W4A16量化与kvcache量化的internlm2_5-7b-chat模型封装本地API并与大模型进行一次对话,作业截图需包括显存占用情况与大模型回复,参考4......
  • AI绘画Stable Diffusion 必学技能——从零开始训练你的专属 Lora 模型!模型训练保姆级
    大家好,我是灵魂画师向阳接触AI绘画的小伙伴,一定听过Lora。Lora模型全称是:Low-RankAdaptationofLargeLanguageModels,可以理解为Stable-Diffusion中的一个插件,在生成图片时,Lora模型会与大模型结合使用,从而实现对输出图片结果的调整。我们举个更容易懂的例子:大模型就像......
  • 利用眼底图像自动诊断青光眼的拟议模型在实验中超越眼科专家
    研究背景论文地址:https://journals.lww.com/ijo/fulltext/2021/10000/identification_of_glaucoma_from_fundus_images.31.aspx本研究旨在建立一种基于眼底图像的深度学习的青光眼自动诊断算法。青光眼是一种眼压升高导致负责向大脑传递信息的神经纤维收缩的疾病,造成视神......
  • 阿里开源通用多模态大模型mPLUG-Owl3:迈向多图长序列理解
             阿里的mPLUG系列在多模态大模型领域产出了多项研究工作。从mPLUG-Owl初代模型引入了视觉对齐-语言模型微调的训练模式,到mPLUG-Owl2通过模块化的模态自适应解决模态拉扯,再到mPLUG-DocOwl通过切图建模高分辨率。这一系列模型一直在探索更为高效有效的多模态......
  • AI大模型快速生成题库-助力业务人效提升10+倍
    一现状·问题1、培训考核涉及的文件数量较多当前,京东航空公司维修部门面临着人员规模的快速增长和持续的培训需求。根据民航局的规定,维修培训必须确保所有维修人员都能够完成对飞机维修相关文件的学习,这包括维修方案、维修工程管理手册、工作程序手册等共计12本手册以及民航局......
  • 电商搜索革命:大模型如何重塑购物体验?
      随着电商行业的蓬勃发展,搜索技术作为连接用户与商品的桥梁,其重要性日益凸显。在技术不断革新的今天,电商搜索技术经历了哪些阶段?面对大模型的飞速发展,企业又将如何把握趋势,应对挑战?为了深入探讨这些问题,我和InfoQ栏目探讨了电商搜索技术的发展历程、当前的应用状况以及面临......
  • 吴恩达力荐,100%好评-LangChain大型语言模型(LLM)应用开发
       LangChain是一个开源框架,旨在帮助人工智能开发者将大语言模型(如GPT-4)与外部计算和数据源结合起来。这个框架提供了Python和JavaScript包,使开发者能够轻松地将自己的数据与大语言模型连接起来,从而实现更复杂的人工智能应用。   免费获取:吴恩达力荐,100%好评-Lang......