jjzjj

「AIGC」- ChatGPT可以怎么玩?

百川AI 2024-03-17 原文

chatGPT这么火,这几天一番体验之后,除了惊叹,同时也引发了作为程序员的担忧:我的工作是否会被AI取代?

这个问题很难不引起焦虑,但是我们可以换一个角度,可以用这些生成类的工作,做些什么提高我们的工(zao)作(dian)效(xia)率(ban)?就像我们当初使用搜索引擎一样。

什么是AIGC?

AIGC全称为AI-Generated Content,指基于生成对抗网络GAN、大型预训练模型等人工智能技术,通过已有数 据寻找规律,并通过适当的泛化能力生成相关内容的技术。与之相类似的概念还包括Synthetic media,合成式媒 体,主要指基于AI生成的文字、图像、音频等。来源:AIGC万字百科全书:底层原理、应用场景、工具示例、行业现状、发展趋势

ChatGPT可以做什么

ChatGPT到底是取代程序员,还是提升程序员效率的工具?这里以chatGPT为例,提供一些提(tou)高(lan)办公效率的案例(以ChatGPT为例):

做PPT

这个需要结合外部网站,例如https://mindshow.fun/闪击PPT - 高效内容演示等,这里以支持markdown的minshow为例:

  1. 首先让chatGPT写出内容

  2. 将markdown代码复制到mindshow中。

  3. 选择一个模版:

    ​大功告成。

信息汇总

例如文档的总结、新闻总结:爬虫爬取一些相关新闻,然后输入chatgpt,让他汇总生成摘要。

代码

代码解释

当你加了一天班,脑袋宕机后,可以让他帮你读代码

写代码

如果脑袋宕机更严重一点,可以让他你写代码。目前体验下来很多语言都支持,连sql都写的还不错。

以后面试是不是直接可以使用chatGPT作为面试题外援了。。。

帮你修bug

代码翻译

代码提示

GitHub Copilot, 自动补全代码,vs code也有插件,基于OpenAI Codex 模型,比如你只需要给函数命名,加一点注释,他就能够补全实现代码:

详细使用见:https://docs.github.com/zh/copilot/getting-started-with-github-copilot

特定机器学习NLP任务

对于nlp任务,涉及好的prompt至关重要,这里也就只有多试试,实验获得较优的prompt。(好家伙,从炼丹变成了prompt调优)

  1. 使用chatGPT测试情感分类的例子

  1. 观点总结的例子

  1. 主题分类的例子

写文章

包括博客论文之类的,哈哈,毕业论文神器,怪不得高校都禁止。这里放一个写博客的例子

写完大纲不行,能不能直接写个博客:

问答产品

一些简单的问题,不需要知识库的,可以直接提问:

但是对于有更新知识,或者特定工具的文档,就不太行了,因为chatgpt的语料是固定的,为了能将知识加入,不可能每次都讲所有知识作为prompt输入,有没有一个解决方式能缩小问题的范围,将相关资料汇总、裁剪后作为gpt的prompt输入。

解决问题:如何利用知识库,集合GPT能力进行回答。

方案:利用检索缩小问题的范围,将相关资料汇总、裁剪后,然后作为gpt的prompt输入。

  1. 利用openAI Embedding将知识库的文档向量化,
  2. 输入用户问题向量召回topk相关段落,或者答案片段。
  3. 让 chatGPT 总结,作为问题的prompt。(其实就是利用gpt总结topk答案成流畅的回答)

参考代码库:https://github.com/GanymedeNil/document.ai

也有一些其他开箱即用的,例如Chat2DocChatPDF

例如我使用Chat2Doc,上传了一篇论文:Towards Boosting the Open-Domain Chatbot with Human …,下面是它的回答:

广告创意、广告文案的生产

加上前面ppt网站的模板,直接就是文案图片了。

办公

做ppt前面讲过,那么excel和doc呢?

ChatExcel,仅仅通过命令就可以修改excel(老罗类目)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U4KWyWM4-1680447138306)(https://chatexcel.com/static/pic/case-02.gif)]

ChatDOC,和上面介绍的类似,上传你的文档,就可以直接提问了。类似前面提到的Chat2DocChatPDF

prompt

prompt很重要,想要获得好的效果,还需要很好地设计prompt,而且要多试试不同的prompt效果,实验出来。

对于问答,提问最好清晰具体,内容要解释清楚,另外可以指定让他担任的角色,以及结果形式,也可以加入一些限制,详细可以参考这篇博客

  • 提问的例子:

另一种是针对某些特定的任务,比如分类任务,可以设置一些提示语、类别标签、类别标签的解释加入到prompt中,会让他更好的。例如下面的一些例子:

场景Prompt
提问场景prompt描述问题清晰具体即可,另外可以指定让他担任的角色,以及结果形式,如:以一个骑行者视角用流畅的中文说说,四川有哪些有名的景点?
观点生成请用流畅的中文根据下面用户评论,总结用户对{game_name}关于 {topic1} 话题的观点:
话题标签您现在正在执行一个主题分类任务。对于提供的句子,您需要确定该句子是否关于<topic_name>这里有一些规则:{规则和例子}
总结请用中文简单总结下以下内容{}
情感分类你正在进行情感分类的任务,请判断{内容}属于正面、中性还是负面,为它打上标签。{情感定义}

怎么体验到AIGC

ChatGPT

chatGPT&GPT4官网:https://chat.openai.com/auth/login?next=/chat,chatGPT是免费的(需要一个国外手机号注册就行,可以TB买),ChatGPT Plus订阅收费制,每月20刀,据说也有gpt4访问权限。GPT4支持图文的多模态输入,

48 个基本能力:https://platform.openai.com/examples

官方技术报告地址:https://cdn.openai.com/papers/gpt-4.pdf

官方视频案例地址:https://www.youtube.com/live/outcGtbnMuQ?feature=share

ChatGLM-6B

chatGLM是清华开源的中英对话语言模型,开源了60亿参数的模型👍🏻:ChatGLM-6B,更多介绍见博客:https://chatglm.cn/blog

功能包含:自我认知,提纲写作,文案写作,邮件写作助手,信息抽取,角色扮演,评论比较,旅游向导。这里是一些例子,ChatGLM-6B 示例

文心一言

文心一言是百度知识增强大语言模型,功能包括:与人对话互动,回答问题,协助创作。在官网申请加入体验即可,据说支持多模态生成,目前还没体验过,不予置评。不过最近百度比较经典的 驴肉火烧、老婆饼有老婆之类的大家应该听过[doge]。。。

yuanyu

ChatYuan-large-v2是一个支持中英双语的功能型对话语言大模型。

git: https://github.com/clue-ai/ChatYuan

介绍博客:ChatGPT国产化:ChatYuan元语对话大模型升级

Luotuo: Chinese-alpaca-lora

中文的模型,在 Meta 开源的 LLaMA 基础上,参考 Alpaca 和 Alpaca-LoRA 两个项目,对中文进行了训练,70亿参数,git: https://github.com/LC1332/Chinese-alpaca-lora

问答产品

解决问题:如何利用知识库,集合GPT能力进行回答。

方案:

  1. 利用openAI Embedding将知识库的文档向量化,
  2. 输入用户问题向量召回topk相关段落,或者答案片段。
  3. 让 chatGPT 总结,作为问题的prompt。(其实就是利用gpt总结topk答案成流畅的回答)

代码库:https://github.com/GanymedeNil/document.ai

类似的开箱即用的还有:

参考资料

有关「AIGC」- ChatGPT可以怎么玩?的更多相关文章

  1. 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

  2. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  3. ruby - 我可以使用 Ruby 从 CSV 中删除列吗? - 2

    查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html

  4. ruby - 我可以使用 aws-sdk-ruby 在 AWS S3 上使用事务性文件删除/上传吗? - 2

    我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的

  5. ruby - 有人可以帮助解释类创建的 post_initialize 回调吗 (Sandi Metz) - 2

    我正在阅读SandiMetz的POODR,并且遇到了一个我不太了解的编码原则。这是代码:classBicycleattr_reader:size,:chain,:tire_sizedefinitialize(args={})@size=args[:size]||1@chain=args[:chain]||2@tire_size=args[:tire_size]||3post_initialize(args)endendclassMountainBike此代码将为其各自的属性输出1,2,3,4,5。我不明白的是查找方法。当一辆山地自行车被实例化时,因为它没有自己的initialize方法

  6. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  7. ruby - 我可以将我的 README.textile 以正确的格式放入我的 RDoc 中吗? - 2

    我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:

  8. ruby - Ruby 中的隐式返回值是怎么回事? - 2

    所以我开始关注ruby​​,很多东西看起来不错,但我对隐式return语句很反感。我理解默认情况下让所有内容返回self或nil但不是语句的最后一个值。对我来说,它看起来非常脆弱(尤其是)如果你正在使用一个不打算返回某些东西的方法(尤其是一个改变状态/破坏性方法的函数!),其他人可能最终依赖于一个返回对方法的目的并不重要,并且有很大的改变机会。隐式返回有什么意义?有没有办法让事情变得更简单?总是有返回以防止隐含返回被认为是好的做法吗?我是不是太担心这个了?附言当人们想要从方法中返回特定的东西时,他们是否经常使用隐式返回,这不是让你组中的其他人更容易破坏彼此的代码吗?当然,记录一切并给出

  9. ruby - 一个 YAML 对象可以引用另一个吗? - 2

    我想让一个yaml对象引用另一个,如下所示:intro:"Hello,dearuser."registration:$introThanksforregistering!new_message:$introYouhaveanewmessage!上面的语法只是它如何工作的一个例子(这也是它在thiscpanmodule中的工作方式。)我正在使用标准的ruby​​yaml解析器。这可能吗? 最佳答案 一些yaml对象确实引用了其他对象:irb>require'yaml'#=>trueirb>str="hello"#=>"hello"ir

  10. ruby - 怎么来的(a_method || :other) returns :other only when assigning to a var called a_method? - 2

    给定以下方法:defsome_method:valueend以下语句按我的预期工作:some_method||:other#=>:valuex=some_method||:other#=>:value但是下面语句的行为让我感到困惑:some_method=some_method||:other#=>:other它按预期创建了一个名为some_method的局部变量,随后对some_method的调用返回该局部变量的值。但为什么它分配:other而不是:value呢?我知道这可能不是一件明智的事情,并且可以看出它可能有多么模棱两可,但我认为应该在考虑作业之前评估作业的右侧...我已经在R

随机推荐