跳到主要内容

49 篇博文 含有标签「码农札记」

查看所有标签

博客搬家

· 阅读需 6 分钟

最近,WordPress 不断地推送充值建议,并且插入的广告也越来越多。现在写博客的人越来越少,不知道 WordPress 还能坚持多久。这让我开始考虑是否应该换一个博客平台了。考虑到 GitHub 的安全性较高,我利用年底假期的时间,尝试了将内容迁移到 GitHub,并且使用 Docusaurus 搭建静态博客网站。

三年前,我开始使用 Docusaurus 搭建电子书网站,对这个工具非常熟悉。它可以把 Markdown 格式的文本转换成网页,操作简单且功能强大。搭建静态博客和搭建电子书网站的方法非常相似,最主要的区别可能在于:书籍是按章节排列的,而博客则是按时间顺序排列的。因此,当我决定搭建静态博客时,Docusaurus 成了首选。

博客迁移的核心是将 WordPress 的内容转换为 Markdown 格式的文本。幸运的是,随着静态博客的流行,有许多开源工具可以帮助完成这一工作。转换好的文本再稍作调整,便可以用于 GitHub 的静态页面。

最麻烦的部分是转换之前的博客留言。静态网页本身无法支持需要动态变化的留言系统,因此只能借助外部服务来实现留言功能。既然博客内容已经放在 GitHub 上了,我选择了 GitHub 的 Discussion 功能来支持留言。不过,这意味着只有登录 GitHub 的用户才能留言。在 WordPress 平台上,留言都是 WordPress 用户们添加的。两个登录系统不兼容,肯定是没法直接搬迁的。估计我也只能用我的 GitHub 账号手动拷贝留言到新系统,我能做的也就只有尽量保留留言者当时使用的网名。

在搬迁博客的过程中,我也趁机回顾了一下我的博客历程。

作为中国最早的一批网民,我刚开始上网的时候,网络对于用户基本还是只读的,我主要利用它看看新闻查查资料。后来各种论坛和聊天工具繁荣起来,网上终于有了互动。二十一世纪初,我在上海工作,当时微软的 MSN 是小白领中最受欢迎的聊天工具,公司里人人都有账号。2004 年,MSN 增加了博客功能,于是我也开始发博客,分享我的生活和技术经验。回顾当时的博客,有很多内容是关于如何创建 MSN 网页的,现在都变成了死技术。再后来,MSN 博客改名为 Live Spaces,那是它最辉煌的时期。我在那段时间写了大量关于 LabVIEW 编程的博文,得到了很多网友的欢迎。在读者的鼓励下,我还将我的博文整理成书出版了。

这个 Wordpress 博客是我在 2007 年 5 月 13 日开通的,但之后并没有真正使用,所有的博文依然是发布在 Live Space 上。2010 年,微软突然放弃了博客业务,Live Spaces 关闭。我只好于当年 11 月 8 日把博客迁移到了 WordPress。当时我身在国内,而 WordPress 服务器在境外,访问起来并不方便。我也考虑过国内公司提供的博客服务。新浪、百度、搜狐等一些大公司都希望从 Live Spaces 分一些用户过去的。可是国内的博客服务都带有过滤和审查的,经常莫名其妙就提示有敏感内容不能发表。这让我非常反感,也就没有迁移到那些平台去。后来由于审查越来越严格,这些公司干脆都关闭了博客服务。

博客的黄金时代早已过去,我现在写博客的频率也远没有最初几年那么高了。但我很庆幸自己曾经记录了那么多生活片段,让我可以在现在和将来时不时地回顾一下。

查看或添加留言

AI 音乐创作

· 阅读需 2 分钟

最近这两年 AI 在文字和图像创作方面被讨论的非常多,相对来说,对于音乐的创作热度小一些。音乐包含的信息量远少于图像,AI 创作音乐会更轻松。实际上,网上能找到很多 AI 音乐创作的应用,就连贝多芬未完成的乐章都已经被 AI 续写好了。我自己尝试过几个网站,生成的音乐、歌曲算不上经验吧,但确实不难听,个人觉得超过了人类作曲家的平均水平。

但是音乐创作很难用来评价一个 AI 模型的好坏,因为它实在是太主观了,不容易建立客观的评价标准。文字或是图形创作都可以设立一些客观标准,比如,一些问题是有固定答案的、图像必须符合真实事物的构造。但音乐客观标准太不明确了,很多人觉得好听的音乐,在另一些人耳中都是噪音。

查看或添加留言

终于把整本书都翻译成了英文

· 阅读需 3 分钟

原计划是每翻译一段,就立即进行人工修正。然而,我后来发现人工校对实在是太耗时了。由于我的闲暇时间有限,若要认真地逐字逐句进行修改,估计整个过程需要一到两年的时间。因此,我决定暂时跳过人工校对这一步,先使用机器将其全部翻译成英文,日后再逐步进行优化。

我主要采用了 ChatGPT 进行翻译工作,并且也试验了其他几种大型语言模型。经过比对,ChatGPT 的翻译效果是最佳的。尽管如此,ChatGPT 也并不完美:阅读几行后,仍然能发现其翻译的内容与真人撰写的有所不同。它最明显的不足之处包括错误地翻译了一些专有名词,例如,LabVIEW 中的许多术语,比如 tool palette 等都被错误翻译了;此外,其用词偏好和写作风格也与真人不同。比如,“instrumental” 这个单词在平常几乎不会使用,但在 ChatGPT 的翻译中却频繁出现。我推测,这可能是因为 LabVIEW 与 “instrument” 高度相关,而 “instrument” 又与 “instrumental” 有关联,所以模型可能误以为 LabVIEW 相关文章就应当多使用 “instrumental”。

但无论如何,ChatGPT 的翻译效果已经远超以往所有的专业翻译模型。在大型语言模型兴起之前,谷歌翻译被认为是效果最佳的翻译工具,即便如此,其翻译内容仍然基本无法直接使用。现在,ChatGPT 已经可以当作一个相当靠谱的翻译工具了。

查看或添加留言

程序员的未来

· 阅读需 5 分钟

ChatGPT 出来之后,就不得不考虑一下程序员的未来前景了。我自己已经老了,是不可能转行了,主要是考虑儿子的将来学什么专业。

回看编程语言的历史,无疑是朝着方便人类使用的方向发展的。从最开始的纸带打孔,到汇编语言,再到高级语言,越来越“容易”了。即便是高级语言,这些年流行的 Python 也比二十年前流行的 C++ 要容易使用太多了。在不远的将来,在大多数领域,人们可能不再需要编程了。有什么要求,直接用人话告诉计算机即可。

通向这一目标的最大障碍在于让计算机完全理解自然语言。最近大语言模型的发展,基本上已经扫清了这一障碍。淘汰编程语言指日可待了。当然,程序员这个行业不会完全消失。仍然会有少量的底层开发岗位需要职业程序员。考虑到需求量的降低,而这些年又培养了大量的软件专业人才,到时候恐怕程序员会非常难找工作。

其实,就算人工智能发展的没这么快,我可能也不会建议儿子将来选择计算机软件作为专业方向。必须承认,过去二十年,软件工程师一直是收入比较高的行业,我也沾了光。但我觉得这种高收入并不能长时间维系,之前的高收入纯粹是由于各个行业都需要信息化,程序员需求量巨大,而培养程序员的速度暂时落后与需求。最近这几年,软件人才的培养速度飞快增长,很快就要把需求缺口填满了。将来这个行业的收入将不会与其它工程师有太大差别了。

除了收入还可以之外,软件工程师还真不是个特别好的行业。它有两点是我非常不喜欢的。

首先,软件工程师通常不会直接与终端客户有交流沟通。大多数程序员平时都只会与其它工程师、项目经理等团队成员交流。在这种情况下,一个人水平如何,客户无从得知。换句话说,软件工程师的水平高低不是那么直观的,很多时候,他们的业绩好坏,全在于领导的印象。像医生,健身教练等,都是直接为客户提供服务的。如果他们的水平真的非常高,服务特别好,那么是可以在跳槽或自己创业的时候带走客户的。但程序员就别想了,程序员技术再好也很难创业成功,倒是销售人员更容易创业成功。

其次,软件行业经验贬值的太快了。很多技术活是可以做一辈子的,比如财会、机械设计之类的。但在软件领域,那些需要花费大量精力专研的技术,几年之后很可能就都变得一钱不值了。同时各种新技术层出不穷,我就时时刻刻都担心自己被淘汰,总是精神紧张。当然了,乐观的人也可以把这视为一种行业门槛:只有能够终身学习的人,才适合做软件工程师。

查看或添加留言

使用大语言模型翻译书籍

· 阅读需 3 分钟

最近开始大语言模型把 LabVIEW 书翻译成英语:https://lv.qizhen.xyz/en/

我是一章一章的翻译的。一般,每一章要过两遍。第一遍先用大语言模型中翻英。但机器翻译往往难以摆脱中文的句式结构,导致英文表达显得生硬。所以还要再用大语言模型进行改写,确保语句流畅、符合英语表达习惯。最后产生的英语文本我会检查一遍,确保没有错误,也同时学习学习英语。

如果没有大语言模型的帮助,我是不敢想象自己把文章翻译成英语的。大模型生成的英语文章可能依然赶不上真人写出来的文章,但它已经比我的英语好太多了,不但能保证语法正确,用词也比我丰富的多。之前从来没预料到,在写作方面,计算机这么快就赶上真人了。

现在翻译 LabVIEW 书籍最麻烦的是如何把插图中的中文翻译成英语。我只好暂时先不管了,留到以后有空再说。

大语言模型在给我带来极大帮助的同时,也带来不少问题。比如,编程面试。我们公司现在的招聘面试全部是视频面试,可能是为了节省成本吧。这在之前还好,可是自从有了 ChatGPT 等工具,明显就可以感觉应聘者编程能力普遍大幅提高。有些粗人,面试的时候,敲一行代码,就歪头看两眼,再写一行代码。你也不能说人家一定是在作弊,人家可能就是这种编程习惯。ChatGPT 不仅仅会写代码,解释代码也很在行。我也没有什么十分完美的方案来应对这些新问题,只希望公司能恢复现场面试吧。

查看或添加留言

大语言模型帮助写书

· 阅读需 3 分钟

最近一个多月的时间,差不多把业余时间全部用来写一本 Python 编程书了 https://py.qizhen.xyz/

除了为了学习 Python 语言本身,也是为了深入体验大语言模型为学习和写作带来的新机遇。总体感觉就是大语言模型真牛。在它的帮助下,我花了一个多月的时间,让这本书答题成型,虽然还有很多问题,内容也不完整。但是如果没有大语言模型的帮助,写作到达到同样的程度,至少需要多花费二到三倍的时间。

大语言模型极大地加快了我完成本书的进程。然而,从另一个角度来看,它也降低了写作的门槛,如果过去三个月的劳动现在仅需一个月即可完成,那么这项工作的价值也可能只有以前的三分之一,甚至可能更低。以后,单从对读者的价值来说,可能再也没有写作这类书的必要了:看书还不如直接去问大语言模型。

就目前来说,我写 LabVIEW 的书相对价值还高一点,虽然 LabVIEW 的使用者非常少,但是大语言模型还无法产生高质量的 LabVIEW 编程资料。所以看我的书还有一些价值。

大语言模型最牛的地方不在于处理编程语言,而在于处理自然语言。我的英语水平有限,自从有了大型语言模型之后,无论我写什么,我总是先让它帮我进行修改。它不仅能纠正我语言中的错误,还能帮我润色文章,达到我自己无法企及的水平。所以,我正考虑将我之前写的 LabVIEW 教程翻译成英文。之前一直没有下决心开始这个项目,主要就是因为对自己的英语水平不够自信,但现在,我已经充满信心了(其实是对大语言模型充满信心)。

查看或添加留言

人工智能会有意识吗?

· 阅读需 5 分钟

这是个最近比较热门的话题。虽然我知道,如果宣称人工智能就快有意识了,会更吸引人,但我的确觉得目前的人工智能与“意识”之间还是隔着天差地别,我们这一代人恐怕是见不到有意识的人工智能的。

实际上,现在讨论人工智能与意识,很容易就脱离技术问题,去争论“意识”本身了,毕竟,人类对于什么是“意识”都还没有一个统一的观点。有些哲学流派认为意识与人体是一元的,不可分的。也就是说,只有人才有意识,没有人就没有意识。按照这一派的观点,除了人之外,其它的任何机器,动物,甚至智能超越人类的外星生物都没有所谓的“意识”。当然,也有其它流派不这么认为的。功能派就认为,意识相当于软件,与具体承载它的硬件无关。简单来说,如果机器能够通过图灵测试,就可以认为机器具有与人类相同的意识了。

即便采用功能派的观点吧,目前的人工智能算法也还无法做出可以通过图灵测试的机器。的确,如果限定提问问题的范围,人工智能很可能比真人回答的还要好。这就好比,如果限定问题只是数学计算,那么计算器都可以比人类回答的更快更准。目前,最接近通过图灵测试的人工智能算法(大语言模型),本质上是在拟合人类之前产生的文字。它极其善于整理已有的文本内容,如果问它一些高度依赖语言条文的问题,比如法律问题,它可以做到比人类回答的更好。但是,如果不限定问题范围,询问它一些依赖创造性的问题,它就无法给出满意的答案了。

人工智能算法也不是一点创造力都没有。算法中可以加入一些随机数,算法本身也可以把一些原本不关联的内容摆放在一起。这种内容的随机重排布也算是创新吧,不过人工智能自己是不能理解这些“创新”的,它无法判断自己的创新到底好不好,最终还是要交给人类来判断。

人脑也是神经元构成的,人工智能模型也由“神经元”构成的,当机器有了与人脑数量相当的神经元,是不是就会产生类似意识之类的东西了呢?这可未必。首先,人工智能中的“神经网络”只是借用了人脑中的神经系统的一些名词,它们之间并不是等效的。比如最基本的,人脑的神经网络是动态的,神经元之间可以新建连接,也可以断掉已有的连接;当前人工神经网络的结构是静态的,训练之前就固定下来了。实际上,我们对人脑的了解还非常有限,还没有完全弄清楚人是如何学习的。人脑有神经元,也不能证明人的“意识”就只有神经元参与,有些学者就认为量子效应也参与了人的思维活动。人类发现量子效应也还不到一百年,也许还有很多人类尚未发现的物理规律也参与了思维活动。总之,我对于目前人工智能的发展感到非常欣喜,但对于它发展出与人类相似的智能能力却没有那么乐观。

查看或添加留言

科普一下人工智能

· 阅读需 19 分钟

最近我看了一位科普作家关于人工智能(AI)的几期视频,并查看了视频下的留言。发现该作家和许多观众都对目前的 AI 技术存在一些严重的误解。因此,我想写一篇科普文章,尽可能消除读者对 AI 的误解。

这篇文章专为 AI 领域之外的读者而写,我会尽量使用最简单的语言来解释和回答一些我认为最容易被大众所误解的问题,例如:

  • AI 的行为是否连其设计者都不能理解?

  • AI 是否能表现出超出设计行为?

  • AI 是否具有创造力?

  • AI 是否能产生自我意识?

  • AI 为什么最近才能力爆发?

AI 发展历史

首先,让我们简单回顾一下 AI 的历史。AI 的提出已经有八十年了。在过去的 80 年中,AI 曾几度引发热潮,人们都热衷于畅想 AI 的美好未来,也曾担心 AI 会取代人类。每一次热潮都没有持续太久,人们很快就会发现 AI 的局限性,AI 的话题也会再次淡出人们的视野。

虽然我对 AI 早有兴趣,但正式开始系统学习 AI 还是在 2012 年左右。当时,已经不再流行 AI 这个概念,取而代之的是“机器学习”(ML)。理论上来说,机器学习是人工智能的一种实现方法,实际上,我估计主要是因为当时 AI 正处于冷静期,不那么受追捧,而 ML 显得更为时尚、引人注目。

机器学习包含很多算法,例如朴素贝叶斯、决策树等等。你可能没有听说过这些算法,但你一定听说过神经网络。尽管现在神经网络占据了主导地位,但在我学习 AI 那会,它并没有受到多数专家的青睐。这主要是因为神经网络也是一种有些历史的算法了,但在最初几十年的发展历程中,并没有表现出特别优异的性能。在图像领域中,它无法与支持向量机相媲美;在自然语言处理领域中,它又不如隐马尔可夫模型。当时很多人认为神经网络可能没有什么前途了。

然而,神经网络最终还是崛起了。现在所有引人注目的 AI 项目都是基于神经网络的,因此有必要简要介绍一下神经网络的工作原理。在下文中提到 AI 时,默认指代的就是神经网络模型。

神经网络的原理

我们可以把需要解决的问题抽象为一个函数。比如,一个用来计算乘法的函数,它的输入是两个数,x 和 y,输出是另一个数;用于聊天的函数,它的输入是一些文字,输出是另一些文字;用于绘图的函数,输入是一些文字,输出是一张图片。

有些函数是非常简单的,比如乘法函数,根本用不着神经网路,有更高效简洁的方法可以解决。神经网络主要应用于那些特别复杂的问题,比如通过文字绘图的函数,人们没办法直接为这类函数提炼出一个简单直观的数学公式。但问题还是可以解决:如果读者听说过“级数”这个概念,可能已经知道了,任何一个函数,都可以被看作是很多很多其它函数的叠加;如果没听说过也不要紧,只要记住这个结论就可以了:如果遇到一个极其复杂的函数,我们可以把它拆解成许许多多简单的小函数,再让这些小函数的结果叠加在一起,恰好可以实现复杂函数的功能。

假设存在一个复杂的函数,输入 x 会产生输出 y,可以将其分解为多个简单函数的和,形如:

Y = (w0*x + b0) + (w1*x + b1) + (w2*x + b2) + …….. + (wn*x + bn)

其中每个 (w*x + b) 的部分就是神经网络中的一个节点。而 w0 ~ wn 和 b0 ~ bn 则是神经网络中的参数。这些参数的值不是人为设定的,而是通过神经网络的训练过程去找到的。实际应用中的神经网络会比上述例子更加复杂,比如每个节点的函数会是更复杂一点的非线性函数,会有更多的层次等,但原理依然相同。

为了找到最适合的参数值,首先需要为模型构建一个训练集,例如,对于生成图片的模型,每个训练条目包含两部分:输入的文字和输出的图片。模型首先使用输入的文字作为输入,使用当前的参数生成一张图片,然后将其与目标图片进行比较,提取差异。根据差异的大小,调整网络中的每个参数,使其产生更接近目标图片的结果。不断重复这一过程,直到模型产生的图片与目标图片相似为止。

这个过程可以看作是模拟数据集或拟合目标函数的过程。

AI 的行为是否连其设计者都不能理解?

当我训练好一个神经网络之后,我是否能够知道网络中每个参数的值呢?是的,只要想要,我就可以知道。从上文所述的模型训练过程可以看出,这是一个机械的数学计算过程。如果给定相同的初始值和训练数据,重复相同的训练过程,必然会得到相同的参数。但作为模型设计者,我实际上并不关心每个参数的具体值,因此我不会去查看每个参数的值。

这就造成了很多人对于神经网络的一个误解,他们会说:原来你都不知道神经网络里具体的数据啊,肯定更不知道每个参数的含义啦,你自己设计的神经网络你自己都理解不了,看来人工智能要摆脱人类控制了。

这种说法类似于对一个火箭设计者说:你连每个燃料分子燃烧的位置都不知道,你怎么能理解你设计的火箭呢?但实际上,设计火箭并不需要了解每个分子的情况,只要知道所有燃料作为一个整体能否提供足够的动力就可以了。同样的,神经网络的设计者也不需要,更不应该去纠结网络中每个参数的值,设计者应该去了解的是当所有参数作为一个整体时,能否拟合目标函数。

现在读者应该可以看出来了,所谓 AI 设计者不了解自己设计的 AI,纯粹是一种误解。其实,只要换位思考一下就知道这种误解的不合逻辑之处:读者自己是否理解 AI 的工作原理?如果理解不那么深刻,那么你能够设计出一个 AI 模型吗?如果你因为不完全了解 AI 而无法设计一个 AI 模型,又怎么能相信别人会在不了解 AI 的情况下就设计出了一个好用的 AI 模型呢?

AI 是否能表现出超出设计的行为?

神经网络的学习过程本质上是在尝试最大限度地拟合训练数据集,它通过不断调整网络中的参数来达到这个目的。然而,这也意味着神经网路被训练到极致,最多也就是完美得模仿了训练数据集。

上文用图片生成做过示例,再用文字生成为例讲解一下 AI 如何工作。大家可能觉得AI聊天写作文等功能挺神奇的,但实际上,文字的生成也可以被看作是一个函数:这个函数的输入是一些文字,输出是下一个要产生的字。

现在的大语言模型常常会使用网络上能够收集到的所有文章、对话作为训练集。这样,训练出的模型,就可以模仿网络上的文字。比如:把“我爱祖”三个子输入给训练好的 AI 模型,AI 模型由于在训练集中看到了大量“我爱祖国”这样的组合,于是就会输出一个“国”字。“我喜欢祖国”可能并不常见,但模型在训练集中会发现有大量的情况“喜欢”和“爱”这两个词是可以互换的。 所以,如果把“我喜欢祖”这四个字输入给模型,模型也会在这里输出一个“国”字。如果输入“小明:你喜欢祖冲之吗?AI:我喜欢祖”这几个字输入给模型,模型因为在大量的训练集中已经发现了,对话中的文字必须是上下文相关,所以会在这里输出一个“冲”字,再把“小明:你喜欢祖冲之吗?AI:我喜欢祖冲”几个字输入给模型,模型会再返回一个“之”字。

训练好的模型,可以写文章,可以解释法律、医学等问题,但无论它看上去多么令人惊叹,也只是在忠实的按照设计目标,去模仿网上的文章与对话。它无法超越设计者给它限定的范围。

同时这也可以解释为什么现在的大语言模型有时会一本正经的胡说八道:在遇到训练集中没有的问题时,它会提取一些最相关的内容进行拼凑,但它无法判断拼凑出来的东西是否正确。

AI 有没有创造力?

这要看你如何定义创造力了。一个 AI 在学习了猫头,狗身的照片之后,可以画出一张猫头狗身拼接在一起的照片。如果你觉得这算是创造力,那么AI确实具有了一定的创造力。

如果你觉得不算,只有 AI 画出了训练集中没有的东西才算创造,比如训练集中只有猫和狗,但模型却能画出一匹马。如果你这样定义创造力的话,那么 AI 没有创造力,AI 无法输出任何训练集中没有的东西,它最多只能把训练集中的内容进行整理拼接。

AI 能不能产生自我意识?

就目前AI的技术来说,AI 是绝不会产生自我意识的。目前训练 AI 的方法就是让 AI 去模拟训练集中的输入输出。我们可以脑洞一下,如果有一个 AI 模型突然就有自我意识了,训练程序让它画猫,它决定放飞自我,画了一只鸡。结果会怎样呢?结果是:因为它没有达到设计目标,这个模型被销毁了。

以目前的 AI 技术而言,AI 本质上与螺丝刀、扳手等工具没有什么区别,都是由人类设计和使用的工具:人类怎么操作它,它就怎么工作,除此之外无法做任何事情。任何人类不知道如何解决的问题,AI 也同样解决不了。比如,人类如果不知道如何证明黎曼猜想,AI 也无法自己证明。

总有人觉得 AI 参数这么多,结构这么复杂,说不定它自己突然灵光一现,就产生了自我意识呢?这个想法,就有点类似于,把组成生命的各种化学物质放到一个瓶子里,然后晃一晃瓶子,就指望里面的分子自己重新排列,构建一个生命体出来。我们有时候会有一些美好的愿望,希望自己并不了解的东西可以自发的产生魔法和奇迹。但是最终这些愿望基本都会落空。

为什么神经网络这么强大,却直到最近才功能爆发?

AI 最近爆火起来,是它在绘画,文字生成等领域都展现出了前所未有的好结果。那么为什么它之前没有,而现在突然就强大了呢?

早期神经网络主要是全链接神经网路,也就是网络中的每个神经节点都和下一层的所有神经节点相连。理论上,一层这样的神经网络就可以拟合任何函数,但在实际应用中,它始终面临着三个未能解决的问题:

  • 训练效率差,尤其是大型,多层神经网络,很多情况下根本无法训练。

  • 硬件不能提供足够的计算资源。要拟合复杂的问题,少量神经节点肯定是不够的,节点必然越多越好。

  • 缺少训练集,标注训练集是非常贵的。

近些年,以上几个问题都得到了实质性的改进。首先是算法和网络架构的创新解决了模型训练的问题。使用一些特殊的网络结构(如卷积网络、残差网络和注意力机制等)代替全链接网络,可以提高模型的训练效率和表现。这些结构可以构建上百层甚至更深的网络结构,“深度学习”由此得名。现在,那些最为知名的大型模型都是基于“变形金刚”这种链接结构构建的。

要解决更复杂的问题,必然需要更多的神经元。在硬件方面,GPU的出现,为神经网络提供了足够的计算资源。

人为标注的训练集依然十分昂贵,但是这些年互联网的蓬勃发展使得网络上的文字和图像内容极其丰富,这些内容都可以被用来做训练。

于是乎,解决了以上几个问题的 AI 开始了新一轮的大爆发。作为相关从业人员,我希望这一次的热度可以坚持更长的时间。

查看或添加留言

AI 绘画发展的真快啊

· 阅读需 5 分钟

AI 绘画的发展速度比我预想的还要快。几个月前,Stable Diffusion 发布的时候,它们训练了一个通用模型,什么类型的图片都能生成,但无论什么类型都是马马虎虎。比如,对于人像的生成,多数都很模糊,甚至走样,只能看个大概。但是这几个月来,针对各种特定目标的模型都被训练出来了。这里当然少不了专门生成帅哥美女的模型,此外还有针对卡通、国画、油画等等各类绘画风格训练的特化模型。除了模型,各种辅助工具也被开发出来了,比如有些工具可以让用户摆放几根线段,代表人体骨架的姿势,然后模型就可以按照这个姿势生成人像。这就实现了对构图的精细控制。精细控制,配合上某明星的订制模型,就可以生成这个明星的任意姿势的照片了。

AI 绘画工具的出现对于我的帮助还是非常大的:我经常希望在自己的文档中添加一些插图,但是却没有绘画的能力。现在可以让 AI 来帮我画了,就算没那么完美也不要紧,有就比没有强。

半年前,AI 绘画勉强可以达到实用水平的时候,从新闻和论坛里看到的绘画从业人员的普遍反应是抵制。随着 AI 能力的加强,从业人员更多的是表示担忧了。我作为非专业的人员,可能体会不到那种危机感,但我还是觉得画师们并不需要太过担心的。在专业领域,那些老板们,无论有什么样的工具,也不可能自己去动手操作的,还是需要有专业人员来操作,差别无非在于一笔一笔得画,还是一条指令一条指令得画。工具毕竟是工具,新的工具不会取代人,只是会改变人们生产的方式。

被改变的可能不止是生产方式,或许还会有审美标准。AI 不但可以生成以假乱真的真人照片,还可以生成并不真实存在,但却是人们心目中的完美人像。当下,对大众审美影响最大的是明星们。将来会有越来越多 AI 生成的虚拟明星们出现。真人明星们就算化妆、整容、开滤镜,也不至于和真人容貌差太多,虚拟明星们长啥样就很难预料了。

我的 Facebook 上经常会收到骗子的好友申请。由于工作相关,我还曾经仔细研究过几个骗子的页面。在社交媒体上有很多知名度极低的小网红们,经常性的发布自己的生活照片视频等。骗子们会把这些内容收集起来,发布在一个虚假的账号下面,把这个账号伪装成某个帅哥美女的账号,然后行骗。估计以后骗子们的手法也要升级了,不需要再去收罗真人的内容,用 AI 生成全套的内容就可以了。

查看或添加留言

AI 生成的一些图片

· 阅读需 3 分钟

这几天在电脑上运行了 Stable Diffusion 玩了玩。这是我正的测试页面:https://qizhen.xyz/genimg

这个模型比 Dall.E 的小很多,所以才能在配置不高的个人电脑上跑。而且,我的电脑也只能勉强生成 512*512 的照片。虽然效果可能不如专业网站用的大模型,但有些作品已经很逼真了。我主要试试了生成真实人像以及和二次元人像之间的转化。Diffusion 模型不太擅长逼真的人像,程序生成的人像使用 GFPGAN 改善过的。在人像中,个人感觉这个模型最擅长生成白人年轻女性的照片。我也尝试了让它生成一些中国人的照片,但感觉都不是那么美,实际上多数生成的中国人照片都看起来比较别扭。很可能是因为它的训练集中就有比较多的白人年轻女性照片,或者也可能是因为我生长在中国,对中国人的面貌更敏感,更容易发觉异常。

先贴两张 AI 生成的仿旧照片,看起来还真挺像真的:

接下来几组图片,都是首先生成了左边的真实照片风格的图片,再根据照片转换成了右边二次元图片:

真实照片风格二次元风格

下面这两组图片是先生成的左边的二次元风格图片,再根据它生成右侧的真实照片风格图片:

二次元风格真实照片风格

可以明显感觉到,生成真实照片要困难很多。可能是因为人脑对所谓“真实”照片更挑剔吧。

下面两组是风景图片,感觉两种风格生成出来的图片区别远没有人像的区别那么大

二次元风格真实照片风格
查看或添加留言