草庐IT

OpenAI chatGPT火爆出圈,世界悄悄发生着变化

__Forever__ 2024-06-23 原文

OpenAI chatGPT火爆出圈,世界悄悄发生着变化

这几天 chatGPT刷爆了朋友圈,它是一个智能聊天引擎,本来人工智能聊天机器人也不算什么新鲜东西,但是由于它的表现过于出众,拉开同类产品一大截,因此引发了破圈效应,引起了很多人的注意。

一、为什么突然火起来了?

2020年7月,OpenAI(一家公司)提出了包含175 billion (1750亿)个参数的GPT究极进化版模型GPT-3,作者们在发布的论文中证明,不通过梯度更新或参数精调,就能在对话、翻译、推理和分类等任务上取得出色的效果。

  • 论文下载地址:https://arxiv.org/pdf/2005.14165.pdf

OpenAI官网公布了GPT-3提供的服务,有49种之多,包括机器翻译、代码Bug修改、智能对话、论文写作、语法纠正和文章关键词提取等。以下是目前GPT-3提供的部分服务:

之所以吸引了大家的眼球,一方面是因为模型本身强大的性能,另一方面也是因为GPT-3是第一个将模型转换为付费服务的产品。OpenAI公司基于“Model as Service”的理念,向用户传达了一个信息:GPT-3不是一个停留在实验室的Demo,而是真的能产生实际价值,其中chatGPT的火爆出圈就是一个例子。

二、ChatGPT功能示例

2.1 AI聊天


2.2 AI写新闻稿

2.3 AI写代码

2.4 AI写论文

题目:生成一篇关于新冠病毒的论文提纲

题目:生成一篇关于新冠病毒的论文,小于3000字

2.5 AI画画

题目:三个人在吃火锅

题目:四个人在钓鱼

2.6 chatGPT是在线的吗?

根据作者的测试得出结论,chatGPT好像是离线训练的。想想这么大规模的模型,训练一次花费的代价还是蛮大的。猜测训练的时间是2021年,因为问它2022年的事情它就不知道了。

三、如何使用OpenAI的ChatGPT功能

那么,本文刚开始描述的GPT-3和上面演示的chatGPT是什么关系呢?答案是chatGPT是GPT-3提供的其中一个服务,其他服务广大人民群众关注得少。

值得注意的是,OpenAI是一个盈利的组织,GPT-3是要收费的,目前只有codex和chatGPT两个服务是完全免费的,另一个服务Dalle2(AI画画)仅提供免费200张图片。

另外,OpenAI为众多国家开放了白名单,中国不在首批开放的国家列表中。它会检测你的IP所属的国家,并拒绝白名单外的地区访问。因此,国内是访问不了它的服务的。如果您在拥有访问权限的地区,可以通过一下步骤体验服务:

  1. 登录官网:
  • 聊天请登录:https://chat.openai.com
  • AI画画请登录:https://labs.openai.com
  • 查看所有功能请登录:https://beta.openai.com/examples/
  1. 注册账号,网上有很多教程[1],比如这个
  2. 使用功能。

当然,如果你非常想体验一下chatGPT的服务,热心网友做了一个反向代理网站https://gpt.chatapi.art/,可以上去体验一下。不过由于访问的人特别多,时灵时不灵。

四、如何使用OpenAI的GPT-3其他功能

针对不同规模的业务场景,GPT-3一共提供了4款模型供用户选择,分别是:Ada、Babbage、Curie和Davinci,特点不一样,价格不一样。Ada是最轻量、响应最快的模型,Davinci效果最强大,可以应对复杂文本推理和因果分析。

  1. Ada Good at(擅长): Parsing text, simple classification, address correction, keywords
  2. Babbage Good at(擅长): Moderate classification, semantic search classification
  3. Curie Good at(擅长): Language translation, complex classification, text sentiment, summarization
  4. Davinci Good at(擅长): Complex intent, cause and effect, summarization for audience

每位用户在开始的3个月中,有18刀的免费额度。以Davinci为例,0.06美金可以调用1000个token。后面只需要为你使用的资源付费,如果想在某些子领域内获得更好的性能,还可以通过特定数据微调GPT-3,同样也是按token收费,详情请参见官网介绍。

如何将模型用到自己的代码中,直接导入openai模块(import openai),就像下面这样:

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.Completion.create(
  model="code-davinci-002",
  prompt="class Log:\n    def __init__(self, path):\n        dirname = os.path.dirname(path)\n        os.makedirs(dirname, exist_ok=True)\n        f = open(path, \"a+\")\n\n        # Check that the file is newline-terminated\n        size = os.path.getsize(path)\n        if size > 0:\n            f.seek(size - 1)\n            end = f.read(1)\n            if end != \"\\n\":\n                f.write(\"\\n\")\n        self.f = f\n        self.path = path\n\n    def log(self, event):\n        event[\"_event_id\"] = str(uuid.uuid4())\n        json.dump(event, self.f)\n        self.f.write(\"\\n\")\n\n    def state(self):\n        state = {\"complete\": set(), \"last\": None}\n        for line in open(self.path):\n            event = json.loads(line)\n            if event[\"type\"] == \"submit\" and event[\"success\"]:\n                state[\"complete\"].add(event[\"id\"])\n                state[\"last\"] = event\n        return state\n\n\"\"\"\nHere's what the above class is doing:\n1.",
  temperature=0,
  max_tokens=64,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=["\"\"\""]
)

五、总结

AI有三要素:算力、算法和数据。在前两者固定的情况下,GPT3通过庞大的规模带来了震撼的影响。更为重要的是,它基于“Model as a Service”,成功实现了“产品化”,同时考虑了很多不同的业务场景,形成了一条可盈利的商业模式,使得人工智能从实验室走向了一线产业。

利用当下的技术和数据积累,产出服务和价值,继而获取更多的需求和数据,是一个良性循环[2]。长此以往,一定能形成真正的壁垒。

旧时王谢堂前燕,飞入寻常百姓家。

参考资料

[1] https://www.yanlutong.com/gonglue/30511.html
[2] https://zhuanlan.zhihu.com/p/436160702?utm_campaign=shareopn&utm_medium=social&utm_oi=41495855890432&utm_psn=1584596619407843328&utm_source=wechat_session

有关OpenAI chatGPT火爆出圈,世界悄悄发生着变化的更多相关文章

  1. ruby-on-rails - 启用 Rack::Deflater 时 ETag 发生变化 - 2

    在启用Rack::Deflater来gzip我的响应主体时偶然发现了一些奇怪的东西。也许我遗漏了一些东西,但启用此功能后,响应被压缩,但是资源的ETag在每个请求上都会发生变化。这会强制应用程序每次都响应,而不是发送304。这在没有启用Rack::Deflater的情况下有效,我已经验证页面源没有改变。我正在运行一个使用thin作为Web服务器的Rails应用程序。Gemfile.lockhttps://gist.github.com/2510816有没有什么方法可以让我从Rack中间件获得更多的输出,这样我就可以看到发生了什么?提前致谢。 最佳答案

  2. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  3. ruby - 当 attr_accessor 在类方法中时会发生什么? - 2

    所以我想到了这个,想知道当下面的一些事情完成后会发生什么。classTestdefself.abcattr_accessor:Johnendendobject=Test.newputs"beforecallingclassmethodabc:#{object.class.instance_methods(false)}"Test.abcputs"aftercallingclassmethodabc:#{object.class.instance_methods(false)}"这里我检查的是,getter和setter方法是否以这种方式创建。如果是这样,是那些实例方法或类方法。首先我创

  4. ruby - 当你有一个没有参数的 case 语句并且 when 子句是 lambda 时会发生什么? - 2

    这段代码没有像我预期的那样执行:casewhen->{false}then"why?"else"ThisiswhatIexpect"end#=>"why?"这也不是casewhen->(x){false}then"why?"else"ThisiswhatIexpect"end#=>"why?"第一个then子句在两种情况下都被执行,这意味着我提供给when子句的lambda没有被调用。我知道无论when子句的主题是什么,都应该调用大小写相等运算符===。我想知道当没有为case提供参数时,===的另一边会发生什么。我在想它可能是nil,但它不可能是:->{false}===nil#=>

  5. ruby-on-rails - ruby 中两个哈希之间的变化 - 2

    我有两个具有以下格式的哈希mydetails[x['Id']]=x['Amount']这将包含如下数据hash1={"A"=>"0","B"=>"1","C"=>"0","F"=>"1"}hash2={"A"=>"0","B"=>"3","C"=>"0","E"=>"1"}我期待这样的输出:Differencesinhash:"B,F,E"非常感谢任何帮助。 最佳答案 这个解决方案可能更容易理解:(hash1.keys|hash2.keys).select{|key|hash1[key]!=hash2[key]}Array#|返回2

  6. ruby-on-rails - 获取最近发生的星期三? - 2

    如何使用Ruby(和Rails,如果有相关的辅助方法)获取最近发生的星期三?最终需要实际日期(5/1/2013)。 最佳答案 time=Time.nowdays_to_go_back=(time.wday+4)%7last_wed=days_to_go_back.days.ago 关于ruby-on-rails-获取最近发生的星期三?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

  7. ruby-on-rails - 发生异常时发送电子邮件不起作用,使用 exception_notification - 2

    我正在从rails2.3迁移到rails3.1,我试图在生成异常时发送电子邮件。我正在使用exception_notificationgem。我的其余电子邮件都在工作。但是异常邮件不会被解雇。以下是我的staging.rb文件中的设置。config.action_mailer.perform_deliveries=trueconfig.action_mailer.raise_delivery_errors=true下面是application.rb中的代码C::Application.config.middleware.useExceptionNotification::Rack,:e

  8. 一个非常明显的现象,正在发生——元宇宙正在被越来越多的人所推崇 - 2

      一个非常明显的现象,正在发生——元宇宙正在被越来越多的人所推崇,无论是科技巨头,还是资本巨头,几乎都是如此。同时,区块链则正在一点一点地回归理性与客观。对于区块链来讲,这是一个好现象。它告诉我们,人们对于区块链的狂热而激进的认识,正在被一步又一步的校正和纠偏。由此,区块链行业的发展,将会真正进入到一个全新的发展阶段。  同以往人们仅仅只是将区块链看成是一个概念,并以此来获取资本和流量不同。当人们对于区块链的认识变得深入,资本和流量反倒不再是区块链玩家们真正关心的问题。至少从当下情况来看,那些依然还在区块链行业里坚守的玩家们,更多地在坚持长期主义,更多地在寻求区块链与行业结合的正确的方式和方

  9. ruby - 在 Ruby 中声明 "private"/"protected"时实际发生了什么? - 2

    在Ruby类定义中声明private/protected时实际发生了什么?他们不是keywords,这意味着它们必须是方法调用,但我找不到它们的定义位置。它们似乎没有记录在案。声明private/protected方法(如下所示)的两种不同实现方式是否不同?(第二种方式显然是方法调用,但在第一种方式中并不那么明显。)classFooprivatedefi_am_private;enddefso_am_i;endendclassFoodefi_am_private;enddefso_am_i;endprivate:i_am_private,:so_am_iend

  10. ruby - 处理在 keyup 事件上发生的 javascript 弹出窗口 - 2

    我在HTML页面上有一个文本字段,用于检查您是否输入了1到365之间的值。如果用户输入了无效值,如非数字字符或不在范围内的值,它显示一个弹出窗口。我在watirwiki上看到有一个select_no_wait方法,用于在您从列表中选择无效值时关闭弹出窗口。处理键盘事件时出现的弹出窗口的好方法是什么?我是否需要按照select_no_wait方法的实现方式进行操作,或者我们是否可以启动一个不同的进程来消除调用set方法时可能出现的弹出窗口。带有Javascript验证函数的HTML文件示例如下:varnum=0functionvalidate(e){varcharPressed=Stri

随机推荐