当前位置: 首页 > news >正文

做木材生意的外贸网站网站建设设计技术方案模板下载

做木材生意的外贸网站,网站建设设计技术方案模板下载,可以做网站首页的图片素材,wordpress 截取长度原文地址#xff1a;supercharging-prompt-engineering-via-symbolic-program-search 通过自动探索​​大量提示变体来找到更好的提示 2024 年 4 月 22 日 众所周知#xff0c;LLMs的成功在很大程度上仍然取决于我们用正确的指导和例子来提示他们的能力。随着新一代LLMs变得越…原文地址supercharging-prompt-engineering-via-symbolic-program-search 通过自动探索​​大量提示变体来找到更好的提示 2024 年 4 月 22 日 众所周知LLMs的成功在很大程度上仍然取决于我们用正确的指导和例子来提示他们的能力。随着新一代LLMs变得越来越强大提示已经变得足够复杂足以被视为课程本身。这些提示程序很像菜谱——都有一套遵循和转换原材料的指令无论是数据还是成分。 因此提示工程类似于改进配方。家庭厨师通常会坚持整体食谱但会做出一些小改变—例如在面食中省略大蒜或添加欧芹。像DSPy这样的框架在优化上下文示例时遵循这个整体范例。然而专业级厨师以食谱为灵感经常完全重新诠释菜肴的成分。例如他们可能将面食中的意大利面视为淀粉成分并可能将其替换为新鲜制作的面疙瘩以获得类似的成分。 是什么让专业级厨师能够如此富有创意地工作他们以抽象的方式思考食谱就像上面的意大利面例子一样。手动提示工程类似于专业级烹饪。它可以获得令人印象深刻的结果但需要大量的时间和知识。我们真正想要的是手动提示工程的创造力但又不需要付出努力。 抽象提示的力量 假设我们想改进一个用于标注说话人回答的提示。我们最终会用许多不同的输入来运行它但现在先插入一个具体的输入 Instructions: Does Speaker 2s answer mean yes or no? Output labels: no, yes Input: Speaker 1: You do this often? Speaker 2: Its my first time. Output: 暂且假设我们有一个抽象的提示表示法它可以抽出不同的组成部分并且易于操作。也许可以这样 有了它你就可以自动完成在及时原型开发过程中必须进行的大量半手工修补工作。进行诸如转述之类的小编辑只是一个开始。想试试思维链推理吗添加一段 “让我们逐步思考”。将数据格式改为 JSON 格式如何只需更改 InputData 参数的 formatattribute 即可。你还可以探索 从单一示例到批量注释在 RAG 场景中更改检索器和排序功能重新排列某些段落的顺序压缩说明的某些部分ETC 从本质上讲你可以输入你最喜欢的提示工程启发式。这种抽象的提示表示法让我们能够真正发挥创意自动探索大量可能的提示。 将提示转化为抽象程序 要表示抽象提示符我们首先要将其转换为非符号提示符程序将其分解为单独的组件以 Python 类的形式实现 class Component:def __init__(self, **kwargs): pass class Metaprompt(Component): pass class Paragraph(Component): pass class InputData(Component): passprompt Metaprompt(children[Paragraph(textInstructions: ),Paragraph(idinstructions,textDoes Speaker 2s answer mean yes or no?,),Paragraph(idlabels, textOutput labels: yes, no),InputData(),Paragraph(textOutput: ),] ) 到目前为止一切顺利。这与 DSpy 所做的工作类似但更为通用因为我们还表示了提示符的内部结构。 接下来我们要把它变成一个符号提示程序这样就可以进行任意修改这也超出了静态 DSPy 程序的范围。pyGlove 将 Python 类转化为可操作的符号对象其属性在实例化后仍可完全编辑。 有了 pyGlove我们只需添加 pg.symbolize 装饰器即可 import pyglove as pg pg.symbolize class Component:def __init__(self, **kwargs): pass 现在我们可以通过大量的说明符来查询和修改提示程序就像使用 DOM 树一样。比方说我们想把上面的程序转化为下面的程序 请注意我们现在问的是 回答是否表示是而不是提供 是 和 否 的输出标签。为此我们需要 (i) 更改指令文本(ii) 删除第三个节点。有了 pyGlove这就很容易了 prompt.rebind({children[1].text: Does the response mean yes?})children[1].text: Does the response mean yes?}) prompt.rebind({children[2]: pg.MISSING_VALUE}) print(prompt) 打印输出确认我们成功了 Metaprompt(children [0 : Paragraph(text Instructions: ),1 : Paragraph(id instructions,text Does the response mean yes?),2 : InputData(),3 : Paragraph(text Output: )] ) 就是这样从根本上说pyGlove 给了我们一种处理 Python 类和函数的方法就像处理源代码一样而且开销很小。现在我们有了灵活且易于操作的表示法让我们来使用它们吧。 等一下。我们现在可能有了表示和修改提示的方法但还缺少一个自动优化提示的过程。 一旦厨师们了解了菜谱的抽象概念和组成部分他们就会尝试多种变体改进口味、成本或表现形式直到感觉合适为止。要对提示抽象进行同样的处理我们需要一种搜索算法、一个目标以及一组标注样本这样才能知道我们是否取得了进展。 使用 SAMMO 调整指令 为了说明 SAMMO 的核心工作流程我们现在将展示如何调整上面提示示例中的指令部分。一旦我们完成了这个玩具示例我们就可以讨论更高级的应用如 RAG 优化或压缩。 关键步骤如下 确定起始提示准备好数据--几百个带标签的示例就足够了。确定目标选择一组突变体运行优化 步骤 1定义开始提示 这一步我们在上文已经做得差不多了。SAMMO 期望使用一个函数因此我们必须将其封装为一个函数。如果你想存储额外的信息可以用 Callable 代替。我们还将把它封装在一个输出组件中以运行它。 def starting_prompt():instructions MetaPrompt(Paragraph(textInstructions: ),Paragraph(idinstructions,textDoes Speaker 2s answer mean yes or no?,),Paragraph(idlabels, textOutput labels: yes, no),InputData(),Paragraph(textOutput: ),)return Output(instructions.with_extractor()) 步骤 2准备好数据 SAMMO 使用名为 DataTable 的简单数据结构将输入与输出标签配对。这将有助于我们进行评估和记账。 mydata DataTable.from_records(records, # list of {input: , output: }# list of {input: , output: }constants{instructions: default_instructions},  ) 步骤 3确定目标 我们感兴趣的是优化精确度因此这就是我们下面要实现的目标 def accuracy(y_true: DataTable, y_pred: DataTable) - EvaluationScore:y_true y_true.outputs.normalized_values()y_pred y_pred.outputs.normalized_values()n_correct sum([y_p y_t for y_p, y_t in zip(y_pred, y_true)])return EvaluationScore(n_correct / len(y_true)) 步骤 4选择一组突变体 在这里你可以尽情发挥自己的创造力。你可以实现自己的运算符来生成新的提示变体也可以简单地依赖 SAMMO 提供的预置变异运算符。 在下文中我们将采用后者从一些标注的示例中混合使用转述和诱导指令基本上实现了自动提示工程APE。 mutation_operators BagOfMutators(starting_promptStartingPrompt(d_train),InduceInstructions({id: instructions}, d_train),id: instructions}, d_train),Paraphrase({id: instructions}), ) 步骤 5运行优化 runner OpenAIChat(model_idgpt-3.5-turbo-16k,gpt-3.5-turbo-16k,api_config{api_key: YOUR_KEY},cachecache.tsv, ) prompt_optimizer BeamSearch(runner, mutation_operators, accuracy, depth6) transformed prompt_optimizer.fit_transform(d_train) 介绍性提示示例实际上取自 BigBench 含义任务我们将用它来运行本实验。如果使用 100 个样本进行训练和测试并以 48 个候选评估为预算进行优化你会发现 SAMMO 将起始提示的准确率从 0.56 提高到了 0.77 - 提高了 37.5%。哪些指令效果最好 ... Paragraph(Consider the dialogue, context, and background Consider the dialogue, context, and background information provided to determine the most suitable output label,idinstructions, ) ... 有趣的是不同的 LLM 喜欢的指令大相径庭。如上所述GPT-3.5 最喜欢通用指示。在相同的训练和预算设置下SAMMO 选择的 Llama-2 最佳提示在指令部分使用了空字符串 ... Paragraph(,,idinstructions, ) ... 实际操作 RAG 调整 现在我们将展示如何将 RAG 管道转换为符号程序并使用 SAMMO 对其进行调整。我们将使用语义解析作为应用任务将用户查询转化为特定领域语言 (DSL) 结构例如查询某些数据库或调用外部 API。 为了创建起始提示我们列出了所有运算符的列表使用基于嵌入的检索器获取五个少量示例然后指示 LLM 以与示例相同的格式输出答案。 class RagStartingPrompt:def __init__(self, dtrain, examples, embedding_runner):self._examples examplesself._dtrain dtrainself._embedding_runner embedding_runnerdef __call__(self, return_rawFalse):structure [Section(Syntax, self._dtrain.constants[list_of_operators]),Section(Examples,EmbeddingFewshotExamples(self._embedding_runner, self._examples, 5),),Section(Complete and output in the same format as above,InputData(),),]instructions MetaPrompt(structure,render_asmarkdown,data_formatterJSONDataFormatter(),)  return Output(instructions.with_extractor(),on_errorempty_result,) 现在我们有了一个符号程序让我们发挥创意吧。对于突变我们探索 不同数量的少量示例少量示例的不同格式XML、JSON、逐行格式是否提供有关 DSL 的附加信息显示输入输出对或输入输出组 使用这些示例和总共 24 个候选示例运行 SAMMO我们可以看到一个明显的趋势。以下是四个不同 LLM 的三个不同数据集的测试集准确率。在绝大多数情况下我们可以看到 SAMMO 可以大幅提升性能即使是性能最高的 LLM 也不例外。 结论 将提示语转换为符号程序是一个非常强大的想法可以探索可能的提示语和设置的巨大设计空间。就像专业厨师通过解构和重新诠释食谱来进行烹饪创新一样符号编程也能让我们在自动提示工程中发挥同样的创造力和实验精神。
http://www.tj-hxxt.cn/news/233433.html

相关文章:

  • 广州购物网站建设关于公司建设网站的意义
  • 电子商务网站建设的评估工具机顶盒做网站
  • 中国建设银行黄冈分行网站织梦怎么制作网站
  • 电脑网站与手机的区别.net做网站之前设置
  • 发表评论的wordpress网站模板腾讯云物联网开发平台
  • 网站开发公司云鲸互创实惠做柜子比较好看的网站
  • php完整网站开发案例四川华地建设工程公司网站
  • 租赁公司网站源码新媒体运营需要具备哪些能力
  • 在常州 做兼职上什么网站模板网站 怎么做优化
  • 为什么用asp做网站网站制作排版注意事项
  • 帮忙做ppt赚钱的网站辽阳银梦网站建设
  • 山西企业模板建站服务营销
  • 中国城乡与住房建设部网站装修设计图网站排名
  • 城市分站cmswordpress加速之gzip
  • php做小公司网站用什么框架厦门建设局网站
  • 宁波seo推广推荐公司aso优化技术
  • 长春建站怎么做cf小号自助购买网站
  • 网站整体地图怎么做做网站是否用数据库
  • 网站建设课设总结自助建网站哪个便宜
  • h5模板网站免费有哪些做兼职的设计网站有哪些
  • 深圳网站设计兴田德润简介wordpress需要备案
  • dede网站搬家更换空间重新安装普通话考试最后一题万能模板
  • 2014 网站建设wordpress加文字水印
  • 遂宁网站建设跨境o2o网站建设方案
  • 国外公司建站系统wordpress mylife
  • 网站充值功能怎么做在线考试系统网站开发
  • 拼多多网站建设框架图可以做外贸私单的网站
  • 网站推广无锡番禺网站建设番禺网络营销
  • 济南章丘网站建设响应式网站布局
  • 电子商务网站设计心得一单一结手机兼职