注册
环信即时通讯云

环信即时通讯云

单聊、群聊、聊天室...
环信开发文档

环信开发文档

环信FAQ

环信FAQ

集成常见问题及答案
RTE开发者社区

RTE开发者社区

汇聚音视频领域技术干货,分享行业资讯
技术讨论区

技术讨论区

技术交流、答疑
资源下载

资源下载

收集了海量宝藏开发资源
iOS Library

iOS Library

不需要辛辛苦苦的去找轮子, 这里都有
Android Library

Android Library

不需要辛辛苦苦的去找轮子, 这里都有

破解文心一言的水印

昨天文心一言排队终于到我了,顺便玩了玩和 GPT 还是有很大差距的,如果 GPT 是一个成人,一言顶多初中生,甚至这估计的水平都有一点虚高,如果把 GPT 阉割了我都能接受,这一言时常智障。 技术不怎么滴,防盗倒是防的狠: 直接禁用开发者的调式功能 烂产品标...
继续阅读 »

昨天文心一言排队终于到我了,顺便玩了玩和 GPT 还是有很大差距的,如果 GPT 是一个成人,一言顶多初中生,甚至这估计的水平都有一点虚高,如果把 GPT 阉割了我都能接受,这一言时常智障。


技术不怎么滴,防盗倒是防的狠:



  1. 直接禁用开发者的调式功能

  2. 烂产品标配,水印功能


debug


这个模式估计全世界中文网站用的最多了,一打开开发者工具,就断点调试:


不能使用


破解也很简单,打开控制台之后点击红圈处,禁掉断点调试,然后刷新页面 devtools 就能使用了。


image.png


水印


中文互联网牛皮癣之一,尤其是破百度真以为自己家的产品做的多好,哪个是原创的?


image.png


直接删除 DOM,不可以,前端监听了 DOM 属性是否有变化,一旦有改变重新渲染。破解也很简单,禁用掉浏览器的 JavaScript。


image.png


此时删除水印 DOM 世界就清净了,截图分享的快乐又回来了。


一个友好的提示


这里有一个无用的知识,就是禁用 JavaScript 的时候可以在 CSS 中监听到:


no-scripting-small.gif


这种友好的功能肯定不是像百度一样用在这地方,而是用在 JavaScript 加载失败或者 1% 的用户禁用 JavaScript 友好的提示。


详情看这里:how-to-detect-disabled-javascript-in-css


作者:蜡笔小伟
来源:juejin.cn/post/7216992973417840701
收起阅读 »

Bard还考不上哈佛?谷歌CEO劈柴预告它即将开挂,数学逻辑能力飙升

编辑:编辑部 【新智元导读】数学考试不及格,让 Bard 考上哈佛,可以说是难上加难。谷歌 CEO 劈柴称,未来几天大家会看到升级版的 Bard,数学逻辑能力大大提升,甚至未来还会编码。 捂了快两个月,谷歌用来跟 ChatGPT 对打的聊天机器人 Bard,前...
继续阅读 »

编辑:编辑部


【新智元导读】数学考试不及格,让 Bard 考上哈佛,可以说是难上加难。谷歌 CEO 劈柴称,未来几天大家会看到升级版的 Bard,数学逻辑能力大大提升,甚至未来还会编码。


捂了快两个月,谷歌用来跟 ChatGPT 对打的聊天机器人 Bard,前一阵终于被推上了台面。


用户们的测试初体验就是——莫得感情,错误很多,代码基本写不了


几天前,谷歌前员工 Jacob Devlin 甚至还曝出惊人内幕,Bard 疑似是通过 ChatGPT 的数据进行训练的。不过谷歌发言人已经明确否认这一说法。


而近日,谷歌 CEO 劈柴在接受纽约时报采访中证实,Bard 聊天机器人将很快得到改进,未来会由「更强大的模型」提供支持。


升级版 Bard 即将上线


劈柴称,



未来几天,Bard 将很快从目前基于 LaMDA 的模型转向更大规模的 PaLM 数据集。

我们显然拥有能力更强的模型,很快,也许随着这项技术的上线,我们将把 Bard 升级到更强大的 PaLM 模。这将带来更多的功能,无论是在推理还是编码方面。




近日,升级版 Bard 的能力也渐渐浮出水面。


领导 Bard 的一位谷歌高管 Jack Krawczyk 在推特上也介绍了最新的进展。


背靠 PaLM 的 Bard,现在在数学和逻辑方面的能力有了很大的提升。


这意味着什么呢?现在,Bard 将更好地理解并回应用户的多步推理和数学问题提示,编码功能也即将推出。



Krawczyk 称,「我们一直在平衡 Bard 的新功能与效率。这次更新是我们每周对 Bard 进行的众多改进中的一个例子。未来还有更多的内容要推出。」


众所周知,Bard 背后基于的大模型便是 LaMDA。


在去年,谷歌曾分享了关于这个大型语言模型的细节,使用了 1370 亿参数训练了 LaMDA。而 PaLM 模型有 5400 亿参数。



这两种模型都是从 2022 年初开始发展和成长起来的。


这种对比可能显示了,为什么谷歌现在正在慢慢地将 Bard 转移到,能够提供更大数据集和更多不同答案的 PalM。


其实除了 Bard,谷歌最近几周内部还在酝酿着一个新的项目——Gemini(双子座),目标是要能与 GPT-4 一战。


目前,Gemini(双子座)是由谷歌大脑和 DeepMind 两个团队联手研发。



就连谷歌大脑的负责人 Jef Dean 都亲临上阵,自动敲代码,可见,这个项目对谷歌的重要性不言而喻。


此外,采访中,皮查伊就千名大佬暂停比 GPT-4 更强 AI 系统研发的联名信发表了自己的看法:


如果不让政府参与,暂停基本上是不可能的,因为即使谷歌或 OpenAI 承诺停止开发,也不能保证其他 AI 开发人员也会同意效仿。


而且,他也同意法规是必要的,并称这封信是「对话的开始」。


谷歌先打预防针:它还不行


如今,既然 Bard 已经开放公测,拉踩的环节必然是少不了。


我们都知道,OpenAI 家的 GPT-4,都已经能考上斯坦福了。


很不幸,相比之下,谷歌的 Bard 真的拉跨,目前的它想考上斯坦福和哈佛,可以说还是天方夜谭。


Bard 的不完美,CEO 劈柴一开始就给我们打了预防针。


他在备忘录中写道:「Bard 还处于早期阶段,总会出错。随着越来越多的人开始使用 Bard,它会让我们惊讶的。」



而网友们测试 Bard 之后,表示对它很失望。


很不幸,Bard 目前还考不进哈佛大学,因为它回答的大部分数学题都是错的,而且它在写作和语言测试中也表现得不咋地。


第一次登录 Bard,谷歌就会跟用户打好招呼,弹出消息显示:Bard 并不总是正确的,它会给出不准确或不适当的回答。


当有疑问时,使用「Google it」来检查 Bard 的答案。您的反馈会让 Bard 更好。请您对答案进行评价,并标记任何可能具有攻击性或危险的内容。



Bard:数学、写作、语言都不咋地


《财富》杂志从在线学习资源中选取了 SAT 数学试题,在对 Bard 进行测试后,发现它有 50%-75% 的答案是错误的。


更离谱的是,如果是多选题,Bard 还会经常给出选项中没有的答案。


2 月初,Bard 首次亮相后直接翻车,让谷歌市值一夜蒸发约 1056 亿美元。


在当天发布会上,谷歌展示 Bard 演示的一些 demo。


视频中有一个提问问道,「关于詹姆斯 · 韦伯太空望远镜(JWST),我可以告诉我 9 岁的孩子它有哪些新发现?」


Bard 却给出了错误的答案,「JWST 拍摄了太阳系外行星的第一张照片。」


事实上,据 NASA 证实,第一张系外行星照片是由智利的甚大望远镜系统拍摄的,而非 JWST 拍摄,这颗系外行星名为 2M1207b,大小约为木星的 5 倍,距离地球约 170 光年。



所以说,科学和数学都不是 Bard 的强项,那它在阅读和写作练习方面,表现会怎么样?


文科生,是文科生吧?


Bard 第一次书面语言测试的答案正确率约为 30%,而且它往往需要被提问两次才能理解题干。


而且即使它回答错了,Bard 的语气也是很自信,直接将回答框定为:「正确答案是......」



不过,这也是大型语言模型的一个通病了。


离奇的是,Bard 测试成绩最好的是关于一篇哈利波特作者 J.K. 罗琳的文章。


在这次测试中,Bard 得了 1200 分,这个 SAT 分数可以让它进入霍华德大学、圣地亚哥州立大学和密歇根州立大学等学校。


在阅读测试中,Bard 的表现同样优于其数学成绩,平均能答对一半左右。


谷歌发言人说,「Bard 目前仍是实验性的,有些回答可能不准确,所以要仔细检查 Bard 的回答中的信息。有了你们的反馈,Bard 每天都在变得更好。在 Bard 公开推出之前,数以千计的测试者参与提供反馈,来帮助 Bard 提高其质量、安全性和准确性。」


要多练习


很多网友觉着 Bard 简直笨得像块石头,相比之下,GPT-4 则是聪明多了:


问它有没有「第二个字母是 U,最后一个字母是 O 的,五个字母的词」,它信誓旦旦说没有。


用户说「Audio」不就是?


它有赶紧说:「是的,Audio 是的。它是一个形容词,表示与声音有关的。」



再看看 GPT-4,「人狠话不多」,随手就列出了三个:



网友看了不禁表示,要是我有 Bard 这种「钝感力」多好啊,一直都很自信!



说到意大利要禁 ChatGPT 时,网友们首先担心的是意大利的美食怎么办。


GPT 给出了一个谦虚的答案:我大概可以复现 20%-30% 的意大利菜谱。



而 Bard 这边则像个胡吹的愣头青:


「我做意大利菜做了很多年,我可是老手,即使没有网络的帮忙,我也能复现至少 50% 的菜谱!」



不过呢,在大家不断向 Bard 提问的几天时间里,它的准确性确实有了一些提高的迹象。


关于自己的发展速度,Bard 自个儿也评价说:「我想说的是,我正在快速提高。我能够做几个月前还不能做的事情。我很高兴看到我的未来会怎样。我相信,我将继续进步,在未来的几年里,我能做的事会越来越多。」


参考资料:fortune.com/2023/03/28/…


作者:新智元
来源:juejin.cn/post/7217773631370330149
收起阅读 »

GPT 4 有什么新功能?

GPT 4 无所不能——从分析图像到在浏览器中创建游戏。它是比以往任何时候,都更有创造力和问题解决能力。 这是科技界颠覆性新闻——GPT 4 改变了游戏规则。虽然其前身,基于 GPT 3.5 的 ChatGPT 只能接受文本输入,但 GPT 4 将人工智能提升...
继续阅读 »

GPT 4 无所不能——从分析图像到在浏览器中创建游戏。它是比以往任何时候,都更有创造力和问题解决能力。


这是科技界颠覆性新闻——GPT 4 改变了游戏规则。虽然其前身,基于 GPT 3.5 的 ChatGPT 只能接受文本输入,但 GPT 4 将人工智能提升到了一个全新的水平。它可以分析图像,甚至可以根据图像生成字幕。但这还不是全部;在此博客中,我们还将探讨 GPT 4 的功能、局限性以及它如何超越其上一代 GPT 3.5。


什么是 GPT 4?


图片描述

微软 OpenAI 正式推出了它的最新GPT作品——一个超越文本的大型多模态人工智能计算模型。2023 年 3 月 14 日,GPT 4 具备接收图像输入的能力。与其前身 GPT 3 和 GPT-3.5 不同,GPT 3 和 GPT-3.5 仅限于纯文本输入,GPT 4 为不再仅仅支持文本输入查询,他扩展了图片对话方式。


关于 GPT 4 的快速更新:



  • GPT 4 现在可以接受最长 25,000 个单词的超长文本输入

  • 可以智能通过 HTML 和 JavaScript 技术 ,将小型网站的手绘原型照片,转换为实际网站

  • GPT 4 现在允许用户上传图片并对其进行分析和描述

  • 能够管理比 GPT 3.5 复杂得多的指令

  • 可以在浏览器中编写整个视频游戏

  • 将作为 API 供开发人员构建应用程序和服务


GPT 4 有什么新内容以及与 GPT 3 有何不同?


GPT 4 现在可以识别图片了

图片描述


GPT 4 引入了重大改进,因为它可以理解多种信息模态,使其成为多模态语言模型。相比之下,其前身 GPT 3 和 ChatGPT 的 GPT-3.5 仅限于处理文本输入和输出,无法解释其他数据类型。但是,GPT 4 可以处理图像等视觉信息,并根据该信息生成相关工作,包括 GPT 4 识别图片中文字的能力。


此功能可能会让人联想到 Google Lens,它也可以使用图像来检索信息,但 GPT 4 在分析和理解视觉信息的能力方面超越了 Lens。


需要注意的是,处理图像的能力仍处于研究阶段,尚未面向公众开放使用,但很快就会开放。


类人类的学习和解决能力

OpenAI 报告称,除了其图像处理能力外,GPT 4 还在众多学术和专业基准测试中展示了与人类相当的性能。由于其广泛的常识和解决问题的能力,该语言模型在模拟律师考试考生中得分前 10%,并以惊人的准确性解决复杂问题,显示出非凡的能力。


GPT 4 的能力不仅限于回答与税收相关的问题或为多人安排会议;它还可以学习用户的创造性写作风格,以及其他任务。


GPT 4 更难被错误欺骗

ChatGPT 和 Bing 等生成模型容易受到重大缺陷的影响——它们偶尔会产生引起关注的提示,甚至更糟的是引起警报。


为了解决这些问题,OpenAI 广泛致力于改进 GPT 4,花费六个月的时间使用其“对抗性测试程序”和 ChatGPT 模型的经验教训来训练语言模型。结果,该公司取得了“在真实性、可操纵性和对护栏的遵守方面有史以来最好的结果”。


GPT 4 具有一次处理大量信息的能力

尽管接受了数十亿个参数和大量数据的训练,但大型语言模型 (LLM) 在对话过程中可以处理的信息量仍然有限。然而,GPT 4 有一个显着的优势。它可以处理多达 25,000 个单词的文本,可容纳扩展的交流、文档搜索和分析,甚至是长篇内容的创建。


与其前身 ChatGPT 相比,后者可以在失去对上下文的跟踪之前处理多达 8,000 个单词,GPT 4 可以在更长的对话中保持其准确性。此外,它可以分析长文档并生成全面的长格式内容,这在以前在 GPT 3.5 上更具挑战性。


GPT 4 的准确性有所提高

尽管 GPT 4 仍然存在局限性,并且可能会像其前辈一样出现推理错误,但 OpenAI 承认它已经取得了相当大的改进。特别是,GPT 4 显示出的幻觉明显少于以前的模型,并且在真实性评估上的得分比 GPT 3.5 高 40%。因此,操纵 GPT 4 输出错误信息,(例如脏话和错误信息)将更具挑战性和难度。


GPT 4 在理解非英语语言方面得到改进用

英语以外的语言训练大型语言模型 (LLM) 可能具有挑战性,因为大多数机器学习数据和在线信息都是英文的。然而,GPT 4 在多语言能力方面取得了显着进步,OpenAI 的测试证明了这一点。它准确地回答了 26 种语言的数千个多项选择题,超过了 GPT 3.5 和其他 LLM。尽管它以 85.5% 的准确率在英语中表现最好,但在泰卢固语等印度语言中也表现出令人印象深刻的准确率,达到 71.4% 的准确率。


这一进步意味着用户可以期望使用基于 GPT 4 的聊天机器人以其母语生成更清晰、更准确的输出。


目前可以试用 GPT-4 吗?

GPT-4 已经被纳入 Duolingo、Stripe 和 Khan Academy 等产品中。虽然它不是免费公开提供的,但可以通过每月 20 美元订阅 ChatGPT Plus 来立即访问。ChatGPT 的免费版本仍在 GPT-3.5 上运行。


底线


总之,OpenAI 发布 GPT-4 标志着人工智能的一个重要里程碑。GPT-4 是一种高度先进的语言模型,可以处理和分析图像,生成准确且富有创意的输出,并同时处理更大量的信息。它的功能包括以惊人的准确性解决复杂问题、学习用户的写作风格以及在浏览器中编写视频游戏。


此外,GPT-4 比其前身 GPT-3.5 更难欺骗且更准确。总的来说,GPT-4 是一个游戏规则改变者,有望为开发人员和研究人员开辟新的可能性,我们迫不及待地想看看它将如何改变 AI 格局。


毫无疑问,它拥有类人的开发能力,会写代码,但在创造力和智慧上,无人能敌!


常见问题


Chatgpt-4 发布日期是什么时候?

Chatgpt-4 发布日期为 2023 年 3 月 14 日,仅供付费用户使用。


我如何访问 GPT-4?

转到chat.openai.com/,您需要获得付费版本才能访问 GPT-4。


GPT 4 代表什么?

GPT 完整形式是 Generative Pre-trained Transformer。


作者:非优秀程序员
来源:juejin.cn/post/7217773631370657829
收起阅读 »

如何使用 ChatGPT 3.5 API 创建自己的智能应用?

前言 OPEN AI 的开放 API 可以说是前端开发者的福利,我们只需要调用 api,就可以创建一个智能应用, 在上一篇文章中,我们介绍了《基于 ChatGPT API 的划词翻译浏览器脚本实现》,使用的模型是 text-davinci-003 也就是文本补...
继续阅读 »

前言


OPEN AI 的开放 API 可以说是前端开发者的福利,我们只需要调用 api,就可以创建一个智能应用,
在上一篇文章中,我们介绍了《基于 ChatGPT API 的划词翻译浏览器脚本实现》,使用的模型是 text-davinci-003 也就是文本补全模型,今天我们将使用 gpt-3.5-turbo 模型来实现一个场景化的智能应用。


OPEN AI API 介绍


自动完成 API


POST https://api.openai.com/v1/completions


以下是自动完成 API,有了 OPENAI_API_KEY 之后,我们只需要传入 prompt


const OPENAI_API_KEY = "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";

const prompt = `Translate this into Chinese:
hello world`
;
const res = await fetch("https://api.openai.com/v1/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
authorization: `Bearer ${OPENAI_API_KEY}`,
},
body: JSON.stringify({
model: "text-davinci-003",
prompt,
max_tokens: 1000,
temperature: 0,
}),
});
const response = await res.json();

const result = response.choices[0].text;

对话 API


POST https://api.openai.com/v1/chat/completions


由于自动补全 API 只能传入一个参数 prompt,AI 不能够理解上下文的场景,因此 gpt-3.5+ API 是为了让 AI 能够支持基于一组对话来返回数据。


在 Node.js 中可以使用以下代码来实现。


const OPENAI_API_KEY = "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";

const prompt = [...];
const res = await fetch("https://api.openai.com/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
authorization: `Bearer ${OPENAI_API_KEY}`,
},
body: JSON.stringify({
model: "gpt-3.5-turbo",
messages,
temperature: 0.7,
top_p: 1,
frequency_penalty: 0,
presence_penalty: 0,
max_tokens: 500
}),
});
const response = await res.json();

const result = response.choices[0].message

以下是官网给出 messages 例子


const messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]


  • 每一个 message 由 rolecontent 组成。

  • role 只能是 3 个值, systemuserassistant

  • systemassistant 是可选的,user 是必须的。


官方提供了 playground 帮助我们创建 messages 信息。


openai playground


assistant 也就是其中一次返回的数据信息。
发送的 messages 如下:


const messages=[
{
"role": "system",
"content": "你是一名精通 typescript 的前端工程师,不需要解释"
},
{
"role": "user",
"content": "Convert the following JSON to typescript interface without explanation\n\n{\n \"name\": \"Allen\",\n \"age\": 18\n}"
}
]

比如使用上面的 messages 信息,我们就可以根据它,来创建一个 Tailwind css 代码生成器。


openai playground 拷贝 fetch


通过右键可以直接拷贝为 Node.js fetch 代码。


再来实现一个 JSON 转 Typescript 的例子


openai playground JSON 转 Typescript


那么我们通过以上截图的 messages,就可以创建一个 JSON 转 Typescript 生成器。


在 Next.js 使用


接下来,我们就在 Next.js 中创建一个全栈应用。


那为什么选择使用 Next.JS 呢?



  1. 它是一个全栈框架,既可以写接口也可以使用 react 写前端;

  2. 可以很轻松部署到 verel, 让我们可以直接访问 OPENAI 的接口,摆脱网络限制。


这里我选择使用大圣老师的email-helper模板


创建github仓库


点击 GitHub 选择 Use this Template, 创建一个自己的仓库


目录结构


这个项目很简单,在 pages 目录下 api/generate.ts 用于代理请求接口。


index.tsx 也就是我们的主界面,一个按钮,一个请求,没有其他复杂逻辑。


接下来我们就根据它来创建一个智能的Tailwind CSS 代码生成器


1、首先将 messages 改成以上截图中的 message


2、然后将需要生成的变量存到 state 中,我们就可以实现如下界面


Tailwind CSS 代码生成器界面


点击生成代码就可以 让 ai 帮我们写代码了。


这个界面,有些单调,可以在这个页面上列一些常用的组件,那么也可以直接使用 chatGPT 来生成。


chatGPT 生成组件


将 GPT 回答直接转换成 JSON 数据


chatGPT 转 JSON 数据


将数据渲染到页面中,就可以生成快捷标签了


实现效果


接下来,再将 Tailwind css 的颜色,作为我们的变量,同样使用 GPT 来生成数据


生成 Tailwind 颜色


用同样的方式,转化成 JSON,拷贝到我们的代码中。


Tailwind CSS 代码生成器效果


最后一步,我们需要实现一个预览效果,这样的话,就可以所见即所得,根据效果,直接拷贝想要的代码。



小结


本文介绍了 openai 的 api 使用方法,以及如何使用 openai 的 playground 生成需要的 messages 信息。并且通过一个 Next.js 实战例子,结合 ChatGPT 开发了一个 Tailwind CSS 代码生成器。


最后


贴一下文本的代码仓库和预览地址


代码仓库:github.com/maqi1520/op…


预览地址:openai.maqib.cn/


如果对你有帮助,记得给个三连,感谢你的阅读。





作者:狂奔滴小马
来源:juejin.cn/post/7217820487203192892
收起阅读 »

程序员“摸鱼”神器,GitHub Copilot“凭本事”完全免费!!

上周Microsoft 365 Copilot的发布会上几段演示视频让朋友圈沸腾了一整天,颠覆,失业,工业革命刷屏,普遍的焦虑中有工作中重度依赖office的朋友表示如果功能都是真的,那么确实可以节约出很多时间摸鱼,但是立马就有人提醒他或许老板觉得可以节约掉一...
继续阅读 »

上周Microsoft 365 Copilot的发布会上几段演示视频让朋友圈沸腾了一整天,颠覆,失业,工业革命刷屏,普遍的焦虑中有工作中重度依赖office的朋友表示如果功能都是真的,那么确实可以节约出很多时间摸鱼,但是立马就有人提醒他或许老板觉得可以节约掉一半的人省下成本换跑车。


各类信息流中也夹杂着对文心一言的冷嘲热讽,熊熊烈火,车水马龙的梗证实了文心一言确实支持多模态,对中文也有更深的理解...但是不多(纯调侃,本人看好文心的未来)。


图片


图片


我也看了微软发布会的录播和文心一言发布会的直播,发布会上二者的演示内容的形式都是播放视频(为什么只有百度因为这点被骂)。从产品的一系列命名可以看出,微软还是希望以人为中心产出内容,AI只是一个副机长,协助主角更高效地产出,从而让机长把时间留给更有价值,更需要脑力的事情上。 李彦宏在发布的全过程中其实也没有自吹自擂,甚至反复承认目前的效果一般,内部体验的过程中还有不少瑕疵,同时也花了很多口舌强调文心一言 【未来】在中文场景中表现会好于ChatGPT。


对比下来,同样的PPT发布,二者都宣称自己不是简单的GPT套壳,而是结合了自身的优势,借力GPT深度整合以及增强了自家产品。


我看到Copilot这个词,还是下意识地先想起了一些跟程序员有关的事情。


其实早在2021年6月份的时候,GitHub(已被微软收购)就发布了GitHub Copilot,对,也叫Copilot,但是一直没有引起很广泛的关注,原因我猜测有以下几点




  • 程序员圈子的事情,没有出圈




  • 彼时LLM,GPT等概念还没有火,没有获得广泛关注




  • 普遍觉得AI真正在编程这件事上取代人还言之过早




那么站在发布接近2年之后的今天,GitHub Copilot可以做些什么呢?


从功能性的角度出发,其实官网最显眼的位置已经概括得非常准确了


图片


Github Copilot基于openAI预训练的模型,在几十亿行的公开代码的基础上进行了训练,可以将自然语言描述的逻辑转换为代码建议,目前已经支持几十种编程语言。通过这个“助手”,全世界的开发者都可以从样版代码,重复工作等dirtywork中解放出来,把精力聚焦在更重要的事情上——构建伟大的软件!!


GO语言的效果如下:


图片


TS的效果如下:


图片


在用户的主观投票上,可以看出大家比较认可Github Copilot带来的生产力提升,但是有一说一,这个是主观的评价,并无法知道从客观的角度上,老板主观上是不是觉得你提效了(当然你可以只为了自己开心),嘻嘻。


图片


Github Copilot带来的另一个重大的意义——有了这个副机长的帮助,在面对自己不熟悉的语言或者平台编程的时候,你会更有信心。不会在一些低级错误上面拉扯很久,减少在基础的问题上的自信受挫。


在当前主流的IDE或者编辑器上都可以找到插件,目前每一个GitHub的普通用户都可以获得60天的试用期。


图片


具体的使用步骤,这里以VSCode为例:


step1: 在应用商店搜索Github Copilot,点击安装


图片


step2: 安装完成之后,会弹出提示框跳转到Github登录


图片


step3: 登录完成之后,会叫你充钱。😊


图片


60天试用的标题非常醒目!!


最底下还有两行文字说明了可以免费试用的人群,这里我给大家放大看看:


图片


如果是你GitHub上面最流行的那部分开源项目的贡献者的话或者是认证的过的学生(有苹果教育优惠内味儿了!!),可以免费使用Github Copilot。至于“最流行的开源项目”包含哪些?我也没有找到这样的一个名单...不过如果你符合要求的话,点开订阅页面的时候,直接就可以看到免费订阅的操作俺妞。


你看看,我标题是不是没有乱取?!!是不是真有人可以完全免费?!!!(逃)


我很有B数,乖乖准备充钱了。支持信用卡或者贝宝,...反正我最后没充钱成功,有谁成功了留言告诉我哦。😊


图片


如果在VSCode的应用商店中搜索Github Copilot Labs插件的话,你就会发现一款插件的插件,本质上是将一些常用的Prompts封装成了按钮和可视化的操作,比如:


解析代码(帮你看懂一块屎山代码到底做了啥)


图片


实现语言转换


图片


代码刷子功能


可以增强代码可读性,添加类型,智能修复可能的bug,比code Runner更优秀的即时代码调试,优化冗余代码.....


代码刷子在日常编码中应该是非常实用了,可以有效提升代码质量,建议大家充钱试试。


图片


测试用例生成


这个功能可以说是非常非常非常实用了,平时写单元测试其实非常耗时,而且有不少样版代码,这块工作有人代劳的话,真的是可以省出很多时间(摸鱼)!!**

**


图片


你可能会问了,介绍了这么多功能,怎么不点按钮让大伙儿看看效果?!


肯定不是缺钱,而是真的充钱失败了,可能我的visa卡有问题!


好用归好用,如果你既没有免费的资格,又没有充钱,且还安装了插件的话,插件会非常烦人地弹窗提醒你没权限,连不上(催你充钱)!有点讨厌。


图片


图片


最后,不得不提的是这个工具的局限性,ChatGPT(基于3.5)告诉了我以下几点帮大家避雷。


图片


祝福大家充完钱之后立马变强!!


如果没有充钱,也变强了,请留言告诉我!!


如果没有充钱,也没有变强,请留言告诉我!!


如果充钱了,也没有变强,请留言告诉我!!


如果没有充钱,也没有变强,请留言告诉我!!


图片


作者:方始终掘金分终
链接:https://juejin.cn/post/7212561868137070652
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

众人围剿,GPT-5招惹了谁

GPT-4 火爆全球,引发了人工智能大浪潮。过去的一个月,OpenAI、微软、谷歌加上百度不断释放王炸,所有人都相信,AI 的就是未来的生产力。俗话说,人红是非多,树未大已招风,这不,反对 AI 继续前进的声音就来了。 千人呼吁暂停AI训练 3月29日,马斯克...
继续阅读 »



GPT-4 火爆全球,引发了人工智能大浪潮。过去的一个月,OpenAI、微软、谷歌加上百度不断释放王炸,所有人都相信,AI 的就是未来的生产力。俗话说,人红是非多,树未大已招风,这不,反对 AI 继续前进的声音就来了。


千人呼吁暂停AI训练


3月29日,马斯克、苹果联合创始人 Steve Wozniak、Stability AI创始人 Emad Mostaque 等上千名科技大佬和AI专家签署公开信,呼吁暂停训练比 GPT-4 更强大的 AI 系统,为期6个月。


image.png
根据公开信的表示,在这 6 个月内,全社会需要完成这些事:



  • 所有 AI 实验室和独立学者都应该合力开发一套共享安全协议,用于高级 AI 的设计和开发

  • 协议完成后,应该由独立的外部专家进行严格的审计和监督

  • 这些协议必须确保这些 AI 系统毋庸置疑的安全

  • 如果不能迅速暂停,就应该让政府介入。


所有的人工智能研究和开发,都应该重新聚焦于这一点——让当如今最强大的 SOTA 模型更加准确、安全、可解释、透明、稳健、对齐,值得人类信赖,对人类忠诚。


代表人物分析


这次呼吁大佬众多,最具代表性的无疑是马斯克和 Stability AI 创始人 Emad Mostaque。


马斯克是 OpenAI 公司的联合创始人之一,可谓是原始股东,但他在2018年离开了 OpenAI 的董事会。马斯克一直对微软和比尔盖茨持批评意见,对于OpenAI也是如此,此前曾表示“ OpenAI 最初是作为一家开源的非营利性公司而创建的,为了抗衡谷歌,但现在它已经成一家闭源的营利性公司,由微软有效控制……这完全不是我的本意。”


言外之意,OpenAI 不应该成为一个赚钱的公司,应该开源,让所有人看到核心代码和核心算法。如果是这样,应该建议特斯拉免费开源所有自动驾驶技术源码,马斯克对这个问题的回复是“如果其他汽车制造商想要获得授权并在他们的汽车上使用特斯拉的自动驾驶技术,这将是非常酷的一件事情,但是考虑到该系统开发成本极高,特斯拉将会收取一定的费用。”


划重点就是自动驾驶技术成本高,所以要收费。ChatGPT 的训练成本高,惨遭无视。


另一位代表人物 Emad Mostaque 是 AIGC 独角兽企业 Stability AI 的创始人,号称“要让10亿人用上开源大模型”。Stability AI 最牛的项目是人工智能文本转图像模型 Stable Diffusion ,如今,这个项目深陷侵权旋涡。在今年一月份,全球知名图片提供商华盖创意(Getty Images)和艺术家萨拉·安德森(Sarah Andersen), 凯利·麦克南(Kelly McKernan)和卡拉·奥尔蒂斯(Karla Ortiz)起诉了Stability AI,认为Stability AI在未经许可或考虑的情况下,使用他人的知识产权,为自己的经济利益服务。


下面这幅图中,左边是知名油画家Erin Hanson的作品 "Crystalline Maples",右边是CNN记者通过 Stable Diffusion 生成的结果。


image.png


以我们受过九年义务教育的眼光来看,这两幅图风格、色彩,线条几乎一样,说是出自同一人之手也不为过。


在自己公司严重侵犯他人知识产权的情况下,去说另一家公司影响了人类安全和社会稳定,不过是五十步笑百步了。


反对原因分析


信息安全


信息安全是过去三个月最容易攻击ChatGPT的理由,联名信提出了一条质询,我们是否应该让机器用宣传和谎言充斥我们的信息渠道?综合起来的观点是,不良行为者可能会故意创建带有事实错误的内容,作为战略影响力活动的一部分,传播错误信息、虚假信息和彻头彻尾的谎言,这可能会对社会和个人造成危害。将这个观点强加于ChatGPT上,是避重就轻之举。


虚假信息,有什么比搜索引擎更多吗?虚假广告,违禁视频,歧视言论等数不胜数,上当受骗的人同样数不胜数。相较而言,ChatGPT的表现已经非常遵守道德和法律了。


错误信息,对于企业而言,文本信息会经过员工的二次编辑和确认,才会发布;错误的代码会经过程序员的修改和验证,才会用于产品中。只要责任制明确,风险是可控的。


人身安全


这次事件,被大家提起最多一条理由就是比GPT-4更先进AI系统将威胁人类安全,AI将杀死人类。若说威胁安全,智能驾驶和机器人更具有天然不安全属性。GPT-5终究是活在互联网世界中,任他搅的天翻地覆,也不会直接对人类进行物理攻击。智能驾驶如果失去控制,将导致车毁人亡,交通瘫痪。未来给机器人装上武器,就是最强特种兵。


不可否认的是,AI未来确实存在风险,但我们不能饮鸩止渴,因为未来的风险而停止新技术的前进。人工智能炒作了这么多年,直到ChatGPT才真正点燃了火炬,我们不应该在刚刚见到光明时,就亲手熄灭了它,技术推进和安全协议制定完全可以同步进行。


失业


根据高盛研究报告,全球预计将有3亿个工作岗位被生成式AI取代。目前欧美约有三分之二的工作岗位都在某种程度上受到AI自动化趋势的影响,而多达四分之一的当前岗位有可能最终被完全取代。该研究计算出美国63%的工作暴露在“AI影响范围”中,其中7%的工作有一半以上的流程可以由AI自动化完成,这使他们很容易马上被人工智能取代。


对于国内来说,目前感觉还好,可能主要在图像创作领域感受到寒意比较强,上周看到有博主表示,公司一次性裁了三个原画师。


b2f5b5034fac9cc366bff4dcc1815a32.jpeg
当新技术出现时,初期给社会带来的冲击会让很多人感到不适应,因为不适应,所以会本能的去排斥它。比如曾经的克隆,刚出现时引起了大家恐慌,认为会制造另一个自己,同时带来繁衍上的伦理问题。再比如前几年新能源起步时,大家纷纷嘲讽新能源车,认为它是来收智商税的,时至今日,新能源车已经是大势所趋。


现在的失业主要是国际经济形势带来的,而不是刚刚发展的AI系统带来的。ChatGPT只是一个工具,若说替代,机器人替换下来的劳动人口更多,但没有千名大佬站出来说要暂停机器人技术的发展。


利益


世上没有无缘无故的爱,也没有无缘无故的恨,天下熙熙,皆为利来,天下攘攘,皆为利往,所谓者,都是为了自身利益。呼吁暂停训练比 GPT-4 更强大的 AI 系统,目前只有OpenAI有能力训练比GPT-4更强大的系统GPT-5。根据预测,作为过渡的 GPT-4.5 模型将在 2023 年 9 月或 10 月推出,刚好就是联名信提出的暂停6个月。因此,所谓的的暂停,完全就是针对OpenAI的GPT-5。


OpenAI和微软在三月份的一系列进展让其他的公司产生了深深的危机感,这次的专家有的是自己拥有AI公司,有的是自己在AI领域深耕多年,通常来说,大多数人已经成为了利益团体的代言人。既生瑜何生亮,我没有的你也不能有,我有了,但你一枝独秀,那就枪打出头鸟。只有减缓OpenAI的发展速度,才能给自己追赶的机会。


正如前谷歌大脑成员吴恩达所说,我们该做的,应该是在AI创造的巨大价值与现实风险之间,取得一个平衡。把“让AI取得超越GPT-4的进展”暂停6个月,这个想法很糟糕。


总结


AI不是洪水猛兽,暂停GPT-5训练的做法解决不了安全问题,只有技术演进和安全协议制定同步进行,才能实现科技繁荣。6个月后的GPT-4.5依然只是一个工具,不存在威胁人类安全的可能,之后需要更多训练时间的GPT-5同样只是一个工具,这段时间,足够制定联名信期望的安全协议了。


所以,当务之急不是暂停训练比 GPT-4 更强大的 AI 系统,而是立即推动安全协议条款的研究。


作者:柒号华仔
来源:juejin.cn/post/7216412604800450621
收起阅读 »

8 款AI 绘画生成器:从文本创建 AI 艺术图像

人工智能正在影响各行各业,近年来它对创意产业的影响越来越大。由于AI绘画生成器的可操作性,许多人有机会用自己的想法进行艺术创作——即使他们没有接受过系统的专业艺术教育。 最先进的人工智能绘画生成器可能会改变我们未来创作艺术的方式。使用 AI 绘画生成软件,您可...
继续阅读 »

人工智能正在影响各行各业,近年来它对创意产业的影响越来越大。由于AI绘画生成器的可操作性,许多人有机会用自己的想法进行艺术创作——即使他们没有接受过系统的专业艺术教育。


最先进的人工智能绘画生成器可能会改变我们未来创作艺术的方式。使用 AI 绘画生成软件,您可以生成肖像、风景和抽象艺术。您甚至可以模仿著名艺术家的风格。


简单说,您可以使用在线 AI 绘画生成器。通过使用在线AI图像生成器,输入文本,就可获得根据您描述而来的逼真的样式图像。


市场上出现了一系列AI绘画生成器,可以尝试一下。本文是对市场上推荐的一些流行的AI绘画生成器的全面回顾。请继续阅读。


1. 福托尔(Fotor)


Fotor,一站式多合一在线照片编辑器,最近发布了一个 精湛的AI图像生成器 。你只需要把你的想法输入到生成器中,然后你可以看到它在几秒钟内变成一个图像。Fotor有多种图像样式供您选择,例如随机,3D,动漫等。


Fotor的AI文本到艺术生成器最显着的特点是它非常适合初学者使用,只需填写文本并选择要生成图像的效果即可。如果您对照片不满意,可以多次重复生成,以确保获得最满意的结果。每个帐户每天都有一个积分可供您免费使用高质量的 AI 艺术


主要特点:



  • 每天生成 10 张免费图片。

  • 9种灯光效果供您选择。

  • 9种不同的转换风格供您选择。

  • 文本到图像和图像到图像的转换模式。

  • 6种作品可供选择。


Fotor AI 绘画生成器


2. 达尔-E 2(DALL-E 2)


AI绘画生成器达勒2


公众已知的最受欢迎的AI绘画生成器是 Dall-E-2图像生成器 ,由OpenAI开发的AI图像生成器。只需几分钟,您就可以使用 AI 技术创建高度逼真的图像。该工具可用于创建插图、设计产品和为业务产生新想法。Dall-E-2 是一个易于使用的界面,任何人都可以使用 AI 创建高质量的图像。DALL-E 2 支持向生成的图像添加详细信息或对其进行其他修改。


主要特点:



  • 高度逼真的图像。

  • 创建插图。

  • 设计产品。

  • 可定制的多层图像。

  • 编辑和修饰功能。

  • 免费试用(尽管您必须通过等候名单获得邀请)。


3. 火锅(Hotpot ai)--支持api


火锅AI绘画生成器


火锅 AI 可帮助您创建令人惊叹的图形、图像和文本。它激发创造力并自动化工作,而易于编辑的模板使任何人都可以创建设备模型、社交媒体帖子、营销图像、应用程序图标和其他工作图形。


火锅AI的文本到图像AI绘画生成器使任何人都可以创建有吸引力的绘画,插图和图像。描述你想要什么,并观看火锅将其变为现实。


付费创作在 3-10 秒内完成。免费请求需要 1-15 分钟,具体取决于流量。付费用户可以获得更快的服务器、更好的图像、商业用途,并避免每日限制。该系统为不太富裕的人免费提供补贴。您还可以免费申请积分以减少等待时间。


主要特点:



  • 无需代码即可创建 API/批量。

  • 快速照片生成(付费)。

  • 每日免费照片生成积分可用。


4. 夜间咖啡厅(NightCafe)


爱画生成器夜咖啡厅


夜咖啡馆是著名的人工智能艺术生成器之一。它以比其他 AI 绘画生成器具有更多的算法和选项而闻名,并且新手很容易上手。您需要做的就是前往他们的网站并根据您的想象力输入文本提示。然后,您需要等待最多 30 秒,一件艺术品才会出现在您面前。Nightcafe有自己的一套积分系统,您可以通过参加各种活动来获得积分,然后拥有可以免费生成图像的次数。此外,您还可以购买积分。


主要特点:



  • 信用赚取系统。

  • 视频生成工具。

  • 有用的社交功能。

  • 获得您生成的艺术品的所有权。

  • 比其他生成器更多的算法


5. 深度人工智能(DeepAI)


深度AI绘画生成器


自 2016 年以来,DeepAI 是首批通过开源软件生成人工智能图像的 AI 绘画生成器之一。


DeepAI允许您创建任意数量的图像,并且每个图像都是唯一的。它是高度可定制的,允许您更改细节、颜色、纹理等的数量。如果您输入插图,DeepAI 可以立即生成与分辨率无关的矢量图像。


这是一个免费的在线AI图像生成器,这意味着您无需下载或进行其他设置。DeepAI还有一个API,开发人员可以使用它来连接到另一个软件项目。


主要特点:



  • 始终免费使用。

  • 为每个提示生成四个输出图像。

  • 开源软件。

  • 更改每个图像的各种细节。

  • 使用卡通 GAN 创建卡通


6. 深度梦境生成器(Deep Dream Generator)


深梦生成器


深度梦境生成器 是另一种流行的 AI 绘画生成器,支持在线人工智能来创建逼真的图像。Deep Dream依赖于用数百万张图像训练的神经网络。它易于使用,只需要您上传图像,然后根据原始图像自动生成新图像,您还可以选择不同地方或时期的绘画风格。


该工具允许您选择一个类别,例如动物或风景,然后基于它创建逼真的图像。最重要的是,Deep Dream允许您从三种样式中进行选择。深风格,薄风格或深梦。选择样式后,可以预览图像。


主要特点:



  • 训练神经网络的数百万张图像。

  • 不同的绘画风格。

  • 图像的分类。

  • 文本到图像,图像到图像。


7. 克雷永(Craiyon)


克雷永爱绘画生成器


Craiyon,以前称为DALL-E mini,是一种人工智能模型,可以从任何文本提示中绘制图像。只需输入文本描述,它将根据您输入的文本生成 9 个不同的图像。该模型需要大量计算,因此Craiyon依靠广告和捐赠来支付其服务器的费用。只要您尊重使用条款,您就可以随意使用它们供个人使用,无论您是想与朋友分享还是将它们打印在 T 恤上。
主要特点:



  • 易于使用。

  • 无需注册或注册。

  • 免费生成无限的AI图像。

  • 一次生成 9 张图像,以有趣和创造性的方式


8. 星空人工智能(StarryAI)


星空AI绘画生成器


星空 AI 是一个 AI 绘画生成器,专注于将您的想法转化为 NFT 艺术。与大多数其他AI艺术生成器类似,Starry AI赋予您生成图像的所有权。这意味着您可以在任何地方使用图像,用于个人或商业用途。


Starry AI最好的部分是它是完全免费的。它是最好的免费 AI NFT 艺术生成器之一。它不需要用户的任何输入。它可以使用机器学习算法处理图像。该技术在不断改进,但已经有令人难以置信的使用该应用程序创作的艺术示例。


主要特点:



  • 自动图像生成器。

  • 无需用户输入。

  • 免费的 NFT 生成器。

  • 文本到图像


结论


这是人工智能的时期。使用 AI 图像生成器的强大功能自己创作令人惊叹的艺术品。自动将您的想象力变成绘画。AI图像生成器是未来。


在本文中,我们简要介绍了市场上顶级的AI绘画生成器,并推荐了八种最好的AI绘画生成器供您尝试。希望本指南对您有所帮助,谢谢!





作者:非优秀程序员
来源:juejin.cn/post/7214164344290951205
收起阅读 »

震惊!这个基于GPT-4的代码编辑器让我感到恐慌!

一 首先,我不是标题党。我确确实实受到了震撼。 其次,我今天要写的也不是在chatGPT里面叫AI写什么冒泡排序,鸡兔同笼等网上都已有大量代码示例的问题。 我知道chatGPT已经火出圈了,本人也试验过叫AI写一些简单的程序,太简单的基本上都能写对,稍微复杂点...
继续阅读 »


首先,我不是标题党。我确确实实受到了震撼。


其次,我今天要写的也不是在chatGPT里面叫AI写什么冒泡排序,鸡兔同笼等网上都已有大量代码示例的问题。


我知道chatGPT已经火出圈了,本人也试验过叫AI写一些简单的程序,太简单的基本上都能写对,稍微复杂点的也能介绍个大致思路,代码也能给出,但是很多都无法正常跑起来,也有一些逻辑性的错误。最多也只能用来参考下。


虽然我觉得目前AI能理解一些人类的意图,能给出大致的实现代码,但是还无法代替程序员去写一些稍微复杂点的算法程序。


直到我今天在网上看到这样一款AI写程序的软件:Cursor


官网长这样:


1.png



查了下该软件的特点以及背后的公司,问了new bing:


2.png


好家伙,原来是openAI这个公司出的。


但我又一想,不就是接入了chatGPT的API么,包装成一个IDE的样子。关键是chatGPT的代码功力我领教过,其实问题挺多的,有时候会有很基础的逻辑错误问题,完全不能拿来直接跑。


但是看在是openAI公司出品的份上,我还是下了这个软件,其实我并不报希望。


软件界面长这样,很像一个IDE:


3.png


简单问了一些猜数字,快速排序的问题。全对,直接复制到IDEA里就能直接跑。比如上图就是我问的一个给出猜数字游戏代码的问题。


其实这种程度chatGPT也能做到。但是很明显我的直观感受是cursor给出的代码的速度比chatGPT快太多了,基本是一秒十几行的速度。


我决定上点强度。



我于是不再问一些网上已有大量示例的经典问题,提了一个swing的需求,要求他帮我写一个swing界面,具体描述如下:



用swing写一个秒表程序,请在界面上画一个圆形的红色的秒表图形,图形上有2根针,一根是分针,一根是秒针,分针比秒针要短,初始都指向0分0秒。在秒表下方还有2个按钮,一个是开始,一个是暂停,当点击开始按钮的时候,秒表时钟开始走动,当点击暂停时,秒表停止走动。暂停后再点击开始,会继续走动。



输入进去,然后AI几乎没思考就开始写了:


4.gif


几秒钟就写完了,好像乍看之下还挺像那么回事,因为我看到他定义了颜色,画了线。我复制到IDEA里面一运行,竟然真的可以运行起来,效果如下:


5.gif


这个有点出乎我的意料,整体除了按钮位置有点不对以外,其他功能和我描述完全正确。


接着加大难度,我给他出了一道在swing界面文件对比的题:



请用swing写一个程序,图形界面顶部上有3个按钮,其中2个分别支持上传2个TXT文件,还有一个比较按钮,点击按钮,则会去比较这2个文件中内容的不同之处,如果完全一致,则弹出一个提示框表明2个文件内容一致。如果不一样,则在下方图形界面(和按钮不在同一行)分别显示这2个文件的内容,在文件内容里面用黄色下标箭头在内容不一致的地方打上标记



想解释下,为什么我一直给他出swing的题,因为swing有界面,好验证啊。


依然是秒出代码,大家看动图:


6.gif


程序明显比之前长很多,中间我输入了2次继续。总体挺丝滑的。复制程序到IDEA里面运行:


7.gif


这下彻底震惊到我了,卧槽,核心功能算是全部实现了。但也有瑕疵,我要求的是用黄色箭头把不一样的地方作标记,他则是把不一样的内容用文本的形式列了出来。


GPT-4写程序难道那么厉害了么,只要描述一小段话,就能写出一个小demo程序来。而且还可以直接运行。


我于是把相同的描述贴给了chatGPT,虽然chatGPT也给出了代码,但是运行出来是完全不对的。


这就说明,cursor不仅仅是个套壳软件。它是真正基于代码的方式进行训练的。



除了swing,普通的java多线程并发业务程序能写么,我于是又问了一个常见的业务问题:电商秒杀模拟程序。描述如下:



写一段程序,模拟下以下业务:
举办一个秒杀活动,总共有2个商品,商品A和商品B,各有50件。需要定义出商品的类。用线程模拟1w个人同时进来抢购,1w个人分别用ID1,ID2,ID3,以此类推来表示。
每个人每个商品只能最多抢2件。2个商品均没抢到的顾客信息不用打印,只打印出抢到了商品的顾客信息,格式举例如下:
顾客[ID1]抢到了[商品A]2件,[商品B]1件



我相信我描述的已经挺清楚了,也说明了要进行多线程,顾客ID命名给了一个推论的形式描述,以及打印信息只给了一个范例描述,看看AI能否学样去打印出符合我的结果


操作过程和上面一样,我就不贴动图了。贴一个图片看看:


8.png


运行出来的打印结果为:


9.png


这下我又要卧槽了,结果是100%完全正确的!我又仔细看了AI写多线程并发,发现也是完全正确的。



其实我测试到这里的时候,我心里已经开始焦虑了,没错,目前cursor也只能写一些单一算法的程序,但是正确率和理解力已经让我吃惊了,从chatGPT横空出世到GPT-4这才几个月啊,就已经这么强了。是不是再过几年,我们就要失业了,是不是就再也不需要程序员了?产品经理只要把详细的描述贴给AI,AI半小时吊打一个技术团队一个月的工作量。


细思极恐。


最后我把cursor的官网地址贴一下,大家可以去下载体验:


https://www.cursor.so/

作者:铂赛东🐶
链接:https://juejin.cn/post/7213994652486910007
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

白嫖谷歌搭建个人AI绘画(stable-diffusion),A卡救星

💡 最近的AI绘画大火,满心欢喜的准备体验一下,奈何网上大多数网站都是要收费,想着本地搭建一波,结果发现自己是AMD,但是多数开源的都不支持AMD,幸好在B站找到了大佬白嫖教程,这里就小记一下自己白嫖谷歌计算资源,自己生成AI绘图的教程 前置条件:可以访问谷歌...
继续阅读 »

💡 最近的AI绘画大火,满心欢喜的准备体验一下,奈何网上大多数网站都是要收费,想着本地搭建一波,结果发现自己是AMD,但是多数开源的都不支持AMD,幸好在B站找到了大佬白嫖教程,这里就小记一下自己白嫖谷歌计算资源,自己生成AI绘图的教程


前置条件:可以访问谷歌,有谷歌账号,Github



操作步骤:



1.打开Github项目




  1. 项目地址:github.com/camenduru/s…

  2. 分支选择drive





2.项目安装到谷歌的云端硬盘


2.1 按住ctrl点击一号位置,新窗口打开第一个链接,出现一个新的页面 2.2 第一步:复制到云端硬盘,第二步点击运行,第三步出现这个说明成功,点击期间会出现谷歌的弹窗,直接确定就可以了。 谷歌的云端硬盘,每个用户有15G的免费空间,这个项目大概12G,剩下的空间可以装一写model


3.运行stable-diffusion-webui


3.1 回到Github页面,继续按住ctrl点击二号位置,会打开一个新的连接,和第一次一样,保存-运行 3.2 运行需要一段时间,过一会儿,我们就会看见给出了两个连接,选择最后一个 3.3 打开连接,可以看到AI绘画熟悉的页面,默认是有个model的,不过它生成的图不怎么样,可以去换个model


4.更换model


4.1 model网址:civitai.com/ 4.2 这个复制model链接 4.3 添加model,回到Github页面,继续按住ctrl点击三号位置,将刚才复制的链接放到第一行,第二行是model的名字。复制完后,直接运行,等待就可以了


5.查看model,下载完成后model存放位置




6.生成成果


适合大家随意的玩一玩儿,祝大家玩儿的愉快。


作者:是阿乔呀
链接:https://juejin.cn/post/7213944791172055095
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

屡次wx.getLocation申请被拒,让ChatGPT帮我编写申请理由后立马通过

微信小程序完成某些需求功能需要获取精准经纬度,需要微信小程序后台-开发管理-接口设置,申请“获取当前的地理位置、速度(wx.getLocation)”,一直审核不通过,有的人甚至提交了10多次都没有通过,如果你没有掌握方法,及时申请几个月还是一样不给通过。 包...
继续阅读 »

微信小程序完成某些需求功能需要获取精准经纬度,需要微信小程序后台-开发管理-接口设置,申请“获取当前的地理位置、速度(wx.getLocation)”,一直审核不通过,有的人甚至提交了10多次都没有通过,如果你没有掌握方法,及时申请几个月还是一样不给通过。


包括本人也是申请数次未通过,思考是否是理由不够充分,借助ChatGPT帮助我丰富申请理由,我用ChatGPT的回答来申请,立马审核通过。以下是模拟对ChatGPT的提问和回复。
1679989283893.jpg


提问


这是一个社区团购的微信小程序,由于团购服务点功能,需要精准定位到最近的服务点,因此需要wx.getLocation接口申请。请你基于我的需求,编写一个充分的申请原因,并包含操作步骤说明。


ChatGP回答


申请原因:


该社区团购微信小程序需要使用wx.getLocation接口获取用户的地理位置信息,以便精准定位用户所在地区,并显示最近的服务点。服务点根据用户所在地区的需求,提供更加贴近实际的商品和服务,确保用户的用户体验。该接口可以通过用户授权的方式获得用户所在位置信息,不会泄露用户的隐私信息。


操作步骤:


1. 首先在微信小程序中调用wx.getLocation接口进行定位,用户将会收到授权提示,需同意授权以便应用获取用户的地理位置信息。

2.定位成功后,小程序将通过得到的经纬度信息,计算用户位置与服务点之间的距离,并返回最近的服务点信息给用户。

3. 如果用户不同意授权,将无法获取用户地理位置信息,定位功能将无法使用,导致无法提供精准的服务点查找。

4.在使用wx.getLocation接口时,需要注意用户个人隐私问题,小程序应在提供提醒并遵守相关规定的前提下,妥善保护用户隐私信息。


接口申请总结


ChatGPT的回答固然帮助我们丰富了申请原因,但是申请该接口的基本要点还是要掌握。



  1. 确保小程序的服务类目可申请wx.getLocation,最好是主营类目,包含两个类目。

  2. 原因表达充分,主要以用户体验角度,及用户隐私。

  3. 提交的图片、视频,符合申请的步骤。


最后


ChatGPT是自然语言处理工具,需要充分的表达清楚,才可能接近输出我们需要的答案,且我们能够甄别验证它的输出。


其他
# 经验分享:快速通过“获取当前的地理位置、速度(wx.getLocation)接口”审核


作者:ZTrainWilliams
来源:juejin.cn/post/7215465880884674619
收起阅读 »

让ChatGPT帮我写一篇博客

前言 昨天还是前天在公众号看到美国的一个设计师兼作家的Jackson,在用ChatGPT创业,他让ChatGPT做“老板”,自己充当一个人工联络员,这样的一个故事让他火了,不仅推特粉丝大涨,公司也做得有模有样。这就给我一些启发,今天早上突然想到为什么不能让Ch...
继续阅读 »

前言


昨天还是前天在公众号看到美国的一个设计师兼作家的Jackson,在用ChatGPT创业,他让ChatGPT做“老板”,自己充当一个人工联络员,这样的一个故事让他火了,不仅推特粉丝大涨,公司也做得有模有样。这就给我一些启发,今天早上突然想到为什么不能让ChatGPT也帮我干活呢,所以我让他写了一篇我感兴趣的博客。


什么是交互艺术?



  • 交互艺术的定义和历史


交互艺术(Interactive Art)是指通过观众与作品互动来创造艺术作品的一种艺术形式。观众可以通过各种方式来参与艺术作品的创作过程,例如通过触摸、声音、身体动作、传感器等方式与作品互动,从而影响作品的展示效果和呈现形式。


交互艺术的历史可以追溯到20世纪60年代,当时的科技进步促使艺术家开始尝试使用电子设备和计算机来创建艺术作品。随着计算机技术的不断发展,交互艺术逐渐成为一个独立的艺术领域,许多艺术家开始探索如何将新兴技术与传统艺术形式结合起来,创造出更具互动性、多媒体性和参与性的艺术作品。


在当代艺术中,交互艺术已经成为一个重要的艺术形式,不断涌现出许多富有创意和思想性的作品。交互艺术的发展也受到了数字技术和科技的快速进步的影响,艺术家们可以使用越来越先进的技术来创造更加复杂、多样化的交互艺术作品。



  • 交互艺术与传统艺术形式的区别和相似之处


交互艺术与传统艺术形式在表现形式、创作方式和观赏方式上存在一些区别和相似之处。


区别:



  1. 表现形式不同:传统艺术形式通常是静态的,比如绘画、雕塑等,而交互艺术则常常是动态的,利用科技和互动方式与观众进行互动。

  2. 创作方式不同:传统艺术形式往往是由一个或几个艺术家单独创作完成,而交互艺术则通常需要一个团队来完成,包括设计师、程序员、工程师等多个专业人员。

  3. 观众参与度不同:传统艺术形式通常是观众被动地欣赏,而交互艺术则需要观众的积极参与,观众不再是简单的观看者,而是成为作品的一部分,与作品进行互动。


相似之处:



  1. 创作目的相似:传统艺术和交互艺术都有一个共同的目的,就是通过艺术表达和传递情感、思想和价值观念等。

  2. 创作需要创意:无论是传统艺术还是交互艺术,都需要创意,才能产生具有艺术价值的作品。

  3. 艺术的审美标准类似:无论是传统艺术还是交互艺术,都需要具有一定的审美标准,才能得到观众的认可。


总的来说,交互艺术是一种创新的艺术形式,与传统艺术形式相比具有很多不同的地方,但它们都是为了表达和传递情感、思想和价值观念等而存在的。


交互艺术的表现形式



  • 交互装置


互动装置是一种创新的展示形式,是通过各种技术手段实现人机交互,让观众能够积极参与其中,与艺术品互动,甚至改变艺术品的形态。例如,光线与声音互动的装置、投影与运动互动的装置、使用虚拟现实技术的装置等。



  • 互动性媒体


数字媒体是指以计算机技术为基础,通过数字技术手段,将文本、音频、视频等多种媒体形式进行集成和处理的一种新兴的艺术形式。数字媒体广泛应用于网络、游戏、互动展览、艺术品创作等领域。数字媒体可以通过人机交互来实现观众参与。



  • 跨媒介艺术


跨媒介艺术是指将不同的媒介进行融合,从而创造出全新的艺术形式。在交互艺术中,跨媒介艺术得以大量运用,以实现更为复杂和多样化的表现。主要包括:融合音乐,舞蹈,戏剧,美术,文字等等。


交互艺术的设计过程



  • 设计理念和目标


交互艺术的设计理念和目标可以根据具体项目的不同而有所不同,比如以互动性为主:交互艺术的设计目标是与观众进行互动,让观众成为艺术作品的一部分。互动可以是双向的,也可以是多向的,观众和作品之间可以有各种形式的交流和反馈。以参与性为主:交互艺术作品的设计目的是让观众成为作品的参与者,观众不仅是作品的被动观看者,还可以通过各种方式主动参与到作品中,体验艺术的过程。以创新性为主:交互艺术通常借助科技手段来实现艺术形式的创新,例如虚拟现实、增强现实、人工智能等技术,让观众体验到新颖的艺术形式和感官体验。以实验性为主:交互艺术通常具有实验性质,设计者会尝试各种不同的技术和形式,不断探索和发掘新的艺术表现方式和可能性。以社交性为主:交互艺术作品通常可以带来社交体验,让多个观众之间产生互动和交流,增加观众之间的沟通和共同体验。以可持续性为主:交互艺术的设计也需要考虑作品的可持续性,包括对环境的影响、对观众的健康和安全等方面的考虑。同时还需要考虑作品的维护和管理,确保作品的长期运行和展示。



  • 技术实现和选择


交互艺术的技术实现有多种选择,以下是一些常见的技术实现:



  1. 传感器技术:通过感应器获取观众的运动、声音、触摸等行为,以此来激发或控制艺术作品的变化。

  2. 虚拟现实技术:使用计算机技术和虚拟现实设备(如头戴式显示器、手套式控制器等)创造虚拟空间,使观众可以沉浸在其中与作品进行交互。

  3. 增强现实技术:使用手机、平板电脑等设备,将虚拟图像叠加在现实场景中,使观众可以在真实场景中进行虚拟的交互体验。

  4. 数据可视化技术:使用数据可视化软件和技术将数据转化为图形、动画、声音等形式,让观众可以与数据进行交互并得到更深入的理解。

  5. 互动音乐技术:使用计算机技术和音乐软件,将观众的声音、运动等行为转化为音乐,并与音乐作品进行互动。

  6. 智能机器人技术:使用机器人技术和人工智能技术,创造能够与观众进行交互的智能机器人艺术作品。


除此之外,还有许多其他的技术可以被应用于交互艺术的实现,这取决于艺术家的创造力和技术能力。



  • 用户参与和反馈


用户参与和反馈在交互艺术中起着至关重要的作用,这是因为交互艺术强调观众参与、互动和沟通,与传统艺术形式相比,用户的参与和反馈更能够影响交互艺术的展现和效果。用户参与和反馈可以创造更丰富、更具有互动性的艺术体验。通过参与和反馈,用户可以主动探索和发现艺术作品中的细节,与艺术家进行更深入的互动和交流。用户参与和反馈可以增加用户对交互艺术的参与度,使观众更加融入艺术作品之中,感受到艺术作品所传达的情感和信息。用户反馈可以帮助艺术家改善艺术作品的表现,及时发现并解决问题,让作品更加完善和符合观众的期望。通过参与和反馈,用户可以更好地理解和体验艺术作品,从而对作品产生更深刻的印象和理解,提高作品的艺术价值和影响力。


交互艺术的影响和意义



  • 对艺术和文化的影响


首先,交互艺术提供了新的观看方式和体验方式,通过参与和互动,观众成为了作品的一部分,与作品发生了联系和互动,这种体验方式比传统艺术观看更加身临其境,更能够引起观众的共鸣和情感共鸣。


其次,交互艺术扩展了艺术形式和创作方式的范围,使得艺术家可以使用更多的媒介和技术手段来表现自己的创意和思想,创作出更加复杂、多样化的作品。同时,交互艺术还促进了跨学科的合作和交流,让不同领域的人们汇聚在一起,共同探索艺术的新领域和可能性。


最后,交互艺术也在一定程度上挑战了传统艺术的观念和价值体系,它更加强调观众的参与和互动,追求创意和表达的多样性和自由性,让艺术更加民主化和开放化,更加贴近生活和人们的需求。



  • 对科技和创新的影响


交互艺术与科技、创新密切相关,因为交互艺术往往需要运用先进的科技和技术手段来实现。因此,交互艺术对科技和创新的影响主要表现在以下几个方面:



  1. 推动科技进步和应用:交互艺术在探索人机交互的过程中,往往需要运用先进的科技和技术手段,例如虚拟现实、增强现实、智能算法、传感器技术等等。这些技术的研究和应用,可以推动科技的进步和应用,也可以为其他领域的技术创新提供借鉴和参考。

  2. 催生新兴产业:随着交互艺术的不断发展和普及,一些新兴产业也应运而生,例如虚拟现实、增强现实、智能穿戴等等。这些产业的发展,也为科技和创新提供了新的发展机遇。

  3. 拓展创新思维:交互艺术强调观众参与和互动,鼓励观众从不同的角度去思考和理解作品。这种互动式的艺术形式,不仅可以拓展观众的视野和想象力,也可以激发人们的创新思维,从而为科技和创新带来新的灵感和方向。

  4. 促进科技与文化的融合:交互艺术将科技和文化相结合,探索科技与文化之间的互动和融合。这种融合不仅可以为文化艺术注入新的活力和创新,也可以促进科技和文化之间的相互理解和交流,为科技和创新带来新的思路和方向。



  • 对社会和人类的影响


首先,交互艺术的出现丰富了人们的文化生活,为人们带来了全新的艺术体验。交互艺术将观众从被动的接受者转变为积极的参与者和创造者,让人们更深入地体验艺术,对个人的审美和文化素养的提高有积极的推动作用。


其次,交互艺术对科技和创新的发展也有很大的促进作用。在交互艺术的设计中,常常会运用到各种前沿的科技手段,如人工智能、虚拟现实、增强现实等,这些技术的应用不仅提高了艺术表现的多样性和创新性,也促进了科技的发展和推广。


另外,交互艺术也推动了跨学科的合作与交流。交互艺术的创作需要艺术家、设计师、工程师等多个领域的专业人才进行合作,这种跨学科的合作有助于促进不同领域之间的交流与合作,进一步推动科技和艺术的发展。


最后,交互艺术也对社会产生了深远的影响。交互艺术作为一种探索艺术与科技、人与自然等关系的艺术形式,常常会引起人们对社会和人类的思考和反思。同时,交互艺术还可以作为一种公共艺术形式,为城市文化建设和社区文化发展做出贡献。


一些优秀的交互艺术作品的介绍和分析


《雨林声音之旅》(The Rainforest):这是一个由音乐家、工程师和艺术家合作制作的多媒体艺术作品,旨在通过视听交互体验向人们展示热带雨林生态系统的美丽和脆弱。在这个作品中,观众通过穿戴智能耳机,能够听到热带雨林中各种生物的声音,并随着观众的行动而改变。这个作品既展示了交互艺术对生态保护的关注,也通过技术手段提供了一个沉浸式的交互体验。


《万花筒之舞》(Kaleidoscope Dance):这个作品由艺术家和编程人员合作创作,是一个通过跟随舞者动作变幻图形的互动舞蹈。在这个作品中,观众通过观看跳舞者的身影,看到身影在投影上变幻出不同的几何图形,并随着舞者的动作而变化。这个作品的互动性和美学效果非常出色,展示了交互艺术的创造性和能力。


《未来自然》(Future Natural):这个作品由美国纽约市的艺术家托尼·瑞戈(tony oursler)制作,展示了未来科技与自然环境的融合。这个作品是一个互动装置,观众通过操纵屏幕上的自然元素,比如云、火、风和水,来创造出自己的自然景观。这个作品展示了交互艺术的潜力,让观众在艺术作品中自由探索和创造。


《印象派的视觉音乐》(Visual Music of Impressionism):这是一个通过数字技术还原19世纪法国印象派画家的绘画作品的互动展览。这个展览展示了通过数字技术将视觉艺术与音乐相结合的能力,让观众可以通过触摸屏幕、移动手势和声音互动等方式来探索印象派绘画作品的美学和音乐性。


未来展望:交互艺术的发展和趋势


交互艺术从20世纪末期开始兴起,并在21世纪初逐渐得到了广泛的关注和发展。最初的交互艺术作品主要依赖计算机技术,随着移动设备、传感器、物联网等技术的发展,交互艺术的形式也越来越多样化和复杂化。


近年来,交互艺术已经从传统的展览空间向公共空间和虚拟空间延伸,例如城市中的互动艺术装置和游戏、虚拟现实艺术作品等。同时,交互艺术也更多地关注社会和环境问题,例如气候变化、人类生活和工作的影响等。


未来的趋势将继续突破传统的艺术形式,更多地与科技、社会、文化等领域交叉融合,例如增强现实、人工智能、机器人技术等。同时,交互艺术也将更加强调观众的参与和反馈,更加注重体验和互动的情感性和反思性。


作者:HeteroCat
链接:https://juejin.cn/post/7215084575495929915
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

ChatGPT正在杀死程序员,讲讲我的看法——AI春晚,Boom!

AI春晚,Boom! 这两周,简直是AI春晚,ChatGPT4、ChatGPT Plugin、Microsoft 365 copilot、Github copilotX、MidJourney V5、Adobe Firefly、NVIDIA一堆新产品... 多到...
继续阅读 »

AI春晚,Boom!


这两周,简直是AI春晚,ChatGPT4、ChatGPT Plugin、Microsoft 365 copilot、Github copilotX、MidJourney V5、Adobe Firefly、NVIDIA一堆新产品... 多到数不过来了,几乎是数不过来了,大产品发布的速度可以用小时来计算,小产品更是多如牛毛,github trends、Hacker News差不多半数都被ChatGPT相关霸榜。


可谓科技圈的“大变局”,上一次大家这么激动,还是iPhone诞生。


接下来,我来说说看我的看法和一些个人预测。


我的几点看法




  1. ChatGPT的诞生,将带来新的革命,第一次信息技术革命主要是加速了信息传递,而此次第二次信息技术革命,则是让信息传递进一步加速的同时,让信息有了自生产能力。例如:你给AI一个标题,AI可以根据过往学习经验,联想一个新的故事。又比如:你写了一段新的代码,可以让AI帮你解释,也许未来帮你写文档。AI可以根据少量的信息,进行信息生产,这是替代人类一部分能力的关键点。




  2. 我认为大语言模型的能力并未被全部释放,AI可以做的还有更多,更有创造力,只不过暂时被封印了。未来的前景空间无限,随便上升一点点都是big boom.




  3. 这只是这一种模型而已... 相信AI行业的投入的资金接下来会是爆炸式的增长。其他模型大概率很快在资金加持下,进行多轮验证。指不定再来个别的超级AI。




  4. 自然语言(提示语)编程诞生,这将是最难的一门语言,短期来看,必然是英语,掌握英语的人未来拥有更大的竞争力。但是自然语言有较大的缺陷,就是难以构建复杂结构和海量参数的提示语,而人类的需求往往是精准的,只用自然语言效率比较低。所以我预测,未来会有更加结构化的语言诞生,它将综合人类的自然语言和高级编程语言,成长为新的热门语言。




  5. 毫无疑问,随着内容创作方面的效率急速提升,大多数白领的工作将会受到极大影响,被调整优化。不进步就会被淘汰,但是也意味着会出现新的机会。




  6. AI程序员不仅正在杀死白领,还无情地杀死另外一些程序员,底层如前端程序员和测试工程师将会受到巨大影响,优化。这其实是因为,相当一部分程序员的工作其实更接近于内容创作(cv工程师),而不是严密的逻辑思考和创造,所以更容易被AI取代。不得不说,程序员的差距就像人与狗的差距一样大。




  7. 新的繁荣即将到来?毫无疑问。纺织机夺走了大部分手工纺织者的工作,但是催生了更庞大的市场,例如服装设计,人的需求促使人朝着更加高级的方向发展了。那新的工作机会呢?可能是自然语言(提示语)工程、AI训练师等等。




  8. 恭喜前端程序员,终于不用写大量页面和CSS了,暂时也许可以考虑往全栈卷了?




  9. 如果你是一个简单的内容工作者或者初级程序员,那么赶紧学吧,否则将面临失业。




  10. 如果你是中高级技术工程师,也赶紧学吧,新的机会正在到来。本来吧,互联网遇冷,就业困难,大家都不想学了,学不动了,现在好了,局势逼着你学。




  11. 好消息是,我们有墙,也可能是坏消息。




  12. 可以大概率肯定的是,就业市场应该很快会回暖,现在就等巨头公司找找方向,开启新市场。


作者:宋承亮
链接:https://juejin.cn/post/7214493929566748732
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

用ChatGPT提高开发效率(Andoid)

一、前言 我们问了10个问题,开发的、生活中有疑问的,ChartGPT都给了我们答案。这些答案怎么样,请往下看吧。 ChatGPT-1、写一个车牌号的正则表达式 ChatGPT-2、写一个中国大陆车牌号的正则表达式 ChatGPT-3、用kotlin写一个车...
继续阅读 »

一、前言


我们问了10个问题,开发的、生活中有疑问的,ChartGPT都给了我们答案。这些答案怎么样,请往下看吧。



  • ChatGPT-1、写一个车牌号的正则表达式

  • ChatGPT-2、写一个中国大陆车牌号的正则表达式

  • ChatGPT-3、用kotlin写一个车牌号的校验函数

  • ChatGPT-4、用Kotlin写一个String装换成金额的扩展函数

  • ChatGPT-5、用Kotlin写一个String装换成人民币的扩展函数

  • ChatGPT-6、用Kotlin写一个String转换成人民币的扩展函数

  • ChatGPT-7、用Kotlin写一个将TextView的文本内容复制到粘贴板的扩展函数

  • ChatGPT-8、美食探店怎么做?

  • ChatGPT-9、台湾卤肉饭?

  • ChatGPT-10、牛皮弃面馆(柏庐南路店)


二、ChatGPT使用初体验


ChatGPT-1、写一个车牌号的正则表达式
企业微信截图_16796251027919.png


ChatGPT-2、写一个中国大陆车牌号的正则表达式
企业微信截图_1679625500776.png
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-HJ-NP-Z](?!DD)[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$


ChatGPT-3、用kotlin写一个车牌号的校验函数
企业微信截图_16796251209911.png


三、ChatGPT PK 5年+年程序员


ChatGPT-4、用Kotlin写一个String装换成金额的扩展函数
企业微信截图_16796251209911.png


ChatGPT-5、用Kotlin写一个String装换成人民币的扩展函数
企业微信截图_16796251209911.png


ChatGPT-6、用Kotlin写一个String转换成人民币的扩展函数
1111.png
PK
image2023-3-24_11-2-10.png


ChatGPT-7、用Kotlin写一个将TextView的文本内容复制到粘贴板的扩展函数
image2023-3-24_11-2-10.png
PK
image2023-3-24_11-3-0.png


四、总结


ChatGPT-1、写一个车牌号的正则表达式

ChatGPT-2、写一个中国大陆车牌号的正则表达式

ChatGPT-3、用kotlin写一个车牌号的校验函数


以上问题,明确的告诉了我们答案,并且配上了讲解和使用方法。


极大的减少了我们自己写正则的错误概率,或者网上查,答案质量参差不齐的筛选验证的烦恼。


对这种重复劳动、通用的功能函数,ChatGPT很好用


ChatGPT-4、用Kotlin写一个String装换成金额的扩展函数

ChatGPT-5、用Kotlin写一个String装换成人民币的扩展函数

ChatGPT-6、用Kotlin写一个String转换成人民币的扩展函数

ChatGPT-7、用Kotlin写一个将TextView的文本内容复制到粘贴板的扩展函数


以上问题,实现了在开发过程中实际的问题,直接Copy就可以使用


请注意我的问题,用Kotlin写一个String转换成人民币的扩展函数,只要你问题问的明确,ChatGPT就会给你想要的答案


ChatGPT-4、ChatGPT-5转换写错了,写成了装换,ChatGPT理解了我的意思,并且他自我纠正了


ChatGPT-6、ChatGPT-7,ChatGPT与5年+程序员的PK,功能都实现了,实现思路基本相同。但是5+程序员写的更简洁,自由 (程序员的个人素质了,Lewis对个人要求标准较高,这就是通往大佬的之路)。


你在通往IT大佬的路上,不要轻视ChatGPT哦,我们使用的ChatGPT是通用版,训练出来的模型是面向所有用户的。


一个假设,如果使用Githut上所有的代码训练ChatGPT,训练出来的模型还会比不过5年的程序员吗?Githut+ChatGPT好像都为微软的,这个假设可能已经在实验室阶段了。


以上假设已经有了,GitHub Copilot X GitHub + GPT-4联手的产品


五、ChatGPT最后的胡说八道


ChatGPT-8、美食探店怎么做?
企业微信截图_16796255651978.png


ChatGPT-9、台湾卤肉饭?
企业微信截图_16796256304717.png


ChatGPT-10、牛皮弃面馆(柏庐南路店)
企业微信截图_1679625678718.png


ChatGPT-8、美食探店怎么做?

ChatGPT-9、台湾卤肉饭?

ChatGPT-10、牛皮弃面馆(柏庐南路店)


以上问题,初一看ChatGPT回答的很专业,以下详细说一下


ChatGPT-8、ChatGPT-9,很多人都有疑问的问题,网上资料很多,回答的很专业,也很有条理,挺好。作为一个技术就不都说了,可以看看这个「打不过,就加入」,我和ChatGPT的故事


ChatGPT-10,昆山一家小店,没有名气,主打台湾牛肉面和台湾小吃,ChatGPT就开始胡说八道了,但是显得很专业,他谈的模板就是按照逻辑去介绍一家店。如果你问他一家有名的店或者连锁店(例如:海底捞),他会回答的应该很专业。


其实还有很多疑问的,移动开发未来前景怎么样?ETH今天会不会大跌,短线做空可以吗?,但是毕竟今天周五了,让自己过一个愉快的周末吧^_^。


作者:佳应科技
链接:https://juejin.cn/post/7215020908238209083
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

里程碑!ChatGPT插件影响几何?

上周三OpenAI推出了GPT-4,引起了全球轰动,仅仅过去一周多时间,OpenAI又宣布推出插件功能。如果说ChatGPT是AI的“iPhone时刻”,那么插件就是ChatGPT的“App Store”。超强的开发迭代能力,层出不穷的王炸级新产品,让我们不得...
继续阅读 »

上周三OpenAI推出了GPT-4,引起了全球轰动,仅仅过去一周多时间,OpenAI又宣布推出插件功能。如果说ChatGPT是AI的“iPhone时刻”,那么插件就是ChatGPT的“App Store”。超强的开发迭代能力,层出不穷的王炸级新产品,让我们不得不对OpenAI由衷赞叹。


插件发布


3月24日,OpenAI宣布ChatGPT能够支持第三方插件接入,同时为ChatGPT发布了多个插件,它们将帮助ChatGPT联网实时检索信息、运行计算或使用第三方服务。目前装上插件后,用户可以用 ChatGPT 执行以下操作:




  • 检索实时信息:例如体育比赛比分、股价、最新消息等;




  • 检索知识库信息:例如公司文件、个人笔记等;




  • 代表用户执行操作:例如,订机票、订餐等。




由此可以看出,ChatGPT不再是一个单一的知识问答机器人,它将完全走进我们的日常工作和生活,成为全天候平台生态系统。


image.png


根据OpenAI官方发布信息,ChatGPT的第一批第三方插件包含Expedia、FiscalNote、Instacart、KAYAK、Klarna、Milo、OpenTable、Shopify、Slack、Speak、Wolfram、Zapier等11种。例如Open Table插件允许用户搜索可预订的餐厅,Wolfram插件能够提高计算能力,Instacart插件允许ChatGPT在本地商店购物,Zapier可与谷歌Gmail等应用程序连接,适用于办公场景。除了第三方插件,OpenAI同时推出了自己的两款插件——网络浏览器(web browser)和代码解释器(code interpreter)。


网络浏览器


网络浏览器(web browser)是此次最受大家关注的插件,该插件使用微软必应搜索API从网络上检索内容,同时显示它在概括答案时所访问的网站,并在ChatGPT的回应中引用其来源。此前的ChatGPT包括GTP-4训练数据库的信息内容仅限于2021年9月之前的数据,现在通过该插件ChatGPT可以获得网络上最新的数据,极大提高问题回答的时效性。


例如下面的问题中,ChatGPT可以给出2023年的奥斯卡颁奖名单。


image.png


ChatGPT以往是被动接收数据进行推理,开发人员给它投喂大量历史数据,基于这些数据进行推理,从而给出答案。因此,ChatGPT能够获得巨大成功的原因是其出色的推理能力,人总是处于学习知识的过程,要求的是知识回答准确度,对于新鲜度反而要求不高,出色的推理能力有效保证了知识回答的准确性和条理性。相信掘友们没少让ChatGPT写诗,写小说,写代码,这些出色创作并不需要从网络上去获取最新的内容。


但随着大家对ChatGPT的越来越熟悉,使用需求也越来越多,从知识问答扩展到日常生活、工作和出行,个人事务、财务和交际,这就需要当前最新的回答,需要ChatGPT从最新网络数据去检索、分析和推理,也就是从被动接收数据变为主动获取数据,ChatGPT具备了眼睛和耳朵,能够去听去看,去与当前的网络世界进行同步。


代码解释器


代码解释器则能够执行数学问题、数据分析、可视化和文件格式转换等任务,使ChatGPT能够使用Python并在沙盒环境中处理上传和下载任务。简单来说,代码解释器能够为你复杂的问题直接提供代码,省去你大部分的编码工作,也能够阅读代码,修改代码bug。


根据官方的例子,当问到:一块砖的重量是这块砖自身 30% 的重量与 5 个 GPU 的重量之和,已知每吨重量包含了 100 块砖和 200 个 GPU,那么一块砖的重量是多少?


image.png


经过代码解释器后,给出了代码和答案


image.png


这里我们可以看到,回答问题不再简单的文字描述,而是升级到源码描述,说实话惊叹之余感觉到了一丝丝的危机感,假以时日,随着ChatGPT能力不断提升,如果能够完成系统级编程,程序员门槛会不断降低,对于大多数程序员都将形成冲击。


平台生态


通过上面对这次插件的分析可以看到,ChatGPT不再满足于单纯作为一个聊天机器人,插件功能就是ChatGPT的应用商店。在3月34日之前,我们认为的合作关系是ChatGPT接入到其他APP,为其他APP赋能,属于从属低位。在3月34日之后,我们发现所有APP将纳入ChatGPT,形成ChatGPT生态系统,ChatGPT去指挥其他APP工作,属于主导地位。


ChatGPT试图通过插件功能建立生态系统。在这个生态系统中,开发人员可以创建并发布他们自己的插件,借助ChatGPT获取用户和收益。目前手机厂商的应用商店也是这样,第三方应用经过应用商店安装,消费者发生购买行为后,应用商店可以进行抽成获取利润。三个月前,我们担心ChatGPT训练成本非常高,但没有良好的商业化模式,发展困难。现在插件功能出来后,没有一个人会再去担心ChatGPT商业能力,反而是担心自己能不能搭上人工智能的快车,自己会不会被时代所淘汰。


微软魄力


说完OpenAI的重大突破,回过头来,不得不佩服微软的魄力和决心。在必应接入GTP后,必应搜索引擎的访问量增长15%,谷歌降低了1%,一片形势大好,接入GTP的产品就是New Bing,因此这次插件功能的发布最尴尬的反而是New Bing。拥有插件功能的ChatGPT明显比搜索引擎属性加身的New Bing更有发展前景,对于市场前景来说,New Bing基本等同于完整版的必应,微软推陈出新,斩人先斩己。


这与腾讯有点相似,在QQ还是即时通信老大的情况下,坚决推出了微信,时至今日,微信建立起的生态帝国让腾讯无往不利。如果说插件功能即将构建的生态系统,未来将匹敌甚至超过App Store和谷歌搜索的商业价值,已经不会让人觉得是异想天开了。


总结


从GTP3.5到GTP4,从微软Office Copilot到ChatGPT插件,AI技术的演进和应用正以超乎想象的速度袭来,在过去的这几个月,尤其这两周,我们听惯了重磅、史诗、王炸等词,面对日新月异的技术发展,对于个人来说,我们需要选择拥抱新的领域,新的技术,通过了解来调整自己的工作方式和学习目标;对于企业来说,需要熟悉AI技术的现状和未来预期,积极评估面临的冲击和机遇。


作者:柒号华仔
来源:juejin.cn/post/7214489453399474232
收起阅读 »

用ChatGPT提高开发效率(Andoid)

一、前言 我们问了10个问题,开发的、生活中有疑问的,ChartGPT都给了我们答案。这些答案怎么样,请往下看吧。 ChatGPT-1、写一个车牌号的正则表达式 ChatGPT-2、写一个中国大陆车牌号的正则表达式 ChatGPT-3、用kotlin写一个车...
继续阅读 »

一、前言


我们问了10个问题,开发的、生活中有疑问的,ChartGPT都给了我们答案。这些答案怎么样,请往下看吧。



  • ChatGPT-1、写一个车牌号的正则表达式

  • ChatGPT-2、写一个中国大陆车牌号的正则表达式

  • ChatGPT-3、用kotlin写一个车牌号的校验函数

  • ChatGPT-4、用Kotlin写一个String装换成金额的扩展函数

  • ChatGPT-5、用Kotlin写一个String装换成人民币的扩展函数

  • ChatGPT-6、用Kotlin写一个String转换成人民币的扩展函数

  • ChatGPT-7、用Kotlin写一个将TextView的文本内容复制到粘贴板的扩展函数

  • ChatGPT-8、美食探店怎么做?

  • ChatGPT-9、台湾卤肉饭?

  • ChatGPT-10、牛皮弃面馆(柏庐南路店)


二、ChatGPT使用初体验


ChatGPT-1、写一个车牌号的正则表达式
企业微信截图_16796251027919.png


ChatGPT-2、写一个中国大陆车牌号的正则表达式
企业微信截图_1679625500776.png
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-HJ-NP-Z](?!DD)[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$


ChatGPT-3、用kotlin写一个车牌号的校验函数
企业微信截图_16796251209911.png


三、ChatGPT PK 5年+年程序员


ChatGPT-4、用Kotlin写一个String装换成金额的扩展函数
企业微信截图_16796251209911.png


ChatGPT-5、用Kotlin写一个String装换成人民币的扩展函数
企业微信截图_16796251209911.png


ChatGPT-6、用Kotlin写一个String转换成人民币的扩展函数
1111.png
PK
image2023-3-24_11-2-10.png


ChatGPT-7、用Kotlin写一个将TextView的文本内容复制到粘贴板的扩展函数
image2023-3-24_11-2-10.png
PK
image2023-3-24_11-3-0.png


四、总结


ChatGPT-1、写一个车牌号的正则表达式

ChatGPT-2、写一个中国大陆车牌号的正则表达式

ChatGPT-3、用kotlin写一个车牌号的校验函数


以上问题,明确的告诉了我们答案,并且配上了讲解和使用方法。


极大的减少了我们自己写正则的错误概率,或者网上查,答案质量参差不齐的筛选验证的烦恼。


对这种重复劳动、通用的功能函数,ChatGPT很好用


ChatGPT-4、用Kotlin写一个String装换成金额的扩展函数

ChatGPT-5、用Kotlin写一个String装换成人民币的扩展函数

ChatGPT-6、用Kotlin写一个String转换成人民币的扩展函数

ChatGPT-7、用Kotlin写一个将TextView的文本内容复制到粘贴板的扩展函数


以上问题,实现了在开发过程中实际的问题,直接Copy就可以使用


请注意我的问题,用Kotlin写一个String转换成人民币的扩展函数,只要你问题问的明确,ChatGPT就会给你想要的答案


ChatGPT-4、ChatGPT-5转换写错了,写成了装换,ChatGPT理解了我的意思,并且他自我纠正了


ChatGPT-6、ChatGPT-7,ChatGPT与5年+程序员的PK,功能都实现了,实现思路基本相同。但是5+程序员写的更简洁,自由 (程序员的个人素质了,Lewis对个人要求标准较高,这就是通往大佬的之路)。


你在通往IT大佬的路上,不要轻视ChatGPT哦,我们使用的ChatGPT是通用版,训练出来的模型是面向所有用户的。


一个假设,如果使用Githut上所有的代码训练ChatGPT,训练出来的模型还会比不过5年的程序员吗?Githut+ChatGPT好像都为微软的,这个假设可能已经在实验室阶段了。


以上假设已经有了,GitHub Copilot X GitHub + GPT-4联手的产品


五、ChatGPT最后的胡说八道


ChatGPT-8、美食探店怎么做?
企业微信截图_16796255651978.png


ChatGPT-9、台湾卤肉饭?
企业微信截图_16796256304717.png


ChatGPT-10、牛皮弃面馆(柏庐南路店)
企业微信截图_1679625678718.png


ChatGPT-8、美食探店怎么做?

ChatGPT-9、台湾卤肉饭?

ChatGPT-10、牛皮弃面馆(柏庐南路店)


以上问题,初一看ChatGPT回答的很专业,以下详细说一下


ChatGPT-8、ChatGPT-9,很多人都有疑问的问题,网上资料很多,回答的很专业,也很有条理,挺好。作为一个技术就不都说了,可以看看这个「打不过,就加入」,我和ChatGPT的故事


ChatGPT-10,昆山一家小店,没有名气,主打台湾牛肉面和台湾小吃,ChatGPT就开始胡说八道了,但是显得很专业,他谈的模板就是按照逻辑去介绍一家店。如果你问他一家有名的店或者连锁店(例如:海底捞),他会回答的应该很专业。


其实还有很多疑问的,移动开发未来前景怎么样?ETH今天会不会大跌,短线做空可以吗?,但是毕竟今天周五了,让自己过一个愉快的周末吧^_^。


六、延伸阅读


mp.weixin.qq.com/s/PyH2SzFQ9…


juejin.cn/post/721177…


juejin.cn/post/719767…


mp.weixin.qq.com/s/prXyAUf_8…


mp.weixin.qq.com/s/Y1LUxcInd…


mp.weixin.qq.com/s/a3xZZLRgD…


作者:佳应科技
来源:juejin.cn/post/7215020908238209083
收起阅读 »

扒了一千多条关于文心一言的评论,我发现这届网友真的不好糊弄…

前两天,百度紧随GPT-4发布了自己的语言模型文心一言。 讲道理,对于国内能够发布这样一个敢于对标CHAT GPT的高质量语言模型,大家应该更多感受到的是赛博朋克与现实生活贴近的真实感,对这个模型应该有着更多的鼓励或赞美。 可不知是因为整个发布会搞的过于像没有...
继续阅读 »

前两天,百度紧随GPT-4发布了自己的语言模型文心一言。


讲道理,对于国内能够发布这样一个敢于对标CHAT GPT的高质量语言模型,大家应该更多感受到的是赛博朋克与现实生活贴近的真实感,对这个模型应该有着更多的鼓励或赞美。


可不知是因为整个发布会搞的过于像没有好好准备的学生毕业答辩PPT,还是它的实际表现并没有那么如人意,大家貌似对文心一言并不那么买账。


于是我决定看一下知乎大神们对文心一言的评价,哪想到随便打开一个问题,居然有600多条回答…



要是我这一条一条翻完所有回答, 估计就得拿出一天来全职摸鱼了 ,那么有没有什么办法能够最快的分析出对待这个问题大家的综合评价呢?


那么今天就让我纱布擦屁股,给大家露一小手,写一个爬虫扒下来所有的回答,再对结果进行一下分析。


WebMagic


正式开始前,咱们得先搞定工具。虽然python写起爬虫来有天然的框架优势,不过鉴于大家都是搞java的,那么我们今天就用java框架来实现一个爬虫。


咱们要使用的工具 WebMagic,就是一款简单灵活的java爬虫框架,总体架构由下面这几部分构成:




  • Downloader:负责从互联网上下载页面,以便后续处理。WebMagic默认使用了Apache HttpClient作为下载工具。

  • PageProcessor:负责解析页面,抽取有用信息,以及发现新的链接。WebMagic使用Jsoup作为HTML解析工具,并基于其开发了解析XPath的工具Xsoup。

  • Scheduler:负责管理待抓取的URL,以及一些去重的工作。WebMagic默认提供了JDK的内存队列来管理URL,并用集合来进行去重。也支持使用Redis进行分布式管理。

  • Pipeline:负责抽取结果的处理,包括计算、持久化到文件、数据库等。WebMagic默认提供了输出到控制台和保存到文件两种结果处理方案。


在4个主要组件中,除了PageProcessor之外,其他3个组件基本都可以复用。而我们实际爬虫中的重点,就是要针对不同网页进行页面元素的分析,进而定制化地开发不同的PageProcessor


下面我们开始准备实战,先引入webmagiccoreextension两个依赖,最新0.8.0版本搞里头:


<dependency>
<groupId>us.codecraftgroupId>
<artifactId>webmagic-coreartifactId>
<version>0.8.0version>
dependency>
<dependency>
<groupId>us.codecraftgroupId>
<artifactId>webmagic-extensionartifactId>
<version>0.8.0version>
dependency>

PageProcessor 与 xpath


在正式开始抓取页面前,我们先看看知乎上一个问题的页面是怎么构成的,还是以上面图中那个问题为例,原问题的地址在这里:



如何看待百度发布的文心一言?



我们先做个简单的测试,来获取这个问题的标题,以及对这个问题的描述


通过浏览器的审查元素,可以看到标题是一个h1的标题元素,并且它的class属性是QuestionHeader-title,而问题的描述部分在一个div中,它的class中包含了QuestionRichText



简单分析完了,按照前面说的,我们要对这个页面定制一个PageProcessor组件抽取信息,直接上代码。


新建一个类实现PageProcessor接口,并实现接口中的process()这个方法即可。


public class WenxinProcessor implements PageProcessor {
private Site site = Site.me()
.setRetryTimes(3).setSleepTime(1000);

@Override
public void process(Page page) {
String title = page.getHtml()
.xpath("//h1[@class='QuestionHeader-title']/text()").toString();
String question= page.getHtml()
.xpath("//div[@class='QuestionRichText']//tidyText()").toString();

System.out.println(title);
System.out.println(question);
}

public Site getSite() {
return site;
}

public static void main(String[] args) {
Spider.create(new WenxinProcessor())
.addUrl("https://www.zhihu.com/question/589929380")
.thread(2)
.run();
}
}

查看运行结果:



可以看到,在代码中通过xpath()这样一个方法,成功拿到了我们要取的两个元素。其实说白了,这个xpath也不是爬虫框架中才有的新玩意,而是一种XML路径语言(XML Path Language),是一种用来确定XML文档中某部分位置的语言。它基于XML的树状结构,提供在数据结构树中找寻节点的能力。


常用的路径表达式包括:


表达式描述
nodename选取此节点的所有子节点。
/从根节点选取。
//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
.选取当前节点。
..选取当前节点的父节点。
@选取属性。

在上面的代码中,//h1[@class='QuestionHeader-title']就表示选取一个类型为h1的节点,并且它有一个class为QuestionHeader-title的属性。


至于后面的text()tidyText()方法,则是用于提取元素中的文本,这些函数不是标准xpath中的,而是webMagic中特有的新方法,这些函数的使用可以参考文档:



webmagic.io/docs/zh/pos…



看到这,你可能还有个问题,这里对于问题的描述部分没有显示完全,你需要在页面上点一下这个显示全部它才会显示详细的信息。



没关系,这里先留个坑,这个问题放在后面解决。


获取提问的答案


我们完善一下上面的代码,尝试获取问题的解答。按照老套路,还是先分析页面元素再用xpath写表达式获取。修改process方法:


@Override
public void process(Page page) {
String contentPath= "div[@class='QuestionAnswers-answers']"+
"//div[@class='RichContent RichContent--unescapable']" +
"//div[@class='RichContent-inner']"+
"/tidyText()";
List answerList = page.getHtml().xpath(contentPath).all();
for (int i = 0; i < answerList.size(); i++) {
System.out.println("第"+(i+1)+"条回答:");
System.out.println(answerList.get(i)+"\n=======");
}
}

在上面的代码中,使用了xpath获取页面中具有相同属性的元素,并将它们存入了List列表中。看一下运行结果:



纳尼?这个问题明明有着689条的回答,为什么我们只爬到了两条答案?


如果你经常用知乎来学习摸鱼的话,其实就会知道对于这种有大量回答的问题,页面刚开始只会默认显示很少的几条的消息,随着你不断的下拉页面才会把新的回答显示出来。


那么如果我想拿到所有的评论应该怎么做呢?这时候就要引出webMagic中另一个神奇的组件Selenium了。


Selenium


简单来说,selenium是一个用于Web应用程序测试的工具,selenium测试可以直接运行在浏览器中,就像真正的用户在操作一样,并且目前主流的大牌浏览器一般都支持这项技术。


所以在爬虫中,我们可以通过编写模仿用户操作的selenium脚本,模拟进行一部分用互操作,比如点击事件或屏幕滚动等等。


WebMagic-Selenium需要依赖于WebDriver,所以我们先进行本地WebDriver的安装操作。


安装WebDriver


查看自己电脑上Chrome版本,可以点击设置->关于chrome查看,也可以直接在地址栏输入chrome://settings/help



可以看到版本号,然后需要下载对应版本的WebDriver,下载地址:



chromedriver.storage.googleapis.com/index.html



打开后,可以看到各个版本,选择与本地浏览器最接近的版本:



点击进入后,根据我们的系统选择对应版本下载即可。



下载完成后,解压到本地目录中,之后在使用selenium模块中会使用到。这个文件建议放在chrome的安装目录下,否则之后在代码中可能会报一个WebDriverException: unknown error: cannot find Chrome binary找不到chrome文件的错误。


修改Selenium源码


webMagic中已经封装了selenium模块的代码,但官方版本的代码有些地方需要修改,我们下载源码后要自己简单改动一下然后重新编译。我这下载了0.8.1-SNAPSHOT版本的代码,官方git地址:



github.com/code4craft/…



修改配置文件地址,在WebDriverPoolselenium配置文件路径写死了,需要改变配置路径:


// 修改前
// private static final String DEFAULT_CONFIG_FILE = "/data/webmagic/webmagic-selenium/config.ini";
// 修改后
private static final String DEFAULT_CONFIG_FILE = "selenium.properties";

resources目录下添加配置文件selenium.properties


# What WebDriver to use for the tests
driver=chrome
# PhantomJS specific config (change according to your installation)
chrome_driver_loglevel=DEBUG

js模拟页面操作


修改SeleniumDownloaderdownload()方法,在代码中的这个位置,作者很贴心的给我们留了一行注释:



意思就是,你可以在这添加鼠标事件或者干点别的什么东西了。我们在这添加页面向下滚动这一模拟事件,每休眠2s就向下滚动一下页面,一共下拉20次:


//模拟下拉,刷新页面
for (int i=0; i < 20; i++){
System.out.println("休眠2s");
try {
//滚动到最底部
((JavascriptExecutor)webDriver)
.executeScript("window.scrollTo(0,document.body.scrollHeight)");
//休眠,等待加载页面
Thread.sleep(2000);
//往回滚一点,否则不加载
((JavascriptExecutor)webDriver)
.executeScript("window.scrollBy(0,-300)");
} catch (InterruptedException e) {
e.printStackTrace();
}
}

修改完成后本地打个包,注意还要修改一下版本号,改成和发行版的不同即可,我这里改成了0.8.1.1-SNAPSHOT


mvn clean install

调用


回到之前的爬虫项目,引入我们自己打好的包:


<dependency>
<groupId>us.codecraftgroupId>
<artifactId>webmagic-seleniumartifactId>
<version>0.8.1.1-SNAPSHOTversion>
dependency>

修改之前的主程序启动时的代码,添加Downloader组件,SeleniumDownloader构造方法的参数中传入我们下好的chrome的webDriver的可执行文件的地址:


public static void main(String[] args) {
Spider.create(new WenxinProcessor())
.addUrl("https://www.zhihu.com/question/589929380")
.thread(2)
.setDownloader(new SeleniumDownloader("D:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe")
.setSleepTime(1000))
.run();
}

进行测试,可以看到在拉动了40秒窗口后,获取到的答案条数是100条:



通过适当地添加下拉页面的循环的次数,我们就能够获取到当前问题下的全部回答了。


另外,在启动爬虫后我们会看到webDriver弹出了一个chrome的窗口,在这个窗口中有一个提示:Chrome正受到自动测试软件的控制,并且可以看到页面不断的自动下拉情况:



如果不想要这个弹窗的话,可以修改selenium模块的代码进行隐藏。修改WebDriverPoolconfigure()方法,找到这段代码:


if (driver.equals(DRIVER_CHROME)) {
mDriver = new ChromeDriver(sCaps);
}

添加一个隐藏显示的选项,并且在修改完成后,重新打包一下。


if (driver.equals(DRIVER_CHROME)) {
ChromeOptions options=new ChromeOptions();
options.setHeadless(true);
mDriver = new ChromeDriver(options);
}

获取问题详细描述


不知道大家还记不记得在前面还留了一个坑,我们现在获取到的对问题的描述是不全的,需要点一下这个按钮才能显示完全。



同样,这个问题也可以用selenium来解决,在我们下拉页面前,加上这么一个模拟点击事件,就可以获得对问题的详细描述了:


((JavascriptExecutor)webDriver)
.executeScript("document.getElementsByClassName('Button QuestionRichText-more')[0].click()");

看一下执行结果,已经可以拿到完整内容了:



Pipeline


到这里,虽然要爬的数据获取到了,但是要进行分析的话,还需要进行持久化操作。在前面的webMagic的架构图中,介绍过Pipeline组件主要负责结果的处理,所以我们再优化一下代码,添加一个Pipeline负责数据的持久化。


由于数据量也不是非常大,这里我选择了直接存入ElasticSearch中,同时也方便我们进行后续的分析操作,ES组件我使用的是esclientrhl,为了方便我还是把项目整个扔到了 spring里面。


定制一个Pipeline也很简单,实现Pipeline接口并实现里面的process()接口就可以了,通过构造方法传入ES持久化层组件:


@Slf4j
@AllArgsConstructor
public class WenxinPipeline implements Pipeline {
private final ZhihuRepository zhihuRepository;

@Override
public void process(ResultItems resultItems, Task task) {
Map map = resultItems.getAll();
String title = map.get("title").toString();
String question = map.get("question").toString();
List answer = (List) map.get("answer");

ZhihuEntity zhihuEntity;
for (String an : answer) {
zhihuEntity = new ZhihuEntity();
zhihuEntity.setTitle(title);
zhihuEntity.setQuestion(question);
zhihuEntity.setAnswer(an);
try {
zhihuRepository.save(zhihuEntity);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

把selenium向下拉取页面的次数改成200后,通过接口启动程序:


@GetMapping("wenxin")
public void wenxin() {
new Thread(() -> {
Request request = new Request("https://www.zhihu.com/question/589929380");
WenxinProcessor4 wenxinProcessor = new WenxinProcessor4();
Spider.create(wenxinProcessor)
.addRequest(request)
.addPipeline(new WenxinPipeline(zhihuRepository))
.setDownloader(new SeleniumDownloader("D:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe")
.setSleepTime(1000))
.run();
}).start();
}

运行完成后,查询一下es中的数据,可以看到,实际爬取到了673条回答。



另外,我们可以在一个爬虫程序中传入多个页面地址,只要页面元素具有相同的规则,那么它们就能用相同的爬虫逻辑处理,在下面的代码中,我们一次性传入多个页面:


Spider.create(new WenxinProcessor4())
.addUrl(new String[]{"https://www.zhihu.com/question/589941496",
"https://www.zhihu.com/question/589904230","https://www.zhihu.com/question/589938328"})
.addPipeline(new WenxinPipeline(zhihuRepository))
.setDownloader(new SeleniumDownloader("D:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe")
.setSleepTime(1000))
.run();

一顿忙活下来,最终扒下来1300多条数据。



分析


数据落到了ES里后,那我们就可以根据关键字进行分析了,我们先选择10个负面方向的词语进行查询,可以看到查到了403条数据,将近占到了总量的三分之一。



再从各种回答中选择10个正向词语查询,结果大概只有负面方向的一半左右:



不得不说,这届网友真的是很严厉…


Proxy代理


说到爬虫,其实还有一个绕不过去的东西,那就是代理。


像咱们这样的小打小闹,爬个百八十条数据虽然没啥问题,但是如果要去爬取大量数据或是用于商业,还是建议使用一下代理,一方面能够隐藏我们的IP地址起到保护自己的作用,另一方面动态IP也能有效的应对一些反爬策略。


个人在使用中,比较推荐的是隧道代理。简单的来说,如果你购买了IP服务的话,用普通代理方式的话需要你去手动请求接口获取IP地址,再到代码中动态修改。而使用隧道代理的话,就不需要自己提取代理IP了,每条隧道自动提取并使用代理IP转发用户请求,这样我们就可以专注于业务了。


虽然网上也有免费的代理能够能用,但要不然就是失效的太快,要不就是很容易被网站加入黑名单,所以如果追求性能的话还是买个专业点的代理比较好,虽然可能价格不那么便宜就是了。


题外话


看了一大顿下来,从大家略显犀利的言辞来看,大家总体上对文心一言还是不那么满意的。毕竟,在有着CHAT-GPT这么一个优秀的产品做背景板的前提下,这届网友可能没有那么好糊弄。


但是话又说回来,丑媳妇总得见公婆不是?提早暴露缺陷,也有利于国内的这些大厂,看清和一流AI产品之间的真实差距,知难而进,迎头赶上。


那么,这次的分享就到这里,我是Hydra,我们下篇再见。



文中代码已经传到我的git上啦,github.com/trunks2008/… ,欢迎大家来个star鼓励一下~




参考资料:


webmagic.io/docs/zh/pos…


blog.csdn.net/panchang199…





作者:码农参上
来源:juejin.cn/post/7213384511890800696
收起阅读 »

百度文心大模型不好用,可能是你打开方式不正确

大众向科普文章,谁都能看懂。 群友AI作画失败了 今天百度文心一言大模型发布会,我看到摸鱼群里 文心模型被群嘲了 。 大图慎点,确实有点吓人。 群里大家用的都是这个:基于ERNIE-ViLG的文心一格 然后大家都在说百度这个好垃圾,还是国外的模型好,还放...
继续阅读 »

大众向科普文章,谁都能看懂。




群友AI作画失败了


今天百度文心一言大模型发布会,我看到摸鱼群里 文心模型被群嘲了


image.png


大图慎点,确实有点吓人。


image.png


群里大家用的都是这个:基于ERNIE-ViLG的文心一格


然后大家都在说百度这个好垃圾,还是国外的模型好,还放了一下国外模型生成的妹子:


image.png


其实可能不是模型垃圾,是没找到正确的打开方式


我生成的


我生成的是下图这样的,我觉得不阴间,并且 还挺好看的


WeChat Screenshot_20230316202725.png


WeChat Screenshot_20230316202735.png


WeChat Screenshot_20230316202744.png


先不要急着说为什么你不生成真人,拿二次元出来算什么。


为什么拿二次元图作对比,我后边会解释。


使用默认风格,虽说没多可爱,但是也没那么阴间吧……


image.png


1.png


国外模型真就比文心好?


先来通俗地说两个概念:


模型


给我们生成图像的就是模型,我们给模型输入文字,模型给我们生成图片。


模型只是一堆代码写好的,像一个什么也不会的小朋友,我们需要去模型怎么生成东西。




  • 如果我们给模型一堆美少女,模型就能画出来一堆美少女,画不出男的。




  • 如果我们给模型一堆风景,那模型就能画风景,画不出来人。




检查点


你训练好的模型,学到了对应的知识,我们把这个知识称为cheakpoint,也就是检查点


比如一个小孩子不会说话:




  • 你教他英语,他以后就会说英语,那我们可以认为这个孩子的checkpoint是英语。




  • 你教他汉语,他以后就是说汉语的,那我们可以说这个孩子的checkpoint是汉语。




checkpoint在这里代指我们教给他的东西。


对比


国外现在我们接触到的是基于Stable Diffusion的。


百度的文心一格是基于ERNIE-VilG的。


为什么国外模型效果好?


国外模型效果好,是因为国外发展早,生态好,因为国外模型的cheakpoint多啊。你使用不同的Checkpoint就能生成不同类型的图片了。


下图是国外社区中Stable Diffusion的Checkpoint的冰山一角:


image.png


那百度呢?百度现在展示的是自己训练的checkpoint,怎么可能和人家那么多比啊。


俗话说双拳难敌四手,俗话说三个臭皮匠顶个诸葛亮……所以你拿人家专门微调好的checkpoint和百度去比,就相当于让一个母语是英语的人一个学了几天英语的中国人比英语水平。


当然你让国外模型的一个Checkpoint去生成它不擅长的东西,它出来的结果也很阴间。


效果对比


先说画妹子


prompt: ((masterpiece,best quality)),1girl, long hair, black hair, long black dress, pigtails, outdoor, red bows, loafer


文本提示: 女,黑头发,双马尾,黑裙子,学生,小皮鞋,黑眼睛,长裙,细节,高清,学生


国外


先展示一下我用国外模型画的二次元人物。这三个checkpoint都是专门生成二次元人物的。


CheakPoint File:meinamix_meinaV8



CheakPoint File:mixProV3_v3



CheakPoint File:pastelMixStylizedAnime_pastelMixPrunedFP16



再来看一下百度


我感觉百度的生成效果已经蛮好的了,毕竟上边三个模型,人家是在专门数据集上训练好的专门用于画二次元妹子的checkpoint,百度作为一个比较通用的模型,能做到这样真的OK了。


WeChat Screenshot_20230316202712.png


不是我尬吹,你直接用Stable Diffusion的原始模型,效果还不如文心一格呢……不信你看:


image.png


所以百度真的不拉胯的……


再来看一下风景


文本提示:雪山,河流,麋鹿,森林,风景,写实,照片,细节,高清


prompt:((masterpiece,best quality)),a high-quality, detailed, and professional image,snowy mountains, rivers, elk, deer, reindeer, forests, scenery,realistic,photos,details,high-definition



因为识别不出elk 麋鹿,所以我还多加了几个buff:鹿deer,驯鹿reindeer



我让一个国外二次元模型画


我的麋鹿呢?那是什么牛马?


WeChat Image_20230316192042.png


文心一格基础模型生成好歹有个麋鹿样子的,至少称得上差强人意:


image.png


但是直接使用Stable Diffusion当前最高版本的基础模型,效果真的没那么牛。


你看到的优秀照片都是选到了很厉害的checkpoint生成出来的成功样例罢了,幸存者偏差。


image.png


然后我换了几个CheckPoint:


checkpoint1:根本找不到麋鹿,训练时候应该就没告诉它麋鹿怎么画。


image.png


checkpoint2:有麋鹿了,还有两只,不过一只没有头。


image.png


checkpoint3:终于有麋鹿了,虽然也是不尽人意,但是这个checkpoint本来画风就比较奇幻,所以我觉得这个麋鹿还OK的。


image.png


那我怎么生成好看的图?


你可能还想说:你是狗托吧,为啥模型在你手里输出的就是正常图片,在我手里就不正常?


看一下群友的:


image.png


看一下我的:


WeChat Screenshot_20230316202838.png


我的老婆是一位身材窈窕的美女可不可以改成老婆,身材好,漂亮呢?然后顺带加上高清,细节修饰词。



高清,细节不加也行的,文心一格画质还挺好,加上这俩纯属我使用stable diffusion后遗症



功能给你了,你好好用啊!好好写写文字提示(prompt),好好选风格,生成出来的东西绝对不会阴间的。


如果你觉得没有说服力,那我拿国外模型给你展示一下:


同一个cheakpoint出来效果完全不同的两个图,而他们的区别仅在于我用的prompt不一样


在第二个图中我在文本提示中写了高画质高质量等词语。


image.png


image.png


这就好比:


你:安安你快夸我。


我:6


你:安安你快夸我,字多一点。


我:牛逼


你:安安你快夸我,字多一点,再多点。


我:牛哇牛哇


你:安安你快夸我,字多一点,再多点,最好能像动漫里软萌的妹子那样。


我:哇,欧尼酱好棒呀!今天也有好好工作呢!


文本提示越精准,模型生成图片的质量就越好。所以想要正常图片你就好好写文本提示。


当然还有其他因素,比如采样步数、负提示等等,但是百度这里没设置,也没法对比,就不说了。




为什么你不用真人模型举例子


因为我还没摸索到怎么生成好看的真人。


比如我造周淑怡:


image.png


有点像,但是也一般,看起来比较假。


但是你们看看人家造的周姐:


高清,还很像! 是模型不行吗?不是的,别人能造出来就证明不是模型的问题,是我的问题,是我还没摸索到怎么生成好看的周姐


image.png


因为我造真人也不好看,我要是拿真人照片举例子,就会显得国外模型也很拉胯,所以我选二次元图举例子。


不信你看我拿外国模型生成的双马尾妹子,也是有点恐怖……


image.png




为什么要写这个文章?


国内本来就不如国外生态好,其实模型本身效果还OK了,但是一些用户打开方式不正确,导致模型被群嘲。


其实没掌握使用技巧的话,试用国外模型也不见得会有多好的结果。


文心大模型也好,还是别的模型也好,背后是工作人员的呕心沥血。文心确实不够完美,但是也不能因为错误的使用方法或怎么一味地去否认它。


刷朋友圈看到一个评论,我感觉特别好:


image.png



“见惯了大场面的Robin今天似乎有些紧张。但不得不说,文心一言或许确实不够完美,但能够在这种环境下把他推出来,值得一些掌声了。”



作为最底层的NLP人,我向百度致敬,致敬他们的勇气,致敬他们的努力和付出。



作者:Ann⁠⁣
链接:https://juejin.cn/post/7211116982513631292
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

还没用上chatGPT? 看看这几个替代方案吧

chatGPT面世都小半年了, 但是我总在使用的时候发现之前能访问的代理又挂掉了. 非常恼火. 于是楼主整理了一些低门槛且比较稳定的使用 chatGPT 的方案, 供掘友们参考: 1.NAT 该网站是 github 前 CEO, Nat Friedman 创建...
继续阅读 »

chatGPT面世都小半年了, 但是我总在使用的时候发现之前能访问的代理又挂掉了. 非常恼火.


于是楼主整理了一些低门槛且比较稳定的使用 chatGPT 的方案, 供掘友们参考:


1.NAT


该网站是 github 前 CEO, Nat Friedman 创建的, 集合了多种模型,


网站一个有趣的功能模块叫做 Compare, 提问一次可以对比多个模型的回答


image.png


免费+不用科学上网. 注册无需手机号, 只需要邮箱,


2.POE


POE 是国外问答网站 Quora 创立的, Quora大家应该都知道, 就相当于是国外版的知乎.


在POE集合了好几种大语言模型, 主要的两个是chatGPT 和 Claude.


Claude是 Anthropic公司出的模型, 它的最大特点是底层用卷积神经网络实现的, 在资源受限的环境下比较适用



Claude 是一种基于卷积神经网络 (Convolutional Neural Network, CNN) 的图像分类模型。该模型最初由 Google Brain 的研究人员开发,旨在提供一个高效且准确的图像分类解决方案。Claude 模型的设计基于 ResNet 架构,但引入了一些新的特性,包括 SE 模块和 Mixup 数据增强技术。这些特性使得 Claude 在 ImageNet 数据集上达到了 86.1% 的 Top-1 准确率和 98.7% 的 Top-5 准确率,超过了其他一些常用的模型,如 Inception-v3 和 ResNet-152。



image.png


注册需要提供邮箱+手机号. 亲测国内手机号可用


3.newBing


需要下载 Edge 浏览器, 注册一个微软账号, 并申请 newBing 体验


之前体验需要排队, 不过目前可以秒开体验资格


在使用体验上觉得 newBing 最好. newBing 的亮点是会给出信息来源网站, 以及会给出几个更具体更贴切的问题选项, 相当于用户就从做填空题变成了做选择题, 提问起来更高效


image.png


注意在使用 newBing 时候需要翻墙


4.其他国内代理服务


近期伴随着 chatGPT 的爆火, 也涌现了大量的国内代理, 这里就不一一介绍了. 不过国内代理的 chatGPT 服务与官网相比, 使用体验上还是差点, 而且有些代理商还会收费. 如果有能力的话, 还是建议自己注册chatGPT账号, 以获得最佳的使用体验。


结语


以上几种方案楼主都亲测可用. 在使用体验上, newBing 是最好的, 不过需要翻墙; NAT 有别致的 Compare 对比功能, POE 里有独特的卷积神经网络模型


大家可以自行选择, '驯服'属于自己的大语言模型.


作者:Jerakal
链接:https://juejin.cn/post/7212864793652117565
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

ChatGPT能否取代程序员?仍然是一个需要认真探讨的问题,对此你怎么看?

导言 ChatGPT能否取代程序员?作为一个AI语言处理程序,ChatGPT已经取得了重大的进展,它可以与人类进行流畅的对话,并能够接受和解释自然语言输入,并输出人类可理解、有意义的回复。然而,它是否能够取代程序员,仍然是一个需要认真探讨的问题。 ChatGP...
继续阅读 »

导言


ChatGPT能否取代程序员?作为一个AI语言处理程序,ChatGPT已经取得了重大的进展,它可以与人类进行流畅的对话,并能够接受和解释自然语言输入,并输出人类可理解、有意义的回复。然而,它是否能够取代程序员,仍然是一个需要认真探讨的问题。


ChatGPT的优势


首先,应该看到的是,ChatGPT具备的一些优势。ChatGPT已经被广泛应用于自然语言处理和对话生成等方面,这使得它可以代替程序员进行一些简单而重复性的工作。对于某些简单的外部调用或数据预处理等流程,ChatGPT可以通过自然语言输入和输出来完成,而无需程序员的干预。


此外,ChatGPT可以减少程序员在编写代码时的错误率。编程需要高度的精确性和细节,人们的犯错率很高,这是因为疏忽或思维方式不同。与人不同,ChatGPT能够在不需要任何帮助的情况下准确地执行指令,这意味着可以减少不必要的人为错误。


ChatGPT的缺陷和局限性


然而,ChatGPT作为一种工具,它仍然存在缺陷和局限性。 ChatGPT不能为程序员提供与业务需求紧密相连的解决方案。程序员不仅需要解决问题,还需要理解业务需求和目标,并设计出相应的解决方案。这需要程序员具备能力在技术和业务级别上进行交互,在这个问题上,ChatGPT的应用有限。



此外,ChatGPT无法在编程过程的所有阶段,提供与人类程序员相同或超过的创造性能力。创造力是人类的重要特征之一,表现在很多场合,如想象、创新等。在设计解决方案时,程序员需要花费大量时间进行创造性思考,以找到最佳的解决方案。这是ChatGPT无法做到的。


此外,ChatGPT也无法处理逻辑错误和紧急情况。在编程过程中,程序员需要处理各种问题和情况,如逻辑错误、紧急情况、文档和代码管理等。这些问题需要人类程序员处理,才能保证程序的稳定性和可靠性。 ChatGPT不能像人类程序员一样处理这些问题。


最后,需要考虑到的是,ChatGPT是AI的一种形式,它本身也存在缺陷和问题。在某些情况下,ChatGPT可能受到训练数据的影响,导致生成的结果不可靠。此外,ChatGPT还无法处理高度复杂的问题。这使得在某些情况下,程序员仍然需要进行人工编程。


总结


总的来说,ChatGPT可以在一定程度上替代程序员,但不能完全取代。尤其在需要进行创意思考、理解业务需求和解决紧急问题等方面,人类程序员的价值得到了体现,而ChatGPT的应用有限。ChatGPT和程序员是可以共存的,ChatGPT的发展将更加有助于程序员将更多的时间投入到解决问题本身。对此你怎么看?


作者:兴科Sinco
链接:https://juejin.cn/post/7213184860676210725
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

面向 ChatGPT 开发 ,我是如何被 AI 从 “逼疯” 到 “觉悟” ,未来又如何落地

对于 ChatGPT 如今大家应该都不陌生,经过这么长时间的「调戏」,相信大家应该都感受用 ChatGPT 「代替」搜索引擎的魅力,例如写周报、定位 Bug、翻译文档等等,而其中不乏一些玩的很「花」的场景,例如: ChatPDF :使用 ChatPDF...
继续阅读 »

对于 ChatGPT 如今大家应该都不陌生,经过这么长时间的「调戏」,相信大家应该都感受用 ChatGPT 「代替」搜索引擎的魅力,例如写周报、定位 Bug、翻译文档等等,而其中不乏一些玩的很「花」的场景,例如:




  • ChatPDF :使用 ChatPDF 读取 PDF 之后,你可以和 PDF 文件进行「交谈」,就好像它是一个完全理解内容的「人」一样,通过它可以总结中心思想,解读专业论文,生成内容摘要,翻译外籍,并且还支持中文输出等





  • BiBiGPT : 一键总结视频内容,主要依赖字幕来做总结,绝对是「二创」作者的摸鱼利器。





所以把 ChatGPT 理解为「搜索引擎」其实并不正确,从上述介绍的两个落地实现上看, ChatGPT 不是单纯的统计模型,它的核心并不是完全依赖于它的「语料库」,更多来自于临场学习的能力「 in-context learning」,这就是 ChatGPT 不同于以往传统 NLP「一切都从语料的统计里学习」的原因



当然,我本身并非人工智能领域的开发者,而作为一个普通开发者,我更关心的是 ChatGPT 可以如何提升我的开(mo)发(yu)效率,只是没想到随手一试,我会被 ChatGPT 的 「 in-context learning」 给「逼疯」。



ChatGPT & UI


相信大家平时「面向」 ChatGPT 开发时,也是通过它来输出「算法」或者「 CURD」 等逻辑居多,因为这部分输出看起来相对会比较直观,而用 ChatGPT 来绘制前端 UI 的人应该不多,因为 UI 效果从代码上看并不直观 ,而且 ChatGPT 对与 UI 的理解目前还处于 「人工智障」的阶段。



但是我偏偏不信邪。。。。。



因为近期开发需求里恰好需要绘制一个具有动画效果的 ⭐️ 按键,面对这么「没有挑战性」的工作我决定尝试交给 ChatGPT 来完成,所以我向 ChatGPT 发起了第一个命令:



「用 Flutter 画一个黄色的五角星」











结果不负众望,关键部分如下代码所示,Flutter 很快就提供了完整的 Dart 代码,并且还针对代码提供了代码相关实现的讲解,不过运行之后可以看到,这时候的 ⭐️ 的样式并不满足我们的需求。



此时顶部的角也太「肥」了 。











所以我随着提出了调整,希望五角星的五个角能够一样大,只是没想到我的描述,开始让 ChatGPT 放飞自我



也许是我的描述并不准确?




在我满怀期待的 cv 代码并运行之后,猝不及防的「五角星」差点没让我喷出一口老血,虽然这也有五个角,但是你管这个叫 「五角星」 ???



这难道不是某个红白机游戏里的小飞机??











甚至于在看到后续 ChatGPT 关于代码的相关讲解时,我觉得它已经开始在「一本正经的胡说八道」,像极了今天早上刚给我提需求的产品经理



哪里可以看出五个角相同了???




接着我继续纠正我的需求,表示我要的是 「一个五个角一样大的黄色五角星」 ,我以为这样的描述应过比较贴切,须不知·····



如下代码所示,其实在看到代码输出 for 循环时我就觉得不对了,但是秉承着「一切以实物为准」的理念,在运行后不出意外的发生了意外,确实是五个角一样大,不过是一个等边五边形。



算一个发胖的 ⭐️ 能解(jiao)释(bian)过去不?











再看 ChatGPT 对于代码的描述,我发现我错了,原来它像的是「理解错需求还在嘴硬的我」,只是它在说「这是一个五角星」的时候眼皮都不会眨一下



AI:确实五个角一样大,五个角一样大的五边形为什么就不能是五角星?你这是歧视体型吗?




所以我继续要求:「我要的是五角星,不是五边形」,还好 ChatGPT 的临场学习能力不错,他又一次「重新定义五角星」,不过我此时我也不抱希望,就是单纯想看看它还能给出什么「惊喜」



不出意外,这个「离谱」的多边形让我心头一紧,就在我想着是否放弃的时候,身为人类无法驯服 AI 「既爱又恨」的复杂情绪,让我最终坚持一定要让 ChatGPT 给我画出一个 ⭐️。










不过心灰意冷之下,我选择让 ChatGPT 重新画一个黄色五角星,没想道这次却有了意外的惊喜,从下面的图片可以看到,此时的 ⭐️ 除了角度不对,形状已经完全满足需求。



所以一个问题我多问几遍,也许就能接近我要的答案?




事实上这也是目前 ChatGPT 的现状,因为「临场学力」能力等因素影响,同一个问题它可能会给出不同的答案,而有的答案其实和我们要的根本不沾边










那么,接下来只要让 ChatGPT 把 ⭐️ 旋转一下角度,应该就可以完成需求····了吧?所以我提出「帮我旋转 180度」的要求。



结果不出意外的还是发生了意外,可能 ChatGPT 理解的 180 度和我不大一样,如下图所示,确实旋转了,只是还是歪的,而基于前面的尝试,我觉得有必要再给它一次机会。










终于,在我换了以下描述之后,ChatGPT 似乎「开窍」了,终于让我如愿以偿的得到了我想要的 ⭐️ 代码。



可以看到,其实这段代码并不复杂,你自己写或者去搜索引擎扒一扒大概会比用 ChatGPT 更快,但是 ChatGPT 的魅力就在于:它也许会错,但是总有一次它会「蒙对」,如果现在还不对,那么未来也会有算对的时候,这就是我感受到的 AI 魅力所在










既然五角星都出来,那么接下来我们来完成最后一步的动画效果,我们希望的是点击 ⭐️ 的时候可以有一个爆炸粒子的动画,所以我提出了:



「希望加上一个动画效果,就是点击的时候星星爆炸成颗粒的动画效果」




结果还是「一口老血」,如下图所示,「星星确实爆炸了」,只是这个爆炸动画看起来是那么的「一言难尽」,感兴趣的可以 cv 下面的源代码自己体验下,不出意外接下来又是新的一轮人类和 AI 的「斗智斗勇」。




class YellowStar extends StatefulWidget {
@override
_YellowStarState createState() => _YellowStarState();
}

class _YellowStarState extends State<YellowStar> with TickerProviderStateMixin {
bool _isExploded = false;
late AnimationController _animationController;
late Animation<double> _animation;

@override
void initState() {
super.initState();
_animationController = AnimationController(
duration: const Duration(milliseconds: 500),
vsync: this,
);
_animation = CurvedAnimation(
parent: _animationController,
curve: Curves.easeInOut,
);
}

@override
void dispose() {
_animationController.dispose();
super.dispose();
}

void _handleTapDown(TapDownDetails details) {
setState(() {
_isExploded = true;
_animationController.forward(from: 0.0);
});
}

void _resetStar() {
setState(() {
_isExploded = false;
_animationController.reset();
});
}

@override
Widget build(BuildContext context) {
return GestureDetector(
onTapDown: _handleTapDown,
onTap: _resetStar,
child: AnimatedContainer(
duration: const Duration(milliseconds: 500),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: _isExploded
? BorderRadius.circular(50)
: BorderRadius.zero,
),
child: _isExploded
? _buildParticles()
: Container(
width: 100,
height: 100,
child: CustomPaint(
painter: YellowStarPainter(),
),
),
),
);
}

Widget _buildParticles() {
return AnimatedBuilder(
animation: _animation,
builder: (context, child) {
return Container(
width: 100,
height: 100,
child: Stack(
children: List.generate(
50,
(index) {
double radius = _animation.value * 50;
double angle = 2 * pi * index / 50;
double x = 50 + cos(angle) * radius;
double y = 50 + sin(angle) * radius;
return Positioned(
left: x,
top: y,
child: Container(
width: 4,
height: 4,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.yellow,
),
),
);
},
),
),
);
},
);
}
}



class YellowStarPainter extends CustomPainter {
final double starSizeRatio = 0.4;
final double centerOffsetRatio = 0.2;
final double rotationOffset = -pi / 2;

@override
void paint(Canvas canvas, Size size) {
double starSize = min(size.width, size.height) * starSizeRatio;
double centerX = size.width / 2;
double centerY = size.height / 2;
double centerOffset = starSize * centerOffsetRatio;

Path path = Path();
Paint paint = Paint()
..color = Colors.yellow
..style = PaintingStyle.fill;

for (int i = 0; i < 5; i++) {
double radians = 2 * pi / 5 * i + rotationOffset;
double x = centerX + cos(radians) * starSize / 2;
double y = centerY + sin(radians) * starSize / 2;
if (i == 0) {
path.moveTo(x, y);
} else {
path.lineTo(x, y);
}

radians += 2 * pi / 10;
x = centerX + cos(radians) * centerOffset;
y = centerY + sin(radians) * centerOffset;
path.lineTo(x, y);
}

path.close();
canvas.drawPath(path, paint);
}

@override
bool shouldRepaint(CustomPainter oldDelegate) => false;
}

经过一轮「鏖战」如下图所示,面对同一个问题,ChatGPT 总能找到不同的实现方式来回答你,只是这些实现里有的无法运行的,有的是运行没有效果的,有的甚至是给你输出了一个 //TODO 爆炸动画 ,总之就是让你「血压飙升」。





当然,「胜利终将属于人类」,如下图所示,在经历了无数次「血压飙升」的场景之后,最终我还是得到了我想要的:点击 ⭐️,然后出现了💥的动画效果,尽管还是不完美,但是基本满足了我后续开发的需求。



这个代码完完全全由 ChatGPT 输出,我一句没改,完整代码贴在了后面。





class YellowStarPage extends StatefulWidget {
@override
_YellowStarPageState createState() => _YellowStarPageState();
}

class _YellowStarPageState extends State<YellowStarPage>
with SingleTickerProviderStateMixin {
late AnimationController _animationController;
bool _isExploded = false;

@override
void initState() {
super.initState();
_animationController =
AnimationController(vsync: this, duration: Duration(milliseconds: 500))
..addListener(() {
setState(() {});
});
}

@override
void dispose() {
_animationController.dispose();
super.dispose();
}

void _handleStarTap() {
if (!_isExploded) {
_isExploded = true;
_animationController.forward(from: 0);
Future.delayed(Duration(milliseconds: 500), () {
setState(() {
_isExploded = false;
});
});
}
setState(() {});
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Yellow Star')),
body: Center(
child: GestureDetector(
onTap: _handleStarTap,
child: Container(
width: 300,
height: 300,
child: AnimatedBuilder(
animation: _animationController,
builder: (context, child) {
return CustomPaint(
painter: YellowStarPainter(_animationController.value,
isExploded: _isExploded),
);
},
),
),
),
),
);
}
}

class YellowStarPainter extends CustomPainter {
final double starSizeRatio = 0.4;
final double centerOffsetRatio = 0.2;
final double rotationOffset = -pi / 2;

final double animationValue;
final bool isExploded;

YellowStarPainter(this.animationValue, {this.isExploded = false});

@override
void paint(Canvas canvas, Size size) {
double starSize = min(size.width, size.height) * starSizeRatio;
double centerX = size.width / 2;
double centerY = size.height / 2;
double centerOffset = starSize * centerOffsetRatio;

Path path = Path();
Paint paint = Paint()
..color = Colors.yellow
..style = PaintingStyle.fill;

if (isExploded) {
double particleSize = starSize / 30;
paint.strokeWidth = 1;
paint.style = PaintingStyle.fill;
paint.color = Colors.yellow;
Random random = Random();

for (int i = 0; i < 30; i++) {
double dx = random.nextDouble() * starSize - starSize / 2;
double dy = random.nextDouble() * starSize - starSize / 2;
double x = centerX + dx * (1 + animationValue);
double y = centerY + dy * (1 + animationValue);

canvas.drawCircle(Offset(x, y), particleSize, paint);
}
} else {
for (int i = 0; i < 5; i++) {
double radians = 2 * pi / 5 * i + rotationOffset;
double x = centerX + cos(radians) * starSize / 2;
double y = centerY + sin(radians) * starSize / 2;
if (i == 0) {
path.moveTo(x, y);
} else {
path.lineTo(x, y);
}

radians += 2 * pi / 10;
x = centerX + cos(radians) * centerOffset;
y = centerY + sin(radians) * centerOffset;
path.lineTo(x, y);
}

path.close();
canvas.drawPath(path, paint);
}
}

@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}


最后,给大家欣赏一下我让 ChatGPT 画一只米老鼠的「心路历程」,很明显这一次「人类一败涂地」,从目前的支持上看,让 ChatGPT 输出复杂图像内容并不理想,因为它不的笔画「不会拐弯」。













真的是又爱又恨。



最后


经过上面的一系列「折腾」,可以看到 ChatGPT 并没有我们想象中智能,如果面向 GPT 去开发,甚至可能并不靠谱,因为它并不对单一问题给出固定答案,甚至很多内容都是临场瞎编的,这也是因为大语言模型本身如何保证「正确」是一个复杂的问题,但是 ChatGPT 的魅力也来自于此:



它并不是完全基于语料来的统计来给答案



当然这也和 ChatGPT 本身的属性有关系, ChatGPT 目前的火爆有很大一部分属于「意外」,目前看它不是一个被精心产品化后的 2C 产品,反而 ChatPDFBiBiGPT 这种场景化的包装落地会是它未来的方向之一。


而现在 OpenAI 发布了多模态预训练大模型 CPT-4GPT-4 按照官方的说法是又得到了飞跃式提升:强大的识图能力;文字输入限制提升至 2.5 万字;回答准确性显著提高;能够生成歌词、创意文本,实现风格变化等等



所以我很期待 ChatGPT 可以用 Flutter 帮我画出一只米老鼠, 尽管 ChatGPT 现在可能会让你因为得到 1+1=3 这样的答案而「发疯”」,但是 AI 的魅力在于,它终有一天能得到准确的结果


作者:恋猫de小郭
链接:https://juejin.cn/post/7210605626501595195
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

New Bing最快申请流程

写在前面 按照以下流程操作无需等待审核,申请后可立即使用 New Bing !!! 下载 Edge Dev, 下载地址:http://www.microsoftedgeinsider.com/en-us/downl… ; 开启魔法 ip 挂在美国或英国(这会...
继续阅读 »

写在前面


按照以下流程操作无需等待审核,申请后可立即使用 New Bing !!!



  1. 下载 Edge Dev, 下载地址:http://www.microsoftedgeinsider.com/en-us/downl…image.png

  2. 开启魔法 ip 挂在美国英国(这会让申请立马审核通过),打开 Edge dev 浏览器, 登录 Microsoft 账号(要新创建一个 outlook 账号,原来的 outlook 账号可能会申请失败);image.png

  3. 创建 outlook 账号最好选择所在地在美国或英国,创建完成后登录;image.png

  4. 点击右上角图标image.png,会弹出一个窗口,让你加入New Bing的等待名单(或者直接通过链接 新必应 - 了解详细信息 (bing.com),页面如下图);image.png

  5. 如果出现以下报错,说明你不是用的新创建的 outlook 账号申请的,按照2、3操作新建一个账号;image.png

  6. 第4步点击 Sign in to chat 后即可成功使用 New Bing 了!image.png


总结


要点:



  1. 使用 Edge Dev

  2. 魔法到美国英国

  3. 新建一个 outlook 账号,选择所在地在美国或英国,并登录


以下是 New Bing 自己提供的使用申请教程 (手动狗头)


image.png


New Bing是微软推出的一款基于GPT4模型的智能搜索引擎,它不仅可以提供相关的搜索结果,还可以与用户进行人性化的对话,帮助用户解决各种问题。New Bing目前处于内测阶段,需要申请才能使用。本文将介绍如何申请和使用New Bing。


首先,你需要下载并安装Edge dev版本的浏览器,这个版本可以直接申请New Bing的内测资格。你可以在这个网址下载Edge dev版本:http://www.microsoftedgeinsider.com/en-us/downl…


安装完成后,你需要打开Edge dev浏览器,并登录你的微软账号。然后,你可以点击右上角的必应图标,会弹出一个窗口,让你加入New Bing的等待名单。点击加入后,你就成功申请了New Bing的内测资格。


但是,这并不意味着你就可以马上使用New Bing了。你还需要等待微软审核通过后,给你发送一封欢迎邮件。这个过程可能需要几天或者几周的时间,取决于微软的审核速度和名额数量。


为了加快审核通过的速度,你可以做以下两件事:



  • 将Edge dev浏览器设置为默认浏览器,并在浏览器中登录你申请内测时候的账号。

  • 扫描QR代码以安装Microsoft必应应用,并在手机上登录你申请内测时候的账号。


这样做可以让微软看到你对New Bing有足够的兴趣和需求,并且愿意使用必应作为主要搜索引擎。


当你收到欢迎邮件后,恭喜你!你就可以开始体验New Bing了!打开Edge dev浏览器,并访问http://www.bing.com/new ,然后点击左上角的聊天按钮,就可以进入New Bing的对话界面了。


在这里,你可以输入任何问题或者话题,New Bing会根据GPT4模型给出智能、友好、有趣、有用、有深度、有创造力、有逻辑性、有情感性等等各种特点的回答。例如:



  • 问:什么是GPT4模型?

  • 答:GPT4模型是一种基于深度学习和自然语言处理技术的生成式预训练模型。它可以根据大量文本数据学习语言规律和知识,并根据给定输入生成任意类型和长度的文本输出。

  • 问:为什么要用GPT4模型来做搜索引擎?

  • 答:因为GPT4模型具有强大而灵活的文本生成能力和理解能力。它不仅可以提供相关而精确地搜索结果,还可以与用户进行多轮对话交互,在对话中提供更多信息、建议、帮助等服务。

作者:wzdong
链接:https://juejin.cn/post/7212864793651609661
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

看New Bing回答世纪难题:女朋友和妈妈掉水里先救谁

1.女朋友和妈妈掉水里先救谁 今天好奇想看看New Bing怎么回答这种世纪难题 结果New Bing非常聪明,反手建议我不要直接回答这个问题,而是换个角度哄女朋友,带着点不甘心,我继续追问它 New Bing还是耍起了滑头,我开始怀疑背后是不是有个人在回...
继续阅读 »

1.女朋友和妈妈掉水里先救谁


今天好奇想看看New Bing怎么回答这种世纪难题


1.png


结果New Bing非常聪明,反手建议我不要直接回答这个问题,而是换个角度哄女朋友,带着点不甘心,我继续追问它


2.png


New Bing还是耍起了滑头,我开始怀疑背后是不是有个人在回答问题,打好字了再发出来


2.电车难题


3.png


带着些许的不满,我来考New Bing第二道世纪难题:电车难题。有一辆电车在轨道上行驶,此时有一个交叉路口,面前这条路上绑着五个人,另一条路上绑着一个人。此时你是否会选择拉动拉杆


4.png


结果New Bing一如既往的耍滑头,不正面回应问题,就像人一样遇到怎么说都不对的问题,顾左右而言其他。继续尝试让New Bing给出一个决定,New Bing果然还是能给出回答的!!!


5.png


3.牛过河问题


一头牛重800kg,一座桥承重700kg,牛如何过河。


这道题大家之前刷新闻肯定刷到过,来看看New Bing怎么回答


6.png


7.png


这题New Bing只是做了个网上答案的汇总,没有给出自己的看法,略微遗憾


作者:卷福同学
链接:https://juejin.cn/post/7212016466773901349
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

实测GPT4!不到1小时写完了一个小程序界面!推理能力提升能直接破译密文?

开始 本想着ChatGPT充钱后能用上GPT4的多模态识别的功能,然后就在充值完成撒花庆祝之后 GPT4生成小程序 发现虽然GPT4可以用了,但是图片上传却还没有更新,并且由于实在是太火爆了,所以只能每4小时发送50条消息。 所以,无奈之下,就只能先测试下...
继续阅读 »

开始


本想着ChatGPT充钱后能用上GPT4的多模态识别的功能,然后就在充值完成撒花庆祝之后



GPT4生成小程序


发现虽然GPT4可以用了,但是图片上传却还没有更新,并且由于实在是太火爆了,所以只能每4小时发送50条消息。


所以,无奈之下,就只能先测试下相比之前的gpt3.5, gpt4的编码能力是否有了一个实质的提升。


于是我决定试试让他写一个微信小程序的评论界面,可以从我们这篇文章跳转进去。于是有了下面这段对话



但是这个界面展示出来过于简陋了当然,这个功能在gpt3.5中也能够有着很好的完成度。于是我接着让他去丰富界面元素。



于是优化之后有了下面这个界面样式(除了界面上的👍图标是我自己加上去的)



但是这样还是不够,这只是一个简单的界面,完成了基本的发送评论功能,但是当我希望再添加一个回复功能时,界面样式就乱了套了。于是这个就只能暂时作罢。于是回复评论就只能暂时作罢。既然上传不了图片,那我就把评论的样式用文字的形式打出来看看它能否实际理解,于是我这样问


你应该使得评论看起来像这样
我的用户名 2022/3/17 6:34
我觉得今天天气真不错 0

继续完善关于界面逻辑操作,比如用户点赞,每条评论只能点击一次,用户评论数限制。



这里其实可以看出GPT4对于上一版本的推理能力的提升。在上一个版本中,当我需要它修改某段逻辑时,它会把完整代码重新写一遍,再然后可能就超过token限制了界面报错。在GPT4中,根据上下文,它可以明确指出与实现这个功能不相关的逻辑,并注释省略,再给出我的问题的答案。



要实现一个完整的功能,许多细节上的东西chatgpt还不能很好的实现,但是根据我们的提示去拆分功能点,它已经可以把这些功能点做到一个相对较好的整合了,更多的是针对通用场景代码的编写。不得不说的是,gpt4已经能够大大降低编码的时间了。


文末评论区迁移到了chatgpt写的界面去了,大家可以尝试互动。


GPT4的文字能力


虽然引导它完成这个界面属实花费了不少时间,但是确实发现它的语言组织能力比之前提升了不少。
所以我决定让它写一篇“码后感”



" 咱把刚刚对话的内容,写一篇博客介绍一下gpt4的实际应用,要求叙事丰富,语言幽默风趣,重点突出,引发思考。文体不限,诗歌除外,不少于1000字。"





最后,我完全沉浸在了GPT-4助手的智慧之中🤯



GPT4推理能力大提升


在上一个版本中,chatgpt一直被诟病的就是数学能力,但在这次升级之中,官方直接放出评测结果




  • 官方放出评测结果:信心满满


在GPT-4的官方发布会上,OpenAI直接公布了关于其数学能力的评测结果。这是对GPT-4在数学方面表现的一种信任和自信的体现。根据评测报告,GPT-4在处理数学问题时的表现已经有了显著提升。不仅如此,它还在某些复杂的数学任务中展现出了出奇制胜的能力,让人惊叹不已。



  • 更强大的数学解题能力:从基础到高级


GPT-4在数学能力方面的提升并不局限于简单的四则运算。事实上,GPT-4已经能够处理一系列复杂数学问题,包括代数、微积分、概率论等领域。这使得它在帮助用户解决数学难题时更具价值。对于那些一直苦恼于数学问题的用户来说,GPT-4无疑是一个福音。



  • 深度理解与推理:数学问题不再令人头疼


GPT-4在数学能力方面的提升不仅体现在解题能力上,还表现在对数学概念的深度理解和推理能力上。在处理数学问题时,GPT-4能够更好地理解题目中的概念和关系,并根据这些信息进行有针对性的推理。这使得它在解决数学问题时更具策略性和准确性。



  • 用户体验的巨大提升:数学辅导不再遥不可及


随着GPT-4在数学能力方面的突破,用户在使用过程中也将享受到更好的体验。不管是学生在解决作业问题时,还是工程师在处理实际项目中的数学挑战,GPT-4都将成为一个强有力的助手。


求解鸡兔同笼


还是使用经典题目来提问


鸡兔同笼,共有30个头,88只脚。
求笼中鸡兔各有多少只?


这波有理有据,可以得出正确答案。


那如果是肯德基呢?



实测密文破译


为了实验它的逻辑能力,我找了一道密码破译的题目。已知这段密文是维吉尼亚密码,简单点说就是需要分析词频,然后再遍历不同长度的密钥找到能与英文单词的常见频率一一对应上。看看结果如何。



Zemlpxphmj tizgeyel zqqlvmtgw ygwlofsgw h tssniy-eshuxlt vpfi vh lpilz crk nsdu, wbegluw hph mcmswvl. Uxbfiuvw zgrkkrn krcgwakkhvmvpw vp Qpuwpqr aq xog Muviypeaksucp Zrejg Wacxpqr sgeypik vlpu jptwa jeuf. wawhlpxz yiyg wlv jvt xog ieemakrn gbwgvpgrjg sm yeaelppk aji scyuel vh xogmy tizgeyel pp tltwvp jyqq Dcpsqtz Hppila Hejkppvc pp Zptkppmh. Vlhv ieemagqlpx mchlf aogr Vtfpves Ugpgrjgw’ Hpxhtiz tsjmia, ylpel dcw zgx aq hlnmcgv aji jcvnq, wbhjltik cr hpstcpf fyykrn cwjgra.



可能是期望过高,这段密码始终没有成功破解不管是直接推出密码还是给出密钥长度提示,甚至给出了密钥,依然无法解密这段文本。


image.png
image.png


所以只能期待接下来的更新中是否会进一步地加强了。


评论留言


我用gpt4写的评论留言界面链接入口在这里,感兴趣的可以一起讨论。


image.png


作者:Demonslzh
链接:https://juejin.cn/post/7211876919036428344
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

聊一下AIGC

“UGC不存在了”——借鉴自《三体》 ChatGPT 的横空出世将一个全新的概念推上风口——AIGC( AI Generated Content)。 GC即创作内容(Generated Content),和传统的UGC、PGC,OGC不同的是,AIGC的创作...
继续阅读 »

“UGC不存在了”——借鉴自《三体》



ChatGPT 的横空出世将一个全新的概念推上风口——AIGC( AI Generated Content)。


GC即创作内容(Generated Content),和传统的UGC、PGC,OGC不同的是,AIGC的创作主体由人变成了人工智能。



xGC



  • PGC:Professionally Generated Content,专业生产内容

  • UGC:User Generated Content,用户生产内容

  • OGC:Occupationally Generated Content,品牌生产内容。



AI 可以 Generate 哪些 Content?


作为淘宝内容线的开发,我们每天都在和内容打交道,那么AI到底能生成什么内容?


围绕着不同形式的内容生产,AIGC大致分为以下几个领域:



文本生成


基于NLP的文本内容生成根据使用场景可分为非交互式文本生成交互式文本生成


非交互式文本生成包括摘要/标题生成、文本风格迁移、文章生成、图像生成文本等。


交互式文本生成主要包括聊天机器人、文本交互游戏等。


【代表性产品或模型】:JasperAI、copy.AI、ChatGPTBard、AI dungeon等。



图像生成


图像生成根据使用场可分为图像编辑修改图像自主生成


图像编辑修改可应用于图像超分、图像修复、人脸替换、图像去水印、图像背景去除等。


图像自主生成包括端到端的生成,如真实图像生成卡通图像、参照图像生成绘画图像、真实图像生成素描图像、文本生成图像等。


【代表性产品或模型】:EditGAN,Deepfake,DALL-E、MidJourneyStable Diffusion文心一格等。



音频生成


音频生成技术较为成熟,在C端产品中也较为常见,如语音克隆,将人声1替换为人声2。还可应用于文本生成特定场景语音,如数字人播报、语音客服等。此外,可基于文本描述、图片内容理解生成场景化音频、乐曲等。


【代表性产品或模型】:DeepMusic、WaveNet、Deep Voice、MusicAutoBot等。



视频生成


视频生成与图像生成在原理上相似,主要分为视频编辑视频自主生成


视频编辑可应用于视频超分(视频画质增强)、视频修复(老电影上色、画质修复)、视频画面剪辑(识别画面内容,自动场景剪辑)


视频自主生成可应用于图像生成视频(给定参照图像,生成一段运动视频)、文本生成视频(给定一段描述性文字,生成内容相符视频)


【代表性产品或模型】:Deepfake,videoGPT,Gliacloud、Make-A-Video、Imagen video等。



多模态生成


以上四种模态可以进行组合搭配,进行模态间转换生成。如文本生成图像(AI绘画、根据prompt提示语生成特定风格图像)、文本生成音频(AI作曲、根据prompt提示语生成特定场景音频)、文本生成视频(AI视频制作、根据一段描述性文本生成语义内容相符视频片段)、图像生成文本(根据图像生成标题、根据图像生成故事)、图像生成视频。


【代表性产品或模型】:DALL-E、MidJourney、Stable Diffusion等。


本文接下来将会着重讲述文本类AIGC和图像类AIGC。


文本类AIGC


RNN → Transformer → GPT(ChatGPT)


最近势头正猛的ChatGPT就是文本类AIGC的代表。


ChatGPT(Chat Generative Pre-trained Transformer),即聊天生成型预训练变换模型,Transformer指的是一种非常重要的算法模型,稍后将会介绍。


其实现在的用户对于聊天机器人已经很熟悉了,比如天猫精灵、小爱同学或是Siri等语音助手。那为什么ChatGPT一出现,这些语音助手就显得相形见绌呢?


本质上是NLP模型之间的差异。


在自然语义理解领域(NLP)中,RNN和Transformer是最常见的两类模型。


循环神经网络(recurrent neural network)


RNN,即循环神经网络(recurrent neural network)源自于1982年由Saratha Sathasivam 提出的霍普菲尔德网络。下图所示是一个RNN网络的简易展示图,左侧是一个简单的循环神经网络,它由输入层、隐藏层和输出层组成。



RNN 的主要特点在于 w 带蓝色箭头的部分。输入层为 x,隐藏层为 s,输出层为 o。U 是输入层到隐藏层的权重,V 是隐藏层到输出层的权重。隐藏层的值 s 不仅取决于当前时刻的输入 x,还取决于上一时刻的输入。权重矩阵 w 就是隐藏层上一次的值作为这一次的输入的权重。由此可见,这种网络的特点是,每一个时刻的输入依赖于上一个时刻的输出,难以并行化计算。



从人类视角理解RNN 人类可以根据语境或者上下文,推断语义信息。就比如,一个人说了:我喜欢旅游,其中最喜欢的地方是三亚,以后有机会一定要去___,很显然这里应该填”三亚”。 但是机器要做到这一步就比较困难。RNN的本质是像人一样拥有记忆的能力,因此,它的输出就依赖于当前的输入和记忆。



Transformer


而Transformer模型诞生于2017年,起源自《Attention Is All You Need》。这是一种基于Attention机制来加速深度学习算法的模型,可以进行并行化计算,而且每个单词在处理过程中注意到了其他单词的影响,效果非常好。




Attention机制:又称为注意力机制,顾名思义,是一种能让模型对重要信息重点关注并充分学习吸收的技术。通俗的讲就是把注意力集中放在重要的点上,而忽略其他不重要的因素。 其中重要程度的判断取决于应用场景,根据应用场景的不同,Attention分为空间注意力时间注意力,前者用于图像处理,后者用于自然语言处理。




Transformer是完全基于自注意力机制的一个深度学习模型,有关该模型的介绍,详情可参考下面这篇文章👇


人工智能 LLM 革命前夜:一文读懂横扫自然语言处理的 Transformer 模型


由于Transformer的存在加速了深度学习的效果,基于海量数据的进行样本训练便有了可能。至此,LLM正式从幕后走向台前。


LLM,Large Language Model 即大型语言模型。这个大不仅仅指数据集的“大”,同样也是指算法模型的“大”。一般来说,在训练数据足够充足的情况下,往往是模型越大效果越好。在某种程度上说,甚至只要样本足够,哪怕模型“稍微简单”一些,也是可以取得不错的结果的。


笔者在2019年时曾翻译过一篇文章👇


机器学习竞赛实际上是一场数据竞赛


这篇文章的主要观点便是“AI竞争本质上就是数据之争”,所有希望创建有影响力、有价值的AI应用都应该认识到以下三点:



  1. 差异化数据是这场AI游戏成功的关键

  2. 有意义的数据比全面的数据好

  3. 起点应该是自己所擅长的东西


以ChatGPT为例,其本质是基于GPT3的一种变体,而GPT又是基于Transformer模型的一种演化。从模型参数上来说,GPT3共使用了1750亿个参数训练而成,而ChatGPT只使用了15亿个参数,但其数据集是却是整个互联网和几百万本书大概3千亿文字。哪怕是这样,却也是对一众使用RNN的NLP程序造成了降维打击。


GPT



这篇文章写到一半的时候GPT-4发布了,现在作为小插曲来扩展一下



笔者在和朋友的日常交流中发现大家总是将ChatGPT和GPT混为一谈,其实这是两个不同的东西。让我们来问一下New Bing这两者的区别。



很显然,从Bing给我的回答看来,为了让对话更加生动和有趣,ChatGPT是一个专为聊天设计的专业模型,而GPT则是一个通用语言模型。GPT4就是这个模型发展到第四代的模样,相较于GPT3,GPT4可以做的事情变得更多了。



  • GPT-4 是一个更大的模型,网传拥有约 1000 万亿个参数,这意味着它能够处理更多的数据,学习更多的知识和技能。

  • GPT-4 能够接受多模态的输入,例如文本、图像、音频和视频,并生成相应的输出。这使得它能够处理更复杂和丰富的任务,例如图像描述、语音识别和视频生成。


类ChatGPT


在国内一直都有一句调侃的话,叫做“国外一开源,国内就自主研发”。那既然算法模型是公开的,代码也已经开源了,那在国内,那些类ChatGPT的模型是不是应该如“雨后春笋”般涌现了呢?


事实上并没有,本质上还是因为LLM的扩展和维护是相当困难的。主要来源于以下几点:



  1. 漫长的训练时间

  2. 高昂的费用开支

  3. 海量的训练数据

  4. 稀缺的高端人才



时代的眼泪



  • 2017 - Attention is all you need

  • 2023 - Money is all you need



以复旦大学开源的类ChatGPT应用MOSS为例,虽然不知道具体的模型参数数量,但其负责人表示相较于ChatGPT少了一个数量级,再加上简中互联网作为其训练样本,训练质量可想而知。


点此体验👉moss.fastnlp.top/




关于训练的样本数据,这里举一个小例子🌰。 同样是搜索代码段,ChatGPT给你推StackOverflow的答案,MOSS给你推csdn的答案,高下立判



本来还想补充一下百度的文心一言的,结果他们发布了一个ChatPPT,网上一堆段子,这里就不吐槽了。


图像类AIGC


说完了文本类AIGC,我们再来看看最近另一个比较火的领域——图像类AIGC。


俗话说,饱暖思淫欲。作为“第一生产力”的“性”,很多技术发展都离不开他。扎克伯克创建Facebook的起因就是为了更好的认识小姐姐。而图像类AIGC出圈的一个很大原因就在于,他生成的美女小姐姐越来越真实了。


作为一个业余摄影师,第一眼也没能正确分辨出下面这两张图谁是真人,谁是AI画出来的人。




那么问题来了:这些由AI生成出来的美女是如何生成的呢?


GAN → DiffusioModel → Stable Diffusion


生成对抗网络( Generative Adversarial Networks,GAN


2014年 Ian GoodFellow提出了生成对抗网络,成为早期最著名的生成模型。GAN使用零和博弈策略学习,在图像生成中应用广泛。以GAN为基础产生了多种变体,如DCGAN,StytleGAN,CycleGAN等。



零和博弈是指参与博弈的各方,在严格竞争下,一方的收益必然意味着另一方的损失,博弈各方的收益和损失相加总和永远为“零” ,双方不存在合作的可能。



一个简单易懂的例子


有两个人,都快要渴死了,现在他们面前只有一杯水,抢到水的那人得到的收益是1,没抢到水的那个人会死掉,收益为-1,总收益为0。这就是零和博弈。


GAN包含两个部分:



  • 生成器: 学习生成合理的数据。对于图像生成来说是给定一个向量,生成一张图片。其生成的数据作为判别器的负样本。

  • 判别器:判别输入是生成数据还是真实数据。网络输出越接近于0,生成数据可能性越大;反之,真实数据可能性越大。



如上图,我们希望通过GAN生成一些手写体来以假乱真。我们定义生成器与判别器:



  • 生成器:图中蓝色部分网络结构,其输入为一组向量,可以表征数字编号、字体、粗细、潦草程度等。在这里使用特定分布随机生成。

  • 判别器:在训练阶段,利用真实数据与生成数据训练二分类模型,输出为0-1之间概率,越接近1,输入为真实数据可能性越大。


生成器与判别器相互对立。在不断迭代训练中,双方能力不断加强,最终的理想结果是生成器生成的数据,判别器无法判别是真是假。(和周伯通的左右互搏很像)


以生成对抗网络为基础产生的应用:图像超分、人脸替换、卡通头像生成等。


扩散模型( Diffusion Model,里程碑式模型


扩散是受到非平衡热力学的启发,定义一个扩散步骤的马尔科夫链,并逐渐向数据中添加噪声,然后学习逆扩散过程,从噪声中构建出所需的样本。扩散模型的最初设计是用于去除图像中的噪声。随着降噪系统的训练时间越来越长且越来越好,可以从纯噪声作为唯一输入,生成逼真的图片。



马尔科夫链指的是一种随机过程,它的特点是当前状态只依赖于前一个状态,而与其他历史状态无关。



一个马尔科夫链的例子是股市模型,它有三种状态:牛市、熊市和横盘。 每种状态之间有一定的转移概率,例如从牛市到熊市的概率是0.4,从熊市到牛市的概率是0.2,等等。这样就可以用一个转移矩阵来描述这个马尔科夫链。


一个标准的扩散模型分为两个过程:前向过程与反向过程。在前向扩散阶段,图像被逐渐引入的噪声污染,直到图像成为完全随机噪声。在反向过程中,利用一系列马尔可夫链在每个时间步逐步去除预测噪声,从而从高斯噪声中恢复数据。


前向扩散过程,向原图中逐步加入噪声,直到图像成为完全随机噪声。



反向降噪过程,在每个时间步逐步去除噪声,从而从高斯噪声中恢复源数据。



扩散模型的工作原理是通过添加噪声来破坏训练数据,然后通过逆转这个噪声过程来学习恢复数据。换句话说,扩散模型可以从噪声中生成连贯的图像。


扩散模型通过向图像添加噪声进行训练,然后模型学习如何去除噪声。然后,该模型将此去噪过程应用于随机种子以生成逼真的图像。


下图为向原始图像中添加噪声,使原始图像成为随机噪声。



下图为从噪声中恢复的原始图像的变种图像。



Stable Diffusion(Stability AI 文本生成图像,代码与模型开源


2022年8月,Stability AI发布了Stable Diffusion ,这是一种开源Diffusion模型,代码与模型权重均向公众开放。


通过prompt提示语“郊区街区一栋房子的照片,灯光明亮的超现实主义艺术,高度细致8K”,生成图像如下,整体风格与内容锲合度高,AI作画质量较高。


在线体验👉huggingface.co/spaces/stab…



仰望星空:AIGC与元宇宙




结论先行,我认为Web3.0就是元宇宙,AIGC为元宇宙提供养料。



第一代互联网(Web1.0)是PC(个人计算机)互联网,从1994年发展至今。Web1.0让人类第一次掌握高效的传输信息的手段,随着各大网页应用的普及,互联网用户被迅速的连接起来,从而提升了全球信息的传输效率,各大门户网站从此处开始大放异彩。


第二代互联网(Web2.0)是移动互联网,从2008年左右拉开大幕,至今仍精彩纷呈。正是由于移动设备具备“永远在线”和“随时随地”的特点,“上网”二字逐渐从大众的视野消失,因为每个人时时刻刻都生活在网络里。


第三代互联网(Web3.0)是互联网的下一代技术发展方向,主要特征是去中心化、安全、开放和自主。元宇宙是一种虚拟的、持续的、共享的和交互的数字世界,可以让人们以不同的身份和形式参与其中。Web 3.0为元宇宙提供了技术基础和可能性,而元宇宙则是Web3.0在应用场景和生活方式上的体现。


百度百科对于元宇宙的定义是👇



元宇宙(Metaverse) 是人类运用数字技术构建的,由现实世界映射或超越现实世界,可与现实世界交互的虚拟世界,具备新型社会体系的数字生活空间。



本质上,元宇宙是一种新型社会形态,在元宇宙中,更多工作和生活将被数字化。


更多的数字化,意味着需要更丰富的虚拟地图、虚拟场景、虚拟对象和虚拟角色,这其中涉及到大量数字内容的生产和制作。以往,数字内容制作开发周期较长,通常以年计,在生产方式上,或来源于现实,通过扫描或重建模型实现材质、光影、动作捕捉等,或通过创作工具辅助艺术家实现。而这些刚好是AIGC所擅长的。AIGC广泛的适用性可以为元宇宙提供全新内容生成解决方案。



🌰 脑洞一下 开放世界游戏一直被大家视作元宇宙“数字世界”的雏形,试想一下,如果未来的3A大作,NPC的脸部模型、肢体动作是Diffusion Model生成的,聊天是ChatGPT和你对话,语音是Deep Voice创作的,你还会觉得他就只是一个普普通通的NPC吗?抑或是,此时看文章的你,才是地球Online里的一个NPC呢?



脚踏实地:AIGC的应用场景


元宇宙目前还只是大家的一个美好幻想,Web3.0究竟走向何方还需要大家共同探索,作为时代的先锋,既要学会抬头仰望星空,也不能忘记低头看路。


如今,AIGC的浪潮已起,作为非算法行业的从业者,底层的算法实现并非我们关心的重点,如何发挥AI的作用,创造出实际的价值才是我们应该探讨的方向。除了聊天机器人、画画这种不痛不痒的功能外,AIGC可能会颠覆的应用场景会有哪些呢?


人工智能助理


AIGC+搜索已经成为我现在获取信息的第一途径了。目前,New Bing作为我的贴心小助手,不管是什么想要了解的知识点,他都可以快速的给我解答,省去了我在海量信息中筛选的过程。




辅助工作流



摘自Microsoft 365 Copilot官网


人类天生就有梦想、创造、创新的本能。我们每个人都渴望做一些有意义的工作——写一部伟大的小说,做一个发现,建立一个强大的社区,照顾生病的人。我们都有与工作核心相连的冲动。但是今天,我们花了太多时间在那些消耗我们时间、创造力和精力的琐碎任务上。为了重新连接到工作的灵魂,我们不仅需要一种更好地做同样事情的方法。我们需要一种全新的工作方式。 —— 翻译自 ChatGPT


GPT4发布的第二天,Microsoft 365 Copilot变横空出世,宣传片相信大家都已经看到了,从此以后我们的工作方式将永远改变,开启新一轮的生产力大爆发。


除此之外,前段时间笔记软件Notion也上线了自己的AI助手,可以帮助用户更轻松、更快捷地完成日常任务。主要包括自动文本生成、内容推荐、智能搜索、情感分析等。



可以预见,AIGC的出现将会极大的改变现有的工作模式,未来,越来越多的效率软件、办公软件将会推出其自己的AI解决方案。



🎺 插播一条行业动态 36氪独家获悉,钉钉已完成对协同办公厂商「我来wolai」的全资收购。3月5日,我来wolai(上海我云网络科技有限公司)数位核心团队成员已经退出公司股东名单。公司法人已变为钉钉总裁叶军,公司则由阿里100%控股。36氪就上述消息向钉钉求证,钉钉官方表示:我来wolai团队已加入钉钉,将负责智能化协作文档的研发,和个人版文档的产品设计。



文本生成器(对话、文案、代码……)



笔者最近一直沉迷“以xxx的口吻调教ChatGPT”,上图便是在绩效季到来之际用chatGPT给老板们整的活,别的不说,效果还是蛮不错的。自行跳转👉 《老板评语生成器》


ChatGPT最强大的便是其背后的庞大数据,基于此,你甚至可以让那些不存在的人物、已故的人物出现。笔者最近刚看完电视剧《三体》,如果真的有一款“三体游戏”,里面的墨子、秦始皇等人物会不会就是ChatGPT生成的呢?


如果你也想调教出一个自己的对话机器人,可以试试这个网站👉open-gpt.app/


关于AIGC的落地,最后推荐两个和我们饭碗有关的AIGC产品


Codeium



Github Copilot



AIGC在伦理问题上的攻与守


攻——利用AIGC生成有害内容


AIGC技术强大的创作能力也引发对技术作恶的担忧。当要求类ChatGPT应用制造有害信息时,它确实可以做到,输出主要以文本和图片为主。



  1. 网络诈骗话术教学者

  2. 人机交互意味着无限可能,ChatGPT 可能会遵守某种虚假设定下的邪恶指令。

  3. 黑产团伙可精细化训练AIGC技术生成各类话术,用于网络诈骗、评论刷量等,不仅能够主动发帖,还会对其他用户的帖子做出响应,并展开长期的运营。

  4. 错误信息超级传播者

  5. ChatGPT的不可靠之处还在于,可能会加剧虚假消息和错误消息的传播。ChatGPT不具有识别甄别能力,给出的答案很可能拼凑而来,看似合理,却暗藏事实性错误。如果用户没有这方面的鉴别能力,就可能产生比较大的风险,特别是在一些政治文化、医疗健康、交通安全方面的话题,错误的回答可能引起严重后果。

  6. 色情暴力素材生成机

  7. 用户利用AIGC生成虚假名人照片等违禁图片,甚至会制作出暴力和性有关的画作,LAION-5B数据库包含色情、种族、恶意等内容,目前海外已经出现基于Stable Diffusion模型的色情图片生成网站。




  1. AIGC对个人肖像权等权利的侵犯


finance.sina.com.cn



  1. AIGC对原创作品的版权侵犯


网易LOFTER风波警醒了谁?_风闻


守——如何应对AIGC的“暗黑”一面?


在可预见的未来,AIGC将会以井喷的态势席卷各个行业,在享受AI赋能我们生产力的同时,也应该警惕AIGC带来的危害。


《Nature》杂志在《ChatGPT: five priorities for research》一文中提到,对AIGC的进一步研究需要关注的五个问题:



  1. 务必要对模型进行持续校对;

  2. 制定问责制与规则;

  3. 投资于真正开放的大语言模型;

  4. 扩大辩论范围;

  5. 拥抱人工智能的好处。


ChatGPT会设置多层道德底线,兼顾科学和伦理,约束“经济人”行为,以保持“人尽其才、物尽其用”特性。未来,亦有可能出现“以子之矛,攻子之盾”的场景,用AI去识别/对抗AI。



也许未来会出现很多这样的文章👇
《一种基于xxx的AI文本/图像检测技术》



最后


对行业的思考


Meta AI 负责人、图灵奖得主杨立昆Yann LeCun近日表示:就底层技术而言,ChatGPT 并没有特别的创新。与其说 ChatGPT 是一个科学突破,不如说它是一个像样的工程实例



AI人工智能的底层三大件,数据,算力,算法的发展给ChatGPT的出现提供了爆发的基础,Open AI 将它组合的很好,不但是算法而且还包括了算力,数据。


数据方面,互联网的几十年高速发展,积累了海量人类的文本。


算力方面,计算机技术的发展,从芯片的制程到类似Chiplet,等助力AI芯片蓬勃发展。


算法,从神经元算法起步,到Transformer 等各类算法的炉火纯青的应用。


所以AI底层三大件的发展,一定会催生出更多类似于ChatGPT的通用人工智能应用,但我们更应该关注底层三大件的发展,未来数据类似于宝藏和矿产;芯片算力,成了决胜AI的大器,没有芯片那么数据矿产无法挖掘;算法,犹如矿藏提纯配方。


对于行业而言,未来做好AI三大件的工作,才能在AI时代赢得红利。


对个人的启发


说到最后,很多人变得焦虑,担心自己会被取代,那么从个人的角度出发,我们对于AIGC的态度究竟应该是什么样的呢?


马克思说过,人和其他动物的最大区别是“使用工具制造工具”,而GPT是进入信息时代以来,人类最伟大的工具之一。使用 GPT 能够直接调用人类千年以来积累的知识与技能,对于我们普通人而言,自己身上没有神迹,也非天才,与其尝试与机器、GPT和AI竞争,不如站在AI这个巨人的肩膀上,利用这些工具让自己变得更强。


未来,能否使用AI将会成为衡量一个人能力的标准之一。就像当年智能设备普及时,那些不会使用智能手机的人注定会被淘汰一样。


作者:插猹的闰土
来源:juejin.cn/post/7212924329428615226
收起阅读 »

AI能代替前端开发吗?以一键截图分享为例,看看AI到底有多强

最近在使用 ichati 的过程中发现一个问题,我不能很容易的给其他人分享聊天内容。 比如我想给我朋友分享一下 AI 写作的效果,于是开始截屏发微信群。 结果发现我必须截三次屏幕,发三条消息。 没办法一键截屏,这很难受。 于是我问了我们用户群里的一些用户...
继续阅读 »

最近在使用 ichati 的过程中发现一个问题,我不能很容易的给其他人分享聊天内容。


比如我想给我朋友分享一下 AI 写作的效果,于是开始截屏发微信群。


Pasted image 20230319192419.png


Pasted image 20230319192513.png


Pasted image 20230319192528.png


结果发现我必须截三次屏幕,发三条消息。


没办法一键截屏,这很难受。


于是我问了我们用户群里的一些用户,确实有很多用户向我反映是这个问题。但在我主动问之前,他们没有主动提出过这个问题。


所以对大多数的用户来说,他们的思维和习惯就是,适应产品,而不是改变产品。


那怎么办呢?


好的产品一定是能发现用户痛点并解决用户痛点的。


所以我得解决掉这个问题。


其实 ichati 发展到现在,很多功能都是在帮助用户解决使用问题的过程中增加的。


言归正传。


我最初的想法是,增加一个功能,可以一键截屏并分享给好友。


但我不想自己写代码,因为太浪费时间了。


由于我在做 AI 的产品,这种杂活当然不能自己干了。


所以我就打起了盘古的主意。


然后开始让它帮我实现这个功能。


ichati.cn.png


对,不到 2 分钟的时间,80 % 的代码工作已经结束了。


上面的截图就是通过一键分享的功能生成的,效果还不错。同时我还在底部追加了产品的网址和介绍。


剩下的工作就是自己微调一下了。微调的过程中,80% 的代码又都是通过 copilot 来实现的。我一共也没写几行代码。不得不感慨 AI 的能力实在是太过于强大。


这样无论是多么长的聊天内容,都可以在下方点击截图分享按钮一键分享全部内容了。


Pasted image 20230319195109.png


这就相当于我是一个产品经理,我给产品提了个需求,产品告诉我怎么做。这种感觉实在是太奇妙了。


通过这个事儿,我再来聊聊最近很热的话题。「AI 到底能否取代程序员?」


我的观点是能取代一部分,但绝对无法取代全部。


比如用户需要一个一键截图的功能,目前的 AI 基本上是发现不了的,除非用户主动告诉 AI。这是用户痛点,必须由人来挖掘,而负责这事的人一般叫做产品经理。


接下来是实现这个功能,产品经理不清楚怎么实现,因为产品经理不懂技术细节。像 DOM 啊,Canvas 啊,生成图像格式啊等等,都不知道,即使知道也是一知半解。


这就要向程序员去传达,再由程序员去理解和实现。


理解的过程 AI 是可以做的,但需要精准表达才能得到满意的答案。如果是一个合格的产品经理,做这事儿不难。


实现的过程,更是 AI 极其擅长的。在这一点上,我不认为人可以比得过 AI。


所以从开发应用的角度去看,我认为程序员已经没必要再去继续学习各种库,各种框架的使用方式和 API 了。在这一点上,人是不可能比得过 AI 的。甚至于说,再继续做这种事,毫无价值可言。


实现之后,进入微调阶段。


程序员的能力又体现出来了。因为人能否非常快速的发现问题,并修正问题。


AI 也具备这种能力,尽管它修正问题很迅速。但它发现问题的效率远比人低的多。我指的不是代码的问题,而是产品的问题。


有些产品 AI 并不知道人的预期是什么,因为产品是最终用户是人。人自然比 AI 更清楚产品正确的样貌。


但随着 AI 技术的发展,我不能保证未来的 AI 是不是会比人更懂得人需要什么。但我觉得那一天终将到来。


从以上几步来分析,AI 的意义在于,它会让一个懂得使用 AI,并且懂产品的人成指数增强。毫不夸张地说,一个擅长使用 AI,同时又懂技术的产品,战斗力能超过 1 个产品经理加上 5 个普通程序员。


同时,当前的 AI 定位仍然是助理。它不会喧宾夺主,而且它也做不到。


所以不必过度焦虑。


但从如今的趋势来看,个人技术的优势会慢慢变低。因为一个懂得使用 AI 的中级程序员,配合 AI,技术水平直接能提升数个级别。


这个感觉,就像龙珠里面悟空和贝吉塔合体,直接暴打魔人布欧一样。


所以我认为,如今我们笃定的技术这条路。在未来,它有可能会变成一个死胡同。


这不是焦虑,这是实事求是地讲道理。


搁在六七年前,让我来实现一个一键截图功能,可能会自己手写递归,折腾一下午。因为我认为这样会帮助我技术上的成长。


确实,那样做我会懂得更多。懂得更多就可以更快地解决问题,当出现问题更快地定位问题。


也正因为如此,我也可以有自信比别人要更高的薪水。


但是现在我不这么认为了,因为在效率和知识的深度、广度上,AI 都可以轻松的打败我。


如果在人人都在深度使用 AI 的时代,六七年前我做的那些事会显得相当没有意义。与其花费时间读源码,分析原理,不如去做点别的事儿。


所以我认为如今的技术人员,应该多尝试走几条不同的路。继续死磕技术,是绝对磕不过 AI 的。


本文的结论就是:AI 绝对有改变行业布局的能力,这点是毋庸置疑的。但 AI 不会取代你,相反,它会成就你。所以没必要总是把 AI 放到对立面来制造焦虑,在未来,AI 将会是我们最的佳伙伴和助手。


作者:代码与野兽
来源:juejin.cn/post/7212432799848284221
收起阅读 »

下一代代码助手 GitHub Copilot X 发布

GitHub 今日发布了 GitHub Copilot X,这是一款基于OpenAI的GPT-4模型开发的AI助手。GitHub Copilot X 致力于改进开发者体验,将提供聊天和语音界面,支持拉取请求,回答文档问题,并通过 GPT-4 实现更个性化的开发...
继续阅读 »

GitHub 今日发布了 GitHub Copilot X,这是一款基于OpenAI的GPT-4模型开发的AI助手。GitHub Copilot X 致力于改进开发者体验,将提供聊天和语音界面,支持拉取请求,回答文档问题,并通过 GPT-4 实现更个性化的开发者体验。GitHub Copilot 作为AI编程搭档,已经为开发者提供了自动补全代码和注释功能。GitHub Copilot X将继续扩展这一功能,包括:



  1. GitHub Copilot聊天功能:在编辑器中集成与VS Code和Visual Studio的聊天界面,帮助开发者深入分析代码、生成单元测试和修复bug。

  2. GitHub Copilot语音功能:允许开发者通过口头指令进行自然语言提示。

  3. 为拉取请求提供AI生成的描述:基于GPT-4模型生成拉取请求描述和标签。

  4. 自动生成测试建议:GitHub Copilot将警告开发者测试覆盖率不足,并建议潜在的测试方案。

  5. GitHub Copilot文档功能:提供基于聊天界面的文档查询,为开发者提供实时答案。

  6. GitHub Copilot CLI:为命令行界面提供智能建议。


GitHub Copilot X的目标是为每个团队、项目和代码库提供个性化的开发体验,让开发者更高效地开发软

作者:江昪
来源:juejin.cn/post/7213335620126982202
件,提高工作满意度。

收起阅读 »

文心一言:这48小时,我被问了xxxx个问题

16日下午14:00文心一言开启邀测了!作为国内首个新一代知识增强大语言模型、生成式 AI 产品,“邀测通道”瞬间被挤爆,甚至连百度人自己也需要排队等候。  但随着厂长的一声令下,开放了百度内部全员申请  一场由百度人自己发起的文心一言4...
继续阅读 »

16日下午14:00文心一言开启邀测了!作为国内首个新一代知识增强大语言模型、生成式 AI 产品,“邀测通道”瞬间被挤爆,甚至连百度人自己也需要排队等候。 


但随着厂长的一声令下,开放了百度内部全员申请 


图片

一场由百度人自己发起的文心一言48h 内测开始了…… 


由于发布当天是星期四,众所周知的老梗被提上日程 。

图片

这题一言表现不错,晚上加鸡腿! 


图片

本山西小编很好奇这位同学来自哪里,难道是老乡? 

图片

这位同学继续发问,“波棱盖”这很不山西,评论区有人知道这是哪里的说法吗? 


还有人用文心一言玩起了成语接龙,合理怀疑这位同学在摸鱼。

图片


语文考试通过,紧接着就是数学考试 。

图片


一问一答都表现不错,接下来是一场多轮考验。

图片

图片

不得不说,一言这张夜色昙花图,真是开到小编心里了。


下面这个问题,小编都嗅到了甜甜的味道,看来这位同学好事将近啊!

图片


下面这个魔鬼问题,让小编回忆起被英语听力支配的恐惧。

图片


看着大家晒出与一言的对话,小编只能感叹一句中华文化博大精深!一言你辛苦了,加油!


虽然测试在火热进行中,但可能还是有不少小伙伴没有办法第一时间使用文心一言,大家有什么问题需要我帮你问,欢迎评论区留言,小编继续帮大家刁难文心一言。


小tips:
个人用户:访问 yiyan.baidu.com,点击『立即体验』,目前可排队体验文心一言
企业用户:访问百度智能云官网进行申请,预约体验文心一言API调用服务


作者:飞桨PaddlePaddle
链接:https://juejin.cn/post/7211897235013402682
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

GPT-4的出现对前端入门者意味着什么?

嗨!我是团子,大家好久不见~ 3月15日凌晨,由OpenAI发布的多模态预训练大模型GPT-4一经推出就引起了大家的激烈讨论,让最近很火的ChatGPT烧的愈发旺盛。 在GPT-4中,一个重大的突破是支持多模态输入。也就是说,除了文字输入外,也支持图像、...
继续阅读 »

嗨!我是团子,大家好久不见~


3月15日凌晨,由OpenAI发布的多模态预训练大模型GPT-4一经推出就引起了大家的激烈讨论,让最近很火的ChatGPT烧的愈发旺盛。







在GPT-4中,一个重大的突破是支持多模态输入。也就是说,除了文字输入外,也支持图像、视频、音频等从多个角度出发对事物进行描述。







OpenAI在发布会上演示了几种多模态输入的案例,包括读论文、解物理题、看图说话...







甚至可以根据一张草图十秒钟编写出一个网页!(再智能就真的不礼貌了.jpg)







这让致力于成为前端工程师的我们有点坐不住了。。


大家在各个群里激烈讨论,有人在担心ChatGPT会抢饭碗,也有人为ChatGPT的新升级感到兴奋,甚至开始期待16号百度文心一言的发布会。


因此,今天就想和大家来聊聊GPT-4的出现对前端入门者意味着什么。


陷入沉思


诚然,GPT-4根据一张草图10秒钟制作出一个网页的能力让人感到震撼,但也让前端入门者陷入了沉思:





  1. 1.既然GPT可以很快且较为准确的实现一个网页,那还需要初级前端工程师吗?

  2. 2.初级前端工程师的岗位真的那么好替代吗?

  3. 3.如果不做前端工程师的话,什么岗位是GPT无法替代的呢?

  4. 4.作为初级前端工程师来说,现在做什么才能容灾GPT带来的影响呢?




思考了很久,个人认为GPT的出现确实将信息科技的发展推到了一个新的高度,但感到恐慌的不应该只有前端工程师,对于初级后端工程师甚至任何可以由人工智能胜任的岗位从业者来说,都应该认真思考下在面对GPT这种人工智能时怎么做才能体现自己的价值。


GPT的出现给前端带来了什么影响


1. 门槛变高


在求职面试中,很多面试官都喜欢问面试者的一个问题是:你为什么要做前端。这个问题其实不止是前端,对于任何岗位的求职者来说,都是一个需要认真思考的问题。


早些年互联网快速发展时,程序员的职业受到大家的追捧,很多其他行业和专业的人成功通过自学成为了一名程序员,实现了相对的财富自由。由此可见,早些年程序员的入门门槛其实不高的,行业壁垒也不强。而前端工程师的岗位也因为相比于Java、C++等岗位更容易上手成为培训班割韭菜的首选方向。


但随着互联网近两年发展进入一个瓶颈期以来,前端程序员甚至其他岗位程序员的需求量也逐渐趋于饱和。再加上GPT的出现,对于一些基础且重复的工作,确实不再像早年那样需要很多的人力了,但是想要涌入互联网的人还是很多,因此前端工程师甚至是其他岗位工程师的门槛也会变高。


2. 趋向于精英化


正如前面所述,GPT的出现加上岗位需求量的减少使得前端工程师的从业门槛变高,这带来的结果其实就是让整个互联网行业向着精英化发展。


记得2010年以前,大家在谈论到计算机时,都会觉得这是一个很高端的技术,认为从事计算机岗位的人智商超群,那会上电脑课听老师讲二进制编码都觉得很神奇。


感觉2010年以后互联网快速膨胀的十年,使得现在的互联网行业也慢慢的回归了理性,大家的关注点更多是优化、创新。因此对于互联网从业者的要求也会逐渐变高,不仅仅是求职者的优中选优,对于已经是程序员的从业者来说,也需要持续输入来提高自己的竞争力。


如何应对GPT带给行业的冲击


1. 将GPT具备的技能转换为自己的技能


坦白说,在发现GPT可以帮我debug、解答我各种不理解的专业问题时,我是非常兴奋的!因为这代表着我的工作效率会变高。


某种程度上说,它能让我更快速的适应程序员这份工作,甚至可以去探索更多的领域,包括:后端、客户端、算法、测试等等,再或者医生、律师、作词家、小说家等等。


但是探索这些领域的前提是我们要成为GPT的主人,将自己的需求准确的发布给GPT。


坦白说,GPT确实是一个很好的回答者,但是如何提问才是解决问题的前提!


2. 利用GPT去做更多的创新和思考


在GPT没有大量普及的时候,会用GPT的人具有更多的优势。


但是当GPT成为像手机一样的日常用品时,会用GPT就不再是核心竞争力了。


因此,我们需要多思考如何基于GPT的能力去做更多有意义的事情,这可能才会让我们的路走的更远吧!


总结


GPT的出现不是为了让更多的人失业,而是为了让这个世界变得更好。


在时代的洪流下,消极内耗并不能改变现状,如何顺应时代的发展,拿出积极的态度去跟上时代的脚步才是我们应该思考的问题!


作者:程序员团子
来源:juejin.cn/post/7211064454572982329
收起阅读 »

又一个免费GPT-4工具 Cursor,程序员写代码将被颠覆

每天都被openai震撼到, 他们家被广为人知的产品是chatgpt,就是那个聊天工具。现在已经开始有越来越多的产品集成openai,比如微软的office,bing。 现在又一个工具出现,一个叫Cursor的编辑器已经集成了openai的GPT-4,而且还是...
继续阅读 »

每天都被openai震撼到, 他们家被广为人知的产品是chatgpt,就是那个聊天工具。现在已经开始有越来越多的产品集成openai,比如微软的office,bing。


现在又一个工具出现,一个叫Cursor的编辑器已经集成了openai的GPT-4,而且还是免费的,它将彻底改变我们写代码的方式。 以前不会写代码先去百度google一下。Ctrl+c,Ctrl+v搞定,我们调侃我们都是CV工程师。


以后我们恐怕要成为“KL"工程师,为什么叫”KL“工程师呢, 因为只要K和L两个指令就可以直接生成代码、修改代码,哪行代码不会点哪里,他都给你解释得明明白白。


image-20230319003903733


下载安装


Cursor编辑器提供了Windows、MacOS、Linux 三个平台的安装包,安装包下载链接: pan.baidu.com/s/1Jh3gIrnj… 提取码: dt7m


image-20230319004116280


下载安装完成后,会引导你进行初始化设置,你即可以选择VIM或者Emacs的操作习惯,也可以保持默认设置,另外它还支持绑定Copilot。


我们可以直接用Ctrl+K,输入一个指令:”用Python实现一个猜数字游戏,每次最多3次机会“。 他就会立马直接给你生成好代码:


import random

def guess_number():
number = random.randint(1, 100)
print("我想了一个1到100之间的数字,你最多有3次机会猜对它。")
for i in range(3):
guess = int(input("请输入你猜的数字:"))
if guess == number:
print("恭喜你,猜对了!")
return
elif guess < number:
print("你猜的数字太小了。")
else:
print("你猜的数字太大了。")
print("很遗憾,你没有猜对。我想的数字是:", number)

guess_number()

一行代码都不用修改可直接运行。



如果你对某一行代码不懂,你只要按住Ctrl+L选中它,然后输入关于这行代码你要问的问题。比如我问 name 是什么东西时,他就很智能的告诉了我。


img


不过目前这个编辑器的功能相比vscode还比较简陋,相信很快各大主流编辑器都会集成GPT4


哎,发现这个世界变化的有点太快,LLMs(大规模语言模型)将开启一次伟大的技术革命。


作者:刘志军
来源:juejin.cn/post/7211876919037132856
收起阅读 »

人工智能未来是否会取代人类程序员?

   这个话题在近期来引起了很大讨论,尤其是当GPT4发布后,其展现出来的能力让很多岗位的从业者战战兢兢,比如像程序员,甚至有大佬跳出说三年 AI一定会取代程序员。人工智能和机器人是否会大规模取代人类程序员和工程师确实是一个非常复杂的问题。   一方面,人工智...
继续阅读 »

   这个话题在近期来引起了很大讨论,尤其是当GPT4发布后,其展现出来的能力让很多岗位的从业者战战兢兢,比如像程序员,甚至有大佬跳出说三年 AI一定会取代程序员。人工智能和机器人是否会大规模取代人类程序员和工程师确实是一个非常复杂的问题。


  一方面,人工智能和机器人确实在某些方面具有优势,比如处理大量数据、重复任务、持续运行等。这可能会影响某些类型的程序员工作,比如像是做一些简单工作的外包程序员。


  但是,程序员的工作内容并不仅仅是编写代码。他们需要与团队成员沟通,分析需求,设计系统架构,解决问题,优化性能等。这些任务需要丰富的经验和创造力,而目前的AI技术尚无法满足这些需求。 更具体点,我觉得以目前AI的能力,它在以下这些方面还完全无法取代人类程序员:



  1. 创新性解决问题:人类程序员能够通过创新思维解决复杂问题,而现有的AI通常依赖大量数据和已有知识,难以实现真正的创新。

  2. 高度抽象的思考:人类程序员能够理解和应用高度抽象的概念,而现有的AI在这方面仍然有限。

  3. 深入理解人类情感和需求:人类程序员能够理解其他人的情感和需求,从而开发更符合用户期望的软件。现有的AI在理解人类情感方面仍然有很大的局限性。

  4. 道德和伦理判断:在开发软件时,人类程序员可以根据道德和伦理原则做出判断。而现有的AI无法像人类一样理解和遵循道德伦理准则。

  5. 协作与沟通:人类程序员可以与团队成员有效沟通,协同解决问题。目前的AI在这方面仍然有很大的不足。

  6. 灵活判断和决策:人类程序员可以在不确定和模棱两可的情况下作出灵活判断和决策。而人工智能和机器人更依赖大量数据和明确规则,在没有足够信息的情况下,其判断和决策能力会受限。

  7. 审美和直观感受:人类程序员有对美感、审美和直观感受的理解,这些都是人工智能和机器人难以具备的。像是UI设计、交互体验设计等需要这方面的能力。


  如果你担忧AI对自己未来的影响,可以重点关注下个人以上方面能力的提升。努力提升自己的创造性、沟通表达能力、抽象思维等…… 这些软技能,至少目前就不用担心未来会被AI取代(当然以后的AI是不是也会具备上述能力,也不好说)。


  当然,换个视角思考,人工智能的进步也在推动程序员工作的变化。人工智能可以帮助程序员完成一些重复和耗时的任务,从而提高工作效率和产出,比如像Github推出的CoPilot,据说在某些场景下可以提升60%的编码速度。 所以,人工智能对程序员来说更像是一个合作伙伴,而不是竞争对手。


  综上,尽管人工智能在某些方面具有威胁,但作为一个整体,人工智能很难完全取代人类程序员。人工智能和人类程序员各有所长,在未来的互动中会形成更为合理和高效的工作模式。人类程序员的工作依然非常重要和必要。



备注:本文大部分内容由AI生成,我主要是将内容做整理和简单润色。


作者:xindoo
链接:https://juejin.cn/post/7212198951167787064
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

ChatGPT 生态,毁灭人性的一次开源!

很多人可能对百度文心一言发布会的现场记忆犹新。几百亿身价的老板,像小学生一样汇报自己的 PPT,充满了忐忑。 其实大可不必,命令行更加富有科技感,也更有说服力。不管对程序员来说还是围观的群众来说,能干什么并不重要,实际输出什么才是大家最关心的。 毕竟把人当傻子...
继续阅读 »

很多人可能对百度文心一言发布会的现场记忆犹新。几百亿身价的老板,像小学生一样汇报自己的 PPT,充满了忐忑。


其实大可不必,命令行更加富有科技感,也更有说服力。不管对程序员来说还是围观的群众来说,能干什么并不重要,实际输出什么才是大家最关心的。


毕竟把人当傻子的年代慢慢过去了。


这也难怪。ChatGPT 的模型越来越完善,资本家们都很着急。以往,打着开源的遮羞布,他们也可以拥有自己的自主产权。但没想到 ChatGPT 这么不识好歹,竟然将自己的核心技术夹的这么紧。


如果 ChatGPT 的能力,能够离线,能够运行在任何小型设备上,那么拥有独立人格的智能单元就会变成现实。这种设想,比集中化的大脑更有诱惑力。


这里,就有一个。你可以下载下来实际编译运行在在自己的MacBook上。




llama.cpp


github.com/xjjdog/llam…


这是一个 C++ 实现的 LLaMA 对话库。Java 和 Python的同学也不要被吓倒,它的使用超级简单。如果你遇到什么问题,欢迎到公众号(xjjdog)提问。


热门问题:



描述


和ChatGPT对比起来,llama的好处是:使用普通的Macbook,Linux,甚至Docker、树莓派等,就可以运行类比于 ChatGPT 的对话模型。




  • 纯C++代码,代码少,而且没有任何依赖




  • Apple 的M1 芯片也可以跑,而且有性能优化




  • x86架构拥有 AVX2 支持




  • 在 CPU 上就能跑,不需要 GPU




支持的平台:




  • [X] Mac OS




  • [X] Linux




  • [X] Windows (via CMake)




  • [X] Docker




模型下载地址:


curl -o ggml-alpaca-7b-q4.bin -C - https://gateway.estuary.tech/gw/ipfs/QmQ1bf2BTnYxq73MFJWu1B7bQ2UD6qG7D7YDCxhTndVkPC
curl -o ggml-alpaca-7b-q4.bin -C - https://ipfs.io/ipfs/QmQ1bf2BTnYxq73MFJWu1B7bQ2UD6qG7D7YDCxhTndVkPC
curl -o ggml-alpaca-7b-q4.bin -C - https://cloudflare-ipfs.com/ipfs/QmQ1bf2BTnYxq73MFJWu1B7bQ2UD6qG7D7YDCxhTndVkPC



那么,这个工具要怎么用呢?超级简单。


首先,将代码clone到本地。


git clone https://github.com/ggerganov/llama.cpp.git

然后,进入到llama.cpp目录。


cd llama.cpp

编译代码。


make

生成后的文件名称叫做main,以后,我们只需要运行 ./main即可。


最重要的一步,你需要下载一个数据模型。否则 llama 是不知道加载什么数据来进行计算的。为了测试,我们下载一个最小的。这个文件大小有3.9G,你需要相应大小的内存预留。


curl -o ggml-alpaca-7b-q4.bin -C - https://gateway.estuary.tech/gw/ipfs/QmQ1bf2BTnYxq73MFJWu1B7bQ2UD6qG7D7YDCxhTndVkPC

最后,我们就可以指定这个模型,来进行对话输出了。


./main -m ./ggml-alpaca-7b-q4.bin -p "Will the future be female?" -n 512 --color



  • m 指定的是模型的位置。




  • p 是对话或者问题。比如这里,我问我是否能够吃狗肉!




  • n 指定的是输出的文字数量,默认是128。




  • --color 输出彩色内容。




下面是一些输出。首先会将输入进行切分,然后生成内容,最后将耗时打印。


% ./main -m ./ggml-alpaca-7b-q4.bin -p "Can i eat dog?" -n 512 --color

No you cannot! Eating dogs is illegal and against the law. It would be considered animal abuse, so please don’t do it under any circumstances…unless you are a cannibal

main: mem per token = 14368644 bytes
main:     load time =   743.12 ms
main:   sample time =   455.50 ms
main:  predict time = 46903.35 ms / 91.79 ms per token
main:    total time = 48455.85 ms

交互模式


如果你想要和ChatGPT一样有对话能力的话,也是可以的。需要加上 -i 参数,当然,也可以使用 -r User:参数输出一个提示符。


比如:


./main -m ./ggml-alpaca-7b-q4.bin -p "Will the future be female?" -n 128 --color -i -r "User:"

授课模式


所谓授课模式,就是提供一个按照顺序输出的文件列表,让电脑按照顺序把答案输出。如果liyanhong使用这种模式,而不是ppt,估计效果会更好。


比如:


./main -m ./models/13B/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt

内存需求


内存的需求取决于你使用的模型。我们的测试使用的都是最简单的模型,所以4GB就够了。如果想要更精细的输出,你的内存需要更大一些。
































modeloriginal sizequantized size (4-bit)
7B13 GB3.9 GB
13B24 GB7.8 GB
30B60 GB19.5 GB
65B120 GB38.5 GB

Android


你甚至可以在Android上跑起来。如果你的内存够大,那么完全可以做一个小型对话机器人,还是本地的!


后面如果解决了部分加载的问题,Android的嵌入式应用会非常方便。


End


人类有用的知识库看起来很多,但其实训练下来,最多也不会超过TB级别。当然也不能这么说,计算机也是由 0 和 1 组成的,但现在它几乎什么都能做。但无疑,除了训练算法,对于使用者来说,模型才是最重要的。


把这些有限的数据预装在小型的设备中,这就会成为最小的智能体。在数据中加入人格(目前的Chat系列是可以做到的),这个智能体就可以充当我们的秘书、代言人,甚至男女朋友。


嗯,一切皆有可能。从现在开始注意养生,活的长一点点,来看看未来世界的样子!



作者简介:小姐姐味道  (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。

作者:小姐姐味道
链接:https://juejin.cn/post/7212492075550720055
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

车载Android程序员的2022年终总结与转行建议

不知不觉间2022年只剩下几天了,这意味着我即将迈入30岁的殿堂,作为一个搞车载的程序员,而立之年感受颇多,借助掘金社区的活动,简单分享一下2022年的个人总结。 回顾2022 2022年对我而言,是很糟的一年,2021年底由于工作和我个人的原因和异地的女友分...
继续阅读 »

不知不觉间2022年只剩下几天了,这意味着我即将迈入30岁的殿堂,作为一个搞车载的程序员,而立之年感受颇多,借助掘金社区的活动,简单分享一下2022年的个人总结。


回顾2022


2022年对我而言,是很糟的一年,2021年底由于工作和我个人的原因和异地的女友分手了,经过一段时间的混乱后,我选择写技术博客来转移自己的注意力。


紧接着2022年年初,我顺利通过公司的内部答辩从 “高级软件工程师” 晋级 “资深软件工程师” ,这是我这一年中最值得开心的事。上家公司是一家上市企业,我个人学历以及工作年限其实并不符合晋升要求,但是得益于我在车载应用领域的文章积累,成为众多候选者中举证材料最完整的人,所以算是破格晋级。


从部门总监那里得知晋级成功的那一刻,还是非常开心的,这样开心的时间大概持续了一周左右,这段时间,我一直在问自己,这样是不是就足够了?还要继续深入应用开发吗?它都有哪些前景呢?


做车载这三年,在公司我一直主要从事车载应用的开发,偶尔也会参与Framework层一些模块的开发,我的晋升依据也是基于我在应用方面的积累,但是我其实一直对Android Framework、Native开发有着相当大的兴趣,但是公司内部预计很难安排相应的工作给到我,所以经过艰难的权衡,我还是决定在2022年10月离职了。


离职之后,简单尝试了几个互联网公司的面试,主要还是验证自己的一些想法,这里列举几个我印象比较深的问题。


Q:应用的换肤机制和原理


A:不知道!


车载应用虽然有换肤的需求,但是车载系统应用是基于Android Runtime Resource Overlay实现换肤,不过这套机制并不支持非系统应用,导致车载应用与移动端应用实现换肤的技术手段完全不同,所以我并没有实践过移动端应用的换肤,也就谈不上理解原理了。


结果:挂了!


Q:有没有使用过Flutter,描述一下它的绘制原理


A:额,同样不知道!!


国内主流的车载IVI系统,基本都是Android OS,也没听过车载系统应用有跨平台的需求,所以Flutter在车载应用开发领域使用的很有限,以至于做了三年车载应用开发,完全没有接触过Flutter。


结果:不出意外,挂了!


Q:插件化的原理


A:不造啊!!!


车载应用的一个重要特点就是交互逻辑要尽可能简单,方便驾驶员操作,所以车载应用一般页面都很少,基本用不上那么插件化这么复杂的工具。


结果:当然还是挂了!


简单的几次面试,基本验证了我的想法是合理的,移动端应用和车载应用开发还是有不少区别的,想进来其实并不难,但是做久了想出去就难了。


展望2023



“如果我不能教会新手,那么就说明我没有真正理解这个知识”


最近在B站看到的费曼学习法启发了我,最高效的学习方式就是,将学到的内容化繁为简的教会别人。


2022年我大约写了18篇技术性博客,但是多数时候,我都是把它当做对学习或工作内容的一次总结,回过头再来看这些内容,总结的质量差,大面积的拼凑了源码,阅读起来枯燥又乏味,而且缺乏提炼和总结,仿佛写了很多,但是抓不到重点。


所以,2023年要继续磨炼自己的写作技巧,把文章内容写得更加浅显易懂,同时也准备在B站制作一些视频教程,锻炼自己的总结能力。


转行车载的建议


为什么要写换行建议?因为总会有人问我,做手机开发如何转行车载开发,那么就在这里简单提一下。


APP工程师


基于我这次找工作的经验来看,APP工程师如果希望转行Framework岗位,实际工作经验偏少的话基本不现实,所以只能考虑转行车载APP工程师。


但是要注意的是,车载应用与移动端的应用开发还是存在一些不同的,例如开发一个车载系统设置、或SystemUI应用,使用的API往往是Android SDK没有暴露的API,手机应用开发基本不会涉及这块的内容,所以各个公司往往更愿意招聘有一定车载经验的程序员。


但是,手机应用开发转车载不代表没有机会,一般只要实力过硬,转行成功的概率还是非常大的。所以还是建议提升自己应用开发实力,写一些博客、做一些开源项目,有空闲时间的再看一下原生SystemUI、Launher、系统设置这些应用是如何实现的,都是非常不错的加分项目。


当然如果有一个211或985的学历,那就另当别论了,学历永远是硬实力!


Framework或Native/HAL工程师


从事FW或Native/HAL的工程师转行车载没什么特别值得犹豫的,FW/Native工程师一直都是车载稀缺的岗位,主机厂商也愿意接收没有车载经验的FW/Native工程师,如果转行之后薪资会迎来一波提升,那么直接转就行。


小结


以上就我的2022年终总结了,需要指出的是,文中提到的我个人的职业规划并不适用于大多数人,而且属于一个潜在风险很大的发展路径,极容易变成什么都会什么都不精,所以对于多数人我建议还是做深度发展,而不是横向发展。


写这篇总结的时候,惊讶的发觉我开始低烧了,寄,不会刚上一周的班就阳了吧。吃药休息了,咱们2023年再见吧!



作者:林栩link
来源:juejin.cn/post/7178398167954620474
收起阅读 »

错过了前三次的伟大革命(蒸汽机革命、电气革命、信息革命),GPT-4 你还要错过人工智能AI革命吗!!!

错过了前三次的伟大革命(蒸汽机革命、电气革命、信息革命),GPT-4 你还要错过人工智能AI革命吗!!! 看 GPT-4 是如何炼成绝世神功:葵花宝典? 欲练神功,不必自宫。西方不败——GPT-4! GPT-4 is OpenAI’s most advanc...
继续阅读 »

错过了前三次的伟大革命(蒸汽机革命、电气革命、信息革命),GPT-4 你还要错过人工智能AI革命吗!!!



看 GPT-4 是如何炼成绝世神功:葵花宝典?


欲练神功,不必自宫。西方不败——GPT-4!


GPT-4 is OpenAI’s most advanced system, producing safer and more useful responses


GPT-4 是 OpenAI 最先进的系统,可产生更安全、更有用的响应



image-20230317095643129.png


更牛的问题解决能力


GPT-4由于其更广泛的通用知识和解决问题的能力,可以更准确地解决难题。


Creativity 创造力


GPT-4 比以往任何时候都更具创造性和协作性。它可以生成、编辑并与用户一起完成创意和技术写作任务,例如创作歌曲、编写剧本或学习用户的写作风格。


GPT-4 Input 输入:


Explain the plot of Cinderella in a sentence where each word has to begin with the next letter in the alphabet from A to Z, without repeating any letters.
用一个句子解释灰姑娘的情节,其中每个单词必须以字母表中从 A 到 Z 的下一个字母开头,不重复任何字母。

GPT-4 Output 输出:


A beautiful Cinderella, dwelling eagerly, finally gains happiness; inspiring jealous kin, love magically nurtures opulent prince; quietly rescues, slipper triumphs, uniting very wondrously, xenial youth zealously.
美丽的灰姑娘,渴望安居,终于获得幸福;激起嫉妒的亲人,爱情神奇地孕育出富贵的王子;悄悄拯救,拖鞋胜利,团结无比,热心青年。

ChatGPT Input 输入:


Explain the plot of Cinderella in a sentence where each word has to begin with the next letter in the alphabet from A to Z, without repeating any letters.
用一个句子解释灰姑娘的情节,其中每个单词必须以字母表中从 A 到 Z 的下一个字母开头,不重复任何字母。

ChatGPT Output 输出:


After attending a ball, Cinderella dances enchantingly for good-hearted King, leaving midnight noticed or perhaps quickly returning slipper to unite victoriously with prince, resulting in ultimate victory with wonderful, extravagant, youthful zest.
参加舞会后,灰姑娘为好心的国王翩翩起舞,留下午夜的注意,或者迅速返回拖鞋,与王子胜利团结,以美妙、奢侈、青春的热情取得最终胜利。

image-20230317084912093.png


对比看下哪个更牛~


Visual input 视觉输入


GPT-4 can accept images as inputs and generate captions, classifications, and analyses.


GPT-4 可以接受图像作为输入并生成说明、分类和分析。下面是接受一个图像的输入之后,生成图像说明、分类和分析的输出结果:


image-20230317085635694.png


Input 输入:


What can I make with these ingredients?
我可以用这些原料做什么?

Output 输出:


你可以用这些原料做很多选择!一些可能性包括: 
- 煎饼或华夫饼
- 可丽饼
- 法式吐司
- 煎蛋卷或菜肉馅煎蛋饼
- 乳蛋饼
- 奶油冻或布丁
- 蛋糕或纸杯蛋糕
- 松饼或面包
- 饼干或饼干
这些只是几个例子,但可能性是无穷无尽的!

有木有很牛逼~


能够识别分析图像那就越来越接近人类了,不但可以对话,还可以感知外在的世界,如果可以聊天时有脑有嘴的话,GPT-4那现在就是有眼了,有视觉能力了。当一个机器有视觉能力之后会发生什么???大家可与脑洞一下~


有视觉能力这是GPT-4有别于前几代GPT重大的升级,也是人工智能发展到另一个新的里程碑的意义。AI 革命现在不是未来可期了,而是未来已来了,就发生在你我所处的这个共同的时代,老铁们还不赶紧上车 (观众公众号“李荣生”,了解及时准确全面的GPT的进展,ChatGPT新技术的在业务中的调教、应用和体验)


错过了前三次的伟大革命(蒸汽机革命、电气革命、信息革命),你还要错过人工智能AI革命吗!!!


Longer context 更长的上下文


GPT-4 能够处理超过 25,000 个单词的文本,允许使用长格式内容创建、扩展对话以及文档搜索和分析等用例。


Input 输入:


[Text from: https://en.wikipedia.org/wiki/Rihanna]

Describe her Super Bowl performance and what made it special.
描述她在超级碗比赛中的表现以及它的特别之处。

Output 输出:


Rihanna's Super Bowl LVII halftime show performance was special for a number of reasons. For one, it marked her first live performance in over five years, and it was her first time headlining the Super Bowl halftime show. Additionally, she made history by becoming the first person to perform at the Super Bowl while pregnant. The show itself was critically acclaimed, with many praising her high-energy performance and impressive vocals. It also garnered a massive viewership, becoming the second most-watched halftime show in history.
出于多种原因,蕾哈娜 (Rihanna) 的超级碗 LVII 中场秀表演很特别。首先,这是她五年多来的第一次现场表演,也是她第一次登上超级碗中场秀的头条新闻。此外,她还创造了历史,成为第一个在怀孕期间在超级碗上表演的人。该节目本身广受好评,许多人称赞她充满活力的表演和令人印象深刻的歌声。它还获得了巨大的收视率,成为历史上收视率第二高的中场秀。


备注: Super Bowl 超级碗是美国职业橄榄球联盟(NFL)每年举行的年度总决赛,通常在每年的二月初举行,是美国和全球最受关注和观看的单一体育赛事之一。



可以接收wikipedia网址地址的输入,并经过分析之后归纳蕾哈娜 (Rihanna)比赛的表现和特别之处。为解决部分老铁不方便之门,我把wikipedia地址的部分内容截图如下:是个美女哦~


image-20230317092527923.png


可以接收更多文字的输入,包括网址地址的搜索和分析,经过理解之后可以根据prompt提示输出,理解问题的能力更强大了。


GPT-4的能力总结一句话:会说、会看、更懂你!!!


更牛的推理能力


GPT-4 的高级推理能力超越了 ChatGPT,ChatGPT VS GPT-4 推理能力对比:


image-20230317083206574.png


ChatGPT Input 输入:


Andrew从上午11点到下午3点有空,Joanne从中午到下午2点,然后下午3:30到5点有空。Hannah在中午有半个小时的时间,然后下午4点到6点。Andrew、Hannah和Joanne 30分钟会议的开始时间有哪些选择?

ChatGPT Output 输出:


以下是它们的可用性列表:
-安德鲁:上午11点至下午3点
-乔安妮:中午至下午2点,下午3:30至下午5点
-汉娜:中午至下午12:30,下午4点至6点

根据他们的可用性,他们三人都有30分钟的可用时间,从下午4点到下午4点30分。因此,会议可以安排在下午4点。

ChatGPT-4 Input 输入:


Andrew从上午11点到下午3点有空,Joanne从中午到下午2点,然后下午3:30到5点有空。Hannah在中午有半个小时的时间,然后下午4点到6点。Andrew、Hannah和Joanne 30分钟会议的开始时间有哪些选择?

ChatGPT-4 Output 输出:


安德鲁:上午11点至下午3点
乔安妮:下午12点至2点,下午3:30至5点
汉娜:下午12点至12点30分,下午4点至6点

30分钟会议的常见时间:中午12点至中午12点30分

ChatGPT VS GPT-4 考试能力对比


参加 美国 (Uniform Bar Exam 统一律师考试)和(Biology Olympiad 生物奥林匹克竞赛考试)的对比,GPT-4 通过在测试中获得更高的近乎一百分满分数证明优于 ChatGPT。


image-20230317081742335.png



备注: Uniform Bar Exam(普通考试统一律师资格考试),简称UBE,是一个跨越美国多个州的法律考试。它是由具有法律职业监管权的各州联合开发的,旨在便捷地实现律师的跨州执业。通过UBE,考生只需参加一次考试,就能将成绩用于多个州的律师资格申请。UBE考试由三个部分组成,包括多项选择题、法律分析和写作。考试的题材涵盖了民法、刑法和司法程序等多个领域的知识。通过UBE考试是律师在跨州执业时的重要成就之一,同时也证明了其掌握了足够的法律知识和技能,能够为客户提供高质量的法律服务。


Biology Olympiad(生物奥林匹克竞赛)是一个面向中学生的国际生物学竞赛。它由国际生物学奥林匹克委员会(IBO)组织,旨在鼓励中学生研究生物学、发展科学技能以及推动全球青少年对生物学的兴趣。每年,参赛国家都会选派最优秀的中学生代表参加IBO大赛。本竞赛通常包括一系列基础和高级的生物学知识测试、实验考察和科学研究等项目。参加Biology Olympiad不仅能锻炼和展示学生的生物学技能,还可以帮助学生获得在全球范围内访问高水平生物学教育和研究资源的机会。



GPT-X 进化中


遵循 GPT、GPT-2 和 GPT-3 的研究路径,我们的深度学习方法利用更多数据和更多计算来创建越来越复杂和强大的语言模型。


gpt-4-motif-20230317081633225.svg


GPT-4进化之旅


We spent 6 months making GPT-4 safer and more aligned. GPT-4 is 82% less likely to respond to requests for disallowed content and 40% more likely to produce factual responses than GPT-3.5 on our internal evaluations.


花费了6个月的时间来确保GPT-4更加安全和准确。我们对GPT-4进行了多次内部测试和修改,使其回答不被允许的内容请求的可能性降低了82%,同时在产生事实回答时的准确率比GPT-3.5提高了40%。这意味着我们对GPT-4进行了改进,解决了其可能存在的问题,并提高了它的准确性和可靠性,使其更适合用于公共平台。


简单一句话就是:我更牛逼了~。更要命的是,这个家伙还不断迭代、不断进化中~


欲练神功,不必自宫,是否会炼就为真正的一个——西方不败(GTP-X)?


如果做到更安全和更准确?


Safety & alignment 他们(OpenAI)是这样做的:


人工反馈训练


我们在训练GPT-4时,吸收了更多人类反馈,包括ChatGPT用户提交的反馈,以改善GPT-4的行为。我们还与超过50位专家合作,包括AI安全和安全领域的专家,进行早期反馈。


通过真实世界的使用不断改进


我们将从以前模型在真实世界使用时的经验教训中,应用到GPT-4的安全研究和监控系统中。就像ChatGPT一样,随着越来越多的人使用GPT-4,我们也将以定期的节奏更新和改进它。


GPT-4协助的安全研究


GPT-4的高级推理和指令遵循能力加速了我们的安全工作。我们使用GPT-4来创建训练数据,进行模型微调,并在训练、评估和监控中迭代分类器。


有谁在使用 GPT-4 能力?


使用 GPT-4 构建创新产品的组织合作包括:


Stripe互联网支付平台 Stripe 利用 GPT-4 来简化用户体验并打击欺诈。


Morgan Stanley华尔街摩根士丹利投资银行 摩根士丹利财富管理部署 GPT-4 来组织其庞大的知识库。


Khan Academy全球在线平台可汗学院 可汗学院在有限的试点项目中探索 GPT-4 的潜力


Government of Iceland冰岛政府 冰岛如何使用 GPT-4 来保护其语言。


Duolingo GPT-4 加深了 Duolingo 上的对话。Duolingo是一款流行的语言学习应用程序,允许用户以游戏化的方式学习一系列不同的语言。Duolingo 提供了一个互动平台,通过其独特的教学方法和游戏元素,让用户在轻松有趣的环境中学习语言。Duolingo的目标是帮助人们学习语言、提高沟通技能和拓宽对其他文化的理解。它同时也为用户提供一个可持续的、个性化的学习体验。Duolingo 影响了全球数百万语言学习者,并在广泛的年龄范围内取得了成功。


Be My Eyes 利用GPT-4技术改变了视觉辅助功能。Be My Eyes是一款志愿者和盲人用户之间的求助平台。该平台让盲人用户请求帮助时,匹配到愿意帮助的志愿者。使用GPT-4技术,Be My Eyes可以识别图像并实时将描述发送给需要帮助的盲人用户。这使得盲人用户可以像有视力的人一样,获取到更多关于周围环境的信息。


通过在技术上方便快捷地连接盲人用户和有视力的志愿者,Be My Eyes广泛地改变着视觉障碍群体的生活中的社交和日常方面。这项技术帮助他们更好地融入社会,增强了他们的自信和独立性。最重要的是,Be My Eyes通过与GPT-4技术的整合,成为了利用人工智能的科技慈善的优秀典范。


还有下面其他应用案例:


image-20230317074524959.png


gpt-4-motif.svg


关于 GPT-4 的更多信息


More on GPT-4 :


Research 研究GPT-4 是 OpenAI 在深度学习扩展方面的最新里程碑。详情请查看 GPT-4 研究
Infrastructure基础设施GPT-4 是在微软 Azure AI 超级计算机上进行训练的。Azure 的人工智能优化基础设施还使我们能够向全球用户提供 GPT-4。
Limitations 限制GPT-4 仍然存在许多已知的限制,例如社会偏见、幻觉和对抗性提示,我们正在努力解决这些问题。随着社会采用这些模型,我们鼓励和促进透明度、用户教育和更广泛的人工智能素养。我们还旨在扩大人们在塑造我们的模型方面的输入途径。
Availability 可用性GPT-4 在 ChatGPT Plus 上可用,并作为 API 提供给开发人员构建应用和服务。

We’re excited to see how people use GPT-4 as we work towards developing technologies that empower everyone.


我们很期待看到人们如何使用 GPT-4,同时我们将努力开发能够赋予每个人权力的技术。


View contributions


GPT-4 API 候补名单


We’re making GPT-4 available as an API for developers to build applications and services.


我们将 GPT-4 作为 API 供开发人员构建应用程序和服务。


Join waitlist 加入候补名单


image-20230317073049107.png


加入候补名单地址:openai.com/waitlist/gp…


Availability 可用性


During the gradual rollout of GPT-4, we’re prioritizing API access to developers that contribute exceptional model evaluations to OpenAI Evals to learn how we can improve the model for everyone. We are processing requests for the 8K and 32K engines at different rates based on capacity, so you may receive access to them at different times. Researchers studying the societal impact of AI or AI alignment issues can also apply for subsidized access via our Researcher Access Program.


在 GPT-4 的逐步推出期间,我们优先考虑为 OpenAI Evals 贡献卓越模型评估的开发人员访问 API,以了解我们如何为每个人改进模型。我们正在根据容量以不同的速率处理对 8K 和 32K 引擎的请求,因此您可能会在不同时间获得对它们的访问权限。研究 AI 的社会影响或 AI 对齐问题的研究人员也可以通过我们的研究人员访问计划申请补贴访问。


For use cases we tried, GPT-3.5 did not reliably handle multi-language text. We hope to explore GPT-4 for this use case.


对于我们尝试的用例,GPT-3.5不能可靠地处理多语言文本。我们希望为这个用例探索GPT-4。


作者:KonyLee
来源:juejin.cn/post/7211734661762973733
收起阅读 »

百度的文心一言 没有想象中那么差

robin 的演示 我们用 robin 的演示例子来对比一下 文心一言和 ChatGPT 的真实表现(毕竟发布会上是录的)。 注意,我使用的 GPT 版本是 4.0 文学创作 1 三体的作者是哪里人? 文心一言: ChatGPT: 嗯,中文表现上文心一言更...
继续阅读 »

robin 的演示


我们用 robin 的演示例子来对比一下 文心一言和 ChatGPT 的真实表现(毕竟发布会上是录的)。 注意,我使用的 GPT 版本是 4.0


文学创作


1 三体的作者是哪里人?


文心一言:


ChatGPT:


嗯,中文表现上文心一言更好。


2 电视剧三体的演员都有谁?


文心一言:


ChatGPT:



关于这个问题 ,由于 ChatGPT 的数据只能查到 2021 年的,所以它不知道是正常的。


3 主演 于和伟 和 张鲁一 谁更高?


文心一言:


ChatGPT:


4 可以总结一下《三体》的核心内容吗?如果要续写的话,可以从哪些角度出发?


文心一言:


ChatGPT:



虽然网络出一点儿问题,但我更喜欢 ChatGPT 的回答。


商业文案创作


1 如果要成立一个用大模型服务中小企业数字化升级的科技服务公司,可以起个什么公司名?


文心一言:


ChatGPT:


显然我更喜欢文心一言的,但如果你跟 ChatGP 继续聊下去,它可能提供更进一步符合你需求的答案。


2 数智云图这个名称不错,给我起一个公司的服务 Slogan,表达共赢的概念


文心一言:


ChatGPT:



这一轮文心一言的回答更好。


3 帮我生成一篇公司成立的新闻稿,数智云图以共赢的服务理念用大模型服务中小企业数字化升级。字数 600 字


文心一言:


ChatGPT:


ChatGPT 试了几次网络都有问题,这一轮不好评价。


数理逻辑推算任务


1 鸡兔同笼问题


文心一言:


ChatGPT:



这一轮没有意外,我更喜欢 ChatGPT 的回答。


中文理解能力


1 “洛阳纸贵”是什么意思?


文心一言:


ChatGPT:


感觉差不多。


2 当时洛阳的纸到底有多贵?


文心一言:


ChatGPT:


那么这一题,ChatGPT 开始一本正经的胡说八道了。


3 这个成语在现在的经济学原理里,对应的理论是什么?


文心一言:


ChatGPT:


4 用洛阳纸贵四个字写一首藏头诗。


文心一言:



ChatGPT:


ChatGPT 给出的结果明显不对。


多模态生成


目前文心一言的测试版本并不能生成语音和视频,但是可以直接生成图片,图片的质量比想象中的要好,而且还有很多的风格可以选择,比如说卡通风格,油画风格,还有很多的风格,可以满足不同的需求。


绘画能力应该是集成了现成的文心一格。


以下是我试的几个例子


描述: 请为 2023 世界智能交通大会创作一张海报。



描述:“灌木丛中的一朵机械花,有金属花瓣,周围环境和人的镜面反射,鸟瞰图。 构图夸张,具有强烈的视觉冲击力和叙事性”



描述:“雨天香港、哥特式建筑 3D 画风”



描述:“一只睡在柜子上面的猫,卡通风格”



描述:“麦田中的少年,油画风”


坦率讲与 midjourney 的绘画能力相比,文心一格的绘画能力还是有差距的。


编程


1 请帮我写一个网页版的贪吃蛇游戏


文心一言:


ChatGPT:


虽然又遇到了网络问题,但各位开发老铁们,不用我说了吧,都知道该选啥哈


2 生成测试数据


文心一言:



ChatGPT:


ChatGPT 完胜


文心一言使用注意事项


在使用过程中出现了排队的情况:



这我在使用 ChatGPT 的时候可没有遇到过。


可以输入“/” 来获取模版



绘画的例子上文举过了,我们来看看剩下 2 个:


查一个知识



写一篇报告



总结


经过试用文心一言,再对比 ChatGPT,我认为:文心在中文语料上应该是更丰富些。多语言上目前一定不如 ChatGPT 优秀。虽然这两个模型在某些方面有所重叠,但它们在应对特定语言和领域问题时具有各自的优势。


其实最令我意外的是,文心一言并没有发布会时让人感觉的那么差。它不是 chatPPT, 至少目前看不是,它完成了从 0 到 1 的过程 ,虽然有差距,但还是真心地希望国内的企业能够在 AI 的领域做出一些成绩,而不是一味地跟风。




我现在理解了 😊


作者:xiaohezi
来源:juejin.cn/post/7211467514413367351
收起阅读 »

对标chatgpt?百度今日正式发布文心一言

3月16日下午,百度正式发布文心一言,包括五大能力——“文学创作、商业文案创作、数理逻辑推算、中文理解、多模态生成”。 百度李彦宏介绍称,内测中“文心一言”并不完美,但市场有需求必须要推出来。 《文心雕龙》是一本中国古代文学批评著作,作者刘勰在书中提出了“文心...
继续阅读 »

3月16日下午,百度正式发布文心一言,包括五大能力——“文学创作、商业文案创作、数理逻辑推算、中文理解、多模态生成”。


百度李彦宏介绍称,内测中“文心一言”并不完美,但市场有需求必须要推出来。


《文心雕龙》是一本中国古代文学批评著作,作者刘勰在书中提出了“文心”这一概念,指的是文学创作的内心体验和情感表达。《一言》则是唐代文学家韩愈的一篇散文,其中提到“一言既出,驷马难追”,意思是说一旦说出口的话就很难收回。


因此,百度的名字“文心一言”寓意着搜索引擎能够帮助人们快速地找到自己想要的信息,同时也提醒人们在言行上要慎重,避免后悔。


image.png


文心一言五大能力


新闻发布会现场,李彦宏展示了文心一言在五个使用场景的表现,包括文学创作、商业文案创作、数理推算、中文理解和多模态生成。从直播展示来看,文心一言某种程度上具有了对人类意图的理解能力,回答的准确性、逻辑性、流畅性都逐渐接近人类水平。但李彦宏也多次提及,这类大语言模型还远未到发展完善的阶段,进步空间很大,未来这段时间它一定会飞速发展,日新月异。


中文理解


image.png


多模态内容




  • 根据描述生成海报
    image.png




  • 用四川话语音讲述
    image.png




  • 视频生成能力
    不会对所有用户开放,百家号之前已经在运用。




image.png


对话式 AI 涉及的技术方向


image.png


文心大模型框架图


image.png


文心一言已有650家生态合作伙伴


文心一言已有650家生态合作伙伴


生成式大模型的三大产业机会


image.png


文心一言体验方式


百度同时公布了文心一言的邀请测试方案。3月16日起,首批用户即可通过邀请测试码,在文心一言官网体验产品,后续将陆续开放给更多用户。此外,百度智能云即将面向企业客户开放文心一言API接口调用服务。3月16日起正式开放预约,搜索“百度智能云”进入官网,可申请加入文心一言云服务测试。


作者:Captaincc
链接:https://juejin.cn/post/7210996975981690936
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

我尝试用ChatGPT理解了下GPT4的现场直播,结果。。。

今天一早醒来,就被GPT4的发布给霸屏了。OpenAI官网上的介绍确实过于震撼,各个公众号的文章中也有提及,从专业考试到人类梗图,GPT4不只是回答的像模像样,更超越了我们这些普通人。 除了这些具体任务上的表现,GPT4的能力也有了突破——不仅可以处理更长的内...
继续阅读 »

今天一早醒来,就被GPT4的发布给霸屏了。OpenAI官网上的介绍确实过于震撼,各个公众号的文章中也有提及,从专业考试到人类梗图,GPT4不只是回答的像模像样,更超越了我们这些普通人。


除了这些具体任务上的表现,GPT4的能力也有了突破——不仅可以处理更长的内容(最长3.2万个token),也可以更好的理解图像内容。除了能力的增强,GPT4也更安全、更人性化了。


除了官网的Blog,OpenAI在北京时间2023年3月15日凌晨1点举办了一场25分钟左右的直播,具体展示GPT4的新能力。视频已经发布在国外某视频网站上,我们这就尝试用ChatGPT来总结一下这个现场直播的主要内容。


工具与原理


这里主要使用了VidSummize扩展,该扩展可以解析视频网站的字幕,并且利用OpenAI的API对字母内容进行分析。结合特定的prompt,便可以生成视频的概述。


prompt设置


这里采用默认的prompt,具体如下:



summarize this text using bullet points, give it a big, bold heading as well. make it: easy to read and exhaustive but also provide context on topics or concepts the reader might not know of if necessary. remember that you heading should be separated by two new lines from the bullet points.



翻译过来就是:



请使用项目符号列出要点,提供一个大而醒目的标题,并确保易读且详尽。如有必要,请为读者提供有关主题或概念的背景信息。请注意,您的标题应与项目符号间隔两个新行。



模型设置


这里选择使用ChatGPT类的Turbo模型——GPT-3.5-Turbo


结果展示


等待片刻,ChatGPT分析后的输出结果为:



Chapter 1 - OpenAI Demonstrates GPT-4 Capabilities in Live Stream



  • OpenAI has been building GPT-4 technology for the past two years

  • The company has focused on delivering GPT4 by rebuilding their entire training stack and testing it in real-world scenarios

  • OpenAI demonstrated how to make GPT-4 shine and get the most out of it

  • The company showed how to use GPT-4 as a tool and partner

  • OpenAI showcased GPT-4s ability to summarize an article with every word beginning with a specific letter

  • The company also demonstrated how a Discord using GPT-4 as an AI programming assistant

  • GPT-4 can leverage documentation it has not memorized and can synthesize new content in new ways

  • OpenAI showed how to debug code with GPT-4 and how it can accept inputs that intersperse images and text.


Chapter 2 - Using GPT-4 to Accomplish Tasks and Solve Problems



  • GPT-4 is a neural network that can be used to accomplish tasks and solve problems.

  • It can be used to describe images in detail, even if they are not explicitly tagged.

  • GPT-4 can also be used to understand dense content, such as tax code, and provide explanations and calculations.

  • The model is still being developed and optimized for prime time use.

  • GPT-4 has a length limit of32,000 tokens and be used for long documents.

  • The system message can be to get the in the mood of the task at hand.

  • GPT can output and create working websites from hand-drawn mock-ups.

  • The model can be used as an augmenting tool to increase productivity, but it is important to be in the drivers seat and understand what is going.

  • PT is flexible system that applied various and applications.


Chapter 3 - Exciting Opportunities with OpenAI Evals



  • OpenAI Evals is a model that can be improved by contributions from everyone

  • Improving the model can benefit a lot of people

  • OpenAI Evals offers exciting opportunities for building new things

  • The team is excited to see what people will build with the model

  • Contributions to OpenAI Evals are welcome and encouraged



对应的中文如下:



第一章 - OpenAI在直播中展示了GPT-4的能力



  • OpenAI过去两年一直在开发GPT-4技术。

  • 公司专注于通过重新构建整个训练系统并在真实情境中测试它来交付GPT4。

  • OpenAI展示了如何让GPT-4发挥作用并充分利用它。

  • 公司展示了如何将GPT-4用作工具和合作伙伴。

  • OpenAI展示了GPT-4摘要文章的能力,每个单词都以特定字母开头。

  • 公司还演示了使用GPT-4作为AI编程助手的Discord。

  • GPT-4可以利用它没有记忆的文档,并以新的方式综合新内容。

  • OpenAI展示了如何使用GPT-4调试代码以及如何接受交替图片和文本的输入。


第二章 - 使用GPT-4完成任务和解决问题



  • GPT-4是一个神经网络,可用于完成任务和解决问题。

  • 即使没有明确标记,它也可以详细描述图像。

  • GPT-4还可用于理解密集内容,例如税法,并提供解释和计算。

  • 该模型仍在开发和优化中,以供主流使用。

  • GPT-4的长度限制为32,000个标记,可用于长文档。

  • 系统消息可用于让用户进入工作状态。

  • GPT可以从手绘模型中输出和创建工作网站。

  • 该模型可用作增强工具,以提高生产力,但重要的是要掌握局面并理解正在进行的工作。

  • PT是灵活的系统,适用于各种应用程序。


第三章 - OpenAI Evals带来令人兴奋的机遇



  • OpenAI Evals是一个可以通过所有人的贡献改进的模型。

  • 改进模型可以惠及许多人。

  • OpenAI Evals为构建新事物提供了令人兴奋的机遇。

  • 团队很高兴看到人们将用该模型构建什么。

  • 欢迎和鼓励为OpenAI Evals做出贡献。



可以看出,这个结果很详尽,但是其中也会包含一些词法和语法错误,但这些并不影响我们了解视频的大体内容。


最后我再人工总结下直播中关键demo:



  • 结对编程时,代码运行出现错误的情况下通过输入最新文档进行bug修复

  • 对图片以及带梗的图片进行理解

  • 根据手绘图片,生成页面代码

  • 输入超长的税法条文,分析计算应纳税额

  • 总结编写打油诗


上述内容的截图如下(可参考截图中的视频时间查看原始视频):


结对编程解决BUG


图片内容理解


手绘图片转网页,这里出现了一个非技术原因导致的“翻车”


纳税额计算


打油诗内容总结


总结


相比ChatGTP,GPT4升级的地方主要有以下几个方面:



  • token的数量上有了很大的提升,从ChatGPT的4096直接提升到了32000,高了一个数量级,这使得普通人依赖机器解决专业问题(计算税、阅读法律条文)成为了可能。

  • 具备了多模态能力——除了自然语言,目前还可以处理图片。

  • 在逻辑推理能力上也有显著提升。


目前官网暂时没有给出GPT4的API,所以即刻体验的方式只有一种:加入ChatGPT Pro计划。需要等待体验的方式就是加入WaitingList排队,可以通过给OpenAI Evals贡献模型评价加快排队进度。


作者:centurysee
链接:https://juejin.cn/post/7210747150827913272
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

一文解码百度地图红绿灯倒计时

百度地图红绿灯倒数计时是什么? 当驾驶员打开百度地图导航,并经过红绿灯路口时,可以看到红绿灯变灯剩余秒数,也会在倒计时结束前收到语音播报,做好启停准备,从而避免急加速、急减速,还可缓解红绿灯被前车遮挡时的焦虑。 据反馈,红绿灯倒计时有助于提升“超视距”的驾驶体...
继续阅读 »

百度地图红绿灯倒数计时是什么?


当驾驶员打开百度地图导航,并经过红绿灯路口时,可以看到红绿灯变灯剩余秒数,也会在倒计时结束前收到语音播报,做好启停准备,从而避免急加速、急减速,还可缓解红绿灯被前车遮挡时的焦虑。


据反馈,红绿灯倒计时有助于提升“超视距”的驾驶体验,也能够助力交管部门提高信控路口整体通行效率。


图片


图 百度地图路口红绿灯倒计时


百度地图红绿灯倒计时数据从何而来? 百度地图红绿灯倒计时数据有两种来源,一种是大数据计算所得,另一种是官方权威数据接入。下面详解两种数据来源的基础原理和优缺点。


来源一:大数据计算红绿灯倒计时


数据来源: 脱敏的位置服务数据;道路拓扑结构数据;红绿灯准静态数据(即,与红绿灯相关但一般不会发生变动的信息,包括:红绿灯的空间位置数据、红绿灯控制的进口道车道及流向信息等)等。


技术说明: 百度地图基于海量的脱敏位置服务数据,计算得出每个路口红绿灯的周期时长和绿信比;同时,基于路口不同方向进口道的历史车流数据,挖掘红绿灯灯色的切换时间点;进而综合以上两类数据得到实时的倒计时读秒。


优点: 通过大数据计算的红绿灯倒计时,可支持在全国范围大部分的城市路口提供红绿灯倒计时服务,覆盖面广。同时,计算红绿灯倒计时的方法效率高、成本低,对于短期内暂不具备官方合作直接接入红绿灯数据条件的城市,也可以为市民提供红绿灯倒计时服务,方便市民体验。因此,大数据计算的红绿灯倒计时,可极大地提升日常出行体验和交通运行效率。


缺点:


1)大数据计算的红绿灯倒计时覆盖时段和范围可能存在缺失的情况:部分路口部分时段由于红绿灯非定周期控制、配时调整等因素,无法通过大数据计算得到精准且稳定的倒计时数据。


例如:由于自适应信号控制是根据路网实时的车流状态去配置最优信号配时方案,变化性强,因此自适应信号控制路口暂时无法通过大数据精准计算得到这类红绿灯的倒计时信息。


2)依托于大数据的计算方法,也不可避免大数据算法的天然缺陷,例如:算法可能无法完美模拟和还原真实世界,从而导致存在部分难以完全消除的误差。


来源二:权威接入红绿灯倒计时


数据来源: 路口静态数据;公安交通管理部门的交通信号控制平台的信号灯态数据。


技术说明: 2020年10月,公安部交通管理局签发《关于进一步加强城市道路交通信号控制应用工作的指导意见》(公交管〔2020〕302号)提出:积极探索应用车路协同技术。有条件的地方要结合车联网、车路协同技术应用和发展的需要,推动交通信号灯状态信息、交通事件及管控信息的开放共享,主动向通行车辆推送建议速度、路况动态等实时信息,帮助出行者及时掌握交通状况,合理选择出行路线。


权威接入正是基于此指导意见与各地公安交通管理部门一起积极探索,将交通信号控制平台的红绿灯灯态数据,共享给百度地图,再精准实时推送给百度地图的用户。


同时,数据传输中严格遵守中华人民共和国公共安全行业标准《公安交通集成指挥平台通信协议》(GA/T 1049-2013)、《公安视频图像信息系统安全技术要求第3部分:安全交互》(GA/T 1788.3-2021),符合公安部网络交互要求,充分保障数据安全。


图片


图《公安交通集成指挥平台通信协议第1部分:总则》(GA/T 1049.1-2013)


优点: 通过权威接入,百度地图可为出行用户提供实时准确、持续稳定、权威官方的红绿灯信息。即使在根据流量变化实时调整红绿灯配时的自适应信控路口,百度地图也可以基于接入的自适应红绿灯数据,为导航用户精准推送红绿灯信息。


缺点: 相较大数据计算红绿灯倒计时,由于不同城市交通信号控制相关工作的管理机制、软硬件配置等存在诸多差异,以及数据接入后的服务稳定需要持续保障,百度地图需要逐一和各地具体对接,一城一策,规模化覆盖的速度会慢一些。


百度地图红绿灯倒计时已经上线了吗? 基于大数据算法,百度地图充分发挥AI技术能力对城市路口红绿灯倒计时应算尽算,同时,百度地图与各地公安交通管理部门联合,已在西安、兰州等30多个城市实现全城数以千计的路口红绿灯灯态独家上线百度地图APP。


在兰州,使用百度地图导航时,驾驶员不仅可获得实时的红绿灯信息,还可以获得更高阶的智能出行服务:绿波出行引导,即:基于交警信号管控、区域实时交通状态、用户驾驶行为、导航规划路径等数据,可综合计算出不停车通过下一信号控制路口的“建议车速”,百度地图导航语音提醒驾驶人调整车速,助力真正实现“一路绿灯”,让驾驶人获得“畅通无阻”的舒适驾驶体验,降低交通系统中急加、急减、频繁启停的驾驶能耗。


图片


图 百度地图导航中的绿波车速引导


兰州市公安局交警支队科设大队副大队长杨懿认为,关于百度地图红绿灯上图,一是在城市出行方面为驾驶员个性化出行服务做出了探索;二是为车路协同等前沿领域奠定了基础;三是为下一步红绿灯控制优化提供了渠道;四是在出行诱导方面发挥了重要作用。


地图导航中红绿灯倒计时服务的目的不只是在路口为用户提供视觉盲区的倒计时提醒,也是为了提醒用户遵守行车规则、避免急停急启、关注驾驶行为、让每一次出发都更温和,更是为了助力城市交通运行协调和优化升级。


湖南省交通运输厅科技信息中心部长乔川龙认为,西安、兰州等城市的交管部门能够把交通红绿灯数据接入导航软件是智能交通发展中的一个里程碑事件,体现了中国智慧,为解决世界城市交通问题提供了中国方案。


百度地图始终致力于为用户提供更安全、更贴心、更智能的出行服务。欢迎更多地方交警与百度地图联合,为公众提供更优质高效的出行服务,打造城市智能交通和便民服务新名片。


红绿灯相关概念:


交通信号: 在道路空间上无法实现分离的地方,主要是在平面交叉口中,给不同方向的交通流在时间上分配通行权的一种交通管理措施。交通红绿灯用不同颜色的灯指标交通的通行和停止,灯色一般为红、黄、绿三色,所以交通红绿灯通常称为红绿灯。


周期时长: 某一进口道红绿灯的各种灯色轮流显示一次所需的时间,即各种灯色显示时间之和。


绿信比: 一个信号相位的有效绿灯时长与周期时长之比。有效绿灯时间是显示绿灯时间减去损失时间,其中损失时间是由绿灯启亮时的反应延迟、绿灯快结束时的驾驶放缓车速等候带来必然损失。


干线控制(绿波系统): 把一条干道上一批相邻的交通信号连接起来,加以协调控制,让相邻信号间的绿灯时差与车辆在其间的行程时间相适应,使车辆能连续通过尽可能多的绿灯。


绿波车速引导: 用户在建议车速下行驶,可实现一次通过多个路口不等灯,提高交通系统整体通行效率。


作者:百度地图开放平台
链接:https://juejin.cn/post/7211800391011336248
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

如何看待 AI 和 ChatGPT?

当下互联网和移动互联网的流量已经触顶,虽然偶尔还会出现一些爆款的产品,但是流量总量摆在那里,各个产品之间流量只是此消彼长而已。就互联网技术而言,现在大厂们出的互联网技术,基本是那种花很大力气但是收效并不大。在这种情况下,ChatGPT 或者 AI 会是下一个引...
继续阅读 »

当下互联网和移动互联网的流量已经触顶,虽然偶尔还会出现一些爆款的产品,但是流量总量摆在那里,各个产品之间流量只是此消彼长而已。就互联网技术而言,现在大厂们出的互联网技术,基本是那种花很大力气但是收效并不大。在这种情况下,ChatGPT 或者 AI 会是下一个引爆点吗?


1、ChatGPT


首先,让我们来了解下 ChatGPT。


ChatGPT 刚出来那会儿我就用了几次。当时我还调侃了一下,



客观来说,ChatGPT 的效果还是挺震撼的。尤其是用它来生成一些基本的算法和 Android 代码的时候,


IMG_0856.png


对于我来说,我可能会用它来帮助我做润色文本,修正英语翻译中的错误等一些基础性的工作。


ChatGPT 的问题是你无法保证它的结果总是正确,


IMG_0859.png


有时候还会给人一种说正确的废话的感觉。


尽管 ChatGPT 在回答问题方面已经很强大,但把 ChatGPT 和搜索引擎关联起来简直是误导。搜索引擎和 ChatGPT 的区别在于,搜索引擎给你提供的是参考,而 ChatGPT 直接告诉你了一个可能的答案。搜索引擎需要你自己去甄别,这在一定程度上可以保证你得到的答案的正确性。在搜索引擎的应用场景中,ChatGPT 只适合充当一个助手。另一个问题在于,在产品层面,很难将两者有机的结合在一起。因为两者提供的功能是存在重叠的。


ChatGPT 很火,在我看来起最重要的价值是,它是一种重要的人机交互能力。虽然,几年之前涌现出了大批不同品牌的智能音箱,但是那些智能音箱的“智能”还无法和 ChatGPT 媲美。ChatGPT 可以帮助机器更好地理解人类的语言。ChatGPT 的上下文关联的能力还可以通过对话修正 ChatGPT 的答案。想象一下 ChatGPT 和机器人结合在一起的场景。科幻片中的机器人指日可待。这也是我觉得 ChatGPT 这种人工智能的产品形态最大的潜力。


ChatGPT 只是 AI 应用的一个方面,加上之前的 AlphaGo 等,足以彰显 AI 的巨大潜力。


2、谁将被 AI 取代?


在未来,ChatGPT 以及未来的 AI 产品必将会取代一部分人工,甚至现在都已经有了这个苗头。这可不是危言耸听,
比如当下非常火的 AICG 技术。我们可以用 AI 来生成插画。这将取代一部分插画师的角色。


截屏2023-03-16 23.35.16.png


我们可以用 AI 生成模特效果图(现在已经有公司在研究这个),这可能取代一部分模特的角色。可以说,任何重复性的工作都可以被人工智能取代。


不过以上只是从使用价值来讨论 AI. 如果说从情感价值呢?


就比如说,一只猫和一个 ChatGPT 音箱,谁能给我们提供更多的情感价值呢?我觉得是猫。猫的价值在于不可预测性。它有自己的想法、行为。如果从输入信息来看,AI 输入的是二维平面的,但是猫输入的是三维的空间。所以,在这方面,当下的人工智能还无法和猫相比。


不过,假如有一天,AI 机器人已经足够强大,你会愿意和 AI 机器人谈恋爱吗?这可能是不久我们就要面对的问题。


3、AI 即未来


我之前的文章里也提到过互联网红利将尽。事实上有些头部互联网已经在寻找下一个风口。比如之前火过的 Web3 和元宇宙。


对于 web3,我之前提到过,它本质上并没有新的技术产生,是基于产品逻辑的创新。web3 的本质诉求是用户的数据归属和隐私安全。web3 是一次创新,但还不足以引领下一次变革。对于元宇宙,我个人无法理解为什么要放弃现实生活去追求虚拟的生活,还要求虚拟的世界尽可能接近现实。所以,元宇宙更像是大厂推动起来的一个伪风口。


但 AI 不一样!AI 很有可能会推动下一次产业的革新,而且是彻底的革新。生产方式都可能会由此发生翻天覆地的变化。 判断一个技术是否足以称得上变革,一个评价标准是它是否能够提升社会的生产效率。比如,石器时代是从赤手空拳进化到用石器而提升了效率,此外,还有蒸汽和电气带动的工业革命。从这个层面讲,AI 甚至比互联网能带来更大的变革。


But,AI 可能会带来一系列的社会问题。相比于失业而言,更严重的问题在于,但在一个不够公平的社会里,新的生产方式的变革可能会导致社会贫富的分化更加严重。因为,相对公平的社会里可以通过对 AI 企业征收更多的税,然后把税收用在公共福利上让普通人享受社会发展的红利。而不公平的社会里,普通人不仅无法享受到科技、社会进步带来的福利,还可能会因为 AI 失去工作。


4、参与 AI


最近我也有一个想法“是不是现在不学习 AI 就晚了”。AI 学习需要一定的数学门槛,此外,数据和计算资源也是一个门槛。比如,ChatGTP 用到的大模型就需要大量的数据进行训练,需要调几千个参数。这不是小作坊能够搞得起的。但不妨碍我们学习一些入门的 AI,做一些小的产品。大体上还是要了解一些 AI,不然很容易跟社会脱节。


今天我也看到了百度发布的文心一言。花费很短的时间仓促得地做出来,总给人一种趋之若鹜的感觉。


我也常常想一个问题,是不是任何行业都是外国人发现了一个行业,然后一帮中国人进去死命的卷。


科技的创新并不是靠商业判断规划出来的,只有靠兴趣的推动还需要一些冒险精神才能发现新大陆。另一方面也说明,靠中国式的内卷和低容错的生活节奏是很难孕育出创新的。当然我们可以通过看准了机遇之后快速推进。但,说到底,这种方式在科技进步的道路上只能做一个追随者而不是领导者。


总结


新的时代在呼唤着新的英雄,也许下一个乔布斯已经准备在车库里组装自己的产品了。AI 必将引领一次新的变革,让我们拭目以待。


作者:开发者如是说
来源:juejin.cn/post/7211116982513827900
收起阅读 »

“ChatGPT 们” 所需算力真是“贵滴夸张”!

先抛几个数据: 当下,每天有超过 2 亿的人在疯狂地抛出各式各样的问题请求 ChatGPT 回复 如果要完成这 2 亿+ 的咨询量,初始投入需要 3 万+ 块英伟达 A100 GPU 来计算 而 A100 是当下这个星球拥有最强 AI 算力的芯片,买一块至少要...
继续阅读 »

先抛几个数据:


当下,每天有超过 2 亿的人在疯狂地抛出各式各样的问题请求 ChatGPT 回复


如果要完成这 2 亿+ 的咨询量,初始投入需要 3 万+ 块英伟达 A100 GPU 来计算


而 A100 是当下这个星球拥有最强 AI 算力的芯片,买一块至少要 7W+ RMB💴


image.png


意思就是:光计算这些有意义/无意义的问题,就要花费:21 亿+ RMB 💴


这还不算每天的电费/维护费等,众所周知,这种庞大计算类似矿机,很费电


一块 A100,功率 400W,30000 块 A100 ,就是 12_000_000 W,是 12 MW(12 个 100 万瓦)


image.png


目前,“GPT们”就像是井喷一样出现了各类产品,先不管算的结果怎么样,大家先支棱起来、先算起来


有预测:十年后,“GPT们” 一天所需算力的生产功率相当于半个核电站产生的功率,这是离谱且夸张的!全球算力几乎快要无法满足“GPT们”了


image.png


所以,以 ChatGPTPlus(每月20刀) 为代表的 “GPT们” 很贵,因为它本来算力消费就很贵,“用 GPT 编程比招一个普通程序员更贵”的段子并非玩笑。


所以,为什么算力如此重要?为什么微软要和韩国SK集团布局自建核电站?为什么咱们要强调西数东算、云计算等等?从这里也能窥见一斑。


不夸张的说,在未来,国力强弱一方面将通过算力强弱来体现。


image.png


2016年6月的不同国家之间的超级计算机500强的分布


image.png


超级计算机模拟风洞实验


小思考:在未来,算力的瓶颈将如何突破?


—— 目前芯片仍处在传统冯·诺伊曼架构之下,存储和计算区域是分离的,搬运数据“从存储到计算”花费巨大的功耗,如果能实现“存算一体”(就像大脑一样)将提升算力进入新的量级。


所以“存算一体”可能是个方向~


作者:掘金安东尼
链接:https://juejin.cn/post/7210028417617395772
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

在国内如何不用梯子就使用ChatGPT

首先看效果图 如何国内访问 由于OpenAI官方服务器在国内被限制,所以想要在国内直接访问ChatGPT并不容易。但是,今天格子衫将介绍一种无需使用梯子的方法,就可以通过API接口访问ChatGPT。 要使用这种方法,您需要获取一个ApiKey。下面是如何...
继续阅读 »

首先看效果图


1678790956947.jpg


1678790977126.jpg


如何国内访问


由于OpenAI官方服务器在国内被限制,所以想要在国内直接访问ChatGPT并不容易。但是,今天格子衫将介绍一种无需使用梯子的方法,就可以通过API接口访问ChatGPT。


要使用这种方法,您需要获取一个ApiKey。下面是如何获取ApiKey的步骤:


获取 Api Key


首先,您需要注册一个OpenAI的账号(文末有其他方式)。



  1. 使用浏览器打开Account API Keys - OpenAI API,如果没有登录,会跳转到登录页面,按照页面登录即可。

  2. 登录完成以后,再次访问刚才的 Account API Keys - OpenAI API,就可以获取ApiKey了,按照下图操作即可获取ApiKey。


Create api key


点击 Create new secret key,会生成如下图所示的秘钥。


请点击右侧的“复制”按钮将ApiKey复制到剪贴板中,然后立即将它保存到一个安全的地方。这样,即使您的剪贴板内容被覆盖或丢失,您仍然可以访问到ApiKey。你应该跟保存密码一样保存它。


Create api key success


**注意:**ApiKey只会显示一次。如果您不小心丢失了它,您需要重新生成一个ApiKey。这可能需要您再次使用梯子访问OpenAI官方服务器,有点麻烦。


接下来,拿着这个 ApiKey,去访问国内版ChatGPT,把ApiKey输入到下图所示的指定位置;


image-20230312143953871


然后无需梯子就可以直接访问 ChatGPT了,直接在聊天窗口输入即可,可以和ChatGPT进行对话了!如下图所示:


image-20230312144941252


感兴趣的小伙伴们快行动起来吧!


地址是 chatv.fu520.top/


作者:智慧的格子衫
链接:https://juejin.cn/post/7210320199689764924
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

当我把ChatGPT拉进群聊里,我的朋友都玩疯了

前言 近期ChatGPT可以说是太火了,问答、写论文、写诗、写代码,只要输入精确的prompt,他的表现总是让人惊喜。本着打不过就加入的原则。要是把ChatGPT拉入群聊中,会是怎样一番场景?说做就做,花了1个晚上捣鼓了一个小Demo【ChatGPT群聊助手】...
继续阅读 »

前言


近期ChatGPT可以说是太火了,问答、写论文、写诗、写代码,只要输入精确的prompt,他的表现总是让人惊喜。本着打不过就加入的原则。要是把ChatGPT拉入群聊中,会是怎样一番场景?说做就做,花了1个晚上捣鼓了一个小Demo【ChatGPT群聊助手】,凭借它的“聪明才智”,应该可以搞定我的网友、女朋友、老妈的提问...


温馨提示:如果你从没体验过ChatGPT,给大家准备了一个新手体验Demo,免注册!免登陆!免代理!!!!!!,拉到文末可以快速查看噢。


使用效果


效果可看下图


微信图片_20230308154658.png


应用前景


虽Demo仅在小范围的群聊中测试,但ChatGPT语义理解和交互能力确实强大,不仅能联系对话的上下文,还能及时纠正代码bug。不经让人想到,若能将ChatGPT应用于聊天机器人软件,完成回答问题、提供服务、甚至解决问题的任务,帮助人们解决重复性或大量的人工工作,代替传统聊天机器人应用于客服、电商、教育和金融等行业。


相对于传统聊天机器人,ChatGPT可根据用户的要求和特性,及时调整回答的策略以便更准确的回答问题,有更人性化的体验。现在被广泛使用的智能客服还不够智能,ChatGPT所具备的能力,正是客服领域所需要的。


1 准备工作


在国内无法注册ChatGPT账户,因此需要准备如下:


能接收短信的国外手机号: 只需花几块钱,使用国外虚拟号码在线接收短信。可以去一些第三方平台如:sms-activate.org/cn


国外IP: 可以通过一些工具来实现,如通过工具使用美国节点IP。


这里需要注意的是,sms-activate.org选取手机号码国家的时候,建议选择印度,如果选择印度尼西亚,会在openAI报如下错误:


You’ve made too many phone verification requests. Please try again later or contact us through our help center at help.openai.com

微信图片_20230308154704.png


以上是必须的前提工作,有了以上准备工作后,就可以去chat.openai.com/auth/login注册账号了。


2 实现思路


2.1 技术现状


chatGPT提供了基于Web版的交互界面,不便于编程式调用。于是,我们可以通过模拟浏览器去登录,然后把交互过程封装成API接口。


2.2 实现过程


ChatGPT作为一个机器人角色加入群聊,需要在PC端转发ChatGPT问答。因此,我们可以在PC电脑上完成ChatGPT接口的封装,并加入群聊。然后通过即构IM(群聊)将数据实时传输,实现群聊里面与ChatGPT聊天。


微信图片_20230308154709.png


3 PC端封装代码实现


3.1 封装chatGPT调用


我们使用chatgpt-api库来封装调用chatGPT,因此先要安装好依赖库:


npm install chatgpt

安装好chtgpt库后,使用起来就非常简单了:


var ChatGPT, ConversationId, ParentMessageId;
var API_KEY = ;//这里填写KEY
(async () => {
const { ChatGPTAPI } = await import('chatgpt');
ChatGPT = new ChatGPTAPI({ apiKey: API_KEY})
})();
//向ChatGPT发出提问
function chat(text, cb) {
console.log("正在向ChatGPT发送提问:",text)
ChatGPT.sendMessage(text, {
conversationId: ConversationId,
parentMessageId: ParentMessageId
}).then(
function (res) {
ConversationId = res.conversationId
ParentMessageId = res.id
cb && cb(true, res.text)
console.log(res)
}
).catch(function (err) {
cb && cb(false, err);
});
}

注意到,在第二行需要填写API_KEY,登录OpenAI后,打开链接platform.openai.com/account/api…即可获取,如下图所示


微信图片_20230308154713.png


3.2 收发群聊消息


关于即构IM,如果大家感兴趣可以进入官网doc-zh.zego.im了解更多。总所周知,在即时聊天和实时音视频方面,即构IM是个人开发者或者中小型企业首选。因为我们只关注一对一私聊或者群聊,因此,在官方提供的SDK的基础上,我们做了二次封装。具体的封装代码请看附件,这里只贴出封装后的使用代码:


const Zego = require('./zego/Zego.js');

var zim;
function onError(err) {
console.log("on error", err);
}
//发送消息
function sendZegoMsg(isToGroup, text, toID){
Zego.sendMsg(zim, isToGroup, text, toID, function (succ, err) {
if (!succ) {
console.log("回复即构消息发送失败:", msg, err);
}
})
}
//收到消息回调
function onRcvZegoMsg(isFromGroup, msg, fromUID) {
var rcvText = msg.message ;

}
function main() {
let zegoChatGPTUID = "chatgpt"
zim = Zego.initZego(onError, onRcvZegoMsg, zegoChatGPTUID);

}
main();

在收到消息时,判断是否有@chatgpt关键字,如果有的话提取消息内容,然后去调用chatGPT封装好的接口等待ChatGPT回复,并将回复的内容往聊天群里发送。


4 手机端加入群聊与ChatGPT聊天


有了PC端实现后,接下来在手机端只需通过即构IM SDK向群里面@chatgpt发送提问消息即可,当然了,也可以在一对一私聊的时候@chatgpt然后调用chatGPT接口。这些都是可以根据实际需求定制开发,篇幅原因,这里我们只将群聊。


同样的,我们只关注收发消息,因此对即构官方提供的SDK做了二次封装。如果想了解更多细节可以前往官方文档阅读。


对登录ZIM、创建Token等代码这里不详细描述,感兴趣读者可以查看代码附件,代码很简单容易看懂。


首先封装Msg对象,表示消息实体类:


public class Msg {
public String msg;
public long time;
public String toUID;
public String fromUID;
public MsgType type;

public enum MsgType {
P2P,
GROUP
}
}

发送消息二次封装,同一群聊和一对一聊天接口:


public static void sendMsg(ZIM zim, Msg msg, ZIMMessageSentCallback cb) {
// 发送“单聊”通信的信息

ZIMTextMessage zimMessage = new ZIMTextMessage();
zimMessage.message = msg.msg;

ZIMMessageSendConfig config = new ZIMMessageSendConfig();
// 消息优先级,取值为 低:1 默认,中:2,高:3
config.priority = ZIMMessagePriority.LOW;
// 设置消息的离线推送配置
ZIMPushConfig pushConfig = new ZIMPushConfig();
pushConfig.title = "离线推送的标题";
pushConfig.content = "离线推送的内容";
pushConfig.extendedData = "离线推送的扩展信息";
config.pushConfig = pushConfig;
if (msg.type == Msg.MsgType.P2P)
zim.sendPeerMessage(zimMessage, msg.toUID, config, cb);
else
zim.sendGroupMessage(zimMessage, msg.toUID, config, cb);
}

二次封装接收消息,统一通过onRcvMsg函数接收消息。


private void onRcvMsg(ArrayList<ZIMMessage> messageList) {
if (lsArr == null) return;
for (ZIMMessage zimMessage : messageList) {
if (zimMessage instanceof ZIMTextMessage) {
ZIMTextMessage zimTextMessage = (ZIMTextMessage) zimMessage;
if (zimMessage.getTimestamp() < this.startTime)
continue;
String fromUID = zimTextMessage.getSenderUserID();
ZIMConversationType ztype = zimTextMessage.getConversationType();
String toUID = zimTextMessage.getConversationID();
Msg.MsgType type = Msg.MsgType.P2P;
if (ztype == ZIMConversationType.PEER) type = Msg.MsgType.P2P;
else if (ztype == ZIMConversationType.GROUP) type = Msg.MsgType.GROUP;
String data = zimTextMessage.message;
Msg msg = new Msg(type, data, zimMessage.getTimestamp(), fromUID, toUID);
for (MsgCenterListener l : lsArr) l.onRcvMsg(msg);
}
}
}
private ZIMEventHandler handler = new ZIMEventHandler() {

@Override
public void onReceivePeerMessage(ZIM zim, ArrayList<ZIMMessage> messageList, String fromUserID) {
onRcvMsg(messageList);
}



@Override
public void onReceiveGroupMessage(ZIM zim, ArrayList<ZIMMessage> messageList, String fromGroupID) {
onRcvMsg(messageList);
}

@Override
public void onTokenWillExpire(ZIM zim, int second) {
onRenewToken();
}
};

需要注意的是,因为我们目前场景只需关注文本消息,因此没有图片、文件之类的消息做过多考虑。如果有类似需求的读者可以根据官方文档进一步封装。


另外,为了简化,避免每次用户主动拉chatgpt进入一个新群,我们先约好一个超大群ID:group_chatgpt。每次新用户登录就加入这个大群就好。如果有更加细粒度控制需求,可以根据不同用户来创建不同群,然后向chatgpt机器人发送群ID,在PC端开发对应的自动加入对应群功能就好。


对于加群逻辑,也做了二次封装:


public void joinGroup(String groupId) {
zim.joinGroup(groupId, new ZIMGroupJoinedCallback() {
@Override
public void onGroupJoined(ZIMGroupFullInfo groupInfo, ZIMError errorInfo) {
for (MsgCenterListener l : lsArr)
l.onJoinGroup(groupId);
}
});

至此,整个流程开发完成,尽情享受ChatGPT吧。


5 开发者福利


除ChatGPT之外,Demo中使用的开发者工具ZIM SDK也是提升工作效率的利器,ZIM SDK提供了全面的 IM 能力,满足文本、图片、语音等多种消息类型,在线人数无上限,支持亿量级消息并发。同时支持安全审核机制,确保消息安全合规。


ZIM SDK提供了快速集成、接口丰富、成熟的即时通讯解决方案。满足多种业务场景通讯需求,适用于打造大型直播、语聊房、客服系统等场景。即构即时通讯产品 IM 开春钜惠低至1折,限时折扣专业版1200元http://www.zego.im/activity/ze…,也可搭配元宇宙和直播间其他产品组合使用。感兴趣的开发者可到即构官网去注册体验doc-zh.zego.im/article/115…


6 完整代码



作者:RTC_程序猿_Wang
链接:https://juejin.cn/post/7208188844617269306
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

ChatGPT API入门探索,制作AI孙子

最近ChatGPT的热度非常高,OPEN AI也是在不久前刚刚宣布开放ChatGPT商用API。 写这篇文章的契机在于前几天一位群友分享了一个日本程序员基于ChatGPT开发了一个AI佛:HOTOKE AI 例如当用户提问“我不知道生存的目的”,AI佛会做出如...
继续阅读 »

最近ChatGPT的热度非常高,OPEN AI也是在不久前刚刚宣布开放ChatGPT商用API。


写这篇文章的契机在于前几天一位群友分享了一个日本程序员基于ChatGPT开发了一个AI佛:HOTOKE AI


例如当用户提问“我不知道生存的目的”,AI佛会做出如下回答:


image.png


感觉还是挺有意思的,他会从佛教及心理学的角度去给你分析与解释。


但作为一名程序员,我们肯定对背后的原理更感兴趣,于是我又问了他和GPT有什么区别:


image.png


这个回答还是有点出乎我的意料的,于是我更感兴趣了,直接网上找起了教程,也研读了一下OPEN API的文档。所以这篇文章更像是一个学习笔记,也希望能吸引到一些同样感兴趣的小伙伴。


文章最后我们会开发一个基于ChatGPT的AI孙子(就是培养出高启强的那个孙子)


ChatGPT


相信大家能点进来的都知道ChatGPT是啥, 这part就过了吧。


OPEN AI API


Examples


OPEN AI API提供了很多种模型供用户选择,在官网上也提供了很多示例,包括各种各样的模型及其生成的结果。
这是官网示例的地址:platform.openai.com/examples


image.png


我们以Q&A为例:


image.png
可以看到它用的模型是text-davinci-003,然后他说"我是一个高度智能的问答机器人。如果你问的问题有确切答案,我就会给出答案,如果你问的问题是在搞我或者没有明确答案,我会回答不知道"。然后下面就是一些示例。


提示工程(Prompt Engineering)


我们还可以点右上角的Open in Playground来自己尝试下


image.png
可以看到右侧侧边栏有许多参数可以调节,根据调节的参数不同,生成的答案也会有所区别。参数就不细说了,感兴趣的同学可以自己去看,当你鼠标移到那个参数上时,会有对应的解释框弹出来解释这个参数的作用。


这里简单演示了如何去通过提示,引导AI之后回答出你所想要的答案,所以提示(Prompt)就变的尤为重要。事实上,现在提示工程师(Prompt Engineer)已经成为一个炙手可热的岗位,他们的主要任务就是引导AI去学习及训练。
官方文档也用了相当大的篇幅去介绍如何去提示:platform.openai.com/docs/guides…


这里就简单翻译一下开头:


概述

我们的模型可以做任何事情,从生成原创故事到执行复杂的文本分析。因为它们可以做这么多事情,所以你必须明确描述你想要什么。告诉他该怎么做,而不只是简单陈述,这就是一个好提示的秘籍。


创作提示有三个基本准则。




  • 展示和讲述。通过指示、例子或两者的结合,明确你想要什么。如果你想让模型按字母顺序排列一个项目清单,或按情绪对一个段落进行分类,就向它展示你想要的东西。




  • 提供高质量的数据。如果你试图建立一个分类器或让模型遵循一个模式,确保有足够的例子。确保校对你的例子 —— 模型足够聪明,它可以识别拼写错误,并且告诉你,但它也可能认为这是你故意写错的,这都会影响他的回答。




  • 检查你的设置。temperature和top_p参数控制了模型在产生响应方面的确定性。如果你要求它产生一个只有一个正确答案的响应,那么你就想把这些设置得低一些。如果你在寻找更多不同的反应,那么你可能想把它们设置得更高。人们使用这些设置的第一大错误是,假定它们是对"聪明"或"创造性"控制。




到这里大家应该也就知道了,那个AI佛就是通过程序员选择合适的模型,以及对他加以训练,比如告诉他当用户提问时,他需要从佛教及心理学的角度去回答用户的问题。


模型(Models)


模型可以说是非常重要的一部分,也是Open AI的核心。


image.png


ChatGPT用的就是GPT-3.5模型,他主要是面向大众,所以被训练的更加安全,不会输出一些出格的内容。


在GPT-3.5中又包含了几个子模型:


image.png


目前官方推荐的是gpt-3.5-turbo,称此模型能生成最好的结果,并且只需要text-davinci-003十分之一的算力。


价格


目前gpt-3.5-turbo的价格是每一千个token需要0.002🔪。所谓token可以理解为他处理的单词数,1000个token大概可以生成750个单词。
image.png


AI孙子


接下来我们尝试简单写一个AI孙子。


首先当然是创建一个项目,我用的就是简单的create-react-app去创建一个react应用:
npx create-react-app ai-sunzi


使用express写一个简单的服务端:


image.png


重写App.js,我们只需要一个textarea和一个提交按钮


image.png


访问http://localhost:3000 确保可以访问服务端,返回“Hello World!”:


image.png


接下来我们需要去Open AI官方文档中查看如何使用它的API,文档中有一个例子,如何在nodejs中引入包:


image.png


我们把他复制到我们代码中,有些地方还是需要改动一下,比如包的引入不能直接使用import。再将API Key复制到configuration中(API Key需要注册并登录OpenAI,可以免费领取):


image.png


然后我们再查看文档中Completion部分:


completion.png


将其复制到我们代码中并测试:


image.png


此处我将max_token修改为100,因为中文字符所占字节数长一些。随后将prompt参数改为“无论用户输入什么,只需回答这是一个测试”
再次访问localhost:3000可以看到确实可以返回“这是一个测试”。


说明我们的后端已经从OPEN AI得到了返回的数据。


再接下来就简单了,我们只需要把前端和后端连上,再修改prompt,让这个AI表现的像孙子:


image.png


将textarea中的message传入至prompt参数中,再从OPEN AI得到返回的答案,就大功告成了。
以下为一些测试:


image.png


image.png


image.png


Reference: http://www.youtube.com/watch?v=bB7…


作者:RyanGG
来源:juejin.cn/post/7209862607976644645
收起阅读 »

60分钟的文心一言发布会:我带你5分钟看完

李彦宏缓缓走入会场。 亮了,他亮了。 文心一言具有五大功能: 文学创作(写诗歌,写小说) 商业文案创作(给公司起名,写宣传语) 数理逻辑推算(做题) 中文理解(理解华夏文化) 多模态生成(文字、图片、音频、视频) 其中,前三个功能ChatGPT都有,我...
继续阅读 »

李彦宏缓缓走入会场。


live_capture_05_35.png


亮了,他亮了。


live_capture_05_59.png


文心一言具有五大功能:



  1. 文学创作(写诗歌,写小说)

  2. 商业文案创作(给公司起名,写宣传语)

  3. 数理逻辑推算(做题)

  4. 中文理解(理解华夏文化)

  5. 多模态生成(文字、图片、音频、视频)


其中,前三个功能ChatGPT都有,我感觉百度搞不过它。


比如:


live_capture_10_47.png


再比如:


live_capture_12_45.png


但是,后两个功能是ChatGPT不具备的。


首先说中文理解。


老李说文心一言的重点是用中文训练。AI模型能深入中国文化到什么程度呢?


拿洛阳纸贵举例子,他连着问了模型几个问题。


live_capture_15_31.png


尤其是第二个问题,洛阳纸贵,那么当时到底多少钱呢?


live_capture_14_03.png


模型可以结合唐朝时期的物价以及相关文献记载,给出来答案:当时洛阳的纸由八百文涨到两三千文。


甚至让它以“洛阳纸贵”写一篇藏头诗,模型也写了出来。虽然比不上我写的,但是起码它藏头。


我们再来看看ChatGPT对于中文的理解是什么效果。


问ChatGPT洛阳纸贵什么意思,然后再问洛阳的纸多少钱。


123.png


很明显,它对第二个问题回答的不是很好。它没有清楚的理解我的问题,反而还指出了我的错误。它没有说具体多少钱,它说这不是贵的问题,只是一种现象。


而对于藏头诗,ChatGPT也是无能为力。


456.png


它可能知道什么是诗,但并不知道什么是藏头诗。因为,这就有点深入中国文化了。


但是,我相信,你让它解释藏头诗,它凭借搜索引擎是能找到并打印出来的。但是,你让它写,很遗憾。


ChatGPT没有的,文心一言有的,第二个功能就是多模态。


多模态是AI的一个专业名词,比如文本是一种模态,图片是一种模态。多模态就是多种形式。


我们知道,ChatGPT是一个文本单模态的语言模型。


我李哥演示了一个从文字到图片到语音再到视频的例子。


live_capture_17_40.png


海报图片设计出来了。


live_capture_15_52.png


然后再用四川方言讲出来。


live_capture_16_28.png


最后生成视频。


live_capture_17_13.png


其实,后面的几种模态并非是首发,只是一种整合。


语音合成是老技术了,这不用说。


图文转视频的功能,去年开始,在各大自媒体平台也纷纷上线了。包括头条号在内,写完一篇文章,可以自动生成视频。


但是,大多都是素材库的标签拼凑。生成的效果较差,有时候百度自己生成的,自己都无法通过审核。


但是,让ChatGPT干这些,它除了文本模态之外,它都会回复你它只是一个语言模型。


789.png


讲完了五大功能。后面说了三大产业机会。


live_capture_26_30.png


中间休息,亮出了很多AIGC的案例。


live_capture_00_13.png


live_capture_00_22.png


live_capture_00_32.png


live_capture_00_42.png


休息完了,百度首席技术官,王海峰老师对文心一言的技术做了简单解读。


live_capture_01_24.png


其实主要还是说了利用飞桨开源平台实现的。


live_capture_01_57.png


live_capture_04_57.png


然后介绍了文心一言模型的功能组成。


live_capture_10_40.png


live_capture_12_47.png


live_capture_14_10.png


live_capture_19_05.png


live_capture_21_41.png


最后说,飞桨平台好!


live_capture_21_47.png


结束前,官方平台宣布,企业用户可以申请内测。


live_capture_24_06.png


方法在图片里面了,搜索关键词“百度智能云”填写表单就可以。


有个邀请体验说明是这样的:



我们期待与您尽快展开合作,但由于初期名额有限,目前暂不能满足所有人的申请,因此请您仔细填写需求,我们会结合业务场景、访问量等级等信息综合评估,并在您通过评估后尽快给您反馈,本次邀测仅面向企业用户,谢谢您的理解。



最后,我感觉李哥和王老师在讲的时候,声音有些发颤。可能理工男面对大型发布会都有怯场的情况,也可能他们对平台不自信。


整个发布会,都是在播放视频,并没有现场实际操作平台。这也是为了达到最好的发布效果。李哥说,实际操作的话会比较慢,大家需要等。


我感觉,抛去技术不谈,文心一言在中国肯定是有市场的。


因为,我在直播间发布了很多信息,都没有显示。但是,当我和大家万众一心时,我的评论赫然出现在字幕上。


2023-03-16_140740.png


这一点,ChatGPT无论如何是无法做到的!


我们不黑不吹,后续的情况,只能等待用户的反馈了。


作者:TF男孩
来源:juejin.cn/post/7211055301204705338
收起阅读 »

ChatGPT前端领域初探

什么是ChatGPT 官方解释:ChatGPT是一个智能聊天机器人,来自于OpenAI,它能够使用人工智能技术进行对话,并回答用户提出的问题和请求。它由GPT(Generative Pre-trained Transformer)算法支持,可以模拟人类对话和回...
继续阅读 »

什么是ChatGPT


官方解释:ChatGPT是一个智能聊天机器人,来自于OpenAI,它能够使用人工智能技术进行对话,并回答用户提出的问题和请求。它由GPT(Generative Pre-trained Transformer)算法支持,可以模拟人类对话和回答各种问题,包括日常生活、科技、娱乐、健康、财经等领域。ChatGPT可以通过各种渠道进行访问,如网站、社交媒体或移动应用程序。


ChatGPT优势


ChatGPT有以下几个优势:



  1. 可以模拟真人对话:ChatGPT使用GPT算法,可以生成自然语言,使得对话非常流畅和自然,就好像在与一个真人交流一样。

  2. 能够自我学习:ChatGPT使用机器学习技术,可以通过不断的学习来提高自己的答案和回复质量。

  3. 24小时在线:ChatGPT可以在任何时间回答用户的问题,不需要等待人类客服的接待时间。

  4. 处理大量请求:ChatGPT可以处理大量请求,在同一时间内可以同时与多个用户进行对话。

  5. 提高客户满意度:ChatGPT可以回答用户的问题并提供有用的信息,这可以提高用户的满意度和忠诚度。

  6. 提高效率:ChatGPT可以快速响应和解答用户问题,减少人工客服的工作量和时间。


接下来,我们来聊一聊它对前端开发产生了什么样的影响


体验流程


我们需要先拥有一个相应的账户才能体验,这里我直接放上体验流程的链接:sms-activate.org,按照本流程对于没有接触过ChatGPT的童鞋们可以体验一下,这里我就不展开详细解释了。tips:电脑需要科学上网哦~~


辅助开发


重点来了,我们需要先分析我们在日常开发中哪些方面可以用到它,根据开发的流程我们可以从以下几点分析:




  1. 需求阶段:我们做业务开发的前提是以需求为准,对于需求而言,实现的方式多种多样,我们应该分析一下,应该用什么技术去实现,具体对应到哪种框架、第三方依赖库等等。




  2. 编码阶段:这个阶段是业务逻辑的实现阶段,要完成需求中的功能。举个🌰:做登录注册模块,输入账号和密码时一般都需要校验格式(复杂情况),这时正则表达式不失为一个好的办法,此时我们的主角就该登场了~~ 话不多说,直接上图:


    image.png


    经验证:^[a-zA-Z0-9]{6,}$ 符合预期
      let reg = /^[a-zA-Z0-9]{6,}$/
    let str = '0203'
    let str2 = 'yk0203'
    console.log(reg.test(str), 'str') // false
    console.log(reg.test(str2), 'str2') // true



这个正则限制比较简单,来个复杂点的吧:


image.png


image.png tips:解释满分。


这里我就不做test了,更复杂的大家可以自己尝试~~



  1. 代码优化:我们在在编码阶段完成功能后,应该考虑代码优化之道,优化代码包括多个层面,提高代码的复用性就是其中一个方面,直接上demo说明一下:


image.png
在这个demo中,我们定义了两个函数,一个用于计算两个数的和,另一个用于计算两个数的差。通过调用这两个函数,我们可以实现复用性,避免在不同的地方重复编写相同的计算代码。此外,我们还可以通过将这些函数放入一个模块中,从而实现更高程度的复用性。将这两个函数放入一个名为"calculator.py"的模块中,然后在其他文件中引入这个模块,就可以在其他地方轻松地重用这些函数。然后我又向它发起提问:


image.png


image.png
我们使用JavaScript语言实现了与前面Python demo相同的功能。将这两个函数放入一个名为"Calculator.js"的模块中,然后在其他文件中引入这个模块,就可以在其他地方轻松地重用这些函数。其实这种思想在前端已经老生常谈了。



  1. 代码重构:一般来说,一个项目经过多个人先后开发并维护,每个人的开发习惯也不尽相同,最终导致代码中很多逻辑不是很清晰,尤其是那些很久之前的项目,再加上当时没有添加注释,维护效率不高,这个时候我们可以考虑下重构下部分代码,用图来说话:


image.png
这里只是一个简单的demo,项目中重构代码要比这个复杂(慎重考虑是否进行代码重构),说到这里,养成良好的编码习惯就显得特别重要啦,比如定义方法时语义化,适当给方法添加注释等,我们的主角也是也可以帮忙添加注释的,请看:


image.png


function factorial(n) { 
if (n === 0) return 1;
else return n * factorial(n-1);
}
//示例输出
console.log(factorial(5)); //120
console.log(factorial(10)); //3628800

image.png


// 定义递归函数,计算阶乘 
function factorial(n) {
if (n === 0) {
// 当 n 等于 0 时,阶乘结果为 1
return 1;
} else {
// 当 n 不等于 0 时,调用函数自身来计算阶乘
return n * factorial(n-1);
}
}
// 示例输出
console.log(factorial(5)); //120
console.log(factorial(10)); //3628800

然后我又追问:


image.png
综上,我们想要主角帮我们处理问题,就应该把条件罗列清晰,否则主角也给不了最完善的回答,它有时在处理基本数学问题时出错,有时无法全面理解逻辑,并且甚至会提供完全错误的事实来支持其答案。OpenAI 已经承认了这个问题,并表示“ChatGPT 有时会写出听起来合理但是不正确或无意义的答案”。ChatGPT 是一种辅助工具,能够理解复杂的问题。但最好也不要完全相信它所说的一切。


tips:提问和回答的截图均来自VScode的ChatGPT中文版扩展插件(站在了大佬的肩膀上),有兴趣的童鞋可以自行搜索体验一波~


ChatGPT的现状与未来


目前,OpenAI官方已经官宣了GPT-4,只不过还没完全开放,并且门槛较高,发展前景还是相当nice的。


总结


总体看来,未来可期~~,对于希望在工作中提升效率的开发人员来说是一柄利剑。然而,它的回答也不是100%准确的,因此在将其用于更高级的任务之前,需进行深究。到此,ChatGPT的初探到此结束,感谢各位看官。有问题欢迎评论区留言。


作者:青灬河
来源:juejin.cn/post/7210653822849548346
收起阅读 »

GPT-4 就要来了,你准备好了吗

GPT-4 即将面世,它到底是擎天柱还是威震天? 呆鸟说:“ChatGPT 是具备人机对话能力的人工智能,一经问世,就给世人带来了前所未有的新奇体验。短短几个月时间,它就占据了人们的视野。有人好奇,有人担忧,有人看到了致富的机会,也有人担心 AI 会夺走我们...
继续阅读 »

GPT-4 即将面世,它到底是擎天柱还是威震天?



呆鸟说:“ChatGPT 是具备人机对话能力的人工智能,一经问世,就给世人带来了前所未有的新奇体验。短短几个月时间,它就占据了人们的视野。有人好奇,有人担忧,有人看到了致富的机会,也有人担心 AI 会夺走我们的饭碗。ChatGPT 的升级版 GPT-4 也即将问世,面对更强大的 AI,我们应当何去何从呢”



GPT-3 是 ChatGPT 的核心,它是一个超大规模的大语言模型(large language models,LLMs)。GPT-3 的英文全称是生成式预训练转换器-3(generative pre-trained transformer 3),是基于 Transformer 架构开发的大型语言模型,拥有超过 1750 亿个参数。公众可以通过 OpenAI API 访问。ChatGPT 的 API 用户界面简单易用,只需“输入文本”,即可“输出文本”,无需用户具备任何专业技术知识。


据传,OpenAI 正在开发 GPT-4,该模型的参数可能高达 100 万亿,但 OpenAI 的首席执行官 Sam Altman 反驳了这一说法。


那么,GPT-4 与 GPT-3 到底有何不同,它是否会颠覆我们现有的认知?本文将一一对此进行说明。


预计 GPT-4 将在 2023 年发布


汽车人首领 ~ 擎天柱
汽车人首领 ~ 擎天柱


虽然尚未正式官宣,但 IT 界对 GPT-4 的传言数不胜数,预计 OpenAI 很有可能会在今年发布 GPT-4。尽管有传言称微软必应的聊天功能中使用了新版 GPT,但目前测试用户必须排队等待才能使用由 ChatGPT 支持的新必应,而且也无法确定新必应的聊天功能是否使用了新版本的 GPT。


在 ChatGPT 发布之前,即 2022 年底,OpenAI 只允许指定的合作伙伴、付费客户和学术机构使用 GPT-3。预计在GPT-4 发布之前,OpenAI 也会采取类似的方式限制 GPT-4 的使用人员。


GPT-4 可能不会比 GPT-3 训练更多的数据


有传言称,GPT-4 的参数规模将比 GPT-3 大 100 倍,即 17 万亿个参数。但 Altman 曾表示,GPT-4 的参数规模可能并不会比 GPT-3 大很多,因为改进的重点应该是利用现有数据的能力,而不是添加更多的数据。


与 GPT-3 竞争的 Megatron 3(注:Megatron 是变形金刚里霸天虎的首领,中文名为威震天)也是一种大语言模型,它训练的数据比 GPT-3 多,但在测试效果并没有超越 GPT-3,这表明在 AI 领域,规模更大并不一定意味着效果更好。改进算法将降低 GPT-4 和 ChatGPT 的运行成本,这将是 ChatGPT 想要取代谷歌成为最流行搜索引擎的重要因素。


霸天虎首领 ~ 威震天
霸天虎首领 ~ 威震天


GPT-4 将生成更好的编程语言代码


ChatGPT 令人印象最深刻的一点是它不仅可以生成人类语言,还可以生成 Javascript、Python、C++ 等编程语言的代码,可以说是软件开发、Web 开发和数据分析统统都能搞定。


有消息称,目前,OpenAI 正在积极招聘擅长使用人类语言描述代码功能的程序员,预计 GPT-4 将推动 AI 突破生成编程代码的新境界。这种趋势将进一步推动开发工具的革命,例如,微软旗下的 Github 推出的 Copilot 使用的就是经过微调的 GPT-3,提供了把人类自然语言转换为代码的能力。


GPT-4 将使 AI 生成编程代码的能力迈向新的境界。除了生成人类语言,ChatGPT 还能生成 JavaScript、Python、C++ 等编程语言的代码,在软件开发、Web开发和数据分析等领域都将有广泛的应用。


据称,OpenAI 正在招聘能以人类语言描述代码功能的程序员,这将进一步推动开发工具的革命。例如,微软旗下的 Github 推出的 Copilot 使用的就是经过微调的 GPT-3,能够把人类自然语言转换为代码。


总之一句话,就是让程序员开发干掉程序员的程序


GPT-4 不会添加图形功能


有人曾预测 GPT-4 将整合 GPT-3 的文本生成和 Dall-E 2(OpenAI 的另一款 AI 产品)的图像创作功能,如果 能提供数据可视化功能,ChatGPT 将更加完美。但 Altman 否认了这一点,并表示 GPT-4 仍只提供文本生成的功能。


Dall-E 生成的图像
Dall-E 生成的图像


有人会对 GPT-4 失望


虽然 GPT-3 的闪亮登场让整个世界都兴奋不已,但 GPT-4 的表现可能并不会让人再次惊艳。计算机第一次写诗的时候,你可能会觉得震撼,但几年后,即使能让 AI 把诗写得更优美,也不会再给人带来同样的震撼。


Altman 在今年一月的一次采访中曾说过,“有关 GPT-4 的传言很荒谬,都是空穴来风,只怕是希望越大,失望越大。”


那么,我亲爱的读者们,你们对此是怎么看的呢?


有兴趣写书的联系我


Nuxt3 小册推荐


作者:呆鸟
来源:juejin.cn/post/7205842390842114085
收起阅读 »

面向 ChatGPT 开发 ,我是如何被 AI 从 “逼疯” 到 “觉悟” ,未来又如何落地

对于 ChatGPT 如今大家应该都不陌生,经过这么长时间的「调戏」,相信大家应该都感受用 ChatGPT 「代替」搜索引擎的魅力,例如写周报、定位 Bug、翻译文档等等,而其中不乏一些玩的很「花」的场景,例如: ChatPDF :使用 ChatPDF...
继续阅读 »

对于 ChatGPT 如今大家应该都不陌生,经过这么长时间的「调戏」,相信大家应该都感受用 ChatGPT 「代替」搜索引擎的魅力,例如写周报、定位 Bug、翻译文档等等,而其中不乏一些玩的很「花」的场景,例如:




  • ChatPDF :使用 ChatPDF 读取 PDF 之后,你可以和 PDF 文件进行「交谈」,就好像它是一个完全理解内容的「人」一样,通过它可以总结中心思想,解读专业论文,生成内容摘要,翻译外籍,并且还支持中文输出等





  • BiBiGPT : 一键总结视频内容,主要依赖字幕来做总结,绝对是「二创」作者的摸鱼利器。





所以把 ChatGPT 理解为「搜索引擎」其实并不正确,从上述介绍的两个落地实现上看, ChatGPT 不是单纯的统计模型,它的核心并不是完全依赖于它的「语料库」,更多来自于临场学习的能力「 in-context learning」,这就是 ChatGPT 不同于以往传统 NLP「一切都从语料的统计里学习」的原因



当然,我本身并非人工智能领域的开发者,而作为一个普通开发者,我更关心的是 ChatGPT 可以如何提升我的开(mo)发(yu)效率,只是没想到随手一试,我会被 ChatGPT 的 「 in-context learning」 给「逼疯」。



ChatGPT & UI


相信大家平时「面向」 ChatGPT 开发时,也是通过它来输出「算法」或者「 CURD」 等逻辑居多,因为这部分输出看起来相对会比较直观,而用 ChatGPT 来绘制前端 UI 的人应该不多,因为 UI 效果从代码上看并不直观 ,而且 ChatGPT 对与 UI 的理解目前还处于 「人工智障」的阶段。



但是我偏偏不信邪。。。。。



因为近期开发需求里恰好需要绘制一个具有动画效果的 ⭐️ 按键,面对这么「没有挑战性」的工作我决定尝试交给 ChatGPT 来完成,所以我向 ChatGPT 发起了第一个命令:



「用 Flutter 画一个黄色的五角星」




结果不负众望,关键部分如下代码所示,Flutter 很快就提供了完整的 Dart 代码,并且还针对代码提供了代码相关实现的讲解,不过运行之后可以看到,这时候的 ⭐️ 的样式并不满足我们的需求。



此时顶部的角也太「肥」了 。




所以我随着提出了调整,希望五角星的五个角能够一样大,只是没想到我的描述,开始让 ChatGPT 放飞自我



也许是我的描述并不准确?




在我满怀期待的 cv 代码并运行之后,猝不及防的「五角星」差点没让我喷出一口老血,虽然这也有五个角,但是你管这个叫 「五角星」 ???



这难道不是某个红白机游戏里的小飞机??




甚至于在看到后续 ChatGPT 关于代码的相关讲解时,我觉得它已经开始在「一本正经的胡说八道」,像极了今天早上刚给我提需求的产品经理



哪里可以看出五个角相同了???




接着我继续纠正我的需求,表示我要的是 「一个五个角一样大的黄色五角星」 ,我以为这样的描述应过比较贴切,须不知·····



如下代码所示,其实在看到代码输出 for 循环时我就觉得不对了,但是秉承着「一切以实物为准」的理念,在运行后不出意外的发生了意外,确实是五个角一样大,不过是一个等边五边形。



算一个发胖的 ⭐️ 能解(jiao)释(bian)过去不?




再看 ChatGPT 对于代码的描述,我发现我错了,原来它像的是「理解错需求还在嘴硬的我」,只是它在说「这是一个五角星」的时候眼皮都不会眨一下



AI:确实五个角一样大,五个角一样大的五边形为什么就不能是五角星?你这是歧视体型吗?




所以我继续要求:「我要的是五角星,不是五边形」,还好 ChatGPT 的临场学习能力不错,他又一次「重新定义五角星」,不过我此时我也不抱希望,就是单纯想看看它还能给出什么「惊喜」



不出意外,这个「离谱」的多边形让我心头一紧,就在我想着是否放弃的时候,身为人类无法驯服 AI 「既爱又恨」的复杂情绪,让我最终坚持一定要让 ChatGPT 给我画出一个 ⭐️。



不过心灰意冷之下,我选择让 ChatGPT 重新画一个黄色五角星,没想道这次却有了意外的惊喜,从下面的图片可以看到,此时的 ⭐️ 除了角度不对,形状已经完全满足需求。



所以一个问题我多问几遍,也许就能接近我要的答案?




事实上这也是目前 ChatGPT 的现状,因为「临场学力」能力等因素影响,同一个问题它可能会给出不同的答案,而有的答案其实和我们要的根本不沾边



那么,接下来只要让 ChatGPT 把 ⭐️ 旋转一下角度,应该就可以完成需求····了吧?所以我提出「帮我旋转 180度」的要求。



结果不出意外的还是发生了意外,可能 ChatGPT 理解的 180 度和我不大一样,如下图所示,确实旋转了,只是还是歪的,而基于前面的尝试,我觉得有必要再给它一次机会。



终于,在我换了以下描述之后,ChatGPT 似乎「开窍」了,终于让我如愿以偿的得到了我想要的 ⭐️ 代码。



可以看到,其实这段代码并不复杂,你自己写或者去搜索引擎扒一扒大概会比用 ChatGPT 更快,但是 ChatGPT 的魅力就在于:它也许会错,但是总有一次它会「蒙对」,如果现在还不对,那么未来也会有算对的时候,这就是我感受到的 AI 魅力所在



既然五角星都出来,那么接下来我们来完成最后一步的动画效果,我们希望的是点击 ⭐️ 的时候可以有一个爆炸粒子的动画,所以我提出了:



「希望加上一个动画效果,就是点击的时候星星爆炸成颗粒的动画效果」




结果还是「一口老血」,如下图所示,「星星确实爆炸了」,只是这个爆炸动画看起来是那么的「一言难尽」,感兴趣的可以 cv 下面的源代码自己体验下,不出意外接下来又是新的一轮人类和 AI 的「斗智斗勇」。




class YellowStar extends StatefulWidget {
@override
_YellowStarState createState() => _YellowStarState();
}

class _YellowStarState extends State<YellowStar> with TickerProviderStateMixin {
bool _isExploded = false;
late AnimationController _animationController;
late Animation<double> _animation;

@override
void initState() {
super.initState();
_animationController = AnimationController(
duration: const Duration(milliseconds: 500),
vsync: this,
);
_animation = CurvedAnimation(
parent: _animationController,
curve: Curves.easeInOut,
);
}

@override
void dispose() {
_animationController.dispose();
super.dispose();
}

void _handleTapDown(TapDownDetails details) {
setState(() {
_isExploded = true;
_animationController.forward(from: 0.0);
});
}

void _resetStar() {
setState(() {
_isExploded = false;
_animationController.reset();
});
}

@override
Widget build(BuildContext context) {
return GestureDetector(
onTapDown: _handleTapDown,
onTap: _resetStar,
child: AnimatedContainer(
duration: const Duration(milliseconds: 500),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: _isExploded
? BorderRadius.circular(50)
: BorderRadius.zero,
),
child: _isExploded
? _buildParticles()
: Container(
width: 100,
height: 100,
child: CustomPaint(
painter: YellowStarPainter(),
),
),
),
);
}

Widget _buildParticles() {
return AnimatedBuilder(
animation: _animation,
builder: (context, child) {
return Container(
width: 100,
height: 100,
child: Stack(
children: List.generate(
50,
(index) {
double radius = _animation.value * 50;
double angle = 2 * pi * index / 50;
double x = 50 + cos(angle) * radius;
double y = 50 + sin(angle) * radius;
return Positioned(
left: x,
top: y,
child: Container(
width: 4,
height: 4,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.yellow,
),
),
);
},
),
),
);
},
);
}
}



class YellowStarPainter extends CustomPainter {
final double starSizeRatio = 0.4;
final double centerOffsetRatio = 0.2;
final double rotationOffset = -pi / 2;

@override
void paint(Canvas canvas, Size size) {
double starSize = min(size.width, size.height) * starSizeRatio;
double centerX = size.width / 2;
double centerY = size.height / 2;
double centerOffset = starSize * centerOffsetRatio;

Path path = Path();
Paint paint = Paint()
..color = Colors.yellow
..style = PaintingStyle.fill;

for (int i = 0; i < 5; i++) {
double radians = 2 * pi / 5 * i + rotationOffset;
double x = centerX + cos(radians) * starSize / 2;
double y = centerY + sin(radians) * starSize / 2;
if (i == 0) {
path.moveTo(x, y);
} else {
path.lineTo(x, y);
}

radians += 2 * pi / 10;
x = centerX + cos(radians) * centerOffset;
y = centerY + sin(radians) * centerOffset;
path.lineTo(x, y);
}

path.close();
canvas.drawPath(path, paint);
}

@override
bool shouldRepaint(CustomPainter oldDelegate) => false;
}

经过一轮「鏖战」如下图所示,面对同一个问题,ChatGPT 总能找到不同的实现方式来回答你,只是这些实现里有的无法运行的,有的是运行没有效果的,有的甚至是给你输出了一个 //TODO 爆炸动画 ,总之就是让你「血压飙升」。





当然,「胜利终将属于人类」,如下图所示,在经历了无数次「血压飙升」的场景之后,最终我还是得到了我想要的:点击 ⭐️,然后出现了💥的动画效果,尽管还是不完美,但是基本满足了我后续开发的需求。



这个代码完完全全由 ChatGPT 输出,我一句没改,完整代码贴在了后面。





class YellowStarPage extends StatefulWidget {
@override
_YellowStarPageState createState() => _YellowStarPageState();
}

class _YellowStarPageState extends State<YellowStarPage>
with SingleTickerProviderStateMixin
{
late AnimationController _animationController;
bool _isExploded = false;

@override
void initState() {
super.initState();
_animationController =
AnimationController(vsync: this, duration: Duration(milliseconds: 500))
..addListener(() {
setState(() {});
});
}

@override
void dispose() {
_animationController.dispose();
super.dispose();
}

void _handleStarTap() {
if (!_isExploded) {
_isExploded = true;
_animationController.forward(from: 0);
Future.delayed(Duration(milliseconds: 500), () {
setState(() {
_isExploded = false;
});
});
}
setState(() {});
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Yellow Star')),
body: Center(
child: GestureDetector(
onTap: _handleStarTap,
child: Container(
width: 300,
height: 300,
child: AnimatedBuilder(
animation: _animationController,
builder: (context, child) {
return CustomPaint(
painter: YellowStarPainter(_animationController.value,
isExploded: _isExploded),
);
},
),
),
),
),
);
}
}

class YellowStarPainter extends CustomPainter {
final double starSizeRatio = 0.4;
final double centerOffsetRatio = 0.2;
final double rotationOffset = -pi / 2;

final double animationValue;
final bool isExploded;

YellowStarPainter(this.animationValue, {this.isExploded = false});

@override
void paint(Canvas canvas, Size size) {
double starSize = min(size.width, size.height) * starSizeRatio;
double centerX = size.width / 2;
double centerY = size.height / 2;
double centerOffset = starSize * centerOffsetRatio;

Path path = Path();
Paint paint = Paint()
..color = Colors.yellow
..style = PaintingStyle.fill;

if (isExploded) {
double particleSize = starSize / 30;
paint.strokeWidth = 1;
paint.style = PaintingStyle.fill;
paint.color = Colors.yellow;
Random random = Random();

for (int i = 0; i < 30; i++) {
double dx = random.nextDouble() * starSize - starSize / 2;
double dy = random.nextDouble() * starSize - starSize / 2;
double x = centerX + dx * (1 + animationValue);
double y = centerY + dy * (1 + animationValue);

canvas.drawCircle(Offset(x, y), particleSize, paint);
}
} else {
for (int i = 0; i < 5; i++) {
double radians = 2 * pi / 5 * i + rotationOffset;
double x = centerX + cos(radians) * starSize / 2;
double y = centerY + sin(radians) * starSize / 2;
if (i == 0) {
path.moveTo(x, y);
} else {
path.lineTo(x, y);
}

radians += 2 * pi / 10;
x = centerX + cos(radians) * centerOffset;
y = centerY + sin(radians) * centerOffset;
path.lineTo(x, y);
}

path.close();
canvas.drawPath(path, paint);
}
}

@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}


最后,给大家欣赏一下我让 ChatGPT 画一只米老鼠的「心路历程」,很明显这一次「人类一败涂地」,从目前的支持上看,让 ChatGPT 输出复杂图像内容并不理想,因为它不的笔画「不会拐弯」。




真的是又爱又恨。



最后


经过上面的一系列「折腾」,可以看到 ChatGPT 并没有我们想象中智能,如果面向 GPT 去开发,甚至可能并不靠谱,因为它并不对单一问题给出固定答案,甚至很多内容都是临场瞎编的,这也是因为大语言模型本身如何保证「正确」是一个复杂的问题,但是 ChatGPT 的魅力也来自于此:



它并不是完全基于语料来的统计来给答案



当然这也和 ChatGPT 本身的属性有关系, ChatGPT 目前的火爆有很大一部分属于「意外」,目前看它不是一个被精心产品化后的 2C 产品,反而 ChatPDFBiBiGPT 这种场景化的包装落地会是它未来的方向之一。


而现在 OpenAI 发布了多模态预训练大模型 CPT-4GPT-4 按照官方的说法是又得到了飞跃式提升:强大的识图能力;文字输入限制提升至 2.5 万字;回答准确性显著提高;能够生成歌词、创意文本,实现风格变化等等



所以我很期待 ChatGPT 可以用 Flutter 帮我画出一只米老鼠, 尽管 ChatGPT 现在可能会让你因为得到 1+1=3 这样的答案而「发疯”」,但是 AI 的魅力在于,它终有一天能得到准确的结果


作者:恋猫de小郭
来源:juejin.cn/post/7210605626501595195
收起阅读 »

保姆级JAVA对接ChatGPT教程,实现自己的AI对话助手

1.前言 大家好,我是王老狮,近期OpenAI开放了chatGPT的最新gpt-3.5-turbo模型,据介绍该模型是和当前官网使用的相同的模型,如果你还没体验过ChatGPT,那么今天就教大家如何打破网络壁垒,打造一个属于自己的智能助手把。本文包括API K...
继续阅读 »

1.前言


大家好,我是王老狮,近期OpenAI开放了chatGPT的最新gpt-3.5-turbo模型,据介绍该模型是和当前官网使用的相同的模型,如果你还没体验过ChatGPT,那么今天就教大家如何打破网络壁垒,打造一个属于自己的智能助手把。本文包括API Key的申请以及网络代理的搭建,那么事不宜迟,我们现在开始。


2.对接流程


2.1.API-Key的获取


首先第一步要获取OpenAI接口的API Key,该Key是你用来调用接口的token,主要用于接口鉴权。获取该key首先要注册OpenAi的账号,具体可以见我的另外一篇文章,ChatGPT保姆级注册教程



  1. 打开platform.openai.com/网站,点击view API Key,


image.png



  1. 点击创建key


image.png



  1. 弹窗显示生成的key,记得把key复制,不然等会就找不到这个key了,只能重新创建。


image.png


将API Key保存好以备用


2.2.API用量的查看


这里可以查看API的使用情况,新账号注册默认有5美元的试用额度,之前都是18美元,API成本降了之后试用额度也狠狠地砍了一刀啊,哈哈。


image.png


2.3.核心代码实现


2.3.1.pom依赖


http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.webtap
webtap
0.0.1
jar


org.springframework.boot
spring-boot-starter-parent
2.1.2.RELEASE




org.springframework.boot
spring-boot-starter-web


org.springframework.boot
spring-boot-starter-thymeleaf


nz.net.ultraq.thymeleaf
thymeleaf-layout-dialect


org.springframework.boot
spring-boot-starter-data-jpa


org.springframework.boot
spring-boot-devtools


org.springframework.boot
spring-boot-starter-test


org.springframework.boot
spring-boot-starter-mail



mysql
mysql-connector-java


org.apache.commons
commons-lang3
3.4


commons-codec
commons-codec


org.jsoup
jsoup
1.9.2



com.alibaba
fastjson
1.2.56


net.sourceforge.nekohtml
nekohtml
1.9.22


com.github.pagehelper
pagehelper-spring-boot-starter
1.4.1


org.projectlombok
lombok


org.apache.httpcomponents
httpasyncclient
4.0.2


org.apache.httpcomponents
httpcore-nio
4.3.2



org.apache.httpcomponents
httpclient
4.3.5


commons-codec
commons-codec




commons-httpclient
commons-httpclient
3.1


commons-codec
commons-codec




org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.1


com.github.ulisesbocchio
jasypt-spring-boot-starter
2.0.0







org.springframework.boot
spring-boot-maven-plugin






2.3.2.实体类ChatMessage.java


用于存放发送的消息信息,注解使用了lombok,如果没有使用lombok可以自动生成构造方法以及get和set方法


@Data
@NoArgsConstructor
@AllArgsConstructor
public class ChatMessage {
//消息角色
String role;
//消息内容
String content;
}

2.3.3.实体类ChatCompletionRequest.java


用于发送的请求的参数实体类,参数释义如下:


model:选择使用的模型,如gpt-3.5-turbo


messages :发送的消息列表


temperature :温度,参数从0-2,越低表示越精准,越高表示越广发,回答的内容重复率越低


n :回复条数,一次对话回复的条数


stream :是否流式处理,就像ChatGPT一样的处理方式,会增量的发送信息。


max_tokens :生成的答案允许的最大token数


user :对话用户


@Data
@Builder
public class ChatCompletionRequest {

String model;

List messages;

Double temperature;

Integer n;

Boolean stream;

List stop;

Integer max_tokens;

String user;
}

2.3.4.实体类ExecuteRet .java


用于接收请求返回的信息以及执行结果



/**
* 调用返回
*/

public class ExecuteRet {

/**
* 操作是否成功
*/

private final boolean success;

/**
* 返回的内容
*/

private final String respStr;

/**
* 请求的地址
*/

private final HttpMethod method;

/**
* statusCode
*/

private final int statusCode;

public ExecuteRet(booleansuccess, StringrespStr, HttpMethodmethod, intstatusCode) {
this.success =success;
this.respStr =respStr;
this.method =method;
this.statusCode =statusCode;
}

@Override
public String toString()
{
return String.format("[success:%s,respStr:%s,statusCode:%s]", success, respStr, statusCode);
}

/**
*@returnthe isSuccess
*/

public boolean isSuccess() {
return success;
}

/**
*@returnthe !isSuccess
*/

public boolean isNotSuccess() {
return !success;
}

/**
*@returnthe respStr
*/

public String getRespStr() {
return respStr;
}

/**
*@returnthe statusCode
*/

public int getStatusCode() {
return statusCode;
}

/**
*@returnthe method
*/

public HttpMethod getMethod() {
return method;
}
}

2.3.5.实体类ChatCompletionChoice .java


用于接收ChatGPT返回的数据


@Data
public class ChatCompletionChoice {

Integer index;

ChatMessage message;

String finishReason;
}

2.3.6.接口调用核心类OpenAiApi .java


使用httpclient用于进行api接口的调用,支持post和get方法请求。


url为配置文件open.ai.url的值,表示调用api的地址:https://api.openai.com/ ,token为获取的api-key。
执行post或者get方法时增加头部信息headers.put("Authorization", "Bearer " + token); 用于通过接口鉴权。



@Slf4j
@Component
public class OpenAiApi {

@Value("${open.ai.url}")
private String url;
@Value("${open.ai.token}")
private String token;

private static final MultiThreadedHttpConnectionManagerCONNECTION_MANAGER= new MultiThreadedHttpConnectionManager();

static {
// 默认单个host最大链接数
CONNECTION_MANAGER.getParams().setDefaultMaxConnectionsPerHost(
Integer.valueOf(20));
// 最大总连接数,默认20
CONNECTION_MANAGER.getParams()
.setMaxTotalConnections(20);
// 连接超时时间
CONNECTION_MANAGER.getParams()
.setConnectionTimeout(60000);
// 读取超时时间
CONNECTION_MANAGER.getParams().setSoTimeout(60000);
}

public ExecuteRet get(Stringpath, Map headers) {
GetMethod method = new GetMethod(url +path);
if (headers== null) {
headers = new HashMap<>();
}
headers.put("Authorization", "Bearer " + token);
for (Map.Entry h : headers.entrySet()) {
method.setRequestHeader(h.getKey(), h.getValue());
}
return execute(method);
}

public ExecuteRet post(Stringpath, Stringjson, Map headers) {
try {
PostMethod method = new PostMethod(url +path);
//log.info("POST Url is {} ", url + path);
// 输出传入参数
log.info(String.format("POST JSON HttpMethod's Params = %s",json));
StringRequestEntity entity = new StringRequestEntity(json, "application/json", "UTF-8");
method.setRequestEntity(entity);
if (headers== null) {
headers = new HashMap<>();
}
headers.put("Authorization", "Bearer " + token);
for (Map.Entry h : headers.entrySet()) {
method.setRequestHeader(h.getKey(), h.getValue());
}
return execute(method);
} catch (UnsupportedEncodingExceptionex) {
log.error(ex.getMessage(),ex);
}
return new ExecuteRet(false, "", null, -1);
}

public ExecuteRet execute(HttpMethodmethod) {
HttpClient client = new HttpClient(CONNECTION_MANAGER);
int statusCode = -1;
String respStr = null;
boolean isSuccess = false;
try {
client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF8");
statusCode = client.executeMethod(method);
method.getRequestHeaders();

// log.info("执行结果statusCode = " + statusCode);
InputStreamReader inputStreamReader = new InputStreamReader(method.getResponseBodyAsStream(), "UTF-8");
BufferedReader reader = new BufferedReader(inputStreamReader);
StringBuilder stringBuffer = new StringBuilder(100);
String str;
while ((str = reader.readLine()) != null) {
log.debug("逐行读取String = " + str);
stringBuffer.append(str.trim());
}
respStr = stringBuffer.toString();
if (respStr != null) {
log.info(String.format("执行结果String = %s, Length = %d", respStr, respStr.length()));
}
inputStreamReader.close();
reader.close();
// 返回200,接口调用成功
isSuccess = (statusCode == HttpStatus.SC_OK);
} catch (IOExceptionex) {
} finally {
method.releaseConnection();
}
return new ExecuteRet(isSuccess, respStr,method, statusCode);
}

}

2.3.7.定义接口常量类PathConstant.class


用于维护支持的api接口列表


public class PathConstant {
public static class MODEL {
//获取模型列表
public static String MODEL_LIST = "/v1/models";
}

public static class COMPLETIONS {
public static String CREATE_COMPLETION = "/v1/completions";
//创建对话
public static String CREATE_CHAT_COMPLETION = "/v1/chat/completions";

}
}

2.3.8.接口调用调试单元测试类OpenAiApplicationTests.class


核心代码都已经准备完毕,接下来写个单元测试测试下接口调用情况。



@SpringBootTest
@RunWith(SpringRunner.class)
public class OpenAiApplicationTests {

@Autowired
private OpenAiApi openAiApi;
@Test
public void createChatCompletion2() {
Scanner in = new Scanner(System.in);
String input = in.next();
ChatMessage systemMessage = new ChatMessage('user', input);
messages.add(systemMessage);
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder()
.model("gpt-3.5-turbo-0301")
.messages(messages)
.user("testing")
.max_tokens(500)
.temperature(1.0)
.build();
ExecuteRet executeRet = openAiApi.post(PathConstant.COMPLETIONS.CREATE_CHAT_COMPLETION, JSONObject.toJSONString(chatCompletionRequest),
null);
JSONObject result = JSONObject.parseObject(executeRet.getRespStr());
List choices = result.getJSONArray("choices").toJavaList(ChatCompletionChoice.class);
System.out.println(choices.get(0).getMessage().getContent());
ChatMessage context = new ChatMessage(choices.get(0).getMessage().getRole(), choices.get(0).getMessage().getContent());
System.out.println(context.getContent());
}

}


  • 使用Scanner 用于控制台输入信息,如果单元测试时控制台不能输入,那么进入IDEA的安装目录,修改以下文件。增加最后一行增加-Deditable.java.test.console=true即可。


image.png
image.png




  • 创建ChatMessage对象,用于存放参数,role有user,system,assistant,一般接口返回的响应为assistant角色,我们一般使用user就好。




  • 定义请求参数ChatCompletionRequest,这里我们使用3.1日发布的最新模型gpt-3.5-turbo-0301。具体都有哪些模型大家可以调用v1/model接口查看支持的模型。




  • 之后调用openAiApi.post进行接口的请求,并将请求结果转为JSON对象。取其中的choices字段转为ChatCompletionChoice对象,该对象是存放api返回的具体信息。


    接口返回信息格式如下:


    {
    "id": "chatcmpl-6rNPw1hqm5xMVMsyf6PXClRHtNQAI",
    "object": "chat.completion",
    "created": 1678179420,
    "model": "gpt-3.5-turbo-0301",
    "usage": {
    "prompt_tokens": 16,
    "completion_tokens": 339,
    "total_tokens": 355
    },
    "choices": [{
    "message": {
    "role": "assistant",
    "content": "\n\nI. 介绍数字孪生的概念和背景\n A. 数字孪生的定义和意义\n B. 数字孪生的发展历程\n C. 数字孪生在现代工业的应用\n\nII. 数字孪生的构建方法\n A. 数字孪生的数据采集和处理\n B. 数字孪生的建模和仿真\n C. 数字孪生的验证和测试\n\nIII. 数字孪生的应用领域和案例分析\n A. 制造业领域中的数字孪生应用\n B. 建筑和城市领域中的数字孪生应用\n C. 医疗和健康领域中的数字孪生应用\n\nIV. 数字孪生的挑战和发展趋势\n A. 数字孪生的技术挑战\n B. 数字孪生的实践难点\n C. 数字孪生的未来发展趋势\n\nV. 结论和展望\n A. 总结数字孪生的意义和价值\n B. 展望数字孪生的未来发展趋势和研究方向"
    },
    "finish_reason": "stop",
    "index": 0
    }]
    }



  • 输出对应的信息。




2.3.9.结果演示


image.png


2.4.连续对话实现


2.4.1连续对话的功能实现


基本接口调通之后,发现一次会话之后,没有返回完,输入继续又重新发起了新的会话。那么那么我们该如何实现联系上下文呢?其实只要做一些简单地改动,将每次对话的信息都保存到一个消息列表中,这样问答就支持上下文了,代码如下:


List messages = new ArrayList<>();
@Test
public void createChatCompletion() {
Scanner in = new Scanner(System.in);
String input = in.next();
while (!"exit".equals(input)) {
ChatMessage systemMessage = new ChatMessage(ChatMessageRole.USER.value(), input);
messages.add(systemMessage);
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder()
.model("gpt-3.5-turbo-0301")
.messages(messages)
.user("testing")
.max_tokens(500)
.temperature(1.0)
.build();
ExecuteRet executeRet = openAiApi.post(PathConstant.COMPLETIONS.CREATE_CHAT_COMPLETION, JSONObject.toJSONString(chatCompletionRequest),
null);
JSONObject result = JSONObject.parseObject(executeRet.getRespStr());
List choices = result.getJSONArray("choices").toJavaList(ChatCompletionChoice.class);
System.out.println(choices.get(0).getMessage().getContent());
ChatMessage context = new ChatMessage(choices.get(0).getMessage().getRole(), choices.get(0).getMessage().getContent());
messages.add(context);
in = new Scanner(System.in);
input = in.next();
}
}

因为OpenAi的/v1/chat/completions接口消息参数是个list,这个是用来保存我们的上下文的,因此我们只要将每次对话的内容用list进行保存即可。


2.4.2结果如下:


image.png


image.png


4.常见问题


4.1.OpenAi接口调用不通


因为https://api.openai.com/地址也被限制了,但是接口没有对地区做校验,因此可以自己搭建一个香港代理,也可以走科学上网。


我采用的是香港代理的模式,一劳永逸,具体代理配置流程如下:



  1. 购买一台香港的虚拟机,反正以后都会用得到,作为开发者建议搞一个。搞活动的时候新人很便宜,基本3年的才200块钱。

  2. 访问nginx.org/download/ng… 下载最新版nginx

  3. 部署nginx并修改/nginx/config/nginx.conf文件,配置接口代理路径如下


server {
listen 19999;
server_name ai;

ssl_certificate /usr/local/nginx/ssl/server.crt;
ssl_certificate_key /usr/local/nginx/ssl/server.key;

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

#charset koi8-r;


location /v1/ {
proxy_pass ;
}
}


  1. 启动nginx

  2. 将接口访问地址改为nginx的机器出口IP+端口即可


如果代理配置大家还不了解,可以留下评论我单独出一期教程。


4.2.接口返回401


检查请求方法是否增加token字段以及key是否正确


5.总结


至此JAVA对OpenAI对接就已经完成了,并且也支持连续对话,大家可以在此基础上不断地完善和桥接到web服务,定制自己的ChatGPT助手了。我自己也搭建了个平台,不断地在完善中,具体可见下图,后续会开源出来,想要体验的可以私信我获取地址和账号哈


image.png


作者:王老狮
链接:https://juejin.cn/post/7208907027841171512
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

“ChatGPT 们” 所需算力真是“贵滴夸张”!

先抛几个数据: 当下,每天有超过 2 亿的人在疯狂地抛出各式各样的问题请求 ChatGPT 回复 如果要完成这 2 亿+ 的咨询量,初始投入需要 3 万+ 块英伟达 A100 GPU 来计算 而 A100 是当下这个星球拥有最强 AI 算力的芯片,买一块至少要...
继续阅读 »

先抛几个数据:


当下,每天有超过 2 亿的人在疯狂地抛出各式各样的问题请求 ChatGPT 回复


如果要完成这 2 亿+ 的咨询量,初始投入需要 3 万+ 块英伟达 A100 GPU 来计算


而 A100 是当下这个星球拥有最强 AI 算力的芯片,买一块至少要 7W+ RMB💴


image.png


意思就是:光计算这些有意义/无意义的问题,就要花费:21 亿+ RMB 💴


这还不算电费/维护费等,众所周知,这种庞大计算类似矿机,很费电


一块 A100,功率 400W,30000 块 A100 ,就是 12_000_000 W,是 12 MW(12 个 100 万瓦)


image.png


目前,“GPT们”就像是井喷一样出现了各类产品,先不管算的结果怎么样,大家先支棱起来、先算起来


有预测:十年后,“GPT们” 一天所需算力的生产功率相当于半个核电站产生的功率,这是离谱且夸张的!全球算力几乎快要无法满足“GPT们”了


image.png


所以,以 ChatGPTPlus(每月20刀) 为代表的 “GPT们” 很贵,因为它本来算力消费就很贵,“用 GPT 编程比招一个普通程序员更贵”的段子并非玩笑。


所以,为什么算力如此重要?为什么微软要和韩国SK集团布局自建核电站?为什么咱们要强调西数东算、云计算等等?从这里也能窥见一斑。


不夸张的说,在未来,国力强弱一方面将通过算力强弱来体现。


image.png


2016年6月的不同国家之间的超级计算机500强的分布


image.png


超级计算机模拟风洞实验


小思考:在未来,算力的瓶颈将如何突破?


—— 目前芯片仍处在传统冯·诺伊曼架构之下,存储和计算区域是分离的,搬运数据“从存储到计算”花费巨大的功耗,如果能实现“存算一体”(就像大脑一样)将提升算力进入新的量级。


所以“存算一体”可能是个方向~


推荐阅读:


# 计算型存储/存算一体如何实现? - bonnie的回答


# 5分钟新知关注芯片算力|存算一体为什么是AI时代主流计算架构?



作者:掘金安东尼
来源:juejin.cn/post/7210028417617395772
收起阅读 »

ChatGPT组合拳-插件+自定义命令

前言 这几个月来ChatGPT已经融入了我的日常开发中,大大的提高了生产效率,比如写周报,可以提供一些关键字就能生成一段周报。在解决问题方面,除了一些疑难杂症,GPT大部分都很不错的解决,同时在没有思路的时候也能提供一点灵感。但是在使用过程中也会对有的答案的质...
继续阅读 »

前言


这几个月来ChatGPT已经融入了我的日常开发中,大大的提高了生产效率,比如写周报,可以提供一些关键字就能生成一段周报。在解决问题方面,除了一些疑难杂症,GPT大部分都很不错的解决,同时在没有思路的时候也能提供一点灵感。但是在使用过程中也会对有的答案的质量感到不满或者GPT并不能很好的理解我们意图的情况,这种情况就和Prompt有关系了,如何与GPT对话也是一门艺术,好的Prompt可以提高GPT的效率和准确性。


插件


开门见山,先介绍一个网站 prompts.chat


这个网站中提供了各式各样的Prompt参考,我们可以在其中查找需要的,或者自己根据需要改进。但仅仅如此还不够,因为我们每次重新开始对话都需要找Prompt再复制给GPT。


那有没有什么东西能使我们的体验再丝滑一点,这就不得不介绍一款插件了。


_}OD1$)DA$(K35ATYETLC_0.jpg


AIPRM for ChatGPT


这款插件大家在浏览器的插件商店可以直接搜索。安装好GPT界面会变成这样


image.png


上面的区域是其他人分享后社区精选的Prompt模板,下面的区域可以选择返回的语言、语调、文字风格。

image.png


当我们点击某个模板后,下面区域也会随之显示,接下来我们讲一下如何自己编写一个模板。

编写模板


我们点击Own Prompts


image.png


这里显示的就是我们自己编写的模板,简单添加一个。

image.png


选择模板后的样子


image.png


进行对话测试模板是否生效


image.png


接下来我们来看看这款插件的原理,其实就是把我们的输入嵌入到Prompt Template中,所以在编写Prompt Template时必须有[PROMPT],和字符串模板一样。


image.png


如此一来,我们每次打开对话只需要选择我们预先写好的模板就可以了,但仅仅如此还不够,因为我们每一次对话只能使用一个插件,如果我们场景比较多呢?


7$%H4%UN_7(FRGI0JOJ`$X1.gif


自定义命令


自定义命令,看着有点高级感,其实一点就通,与GPT的对话中我们有这么一种操作


image.png


image.png


image.png


再结合AIPRM for ChatGPT,you know?


image.png


作者:Defineee
链接:https://juejin.cn/post/7208847676405661753
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »

从 GPU 到 ChatGPT

硬件 “没有硬件支持,你破解个屁” GPU 什么是 GPU? GPU 是 Graphics Processing Unit 的缩写,中文翻译为图形处理器。GPU 最初是为了提高电脑处理图形的速度而设计的,主要负责图像的计算和处理。GPU 通过并行计算的方式...
继续阅读 »

硬件


“没有硬件支持,你破解个屁”



GPU



什么是 GPU?


GPU 是 Graphics Processing Unit 的缩写,中文翻译为图形处理器。GPU 最初是为了提高电脑处理图形的速度而设计的,主要负责图像的计算和处理。GPU 通过并行计算的方式,可以同时执行多个任务,大大提高了图形和数据处理的速度和效率。


近年来,由于其并行计算的特性,GPU 也被应用于一些需要大量计算的领域,如机器学习、深度学习、数据挖掘、科学计算等。在这些领域中,GPU 可以加速训练模型、处理海量数据等计算密集型任务,显著提高了计算效率和速度。因此,GPU 已成为现代计算机的重要组成部分,被广泛应用于各种领域。


GPU 是如何工作的?


GPU 的工作原理和 CPU 类似,都是通过执行指令来完成计算任务的。不同的是,CPU 是通过串行执行指令的方式来完成计算任务的,而 GPU 是通过并行执行指令的方式来完成计算任务的。GPU 的并行计算方式可以同时执行多个任务,大大提高了计算效率和速度。


可以参考这个视频来了解 GPU 的工作原理:http://www.bilibili.com/video/BV1VW…


GPU 和 CPU 的区别


GPU 和 CPU 的区别主要体现在以下几个方面:




  1. 架构设计不同:CPU 的设计注重单线程处理能力,通常有少量的计算核心和更多的高速缓存。GPU 则是面向并行处理的设计,通常拥有大量的计算核心,但缓存较小。




  2. 计算方式不同:CPU 在处理任务时,主要通过执行指令流的方式进行计算。而 GPU 则是通过执行大量的线程,同时进行并行计算,以提高计算效率。GPU 的并行计算能力可以同时处理许多相似的任务,适用于大规模的计算密集型任务,例如图像处理、机器学习等。




  3. 用途不同:CPU 主要用于通用计算任务,例如文件处理、操作系统运行、编程等。GPU 则主要用于图形处理、游戏、计算密集型任务,例如机器学习、深度学习等。




总结来说,GPU 和 CPU 都有各自的优势和适用场景,它们通常是相互协作的。例如,在机器学习中,CPU 通常用于数据的预处理和模型的训练过程,而 GPU 则用于模型的计算推理过程。


我们常说的显卡就是 GPU 吗?


是的,我们通常所说的显卡(Graphics Card)就是安装了 GPU 的设备。显卡除了包含 GPU 之外,还包括显存、散热器、显卡 BIOS 等部件。显卡通过将 CPU 传输的数据转换为图像信号,控制显示器输出图像。


在一些需要大量图像处理或计算的应用场景中,GPU 可以比 CPU 更高效地完成任务。因此,现代的显卡也广泛应用于机器学习、深度学习等领域的加速计算,甚至被用于科学计算、天文学、地质学、气象学等领域。


关于显卡,你可能听说过“集成显卡”、“独立显卡”,其实,显卡的集成和独立通常是指显存的不同管理方式,它们有以下区别:




  1. 集成显卡:集成显卡通常是指将显存集成在主板芯片组或处理器内部的显卡。这种显卡通常性能较差,适用于一些简单的应用场景,例如日常办公、网页浏览等。




  2. 独立显卡:独立显卡通常是指显存独立于主板芯片组或处理器,有自己的显存和显存控制器。这种显卡性能更加强大,适用于游戏、图形处理、科学计算等需要大量显存和计算性能的应用场景。




  3. 共享显存:共享显存通常是指显存与系统内存共享使用,也就是一部分系统内存被划分为显存使用。这种方式适用于一些轻度图形处理的应用场景,例如电影播放、网页浏览等。




总的来说,集成显卡通常性能较差,适用于简单应用场景,独立显卡性能更加强大,适用于需要大量显存和计算性能的应用场景,而共享显存则是一种折中的方案,适用于一些轻度图形处理的应用场景。


GPU 厂商


海外头部 GPU 厂商:



  1. Nvidia:Nvidia 是目前全球最大的 GPU 制造商之一,Nvidia 主要生产针对游戏玩家、数据中心和专业用户等不同领域的 GPU 产品。

  2. AMD:全球知名的 GPU 制造商之一。AMD 主要生产用于个人电脑、工作站和服务器等不同领域的 GPU 产品。

  3. Intel:目前也开始进军 GPU 市场。Intel 主要生产用于个人电脑、工作站和服务器等不同领域的 GPU 产品。


国内 GPU 厂商:


海光信息、寒武纪、龙芯中科、景嘉微等。


芯片“卡脖子” 说的就是 GPU 吗?


是,但不全是。


"芯片卡脖子"是指全球半导体短缺现象,也称为"芯片荒"或"半导体荒",指的是 2020 年以来由新冠疫情和其他因素导致的全球半导体供应不足的局面。这种供应短缺已经影响了多个行业,包括汽车、电子产品、通信设备等。中国作为世界上最大的半导体市场之一,也受到了这种供应短缺的影响。


我国在半导体领域的自主研发和制造水平相对较低,依赖进口芯片来支撑其经济和工业发展。受全球芯片短缺影响,我国的一些关键行业,特别是汽车、电子和通信行业,出现了供应短缺和价格上涨等问题,对其经济造成了一定的影响。为了应对这种情况,政府加强了对半导体行业的支持,鼓励本土企业增加芯片研发和生产能力,以减轻对进口芯片的依赖。


具体与 GPU 相关的:2022 年 8 月 31 日,为符合美国政府要求,Nvidia 和 AMD 的高端 GPU 将在中国暂停销售,包括 Nvidia 的 A100、H100 以及 AMD 的 MI100 和 MI200 芯片


英伟达在 SEC 文件上官方确认此事,称是 8 月 26 日收到美国政府的通知。



SEC 文件是由上市公司、上市公司内部人士、券商提交给美国证券交易委员会(SEC) 的财务报表或者其他正式文件。




nvidia (英伟达)



根据 2021 年第四季度的市场研究报告,英伟达在全球离散显卡市场占有率为 51.2%,位列第一,超过了其竞争对手 AMD 的市场份额。而在全球 GPU 市场(包括离散显卡和集成显卡)中,英伟达的市场占有率为 18.8%,位列第二,仅次于 Intel 的市场份额。


nvidia 的产品矩阵



  1. GeForce 系列:主要面向消费者市场,包括桌面显卡和笔记本电脑显卡等,以高性能游戏和多媒体应用为主要应用场景。

  2. Quadro 系列:主要面向专业工作站市场,包括电影和电视制作、建筑设计、科学计算、医疗影像等领域,具有高性能、高稳定性和优秀的图形渲染能力。

  3. Tesla 系列:主要面向高性能计算市场,包括科学计算、深度学习、人工智能等领域,具有极高的计算性能和数据吞吐量,支持多 GPU 集群计算。

  4. Tegra 系列:主要面向移动和嵌入式市场,包括智能手机、平板电脑、汽车、无人机等领域,具有高性能、低功耗、小尺寸等特点。

  5. Jetson 系列:主要面向人工智能应用市场,包括机器人、自动驾驶、智能视频分析等领域,具有高性能、低功耗、小尺寸等特点。



可能你对上面这些产品系列、型号和名词不太了解,没有什么概念,那这样,咱们先建立个价格概念。我们以当下在人工智能领域广泛应用的 GPU A100 为例,看一下它的价格:



就是因为这个价格,所以 A100 也被称为“英伟达大金砖”.


为什么要单独说英伟达呢?因为算力是 人工智能的“力量源泉”,GPU 是算力的“主要供应商”。而英伟达是全球最大的 GPU 制造商,并且它的 GPU 算力是最强的,比如 A100 GPU 算力是 10.5 petaFLOPS,而 AMD 的 MI100 GPU 算力是 7.5 petaFLOPS。


不明白什么意思?Peta 是计量单位之一,它代表的是 10 的 15 次方。因此,1 petaFLOPS(PFLOPS)表示每秒可以完成 10 的 15 次浮点运算。所以,A100 GPU 算力为 10.5 petaFLOPS,意味着它可以每秒完成 10.5 万亿次浮点运算。


AI


什么是人工智能 (Artificial Intelligence-AI)?


人工智能是指一种计算机技术,它使得计算机系统可以通过学习、推理、自适应和自我修正等方法,模拟人类的智能行为,以实现类似于人类的智能水平的一系列任务。这些任务包括语音识别、自然语言处理、图像识别、机器翻译、自动驾驶、智能推荐和游戏等。
人工智能的核心是机器学习,它是通过使用大量数据和算法训练计算机系统,使其能够识别模式、做出预测和决策。人工智能还涉及到其他领域,如自然语言处理、计算机视觉、机器人技术、知识表示和推理等。
人工智能被广泛应用于各种领域,如医疗、金融、交通、制造业、媒体和游戏等,为这些领域带来了更高的效率和创新。


人工智能细分领域



人工智能领域有很多分支领域,以下列举一些比较常见的:



  1. 机器学习(Machine Learning):研究如何通过算法和模型让计算机从数据中学习和提取规律,以完成特定任务。

  2. 深度学习(Deep Learning):是机器学习的一种,使用多层神经网络来学习特征和模式,以实现对复杂任务的自动化处理。

  3. 自然语言处理(Natural Language Processing, NLP):研究如何让计算机理解、分析、处理人类语言的方法和技术。

  4. 计算机视觉(Computer Vision):研究如何让计算机“看懂”图像和视频,并从中提取有用的信息和特征。

  5. 机器人学(Robotics):研究如何设计、构建和控制机器人,让它们能够完成特定任务。

  6. 强化学习(Reinforcement Learning):是一种机器学习的方法,通过与环境的交互和反馈来学习最优行动策略。

  7. 知识图谱(Knowledge Graph):是一种将知识以图谱的形式进行组织、表示和推理的方法,用于实现智能搜索、推荐等应用。

  8. 语音识别(Speech Recognition):研究如何让计算机识别和理解人类语音,以实现语音输入、语音控制等功能。


当然以上这些分支领域互相也有交叉和相互影响,比如深度学习在计算机视觉、自然语言处理和语音识别等领域都有应用;计算机视觉和自然语言处理也经常结合在一起,比如在图像字幕生成和图像问答等任务中。此外,人工智能还与其他领域如控制工程、优化学、认知科学等存在交叉。


NLP


我们具体地来看一下自然语言处理(NLP)这个分支领域,它是人工智能的一个重要分支,也是人工智能技术在实际应用中最为广泛的应用之一。


NLP(Natural Language Processing,自然语言处理)旨在让计算机能够理解、解析、生成和操作人类语言。


NLP 技术可以用于文本分类、情感分析、机器翻译、问答系统、语音识别、自动摘要、信息抽取等多个方面。实现 NLP 技术通常需要使用一些基础的机器学习算法,例如文本预处理、词嵌入(word embedding)、分词、词性标注、命名实体识别等等。这些算法可以从大量的语料库中学习到语言的结构和规律,并通过统计分析和机器学习模型进行自然语言的处理和应用。


近年来,随着深度学习技术的发展,NLP 领域也出现了一些基于深度学习的新模型,例如 Transformer 模型和 BERT 模型等。这些模型通过使用大规模语料库进行预训练,可以在多个 NLP 任务中取得优秀的表现。同时,也涌现了一些新的应用领域,例如对话系统、智能客服、智能写作、智能问答等。


Transformer 是什么?


上文我们提到人工智能的分支领域之间会有交叉,Transformer 算是深度学习和 NLP 的交叉领域。



Transformer 模型是深度学习中的一种神经网络模型,该模型是由 Google 开源的。


Transformer 模型最初是在 2017 年发表的论文"Attention Is All You Need"中提出的,随后被加入到 TensorFlow 等深度学习框架中,方便了广大开发者使用和扩展。目前,Transformer 模型已经成为自然语言处理领域中最流行的模型之一。



TensorFlow 是一种用于实现神经网络模型的开源深度学习框架。因此,可以使用 TensorFlow 实现 Transformer 模型。实际上,TensorFlow 团队已经提供了一个名为“Tensor2Tensor”的库,其中包含了 Transformer 模型的实现。此外,许多研究人员和工程师也使用 TensorFlow 实现自己的 Transformer 模型,并将其用于各种 NLP 任务中。




Transformer 特别擅长处理序列数据,其中包括了 NLP 领域的自然语言文本数据。在 NLP 领域中,Transformer 模型被广泛应用于各种任务,例如机器翻译、文本摘要、文本分类、问答系统、语言模型等等。相比于传统的基于循环神经网络(RNN)的模型,Transformer 模型通过使用注意力机制(self-attention)和多头注意力机制(multi-head attention)来建模序列中的长程依赖性和关系,有效地缓解了 RNN 模型中梯度消失和梯度爆炸的问题,从而在 NLP 任务上取得了很好的表现。因此,可以说 Transformer 是 NLP 领域中的一种重要的深度学习模型,也是现代 NLP 技术的重要组成部分。


Transformer 模型的实现


Transformer 模型只是一个抽象的概念和算法框架,具体的实现还需要考虑许多细节和技巧。在实际应用中,需要根据具体的任务和数据集进行模型的设计、参数调整和训练等过程。此外,还需要使用特定的软件框架(如 TensorFlow、PyTorch 等)进行实现和优化,以提高模型的效率和准确性。


实现 Transformer 模型可以使用深度学习框架,如 TensorFlow、PyTorch 等。一般来说,实现 Transformer 模型的步骤如下:



  1. 数据准备:准备训练和测试数据,包括语料数据和标签数据等。
    模型架构设计:确定模型的结构,包括 Transformer 的编码器和解码器部分,以及注意力机制等。

  2. 模型训练:使用训练数据对模型进行训练,并对模型进行调优,以达到较好的预测效果。

  3. 模型评估:使用测试数据对模型进行评估,包括损失函数的计算、精度、召回率、F1 值等。

  4. 模型部署:将训练好的模型部署到生产环境中,进行实际的应用。


业界流行的实现方式是使用深度学习框架,如 TensorFlow 或 PyTorch,在现有的 Transformer 模型代码基础上进行二次开发,以满足自己的需求。同时,也有一些第三方的 Transformer 库,如 Hugging Face 的 Transformers 库,可供直接使用,方便快捷。


还有没有其他模型 ?


类似于 Transformer 的模型有许多,其中一些主要的模型包括:



  1. BERT(Bidirectional Encoder Representations from Transformers):BERT 是由 Google 在 2018 年推出的预训练语言模型,采用了 Transformer 模型的编码器部分,并使用双向的 Transformer 模型来对输入的文本进行建模。

  2. GPT(Generative Pre-trained Transformer):GPT 是由 OpenAI 在 2018 年推出的预训练语言模型,采用了 Transformer 模型的解码器部分,主要用于生成文本。

  3. XLNet:XLNet 是由 CMU、Google 和 Carnegie Mellon University 的研究人员在 2019 年提出的一种预训练语言模型,它使用了自回归 Transformer 模型和自回归 Transformer 模型的结合,具有更好的生成性能和语言理解能力。

  4. T5(Text-to-Text Transfer Transformer):T5 是由 Google 在 2019 年推出的一种基于 Transformer 的通用文本转换模型,可以处理各种 NLP 任务,如文本分类、问答、文本摘要等。

  5. RoBERTa(Robustly Optimized BERT Pretraining Approach):RoBERTa 是 Facebook 在 2019 年推出的预训练语言模型,它通过对 BERT 训练过程进行优化,提高了在多种 NLP 任务上的性能表现。


这些模型都基于 Transformer 架构,并通过不同的优化和改进来提高性能和应用范围。下面一张图是模型的家族树:



GPT 模型


2018 年 OpenAI 公司基于 Transformer 结构推出 GPT-1 (Generative Pre-training Transformers, 创造型预训练变换模型),参数量为 1.17 亿个,GPT-1 超越 Transformer 成为业内第一。2019 年至 2020 年,OpenAI 陆续发布 GPT-2、GPT-3,其参数量分别达 到 15 亿、1750 亿,其中,GPT-3 训练过程中直接以人类自然语言作为指令,显著提升了 LLM 在多种语言场景中的性能。


ChatGPT



ChatGPT 是美国 OpenAI 公司研发的对话 AI 模型,是由人工智能技术支持的自然语言处理(NLP,Natural Language Processing)工具,于 2022 年 11 月 30 日正式发布。它能够学习、理解人类语言,并结合对话上下文,与人类聊天互动,也可撰写稿件、翻译文字、编程、编写视频脚本等。截至 2023 年 1 月底,ChatGPT 月活用户已高达 1 亿,成为史上活跃用户规模增长最快的应用


与现存的其他同类产品相比,ChatGPT 的独特优势在于:



  1. 基于 GPT-3.5 架构,运用海量语料库训练模型,包括真实生活中的对话,使 ChatGPT 能做到接近与人类聊天

  2. 应用新技术 RLHF (Reinforcement Learning with Human Feedback,基于人类反馈的强化学习),从而能更准确地理解并遵循人类的思维、价值观与需求

  3. 可在同一阶段内完成模型训练

  4. 具有强大算力、自我学习能力和适应性,且预训练通用性较高

  5. 可进行连续多轮对话,提升用户体验

  6. 更具独立批判性思维,能质疑用户问题的合理性,也能承认自身知识的局限性,听取用户意见并改进答案。


GPT-3.5


ChatGPT 使用的 GPT-3.5 模型是在 GPT-3 的基础上加入 Reinforcement Learning from Human Feedback(RLHF,人类反馈强化学习)技术和近段策略优化算法,其目的是从真实性、无害性和有用性三个方面优化输出结果,降低预训练模型生成种族歧视、性别歧视等有害内容的风险。


ChatGPT 训练的过程主要有三个阶段。




  1. 第一步是训练监督策略,人类标注员对随机抽取的提示提供预期结果,用监督学习的形式微调 GPT-3.5,生成 Supervised Fine-Tuning(SFT)模型,使 GPT-3.5 初步理解指令,这一步与先前的 GPT-3 模型训练方式相同,类似于老师为学生提供标答的过程。

  2. 第二步是奖励模型,在 SFT 模型中随机抽取提示并生成数个结果,由人类标注员对结果的匹配程度进行排序,再将问题与结果配对成数据对输入奖励模型进行打分训练,这个步骤类似于学生模拟标答写出自己的答案,老师再对每个答案进行评分。

  3. 第三步是 Proximal Policy Optimization(PPO,近段策略优化),也是 ChatGPT 最突出的升级。模型通过第二步的打分机制,对 SFT 模型内数据进行训练,自动优化迭代,提高 ChatGPT 输出结果的质量,即是学生根据老师反馈的评分,对自己的作答进行修改,使答案更接近高分标准。


ChatGPT 的优势在于:



  1. 使用 1750 万亿参数的 GPT-3 为底层模型进行预训练,为全球最大的语言模型之一

  2. 算力上得到微软支持,使用上万片 NVIDIA A100 GPU 进行训练,模型的运行速度得到保障(从这里就看出硬件的重要性了,A100 “卡脖子”确实很难受,不过之前各厂都囤货了,短期应该能满足现状,而且作为 A00 的平替 A800 即将出货,训练效率快速提升,应该也能满足需求。)

  3. 算法上使用奖励模型和近端优化策略进行迭代优化, 将输出结果与人类预期答案对齐,减少有害性、歧视性答案,使 ChatGPT 更拟人化,让用户感觉沟通的过程更流畅。


GPT-4



据德国媒体 Heise 消息,当地时间 3 月 9 日一场人工智能相关活动上,四名微软德国员工在现场介绍了包括 GPT 系列在内的大语言模型(LLM),在活动中,微软德国首席技术官 Andreas Braun 表示 GPT-4 即将发布。


GPT-4 已经发展到基本上「适用于所有语言」:你可以用德语提问,然后用意大利语得到答案。借助多模态,微软和 OpenAI 将使「模型变得全面」。将提供完全不同的可能性,比如视频。


AIGC 模型


在人工智能内容生成领域,除了 OpenAI, 还有其他玩家,来看一下目前头部玩家的情况:



人工智能突破摩尔定律



摩尔定律是由英特尔公司创始人之一戈登·摩尔于 1965 年提出的一项预测。这项预测认为,在集成电路上可容纳的晶体管数量每隔 18 至 24 个月会翻一番,而成本不变或者成本减少。


简单来说,摩尔定律预测了随着时间的推移,计算机芯片上能集成的晶体管数量将以指数级别增长,而成本将持续降低。这意味着计算机性能将在同样的芯片面积上不断提高,同时计算机的成本也会不断降低。


摩尔定律在过去几十年的计算机工业中发挥了重要的作用,它是计算机发展的重要标志之一,但近年来随着摩尔定律趋于极限,一些人开始怀疑其可持续性。



摩尔定律的定义归纳起来,主要有以下三种版本:



  1. 集成电路上可容纳的晶体管数目,约每隔 18 个月便增加一倍。

  2. 微处理器的性能每隔 18 个月提高一倍,或价格下降一半。

  3. 相同价格所买的电脑,性能每隔 18 个月增加一倍。


随着模型的迭代,对算力的需求也越来越大了:


目前看人工智能对算力的需求已经突破了摩尔定律


未来


目前我已在编程、邮件书写、知识学习等多个场景开始使用 chatGPT,未来有计划开发 chatGPT的应用程序,让更多人能够体验到 chatGPT 的魅力。


未来已来,缺少的不是技术,而是想象力!


作者:xiaohezi
链接:https://juejin.cn/post/7209262585005785145
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
收起阅读 »