草庐IT

怎么快速转行并学习提示工程师的方法

乱写的 2023-11-26 原文

chatgpt的出现毫无疑问打破了原有的商业格局, 各个公司都已逐渐使用chatgpt来取代人工,反正老板总是提出各种逆天的要求,但chatgpt可不一定听得懂,雇一个翻译那可真是一个好主意

-------------提示工程师

以往要费几天功夫的搜集整理分析工作,有了chatgpt分分钟搞定,机械降神般将员工从他们的椅子上踹开,例如为动画、音乐创作提供灵感和素材,医疗保健研究和临床实践提供智能的数据收集和分析,根据病人的情况和需求设计诊断和治疗方案,为电子商务、广告、营销等领域提供优化的用户界面,根据用户的行为和反馈设计更有吸引力和转化率的产品和服务等等。。。。

-------------拿来主义为何无故兴盛

提示工程师中所谓提示是指工程师告诉“语言模型”他的需求,让语言模型生成需要的内容。提示工程师现在是一个非常热门的新工作,因为它可以利用大型语言模型的强大能力,不用编码就有产出。提示工程师的年薪甚至超过了200万。有些公司已经开始招聘提示工程师如 Scale AI。

每天一步,只需五天

成为提示工程师的第一步

如果你原来学习天坑专业,那也不是说你距离提示工程师太远,因为现在市场上没有多少提示工程师。

最基础的方面,了解它是怎么运转的。

学习基本的语言模型原理和应用,了解不同类型的模型(例如 GPT-3、DALL-E、Midjourney 和 ChatGPT)的特点。是成为提示工程师的第一步。这些语言模型是数学和统计方法来描述自然语言(例如中文、英文等)的规律和特征的模型。目前最先进的语言模型是基于深度学习和神经网络的模型,这些模型可以根据大量的文本数据自动学习语言的知识和规则,并根据给定的输入生成相应的输出。

因此在学习基本的语言模型原理和应用时,了解不同类型的语言模型如何工作、如何训练、如何评估、如何使用等,并根据您感兴趣或想要解决问题所在领域或任务选择合适您目标场景下最合适使用哪种类型或哪个具体实例化后得到得具体版本得大规模预训练好得深度神经网络(例如 ChatGPT)。

必不可少的是参加相关课程,加入相关的社区了解最新得研究进展和技术动态。

-------------向模型请教如何学习它本身

第二步

选择一个领域作为切入点,从你当前从事的领域出发去应用模型是最简单的,因为你对你的领域足够熟悉,你有十足的经验来检验模型给你的那团东西,如果是其他领域,当模型将内容给你时,你甚至要一点点地请教模型,它掰开揉碎之后再喂给。。。。。。(

让它先成为你的助手,直至完全取代你的工作,然后。。。。。(

举个例子,如果你从事旅游业,并且了解旅游相关知识和信息,那么你可以选择使用 Midjourney 这个专门针对旅游场景设计得语言模型来完成一些与旅游相关得任务。

"为用户生成个性化得旅行计划或攻略,解答路途常见问题或困难,分享精彩旅行故事或体验。"

-------------人才逐渐沦为无用之物的过程

第三步

上手引导模型需要有效的咒语,精准的施法往往效果拔群。

设计编写简单而清晰的提示,得到良好的输出,是提示工程师踩在月球的第一个脚印。“提示”可以看作是一种与语言模型沟通和交流的方式,可以通过提示告诉语言模型想要它做什么,以及如何做得更好。设计并编写简单而清晰的提示并不是一件容易的事情。有很多容易多次犯错的地方。

有没有足够且必要的信息和上下文,让语言模型能够理解您的需求和目标?

有没有使用了合适且一致的格式、风格、语法等,让语言模型能够遵循您的规范和期望?

有没有明确且合理的范围、限制、条件等,让语言模型能够避免错误或不恰当得输出?

并不是说需要为每一个任务都设计并编写一个全新得提示。可以利用已有得或公开的提示库来获取或修改一些适合自己需求的提示。在使用或修改别人的提示时,请注意尊重他人劳动成果,给予足够的测试,最好可以改进。

比如用 ChatGPT 来为用户生成一些有趣而友好得聊天内容。参考这个来自 OpenAI 的 GPT-3 Playground 的公开示例:

The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.

Human: Hello, who are you?
AI: I am an AI created by OpenAI. How can I help you today?

这个示例给出了一个简单而清晰的提示,告诉了语言模型以下信息:

  • 任务类型:聊天,角色:AI 助手,特点:有用、创造性、聪明、友好

这样就可以引导语言模型生成符合要求的聊天内容,实际上设计并编写简单而清晰的提示还需要考虑更多的因素和细节,例如不同用户或场景下的个性化、多样化等。

保持简洁而明确的原则,避免过度复杂或冗余的内容。

-------------引导机器的智慧

第四步

模型说是对的就是对的?

评估并优化提示效果,反刍可以有效提升下次的引导姿势,用不同指标来衡量语言模型根据给定提供生成输出质量;根据评估结果对提示进行改进。

评估并优化是一个持续且重要的过程。包括使用指标评估时,这些指标是不是客观且可量化,使用数据评估时,数据是不是有代表性,使用哪些方法进行评估,是不是有效。一般的情况根据经验和直觉来判断。但是,在进行评估并优化时,请注意请尊重用户的反馈和建议,纠正模型不适当的输出,在可以的情况下适当增强达到更好的效果。

比如还拿上面的例子

The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.

Human: Hello, who are you?
AI: I am an AI created by OpenAI. How can I help you today?
Human: Tell me a joke.
AI: Okay, here is a joke for you. What do you call a fish that wears a bowtie? Sofishticated.

现在对它进行一些评估并优化。用幽默度、友好度、流畅度等,来量化地衡量聊天内容得质量。在数据方面,如真实用户得反馈、来真实地衡量聊天内容得效果。还可以根据一些原则,如增加多样性、提高准确性、保持逻辑性等,来合理地优化聊天内容。

不要忘记保持客观而负责任的态度。

第五步

保持探索,参考其他优秀团队的案例和经验,虽然提示工程师的工作也会被模型吞并。

“These violent delights have violent ends. And in their triumph die, like fire and powder, which, as they kiss, consume. ”

有关怎么快速转行并学习提示工程师的方法的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby - Facter::Util::Uptime:Module 的未定义方法 get_uptime (NoMethodError) - 2

    我正在尝试设置一个puppet节点,但ruby​​gems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由ruby​​gems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby

  5. Ruby 方法() 方法 - 2

    我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby​​-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco

  6. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  7. ruby - Highline 询问方法不会使用同一行 - 2

    设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案

  8. ruby - 主要 :Object when running build from sublime 的未定义方法 `require_relative' - 2

    我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby​​1.9+ 关于ruby-主要:Objectwhenrun

  9. ruby - 多个属性的 update_column 方法 - 2

    我有一个具有一些属性的模型:attr1、attr2和attr3。我需要在不执行回调和验证的情况下更新此属性。我找到了update_column方法,但我想同时更新三个属性。我需要这样的东西:update_columns({attr1:val1,attr2:val2,attr3:val3})代替update_column(attr1,val1)update_column(attr2,val2)update_column(attr3,val3) 最佳答案 您可以使用update_columns(attr1:val1,attr2:val2

  10. ruby - 检查方法参数的类型 - 2

    我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)

随机推荐