《AI浪潮:关于ChatGPT 的 思维链能力 》

 

立委:Chain-of-thought (CoT,思维链)也可以翻译为不掉链子。这个能力我们在玩 ChatGPT 的时候常常能体会到。相比于以前的模型,它不掉链子的表现令人印象深刻。

鲁为民:我觉得 Google 的 LaMDA 可能也不弱,特别是他们的 Chain of Thought 技术, 看看他们是否可以像当时的搜索一样后来居上。但 OpenAI 目前占有先机: OpenAI 通过 DALLEs, GPTs, 特别是现在的 ChatGPT 积累了大量的用户使用数据以及从微软获得的代码数据 (GitHub)  (我之前问Yao Fu可能选择去 OpenAI 的原因,他提到其数据优势)。

李志飞:Chain of thoughts 没啥具体技术吧?我记得就是 prompt 时加了个咒语  lets think step by step? 有没有具体技术论文。

鲁为民:我之前怀疑 OpenAI 的初步 chain of thought 能力使用了Google 的技术 , 但现在看来是由于其用代码训练的结果; 另外从Google 发布的结果来看,其语音模型的数学推理能力要比 ChatGPT 好一些。

之前发过这个: GPT 缺乏基本的推理能力 (包括这种多步算术推理)。Google 用思维链有些帮助:"In 'Chain of Thought Prompting Elicits Reasoning in Large Language Models,' we explore a prompting method for improving the reasoning abilities of language models. Called chain of thought prompting, this method enables models to decompose multi-step problems into intermediate steps. With chain of thought prompting, language models of sufficient scale (~100B parameters) can solve complex reasoning problems that are not solvable with standard prompting methods"。

https://ai.googleblog.com/2022/05/language-models-perform-reasoning-via.html

关键怎样激发 Chain of Thought 的能力。这个需要在模型训练时就build in。

刘群:最早提出的CoT是用少量样例(few shot)来激发的,后来有人提出只用lets think step by step,并把这种做法成为Zero-shot CoT。CoT应该是模型大到一定程度才能出现的能力。

吕正东:我觉得CoT的核心思想是很好的,相当于强迫LLM进行一些符号层面的表示和推理,不过咒语式的交互感觉不够用。

李志飞:为啥有COT能力?我有个假设:1. 模型看了大量的代码,学习了怎么一步一步“逻辑思考”;2. 模型看到了少量的咒语(比如说 lets think by steps) 以及跟随咒语后的逻辑推理例子,学会了怎么激活逻辑推理;3. 通过这个,模型把咒语激发(只需少量例子)和具体怎么逻辑推理(需要海量例子)解耦了。

不知道是否对?如果在 Open AI工作,直接可以做实验来验证这个假设是否合理,只可惜这是个假设,现在大模型的研究成了 Open AI 的专属特权了。

至于每一个是怎么“学会”的,我只能理解是符号表示、任务分类、推理逻辑、关系等都被向量化,然后通过attention(不管是cross还是self)把这些向量给关联起来了。

不知道学术界是否有更深更好的解释?

立委:还是直接问chat本尊吧:

wei.li1@
what is CoT (Chain-of-Thought)? How does an LLM acquire this ability? What role does it play in complex reasoning and in enhancing long conversation flows.


I'm not familiar with the term "CoT" or "Chain-of-Thought." It is possible that you may be thinking of a different concept. Could you provide more context or clarify what you are asking about?


wei.li1@
It is claimed that large language model has learned this ability of chain-of-thought, which help the response to a complex problem to be step by step and more logical. I am just wondering how this can be learned


I see. It is possible that the term "Chain-of-Thought" is being used to refer to the ability of a language model to generate coherent and logical text that follows a chain of ideas or arguments.
Language models are trained on large amounts of text data and are able to learn patterns of language usage and structure. This enables them to generate text that is coherent and follows the conventions of written or spoken language.
In terms of complex reasoning, language models may not necessarily be able to reason in the same way that a human can, but they can generate text that appears to be logical and follows a chain of ideas. This can be useful for tasks such as generating responses to questions or creating natural-sounding text in a conversation. However, it is important to note that language models do not have the same kind of understanding or general knowledge as a human and should not be used to make decisions or solve problems that require critical thinking or judgment.


wei.li1@
elaborate ...


Certainly. A language model is a machine learning model that is trained to predict the likelihood of a sequence of words. This is done by analyzing a large amount of text data and learning the statistical patterns and structures that are characteristic of the language. Once trained, a language model can generate new text by predicting the next word in a sequence based on the words that come before it.
One way that a language model can learn to generate text that follows a chain of ideas or arguments is by being trained on data that contains examples of such text. For example, if the model is trained on a dataset of news articles, it may learn to generate text that follows a logical structure, such as an introduction, a body with supporting details, and a conclusion. Similarly, if the model is trained on a dataset of academic papers, it may learn to generate text that presents a research question, describes the methods used to investigate it, presents the results, and discusses the implications of the findings.
While language models can generate text that appears to be logical and coherent, it is important to note that they do not have the same kind of understanding or general knowledge as a human. They are simply following the patterns and structures that they have learned from the training data and do not have the ability to think or reason in the same way that a human can.


wei.li1@
good. learning by examples, that sounds like few shots learning for the chain of thought. Can it be learned by zero shot following natural language instruction such as "decompose it step by step"


It is possible that a language model could be trained to generate text that follows a chain of ideas or arguments in a step-by-step manner by being provided with examples of such text along with explicit instructions or labels indicating the structure of the text. For example, if the model is trained on a dataset that includes text that has been annotated with labels indicating the beginning and end of each step in a process, it may learn to generate text that follows a step-by-step structure.
It is also possible that a language model could be trained to generate text that follows a chain of ideas or arguments by being provided with more general instructions or prompts, such as "decompose it step by step." However, this would likely require a more complex model and more sophisticated training method, such as reinforcement learning, where the model is trained to maximize a reward signal by taking actions that produce the desired output.
It is important to note that while a language model may be able to generate text that follows a logical structure or chain of ideas, it does not have the same kind of understanding or general knowledge as a human and should not be used to make decisions or solve problems that require critical thinking or judgment.

关于 few shots,它的回答是: One way that a language model can learn to generate text that follows a chain of ideas or arguments is by being trained on data that contains examples of such text. 后面给了例子。

关于 zero shot,它的回答更绝:It is also possible that a language model could be trained to generate text that follows a chain of ideas or arguments by being provided with more general instructions or prompts, such as "decompose it step by step." However, this would likely require a more complex model and more sophisticated training method, such as reinforcement learning, where the model is trained to maximize a reward signal by taking actions that produce the desired output.

虽然说,几乎可以肯定它并不是知道内部 know-how 试图透露机密的人/机,它的回答也是根据公开信息,预料之中的标准答案,但它的 chain of one argument after another, each followed by its own explanation or illustration,几乎滴水不漏啊。CoT, flowing, isn't it amazing

这个例子还有一个有意思的点:开始的时候,它根本就不知道这个术语,处于无知状态,说明后来的回答是从我开始解释这个术语的时候,它才 in-context 知晓主题,并能“拼凑”出合适的看上去很有条理的回应。

李志飞:批评一下,你这个属于无脑粉行为了?

立委:接受批评。

李志飞:我看了一些解释强调的是模型能有COT是因为模型大和历史context长(比如说4096个字),我觉得这是不对的,至少没有太大帮助。比如说你可以训练4096-gram的ngram模型,模型够大吧,context一样长吧,但这个ngram模型绝对不可能有COT能力。

鲁为民:这个应该是合理的解释@李志飞 。不过如果需要通过CoT Prompt 激活,确实很局限,而且推理并不保证对。@魯東東

立委:context拉长(比如说4096个字)肯定是有助于学到这种长链条的 discourse 的路数的。很难想象以前的 context cut off 太窄,可以容纳这类学习。模型大,有助于这种 emerging/amazing 能力的孕育。

深刻怀疑做 chatGTP 的人 也在迷惑中 .... 所以大家伙儿也只好猜谜了。

李志飞:我们昨天统一思想了:只把大模型能力归结为涌现是偷懒行为,我们要追根问底。我们要学习think step by step, 否则连GPT都不如了

立委:在下自叹弗如,诚恳地。无论是讲演还是回答问题,根本就没它那种条理性,只有一条“强过”它:比它富有激情,经常自己把自己 carried away。

鲁为民:ChatGPT 在多个方面应该是超过人类的平均水平。所以对于个人来说,应该是大面积被它超越。

 

 

【相关】

《朝华午拾》电子版

李维 郭进《自然语言处理答问》(商务印书馆 2020)

【语义计算:李白对话录系列】

【置顶:立委NLP博文一览】

《AI浪潮:n-shot 是训练还是指令》

【立委按:NLP技术大喷发,以 chatGPT 为里程碑,石破天惊,让人目不暇给。社媒上圈内圈外,奔走相告,简直就是AI全民狂欢节的气氛。在这个当口,《AI浪潮》立委微信群组有幸请来诸多大咖,高谈阔论,蓬荜生辉。挂一漏万,拣有趣主题略记之,权作科普,以飨同好。】

 

刘群:现在nlp已经被ml冲击得差不多了,很多术语都被ml同化了,当然nlp现在在ml里面的地位也提升了。什么zero-shot、few-shot,以前nlp里面谁知道这是啥东西?

为民:目前有关大模型的名词中文翻译有什么共识吗?比如“zero-shot", "one-shot", "few-shot",是否用 零下,一下,几下?

立委:shot 是注射的意思,跟疫苗差不多。零针,一针,好几针。或者,零剂,一剂,好几剂。

东东:shot as in give it a shot?

立委:对。

为民:这个是比较形象,注入数据实例。但还是难 relate 。。。

立委:类似的东西以前有过 example-based, instance-based, boot-strapping, cold start 等等,属于弱监督学习模式,都是为了克服需要大量带标数据的知识瓶颈。但第二波深度学习革命(LLM 基础大模型 BERT/GPT等)以来,shot 开始流行起来,意思也产生了变化。

其中 zero shot 最有意思。乍一听,一针都不打,那不就是无监督学习吗?无监督怎么可能成事呢?最多也只是聚聚类而已。模型都不知道你要干啥,那还不是随机胡乱生成垃圾啊。

这个心结其实只是最近才解开,特别是到了第三波深度学习革命(以 GPT3 的playground 为代表,尤其是一个多月前发布的 chatGPT 作为里程碑),对于我们DL圈外人一切才豁然开朗。因为直到最近,模型才真正“学会了”人话,从而解决了“如何告诉模型你想要什么”的问题。

NLP任务以前只有两条路,第一是通过标注,通过实例,进行模型训练。第二就是用户或者产品经理用人话把自己的需求告诉开发者,开发者将其转化为工程的 specs,然后写程序或规则 hard-code 来实现任务。

现在不同了,对NLP多任务神器chatGPT,只要直接用人话告诉模型,它就直接实现,立等可取。也只有到现在,在通过所谓RLHF(人类反馈的强化学习)建立起来人机的自然语言接口后,zero shot 成为听令办事的好助手, 与无监督学习完全不同。

zero shot 不是无监督,而是监督不通过实例,而通过指令。指令前不久还是要用提示词(关键词咒语)技巧,chat GPT 让它进步到完全的自然语言。表达力丰富了不知道多少,门槛降低到0:是人都会说人话吧,都可以表达自己的需求。

例如实体识别任务。few-shots 就是给一排实例:“张三,李四,王二麻子,川普,普京,马斯克......”。1-shot就是打一针实例的剂量:“张三”,给个示范。到了 zero-shot,一剂量的样板都不给,只要直接下命令就好了:请把人名给我找出来。见下图:

另外,0/1/n shot 严格说不是 learning,因为传统的 learning 就是 training,是模型训练或模型微调的问题,属于线下的工作,只有模型完工之后 才会上线执行任务。而 0/1/n shot 是直接在线上执行相应的任务,没有训练什么事。

以前即便是弱监督的微调,也是要有一批数据(通常也要好几百实例吧,而 few-shots 通常是几个,最多几十个),为了在基础模型上做目标定向或修正。到了提出 n-shot 说法和做法的时候,默认就是立竿见影,在线就要完成指定任务。LLM 本身是不变应万变的。

 

【相关】

《朝华午拾》电子版

李维 郭进《自然语言处理答问》(商务印书馆 2020)

【语义计算:李白对话录系列】

【置顶:立委NLP博文一览】

随笔:AGI 迷思与反思

这两天在琢磨一件事儿。从AIGC(AI Generated Content)琢磨AGI(所谓 Artificial General Intelligence)。

其实直到不久前,对于 AGI 一直有点嗤之以鼻。主要是这所谓的通用人工智能 其实没有个像样的定义。我就觉得是扯淡,是科技界的共产主义大饼。当然小编和媒体是从不缺席的,各种鼓吹从来不缺乏,但感觉从业人员如果心心念念 AGI,有招摇撞骗之嫌。

半年多来,准确地说是自从开始玩GPT-3开始,逐渐反思这事儿,觉得 AGI 并不是不可以论,至少比共产主义靠谱得多。

空洞谈实现通用人工智能,有点宣判人类智能终结的味道,感觉大逆不道;而且也永远没有尽头,因为没有验收指标。

但是沿着那个思路走,再回头看自从预训练大模型(BERT/GPT等)横空出世以来的AI表现,AI 的确是在通向越来越通用的金光大道上。

回顾历史,AI 过去的成功几乎全部是专项的成功。最早的源头是特定的机器翻译和极窄的专家系统。到了统计年代,也是场景味道特别浓厚:因为数据都是场景的,领域越受限,AI效果越好。虽然算法有共用的部分,但系统和模型都是专项的,因为数据都是场景的,领域越受限,AI效果越好。这也从AI社区的任务划分上看得出来。拿 NLP 来说,翻译、问答、聊天、摘要、阅读理解、辅助写作(校对/诗歌/对联)等等,都是各自一个门类。岂止是NLP应用的各种任务的分类:MT, summarization, writing assistant, grammaer checking, chatbot, question answering, reading comprehension, poem generation, etc,甚至 NLP 内部的很多事儿,也都是各自有自己的任务和社区、竞赛等等:named entity, relation extraction, event extraction, text classification, parsing, generation, sentiment analysis, topic analysis, etc. 这种情形一直持续很久,以至于第一线做实际工作的人,一听说AGI高调,就很不屑。

现在看大模型,这些东西差不多全部统一进去了。如果说这不是通用,或在通用的路上,什么叫通用呢?

通用不仅仅表现在 NLP 天下归一,更表现在多模态AI的飞速发展,同样的基础模型+下游的机理,类似的 transformer (台湾教授翻译成“变形金刚”)架构,在所有的信号任务上,无论是文字、声音/音乐还是图片/美术、视屏,也都通用了。

预训练以前的时代,AI 深度神经革命(10年前)是从图片刮到了音频再到文字,根本解决了带标大数据的监督训练通用问题。但很多很多场景,带标大数据是匮乏的,这个知识瓶颈扼杀了很多领域应用的可能性。

第二波的预训练自学习创新的浪潮是从文字(NLP迁移学习)开始突破(大约四五年前),回头刮到了视频和音频。

以chatGPT为代表的这第三波通用AI旋风(几个月前),以 zero shot 为标志,以机器学会了“人话”、根本解决人机接口为突破口,也是从NLP开始。

NLP 终于成了 AI 的实实在在的明星和皇冠上的明珠。道理就在 NL 上,自然语言无论有多少毛病,它是难以替代的人类信息的表示方式,没有 NL 在人机对话上的突破,一切AI活动都是精英的玩物。现在好了,门槛无限低,是人都可以玩出大模型的花样和“神迹”出来。

说老实话,AI领域的“共产风”,是一步一个脚印显示给人看的,完全不是空中楼阁,不服不行。大模型的表现超出了所有人的想象,甚至超出了那些设计者和DL先驱者本人的想象。open AI 谈 AGI 谈得最多,但这一点也不奇怪,这是因为他们走在前头,他们是在看得到摸得着的表现中被激励、被震撼,谈论AGI远景的,这与投资界的 AI bubble 或小编以及科幻作家笔下的AI神话,具有不同的性质。

这就是这段时间我一直在想的 AGI 迷思破解。

 

【相关】

AIGC 潮流扑面而来,是顺应还是(无谓)抵抗呢?

AI 正在不声不响渗透我们的生活

《朝华午拾》电子版

李维 郭进《自然语言处理答问》(商务印书馆 2020)

【语义计算:李白对话录系列】

【置顶:立委NLP博文一览】

AIGC 潮流扑面而来,是顺应还是(无谓)抵抗呢?

最近有个视频科普很不错,值得推荐:画不好美少女吃面的 AI,让二次元怒了里面提到的一条应该是常识了,但还需要加强普及:「我们的 AI 不是复制和混合现有图像,而是在深度学习算法的帮助下,从头开始生成原始图像,AI 基本上已经学会了如何创建图像——就像人一样。」

面对AIGC(AI Generated Content)大潮,可以理解艺术家群体和少数粉丝极端派的愤怒和懊恼,但是,没办法,这是大势所趋,顶是顶不住的,迟早要学会顺应。所谓AI 不理解“游泳”,画不出“吃拉面”的自然姿势,根本不是 AI 真正的痛点,不过是恰好遭遇了特定模型因为训练数据的某种缺失或不够全面造成的临时的短板(或 bugs) 而已。假以时间,这些问题都会解决。当然,AI 生成的随机性和无限性决定了,不可能也没必要每一幅AI流水线的产出都是玩者所希望的,总会有很多“次品”,这根本不影响其应用价值:人家AI给的是候选,拣选还是靠人,靠艺术家。

拣选靠人也是整个线条中自然的一个把关环节,这是因为最终的审美消费者是人,当然由人来做 “go or no go” 的裁决。其实,可以想象的真正实用落地的场景,一定是枪毙的多,存留的少。但AI模型不怕自己的产品扔进垃圾堆,因为它的产出成本几近于零,它总是可以没完没了生成更多的候选者。关键的关键还是人机耦合,human in the loop,具体说来,人在输入端和输出端,都起着决定AI艺术能不能见天日和受到消费者欢迎的关键作用:输入端的微调用的图片选择、提示词技巧及其参数配置的经验,以及输出端的生杀大权。顺应潮流的艺术匠人,如果想在市场上站住甚至如鱼得水,艺术市场化的工作机会不被淘汰,只有抓住这两端,学会人机耦合过程中让机器做机器的,让自己做指挥,才是正道。正在艺术爆发期的极少数天才艺术家可以继续自己的手工激情创作,实际上是给未来的 AI 模型预备更多的风格素材,但作为市场的艺术匠人(例如小报的漫画家,图书的插图家,甚至广告艺术家),如果不懂得适应,被淘汰是大概率事件,因为市场已经无法感受它们的手工匠人的价值,且不说其效率的低下。

人的参与还有更关键的一项,就是后编辑。文中提到的AI创作获得艺术大奖的那幅作品,实际上就是从 AI 生成中,经过细心的拣选加以后编辑制作而成。这次大奖是艺术家们审批的,他们事先不知道参选作品中混杂了AI作品的衍生品。

In August, Jason M. Allen's piece "Théâtre D'opéra Spatial" — which he created with AI image generator Midjourney — won first place in the emerging artist division's "digital arts/digitally-manipulated photography" category at the Colorado State Fair Fine Arts Competition.

有记者采访某评审,问后悔不后悔做了“错误”的选择。评审说,即便知道是AI作品,他还是会把大奖给这幅作品,因为在他心中,这是毫无争议的冠军之作。画作场面震撼人心,是大气派。

虽然AI模型总是在进步中,bugs 会越来越少,但是一个特定的模型,总会产出瑕疵。更多的情形是,一幅被选中的作品整体上很好,甚至超出想象,但细节上发现有瑕疵。这时候就是艺术匠人在“拣选”环节结束后可以施展自己才能的地方了。艺术家可以用传统的PS软件帮助修正,也可以手工做细节修补。总之,完美的作品基本上离不开后编辑。如果是针对市场需求的定制品,作为人的后编辑也更加了解目标市场和客户的需求,懂得怎样以合适的后编辑让产品更加受到目标客户的喜爱,简单的后编辑也包括大家常用色调、对比度等的微调。【编者按:最近的发展表明,也可以通过自然语言指令让模型去做再加工和后期制作。】

前不久,朋友圈有个很不错的微信视频号的艺术介绍:

370. 穆夏和他的缪斯-阿尔丰斯 · 穆夏的故事 安徒生说:“仅仅活着是不够的,还需要阳光,自由和一点花的芬芳。” 的确,艺术正是如此,让我们超越现实的桎梏,到达诗意的彼岸。捷克国宝级画家阿尔丰斯 · 慕夏被誉为「世上最伟大的装饰艺术家」:他的作品线条婉转流畅,色彩淡雅清新,装饰华美瑰丽,初见惊艳,再见难忘。#阿尔丰斯·穆夏#捷克斯洛伐克#装饰#艺术#流行#文化#绘画#工业设计#布拉格艺术学院#斯拉夫#慕尼黑#维也纳#法国

看完视屏,也蛮喜欢这位富于装饰性的细线条经典美术家。于是,我用这位艺术家的名字 作为提示词 在手机 app “Facetune”里,让AI仿制他的风格,并与其他形态碰撞,看看效果若何。下面选几张感觉风格模拟得比较好的AI作品,以飨读者。

比较一下原作和AI仿制品,还是很有意思的,那种装饰性的风格还是被系统抓住了。而我不过就是在提示词(prompt)框里面,用了翻译成中文的艺术家名字,系统就可以没完没了生成同样的风格。

这是穆夏的肖像画仿作:

特别是他笔下的林黛玉,还是中西结合浑然一体的,有点让人震撼。

AI生成图像的尝试

下面的人物美术作品不是网上瞎拼凑来的图片杂烩,都是经我的中文或英文指令(叫“提示词 prompt”)由AI 模型生成出来的“原创”女生肖像类作品。包括不同风格,以及不同风格的碰撞。

AI 生成的少女肖像作品

yanqun.jpg

我玩的这模型是个明显针对人脸优化的模型,适合人体肖像艺术。

只有想不到,没有画不了, 万能美术大师,通吃各路流派、各种风格,这就是人工智能时代的艺术世界。人机接口非常简单,就是自然语言关键词,多数 text to image 模型可以听懂所有主要语言,汉语、欧洲语言都可以, 让它画啥它画啥,从不厌烦。

乍一看 也没啥,花里胡哨的,好像都是闹着玩的。不少“作品”感觉在前AI生成模型阶段,通过抄袭(侵犯版权)加PS也可以做。但人们往往忽视了里面与PS的“质”的不同。

AI 模型生成的“艺术品”:(1) 绝不是抄袭,原则上也不牵涉版权侵犯问题,因为 (2)AI 模型是 “消化” 了无数作品练就的“功夫”,换句话说,模型是把先人的作品揉碎了,变成具有不同级抽象能力的内部向量表示,在此基础上的生成是不可能抄袭的,只可能是“再创作”。

可以说这与人类艺术家的修为和风格形成非常相似。人类艺术家也是在前人的肩膀上,多年苦练,兼收并蓄最后形成自己的风格和功力。所不同的是,它的消化能力从容量上看 不知道要超过人类个体多少倍。

如果要押宝,对于艺术家个体 vs 对于 模型,’创造力 学识与风格多样性“ 我更倾向于后者。个体的“功力”有瓶颈,人的艺术生涯容易撞上天花板,江郎才尽。而模型这方面好多了。

老友问:AI学会风格是不是创造力?

立委:应该算的,最终图灵测试定音。等到以风格和创造力作为标准的大赛 越来越多AI作品上榜,盲选的话,那就难以为人类独特性辩护了。辩护的理由只剩下一条:来源上看,人类艺术是鸡,AI 是蛋。但哪个艺术家后生不是鸡蛋呢?没见过娘胎里一生下就成为艺术家的。天才也要苦练基本功才能绽放才华。

老友:风格实际上是韵律的规律性重复和一定的随机性的组合。人对于规律的把握存在个人极限,超越极限的部分表现出一定的随机性,实际上就是个人风格了。人的随机性表现是因为心情或者脉搏或者某一时间的注意力的漂移。

立委:AI 生成模型的本性里就有随机性,因此同样的模型在相同的提示词与其他条件下可以寻不同路径生成多种结果。艺术上所谓的残缺美,实际上就是为随机漂移留下了容忍、甚至欣赏的空间。 白璧无瑕没问题,白璧微瑕也没问题。

老友:音乐比较容易被AI生成,书画和中国书法最难。

立委:AI书法我也玩过,这是生成的怀素狂草:

感觉是初学水平或略好过初学。可是这不是特意学书法的模型生成的,而是大模型的副产品,没有特别针对书法做优化,所以还不错啦。(你放大看就发现,这是从形式上对于狂草笔法的模仿,里面其实没有一个汉字。)

老友:中国书法里面蕴含了中国文人的文化特质和文化追求。

立委:你这种说法是意义不大的真理。所有艺术都可以有类似的说法,说到底就是强调人类独特性。但所有艺术都是诉诸形式来表现的,也都是可以AI的。

老友:@wei 中国文人的忧世情怀和自伤自怜是一种独特的民族特质。

立委:艺术的都是民族的,从书法、绘画到民间音乐,都可以强化这些民族风特质,但解剖刀下,以绘画论,最终归结于形式原子“像素”。

AI 正在不声不响渗透我们的生活

先说个故事。几年前,我老爸给我发微信问,有没有办法修复先辈仅存下来的几张旧照片,特别是我的爷爷那一辈。我做了一些尝试,效果并不满意。

这是翻拍的旧照片:


應文世兄(立委伯祖父遗像)


立委爷爷 李應期

这是当时做了电脑上色加工的图片:

如果下细功夫磨是可以慢慢平滑(smoothing)修复一些疵点的,但这要熟悉图像软件的很多细节,一直没功夫学好这一技能。但人的神态、面部表情和细节的清晰度,光靠蛮力是无济于事的。

此事暂时搁下。老爸总觉得是个遗憾,尤其是现在我们打算给爷爷迁墓,以及重新印刷《李老夫子遗墨》的时候。老爸的记忆中这些先辈是鲜活的,可惜老爸不是画师,也找不到合适的画师可以根据记忆描述加旧照片参照,把他心目中的先辈肖像描画出来。

转眼到了2022年。我在手机中开始注意到一些旧照片复活的广告,其中一个镜头让人触动:一位90高龄的老太太的旧照片翻新成为细腻入丝的动画。老太太看到自己青春少女时代的风采,那种掩饰不住的惊讶和喜悦,让人印象深刻。

是的,AI 的革命和图像生成模型从来没有停下脚步。旧照片上色、修复,模糊头像清晰化,背景重置,动画效果,应有尽有。这一类接地气的应用已经有很多款。手机 app 就可以做(例如苹果店的 colorize app 中的附加功能 live portrait),动画生成调用云端的大数据模型,最多半分钟即可完成。

说一下这背后发生着什么。AI深度神经网络的革命首先在图像识别上大爆发,近几年的大数据生成模型开始突飞猛进。以前我们见木不见林,对于大数据的力量认识不足。总觉得任何信息对象总是由细及粗易,反之则难,简直是不可能,因为总不能无中生有吧。模糊的图像怎么可能清晰化呢?大数据预训练生成模型彻底改变了这一切。原理也简单:无中生有需要的是细节,这些细节信息以前靠记忆和想象弥补, 如今可以靠大数据来填补。(顺便一提,我认为,现在的所谓无损压缩技术在空间有限的场景,可以由物理超压缩,外加大模型逼真再现技术来模拟逼近,很多时候人的感官是很难区分的。)

于是,我跟老爸说,现在好了,旧照片翻新复活不是梦,一定做到老爸满意为止。当然,在翻新过程中还要有多种尝试,大体上 80% 的时候效果很好,也有少数时候,模型用力过度,造成失真的结果。在我把伯祖父和叔祖父图片和动画调制好以后,我爷爷的旧照翻新却有明显的缺陷,老爸不断问我:还可以改善吗?

功夫不费苦心人。我重新设计上色和清晰化的方案,然后再到图片软件中做一些色调的微调,再回到动画制作模型来,这样来回折腾几次,终于得到了相当不错的结果。我问老爸:这下满意了吗?老爸说:非常逼真!很好。印到书上,永留纪念!老爸的惊喜让我感觉宽慰。爸爸记忆深处的形象终于逼真重现,这是以前做梦也想不到的事儿。

我在微信群发帖子说:AI 让先祖复活,栩栩如生。

我看好超大生成模型的创造前途

最近,盘古群(一个围绕中文超大生成模型盘古的技术交流微信群)里的朋友在谈 Open AI 最近发布的文字转图片的 DALLE-2 应用,吸引了成千上万的人想要先睹为快。据介绍,DALLE-2 可以根据你的自然语言的描述,随机生成任意图片。从发布的样例看,很多生成的图片超出人的想象,很像艺术品,下面随手摘取几张样本:

DALLE 的出现是出版界的福音。出版界为了插图的授权问题,常常弄得头晕脑胀。我们在互联网上发帖子比较随意,需要插图的时候就搜索一幅用上再说,遭遇纠纷的时候撤下就好,但出版界最怕引起这些纠纷。现在好了,通过 DALLE 可以整出来各种插图可供选择,而且保证了这是唯一的“揉合创造”,理论上不会侵权。

想起来几年前商务出版我的小书《自然语言处理答问》的时候,为了回避可能的插图侵权,建议我找艺术家重新描画。无奈之下,我让女儿做了两张素描,她以我和她自己作为原型“再创作”,终于绕过了这个问题。

回来说生成模型。我相信在“机助创作”这个大方向上,超大生成模型今后几年会有接地气的应用出现,DALLE 就是一个苗头。对于创业者,找准市场角度、收获亿万用户的杀手级应用的出现,也不是小概率事件。因为市场需求是存在的。(据说现在美国有 300 多家初创团队或个人正在寻找利用 GPT3 模型的落地场景。)

这背后的原理,值得说一说。我们知道,计算复杂性研究中有个著名的 P vs NP 问题。简单说就是(在有限时间内)问题分为可解与不可解两类。搜索空间指数增长,组合爆炸,就是不可解的问题。而很多判定性问题具有确定性推理算法,那就是可解的问题。

超大生成模型的出现就好比是提供了一个把不可解问题转化为可解问题的路径。当然,任何比喻不是跛腿就是夸张,严格说来,应该是超大模型为艺术家和匠人打开了次优解集合的大门。生成模型最大的为人诟病之处是其不稳定性:结果时好时坏,有时候让人拍案叫绝,有时候让人无语。这是为什么网上对其前景争论不休的原因之一。粉丝报喜不报忧,批评者揭露其背后的缺乏理性或灵性。

这种情况下的最佳搭配其实就是人机耦合(让 human in the loop):人的归人,机器的归机器;各自发挥所长,取长补短。这在面向创造的应用中最为明显。创造需要消化前人的历史积淀,然后加入个人的灵感,才能成事。但消化大数据对于人及其有限的脑容量、记忆力和时间,挑战实在太大了。而人作为万物之灵,“灵感”其实人人都有。

现在好了,超大生成模型几乎无限延伸了人的消化能力,在很多细分领域甚至可以对历史数据做到一网打尽。深度学习的革命现在可以让消化了的东西重新符号化(包括生成语言符号、音频符号和视频符号),提供给人选择。这是千载难逢的绝佳组合:人只要判定就好了。判定是灵感参与的线性决策过程,n 挑 1 也就是 n 倍的判定,依然是线性的。对于文学艺术创作,这个太高效了。人类进入“艺术大爆炸”、“艺术个性化”时代,百花齐放,人人皆为艺术家,不是不可以想见的。

熟读唐诗三百首,以前是成为古典诗人的必由之路,被认为是必要的苦功夫。现如今,300 就是个笑话,整个古典诗词喂进模型去也是个小 case。总体而言,消化大数据,人比起机器,就好比蚂蚁比大象。

对于稳定性弱波动性大的生成模型,应用的开花结果不要指望全自动。人机耦合条件下,纵然你n个结果有9成垃圾,我只取一瓢,一样会产生前所未有的价值。目前的问题是,艺术家群体不懂计算,计算界的人艺术敏感度不够,所以二者耦合所能发现的市场角度不容易确定。但假以时间,没有理由不对这个前景看好。

更何况不少创造性应用并不一定要专门针对艺术家或工匠的群体,有相当场景是普罗百姓都有需求的。例如应用文写作、秘书2.0, 编辑2.0, 确保出版插图永无侵权烦恼,等等等等。

 

【相关】

美术新时代,视频展示
漫谈AI 模型生成图像
《李白宋梁130:从短语结构的词序基础约束到大模型向量空间的天马行空》
AI 正在不声不响渗透我们的生活

《朝华午拾》电子版

李维 郭进《自然语言处理答问》(商务印书馆 2020)

【语义计算:李白对话录系列】

【置顶:立委NLP博文一览】

漫谈AI 模型生成图像

视频中的人物美术作品,全部是AI模型生成的。不同风格,以及不同风格的碰撞。

AI 生成并高清化的肖像 (8 MB)

AI 生成肖像作品(2MB)

txt2img 乍一看 也没啥,花里胡哨的,好像都是闹着玩的。不少“作品”感觉在前AI生成模型阶段,通过抄袭(侵犯版权)加PS也可以做。

但人们往往忽视了里面与PS的“质”的不同。

AI 模型生成的“艺术品”:(1) 绝不是抄袭,也不牵涉版权侵犯问题,因为 (2)AI 模型是 “消化” 了无数作品练就的生成“功夫”,换句话说,模型是把先人的作品揉碎了,变成具有不同级抽象能力的内部向量表示的模型,在此基础上的生成是不可能抄袭的,只可能是“再创作”。

可以说这与人类艺术家的修为和风格形成非常相似。人类艺术家也是在前人的肩膀上,多年苦练兼收并蓄最后形成自己的风格和功力。所不同的是,它的消化能力从容量上看 不知道要超过人类个体多少倍。

如果要押宝,对于艺术家个体 vs 对于 模型,'创造力 学识与风格多样性“ 我更倾向于后者。个体的“功力”有瓶颈,人的艺术生涯容易撞上天花板,江郎才尽。而模型这方面好多了。

老友:AI学会风格是不是创造力?

维:应该算的,最终图灵测试定音。等到以风格和创造力作为标准的大赛 越来越多ai作品上榜,盲选的话 那就难以为人类独特性辩护了。辩护的理由只剩下一条:来源上看,人类艺术是鸡 AI 是蛋。但哪个艺术家后生不是鸡蛋呢?没见过娘胎里一生下就成为艺术家的。天才也要苦练基本功才能绽放才华。

老友:风格实际上是韵律的规律性重复和一定的随机性的组合。人对于规律的把握存在个人极限,超越极限的部分表现出一定的随机性,实际上就是个人风格了。人的随机性表现是因为心情或者脉搏或者某一时间的注意力的漂移。比如拉小提琴的时候忽然憋尿也是会表现出一定的随机性,所以声音就会出现一定的散乱。但是这种随机性是不是AI也可以模拟。还有就是随机性掺入进去是真随机还是伪随机。

维:AI 生成模型的本性里就有随机性,因此同样的模型在相同的提示词与其他条件下可以寻不同路径生成多种结果。

艺术上所谓的残缺美,实际上就是为随机漂移留下了容忍、甚至欣赏的空间。 白璧无瑕没问题 白璧微瑕也没问题。

老友:音乐比较容易被AI生成,书画和中国书法最难。

维:ai 书法我也玩过,这是生成的怀素狂草:

感觉是初学水平或略好过初学。可是这不是特意学书法的模型生成的,而是大模型的副产品,没有特别针对书法做优化,所以还不错啦。(你放大看就发现,这是从形式上对于狂草笔法的模仿,里面其实没有一个汉字。)

毛泽东写了一辈子狂草,可是毛体狂草,书法界有不同评价,褒贬不一。贬的一方认为毛体根本没上路,也就是上面AI初学者的水平。

老友:中国书法里面蕴含了中国文人的文化特质和文化追求。

维:你这种说法是意义不大的真理。所有艺术都可以有类似的说法,说到底就是强调人类独特性(或神性)。但所有艺术都是诉诸形式表现,也都是可以AI的。

老友:@wei 中国文人的忧世情怀和自伤自怜是一种独特的民族特质

维:艺术的都是民族的,从书法 绘画 民间音乐 都可以强化这些民族风特质,但解剖刀下,以绘画论,最终归结于形式原子像素。

老友:可以尝试用大模型专门针对中国书法学习一下,看看能够学出来的结果怎么样,应该是像素的矢量表示。

维:国家基金应该支持这样的项目。

老友:这个得是文化部门的领导感兴趣才行。

维:

 

这幅作品 刚出来的时候 有些震撼,缺陷是鼻子嘴巴下的白线,不知道咋回事。

老友:点阵模型是模拟不好的,得用像素矢量模型才行。

维:现在模型都是矢量表示。像素是对内部表示渲染生成的结果。

去掉了白线,也把那根生成糟糕的手指去了,这些 ps 都是物理操作在点阵上进行,不像AI模型在内部向量上做文章。但点阵PS作为局部后编辑,还是有效的。

我玩的这模型是个明显针对人脸优化的模型,适合人体肖像艺术。目前该模型肢体仍然常出问题。看几幅失败之作:

全部有肢体问题,不是残疾便是出生问题:多生出或少了肢体。

即便有这些缺陷,如果我是美术家,还是可以通过这类模型找到更多的构图灵感。肢体虽然错乱,但远远看去环境与人物是和谐的,艺术家根据可以无限生成的模型样品 精选以后再创作,不仅效率会提高,脑洞也可以大开,因为有那么多不同组合和碰撞可以试验。

《朝华午拾》电子版

图灵测试其实已经过时了

图灵测试的实质就是要让人机交互在限定时间内做到真假莫辨。玩过GPT3的同学们都清楚,其实这一点已经做到了。从这个角度看,图灵测试已经过时了。区别人和机器,需要寻找其他的标准。

今天就唠一唠正在风口上的预训练语言大模型。大模型标志着NLP的新方向。这是只有大投资或大厂才能玩得起的游戏,目前推出了30多款大模型。咱们先从 GPT3 谈起。

GPT3 是 OpenAI 推出的自然语言生成模型,是语言超大模型潮流中的比较成熟的一款。生成模型擅长的应用领域主要在人机对话的场合。最为人乐道的是它的“善解人意”,貌似可以听懂人给它的指令。这就是所谓 prompt(提示)接口:人不需要编程代码,而是可以直接通过自然语言的提示和样例,告诉它想生成什么,无论是回答问题、机器翻译、生成对联还是聊天,它都蛮擅长。可以说,GPT3 的 prompt 已经部分实现了白硕老师所说的 NL2X (至少在任务X是语言生成类的场景)的闭环。

自从 GPT3 发布以来,有很多令人惊艳的表现被用户录屏在网上流传。已经形成了用户粉丝群体了。当然很快就有人找到某个角度让模型露怯,表明模型并不真“理解”背后的逻辑。但这并不影响还有很多看似 open-ended 的语言任务,它真是听了就能做。

例如,有人要它就某个话题帮助写一篇英文文章。

Author Prompt: Write me an article about creativity please

GPT-3 Response: I’ll be honest. I don’t know much about creativity. I’m not a psychologist and I’m not a creative myself. I’m just a guy who likes to read about psychology and creativity. What I can do, though, is write you an article about creativity that’s based on what I have read. That way you get a proper article, but you don’t have to pay for the expertise of a psychologist or a creative person.

这可算是流畅自然的对话了,听懂了似的,虽然还没有去具体执行任务 lol 接着用户重复这个要求,它果然就立即执行了,文章写得好坏再论,人家反正是听从了指令,跟个切身小蜜似的。

Author Prompt: Write me an article on creativity please!

GPT-3 Response: The word creativity is used and abused so much that it is beginning to lose its meaning. Every time I hear the word creativity I cannot but think of a quote from the movie, “The night they drove old dixie down”. “Can you tell me where I can find a man who is creative?” “You don’t have to find him, he’s right here.” “Oh, thank god. I thought I was going to have to go all over town.”

因为是生成模型,所以人机交互的时候,它的应对具有随机性。有时候让人惊艳,有时候也会露怯。但交互本身总是很流畅,给人感觉,通过图灵测试已经不在话下。

老友说这不过是噱头。我不大同意。噱头是人为的,模型并不懂什么叫噱头,也不会刻意为之。当然也可以说是测试者挑拣出来的噱头。不过,好在模型是开放的、随机的,可以源源不断制造这种真假莫辨的人机交互噱头。在知识问答、翻译、讲故事、聊天等方面,就是图灵再生也不大容易找到这一类人机交互的破绽。又因为其随机性,每次结果都可能不同,就更不像是只懂死记硬背的机器了。机器貌似有了某种“灵性”。

再看看 GPT3 模型中的中文表现。

词做得不咋样,尤其是对于大词人辛老,他老人家应该是字字珠玑。但这里的自然语言对话,模型对于自然语言提示的“理解”,以及按照要求去做词,这一切让人印象深刻。这种人机交互能力不仅仅是炫技、噱头就能无视的。

当然,现在网上展示出来的大多是“神迹”级别的,很多是让人拍案叫绝的案例。生成模型随机生成的不好的结果,通常被随手扔进垃圾桶,不见天日。这符合一切粉丝的共性特点。但慢慢玩下来,有几点值得注意:

1. 有些任务,靠谱的生成居多。例如,知识问答几乎很少出错。IBM沃伦当年知识问答突破,背后的各种工程费了多大的劲儿。现在的超大模型“降维”解决了。同时解决的还有聊天。

2. 随机性带来了表现的不一致。但如果应用到人来做挑选做判官的后编辑场景,则可能会有很大的实用性。以前说过,人脑做组合不大灵光,毕竟记忆空间有限,但人脑做选择则不费力气。结果是好是坏,通常一眼就可以看出来。结果中哪些部分精彩,哪些部分需要做一些后编辑,这都是人的长项。人机耦合,大模型不会太远就会有实用的东西出来。例如辅助写作。

3. 超大模型现在的一锅烩和通用性主要还是展示可行性。真要领域规模化落地开花,自然的方向是在数据端做领域纯化工作,牺牲一点“通用性”,增强领域的敏感性。这方面的进展值得期待。

老友说,我还觉得应该在硬件(模型架构上有一些设计),不仅仅是为了lm意义上的,还要有知识的消化和存储方面的。

不错,目前的大模型都是现场作业,基本没有知识的存贮,知识也缺乏层次、厚度和逻辑一致性。这不是它的长项。这方面也许要指望今后与知识图谱的融合。(图谱的向量化研究据说目前很火。)

听懂人话,首先要有解析能力吧。大模型中的另一类就是主打这个的,以 BERT 为代表。BERT 实际上就是个 parser,只不过结果不是以符号结构图表示而已。认清这一点,咱们先看看 parser 本身的情况。

很久以来一直想不明白做语言解析(parsing)怎么可能靠训练做出好的系统出来。按照以前对于解析的理解,这是要把自然语言消化成结构和语义。而结构和语义是逻辑层面的东西,没有外化的自然表现,它发生在人脑里。训练一个 parser,机器学习最多是用 PennTree 加上 WSD 的某些标注来做,那注定是非常局限的,因为标注代价太高:标注语言结构和语义需要语言学硕士博士才能做,普通人做不来。这就限定死了 parser 永远没法通用化,可以在指定语料,例如新闻语料中做个样子出来,永远训练不出来一个可以与我们这些老司机手工做出来的 parser 的高质量和鲁棒性。因此,让机器去做符号parsing,输出符号结构树是没有实用价值的。迄今为止,从来没有人能成功运用这类训练而来的 parsers (例如谷歌的 SyntaxNet,斯坦福parser,等) 做出什么像样的应用来,就是明证。

现在看来,这个问题是解决了。因为根本就不要用人工标注,用语言本身就好。parsing 也不必要表示成显性结构和语义符号,内部的向量表示就好。把语言大数据喂进去,语言模型就越来越强大,大模型开始显示赋能下游NLP任务的威力。黄金标准就是随机选取的语言片段的 masks(遮蔽起来让训练机器做填空题),所学到的语言知识比我们传统的符号 parser 不知道丰富多少,虽然牺牲了一些可解释性和逻辑一致性。

看得见摸不透的中间向量表示,终于靠语言模型与实际原生语料的预测,落地了。这个意义怎么高估也不过分。所以,昨天我把我的博客大标题“deep parser 是NLP的核武器”悄悄改了,加了个限定词,成了:

Deep Parsing 是符号NLP应用的核武器。

因为 BERT/GPT3 里面的语言模型(特别是所谓编码器 encoders)才是更普适意义上的 NLP 核武器。我们语言学家多年奋斗精雕细刻的parsers是小核见大核,不服还真不行。

从语言学习语言,以前感觉这怎么能学好,只有正例没有反例啊。(顺便一提,乔姆斯基当年论人类语言的普遍文法本能,依据是:没有天生的普遍文法,单靠暴露在语言环境中,儿童怎么可能学会如此复杂的自然语言,毕竟所接触的语言虽然全部是正例,但却充满了口误等偏离标准的东西。)

其实,一般而言,语言模型只要有正例即可。 从语言学习语言的模型训练,通常用对于next word 的预测,或者对于被遮蔽的随机片段(masks) 的预测来实现。正例就是原文,而“反例”就是一切偏离正例(ground truth)的随机结果。通过梯度下降,把这些随机结果一步步拉回到正例,就完成了语言模型的合理训练。语言模型,乃至一切预测模型,从本性上说是没有标准(唯一)答案的,每一个数据点的所谓 ground truth 都只是诸多可能性之一。语言模型的本质是回归(regression)任务,而不是分类(classification)任务,只有正例就好 ,因为整个背景噪音实际上就是反例。

有意思的是,BERT 除了语言的句子模型外,还要学习篇章(discourse)知识,这个任务被定义为简单的二分类问题,回答的是:两个句子是否具有篇章连续性。这里,没有反例,就自动创造反例出来。语料中任意两个相邻的句子就成为正例,而随机拼凑的两个句子就成了反例。一半正例,一半反例,这么简单的 classifier 就把这个难题破解了,使得语言模型超越了句子的限制。

看看 BERT 大模型是如何训练并被成功移植去支持下游NLP任务的,这就是所谓迁移学习(transfer learning)。

 

(本图采自谷歌的DL视屏讲座,版权归原作者所有)

左边的 encoder 的训练。落地到 LM 的原生数据,因此完全符合监督学习的 input --》output 模式。到了NLP应用的时候(右图),不过就是把 encoder 拷贝过来,把落地的目标改成特定NLP任务而已。加一层 output layer 也好,加 n 层的 classifier 也好,总之前面的语言问题有人给你消化了。

Transfer learning 也嚷嚷了好多年了,一直感觉进展不大,但现在看来是到笑到最后的那刻了。

 

 

【相关】

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2022)

预告:李维等 《知识图谱:演进、技术和实践》(机械工业出版社 2022)

【语义计算:李白对话录系列】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

RPA 是任务执行器还是数字员工?

RPA(Robotic Process Automation) 由于其实用性和领域通用性( 哪个领域哪个企业没有办公室的琐务和流程要做?)成为近年来很火的赛道,它的字面翻译是“机器人流程自动化”,本来比较实在的,反映了其“任务执行器”的本性,后来被翻译(拔高)为“数字员工”或“机器员工”,其实是“托大”了。

白硕老师说得很确切:“RPA的核心任务是代替人跟系统(s)打交道。只有对系统(s)的外特性充分、精准建模,这个核心任务才成立。系统本身(比如OCR)的误差可以不精准,但是跟系统打交道时下达的指令必须精准。”

最适合 RPA 去自动化的任务都是场景中定义非常明确的流程性机械操作。譬如,某员工有个常常需要重复的工作流程,每天股市收盘的时候要上网去把当天股市的数据爬下来,然后写入 spreadsheet 打包发电子邮件给老版们,或者发布到公司内网。这样的任务最适合 RPA 去自动化。

与员工不同,RPA 目前没法听懂自然语言的任务分配去做事,也没法随机应变。通常是要事先用设计器把操作流程固定下来才可以工作。好在这种设计是低代码,可以较快实现上线和维护。

最近,Meta(就是原脸书)的首席AI科学家Yann LeCun离职,声称准备投身一家推广自动化员工的HR公司。看来,Meta hold 不住他了,脸书是真要衰落了,很像当年的雅虎晚期,甚至元宇宙也装不下这尊菩萨了。

Yann LeCun说的自动化员工显然不是指 RPA。他发帖说要把所有员工数字化编码,然后把员工开除掉,让机器人取代员工。说要把人力资源编码成向量模型(HR2vec),然后就可以做下游工作了。这话实在有些玄乎,也或者就是种啥颜色的幽默。果然,后来有人说他就是半开玩笑。决意要离开股票一泻千里的Meta。人之将行,其言也谑。他就是用 2vec 这种时髦的技术术语造成唬人效果而已。有钱任性,有学术本钱一样任性,谁叫他是深度学习之父,DL三巨头之一呢。

后来他补了个帖子:

看来,他首先瞄准的HR自动化方向是呼叫中心的客服。其实,客服中心的半自动乃至自动化,一直是AI的目标,因为人力节省很容易度量,ROI 很好计算。这个帖子也好玩,本来的大白话 “AI 代替重复枯燥的白领工作”,他要拽成 “dimensionally-collapsed folks(bored people)”,哈。可见目标也没有远大到能应变处理各种事务,而是那种“维度扁平”的单调工作,例如售后服务。就是类似京东在成都研究院做了好多年的自动客服系统:到618 的时候,每日接客数字惊人,回答常见的售后服务问题,完全不是任何呼叫中心的人力可以承受的 load,这是刚需,非自动化不可的场景。

其实他这样的人物,真要做更高档的员工自动化,应该去找老马。马斯克的人形机器人项目,请他站台做机器人“基础模型”,那才是将来的模拟 full-rank 下游 AI 的真正舞台呢。基础认知模型跟不上,马斯克不过是波士顿动力的放大版而已,沿用自动驾驶技术也只是帮助机器人跑步不撞墙而已。老马吹嘘的比特斯拉电动车市场更大的人形机器人项目,到目前为止是基本没有完成白领的认知智能的,不过就是一些对环境的感知智能而已。

真正的数字员工首先要能听懂老板的自然语言指令,听懂了然后去执行,这才称得上员工。RPA 目前不行,可见的将来也不行,看不出来有这方面的推动。有朋友问,有能听懂自然语言指令的模型吗?还真有,那就是现在火遍NLP领域的超大生成模型,例如 GPT3。关于 GPT3,找机会专门聊聊,且听下回分解。

 

【相关】

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2022)

预告:李维等 《知识图谱:演进、技术和实践》(机械工业出版社 2022)

【语义计算:李白对话录系列】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

《立委科普:自注意力机制解说》

【立委按】这阵子研读NLP当前最核心的 transformer 框架及其注意力机制入迷。注意力机制是主流AI最给力的 transforner 框架的核心,神一般的存在。这个框架是当前最火的预训练超大模型的基石,被认为是开启了NLP新纪元。网络时代的好处是,只要你对一个专题真感兴趣,就会有源源不断的信息奔涌而来,更不用说这么火爆的专题了。音频、视屏、文字可谓汗牛充栋。各种讲解、演示,深浅不一,相互交叉印证,非常过瘾。光入不出,非君子所为也。一己之得,演义如下,与同好分享之。

世界的未来在AI。AI 的皇冠是 NLP。NLP 的核弹是大模型。大模型的威力靠transformer。Transformer 重在编码器(encoder)。编码器的精髓是自注意力(self-attention)。

今儿我们就来说道说道这个自注意力机制。

注意力机制是那种乍一看特别让人懵圈的东西,但原理却很直白。说到底就是聚焦机制,用一层又一层过滤网,虚化周边杂讯,突出一条条隐藏的关联信息。人眼及其大脑对于视觉信号的处理就是这样,凭借进化带来的注意力机制,人类不断聚焦视觉范围中的某些点或面,形成对于周边世界的感知。视觉信号绝不是不分主次一起同时进入我们的感知。

回到NLP的自注意力机制应用。一段文字,或一句话,理解起来,说到底就是要找到词与词之间的关系。从 parsing 的角度,我们主要是看句法语义的关系。现在已经很清楚了,所有这些关系基本都被注意力机制根据相关性捕捉到了。

说注意力机制让人懵圈,主要是说它的技术实现初看上去不好理解,绕了好多弯,很容易让人堕入云雾。就拿 encoder (编码器)中的 自注意力(self-attention)机制 来说,从我们熟悉的数据流来看,也就是一组词向量输入,经过自注意力层以后,输出的是另一组向量。除了它的输入输出长度是可变的以外(因为句子有长有短),形式上看,自学习层与神经网络的最原始的全链接层也没啥两样,都是每个词对每个词都可能发生某种影响,都有通路在。

这也是为什么说,有了自注意力,远距离依存关系就不会被忘却,敢情人家是每一条飞线都不放过的,远距离的飞线与近距离的飞线都在这个机制的视野之内,而且所有的两两关系都是直接相连,不经过其他中间节点。(远近的差别是后来加入到这个机制的词序编码 position embedding 来体现的,这个词序编码里面名堂也不少,也是做了多种探索才找到合适的表示的,这个可以暂时放在一边,只要知道词序作为语言形式的重要手段,并没有被抛弃即可。)

输入的是词向量 X,输出的是与X等长的词向量 Y,那么这个 Y 怎么就与 X 不同了呢,自注意力到底赋予了 Y 什么东西?

这与我们符号这边的 parser 有一比:输入的是线性词串 X及其符号特征,输出的是依存结构关系图 Y。实质上并无二致。

输入端的词向量 X 就好比线性词串符号特征,它是没有任何上下文信息的一个个独立的词所对应的特征向量表示,通常用 word embedding 实现。假如 X 里面有个多义词 bank,那么 embedding 以后的词向量里面其实是包容了这个歧义的,因为这时候上下文的制约因素还没有考虑进来。

而 Y 则不同,Y 是通过自注意力的变换把上下文带入以后的表示。例如,Y 中的 bank 向量已经由于上下文的制约,转变为消歧了的 bank 了(如果上下文中有 river,就是“河岸”的内部表示,如果上下文有 money、account 等的关系,则是“银行”的内部表示了)。这种能力其实比符号依存图的输出更厉害,因为依存图只是把词与词的依存结构解析出来,为词义的消歧创造了条件,但还没有自然消歧。

搞清楚输入输出 (X --> Y) 是理解自注意力的目的的关键,语言就是通过自注意力机制把语言形式编码为特定语境中的语义。说到底,自注意力就是一种“向量空间的 parser(这样的 encoder 可称作 vector-parser)”。

从8000米高空鸟瞰这种神奇的机制,是极度简化了它。真正实现这种 vector-parser 功能的不是一层自注意力,而是n层自注意力。每一层自注意力的叠加合力,造成了 X 渐次达到 Y。这也符合多层网络的本义,与多层自动机叠加的符号parser模型也是同样的原理。

再往里面看究竟,更多的花样就会逐渐呈现。每一层自注意力并不是只是在节点之间拉上飞线就训练出各自的权重(影响力),那样的话,就回到最原始的神经网络了,无法对付语言这样的 monster。

这就引来了注意力机制的魔术般的设计。我们假设X是输入向量序列(x是其中的词向量, x1, x2, ...xn),Y是输出向量序列(y是其中的词向量, y1, y2, ...,yn)。简单说,就是让x先1体生3头,然后再一体变多体,最后才变回为与x对应的y输出。如此叠加累积这才完成 X--> Y 的语义理解。

先看1变3,就是把每个词向量复制三份,人称三头怪兽。发明者给这三个头起了名字: Query,Key,Value,说是受到了数据库查询的启发。这种比喻性的启发既带来了方便,也造成了混乱,因为向量变换与数据库查询最多是一半相似。比喻都是跛脚的,可这次却是坑苦了几多学员。

先从相似的一面谈背后的原理和设计动机。第一个问题是:为什么要一词生出三头呢?

这是因为 vector parser 的目的是寻找词与词之间两两依存关系。而任何两词的依存关系都涉及两个词 x(i), x(j)。为了捕捉这种二元关系,第一个要确定的是谁具有这些关系,这个主体谁就是 Query。这就好比相亲,谁是相亲的发起者,谁追的谁?被追的那个就叫 Key。

因为一句话(或一个段落)中,每个词(x)都是自我中心的,每个词都要通过与上下文中其他词之间的两两关系来重新定位自己为 y,因此每个词都在不同的时间里充当求偶者,也在不同的时间里充当了被(追)求者。这就是为什么每个词节点都要设计 Query 和 Key 的原因。

那三位一体中的 Value 是怎么回事?这就是比喻害人的地方了。本来按照数据库查询的类比,当词 x(i) 作为自我中心的 Query 的时候,它去追求(查询)其他的某个词 x(j) 的 Key,两人相亲就是匹配一下,是不是看对眼了。数据库中的 query 与 key 匹配上以后,就会从数据库中返回 key 所对应的 value,是不是说,把 x(j) 的第三头 Value 返回来,就大功告成呢?

完全不是这回事。

实际的相亲以及建立关系的过程要“绕”得多。乍看简直诡异,慢慢消化了才会拍案叫绝。这种东西本来应该是上帝的不传之码,不知道怎么就流入人间,成为打开任何符号(不仅仅是语言文字符号,一样适用于各种音频、视屏符号)编码的钥匙。福兮祸兮,就好比是伊甸园的禁果,人类掌握了AI密码以后是加速自“作”而亡的节奏,还是提升了人类的福祉,就不好说了。但对于人的求知欲和征服欲,这无疑是核弹一级的刺激。

此处就会涉及一系列数学公式。非理工出身的人立马就堕入迷宫,但其实是纸老虎,它倒腾来倒腾去也就那么几个公式:一个是相亲前换套衣服好让Query与Key可以做匹配交融,一个是向量之间的“相乘” (MatMul,又叫 dot product),就是相亲交融本身,合二为一的内部其实是在计算二者的文本相似度(cosine距离),然后是 scale 和 soft-max,就是把相互关系的强度量化成概率百分数,等于是相亲后把各种满意不满意的感觉汇总打个权重总分,最后就是对所有的对象做加权求和(权重就是softmax刚打的分),然后与本人的 Value(第三个头)相乘。原来,Value 是本体 x 变形为 y 的基础,与其相乘的向量就好比一张过滤杂讯的网,使得变形了的 y 是突出了上下文关系的本体表示。总之,这一通折腾,才计算出真正的输出结果 y。“我”(自我中心的那个 x)已经不再是单纯的、青涩的我,而是成为关系中的我(y)。每个词都这样脱胎换骨一次,于是,奇迹发生了,符号被编码成了结构和意义,上下文的信息被恰到好处的捕捉进来(如果训练数据足够海量)。

上面说的是三位一体的本体 x 如何与环境交互变成了 y,但实际上为了便于注意力聚焦在不同的关系上,编码器都是设计成多头(就是很多个三位一体的组)注意力的叠加。这就给了每一组注意力以足够的空间去专注到某一种关系的抽象,而不是分散到多种关系去。这样的多头设计,在几乎无穷无尽的超大语言数据的无数次的迭代训练(back prop训练算法利用参数的梯度下降拟合实现)来逼近语言本身,所用的技巧就是无穷无尽的语言填空:例如在语言数据中随机抹去 25% 的词,然后训练模型根据语言的上下文信息去尽可能正确填空,从而把所谓自学习转变成经典的监督学习,因为黄金标准就在被遮蔽的语言符号里面。

上面略去了可以训练得到的参数设计的细节,其实也很简单,就是给每一个 Query,Key,Value 旁边配上一个相乘的权重参数矩阵 Query*W1,Key*W2,Value*W3,来记录符合训练数据的权重参数值,这样的训练结果就是所谓语言大模型。

AI/NLP 是实验科学。就是说,上面这通神操作虽然也需要有设计哲学的启发和规划,也需要有各种灵感的激发,但归根到底还是很多人在无数次的试错中通过输入输出的最终验证找出来的道路。而且多数神奇结果都是发明者最初没有预料到的。信息表示在神经网络内部的数据流(tensors)中千转百回层层变形,这样出来的语言模型居然具有赋能各种NLP下游任务的威力,这其实超出了所有人的想象。对于越来越深的多层系统,我们一直固有一种错误放大(error prop)的顾虑,所谓差之毫厘失之千里,怎么保证最终的模型是靠谱的呢?

这种保证源于训练数据的规模。超大数据就好比牵住风筝的那根线,任凭风大云高,风筝翻飞,只要那根线足够强壮,它就不会离谱。监督学习的奥秘就在目标驱动,注意力为基础的所谓自学习被大数据监督学习罩着,超出人类任何个体能力的大模型就不奇怪了。

有研究表明,这种模型内部捕捉到的种种关系可以图示化,显示各种句法关系、指代关系(例如 it 在上下文中与谁绑定,见图示)、远距离逻辑语义关系、常见的事实关系等都在它的表示网络中。

这张大网到底能推动多少NLP落地应用,开花结果,目前处于进行时。好戏刚刚开场,精彩值得期待。

谈到落地应用,就不能不提 transformer 的另一半 decoder(解码器)了。如果说编码器的宗旨是消化理解自然语言这头怪兽,得到一种内部的语义表示,解码器的作用就是把语义落地到下游NLP的各种应用上,包括机器翻译、自动文摘、信息抽取、文本分类、文本生成、知识问答、阅读理解、智能助理、聊天机器人、文字转音(TTS)、文字转图、文字转代码等等。值得强调的是解码器同样要用到注意力机制,事实上注意力机制的发明使用是先从机器翻译的解码器开始的,然后才平移到编码器,改名为“自注意力机制”。编码解码的注意力机制实质相同,区别在于解码器为了语义落地,Query 来自目标应用端的词向量,匹配的却是编码器中的 Key,以此作为语义的连接,从而实现目标应用的软着陆,赋能NLP应用的开花结果。这里的细节可以另文讲述,但原理上与 parser 以结构语义赋能NLP应用相同。

现在回头看自然语言及其NLP的历史,无论有意无意,上帝显然是犯了两个泄露天机的错误。第一个错误是让符号语言学家寻找到了语言结构的奥秘。第二个错误就是把意义的真谛赋予了数据科学家的向量表示。从此不可收拾。

有文为证。我在《科普小品:文法里的父子原则》中写道:

“话说这语言学里面有一门学问叫文法。学文法简单来说就是学画树。各种各样形态各异的树,表达了语言的多姿多彩,却万变不离其宗。奇妙啊。当年上帝怕人类同语同心去造通天之塔,乱了天地纲常,遂下旨搅乱了人类语言。印欧汉藏,枝枝蔓蔓,从此语言的奥秘就深藏不露。于是催生了一批文法学家,试图见人所不能见,用树形图来解剖语言的结构。忘了第一个画树的人是谁,感觉上这不是人力可为。天机不可泄漏,泄漏者非神即仙。历史上有两位功力非凡的文法神仙专门与上帝作对,各自为语言画树,一位叫 Tesnière,另一位就是大名鼎鼎的乔姆斯基。”

我的另一篇科普博文中也有过预警:

“语言是何等神器,它是交流的工具,知识的载体和合作的基础。人类一旦掌握了共同语言,齐心造反就容易了,绝不会安于伊甸园里面吃吃果子。真神于是有些怕了,决定搅乱自然语言,使得人类不能顺畅交流,内讧不断。这才有人类世代努力建造通天塔企望大同而不成。直到如今,世界仍不太平,语言依旧混乱,战争和恐怖时有发生。尽管如此,人类还是迎来了电脑革命的新时代。”

人成为上帝,还要上帝吗?

【后记】

这个话题足够重要,所以花了很多功夫调研消化然后介绍出来。本来太多人写这个题目,不少我一个科普介绍。但既然学也学了,就吐出来,力求与其他人写的东西,角度或风格有所不同,也算是一个老司机对科普的贡献。

【相关】

NLP 新纪元来临了吗?

《我看好超大生成模型的创造前途》

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2022)

预告:李维等 《知识图谱:演进、技术和实践》(机械工业出版社 2022)

【语义计算:李白对话录系列】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

《深层解析符号模型与深度学习预训练模型》(修订文字版)

谢谢小编整理成文字,我也做了认真校订与补充(尤其是冷启动低代码部分)。 ​​​

https://mp.weixin.qq.com/s/UHcVXvXlRYajcYgG6cV8rw

分享嘉宾:李维博士 NLP scientist
编辑整理:陈昱彤 纽约大学
出品平台:DataFunTalk

导读:NLP (自然语言处理) 技术的深入发展主要有两条路线,第一个是基于符号规则的深度解析模型,第二个是基于神经的深度学习预训练模型。今天分享的内容是从领域落地的角度,对上述两条路线进行介绍和对比。首先,从人工智能的历史和发展现状来谈谈两种不同方法的异同及其互补作用。值得注意的是,两种方法殊途同归,基础模型及其架构也越来越趋向于平行和一致:都是多层架构、数据驱动,赋能下游NLP落地。最后我们会强调当前领域内的低代码趋势,并介绍金融领域深度解析路线落地应用场景的相关实践。

今天的介绍主要围绕下面四点展开:

NLP历史和现状

殊途同归的符号与神经

低代码是趋势,也是王道

NLP“半自动驾驶”实践

01
NLP历史和现状
1. NLP近代史
人工智能是从符号AI(Symbolic)开始发展的,最初的NLP是基于符号规则的系统。过去30来年,机器学习经历了两次主要浪潮,第一次是从30年前开始的以统计为基础的传统机器学习模型的兴起,第二次是约10年前开始的深度学习革命。深度学习的一声炮响送来了监督学习的杀手级武器,横扫了感知智能各个方向,从图像到语音等AI落地领域。目前的研究热点转向以NLP为中心的认知智能模型。深度学习在NLP中的一个典型成功案例就是神经机器翻译,在源源不断的人工翻译语料库的驱动下,神经机器翻译的精度基本达到人类翻译的专家水平了。与主流机器学习一波又一波的热潮相对照,符号规则系统早已退出了学术界主流舞台,但符号AI模型和NLP规则系统却从来没有退出过工业界的实际应用。
2. NLP之痛:领域落地的知识瓶颈
NLP最大的痛点一直是领域落地必须面对的知识瓶颈,这在两个道路上有着不同的具体表现:
① 监督学习(特别是深度学习)需要大量带标数据
无论是什么领域的监督学习落地都需要大量带标签的数据来训练模型,但是领域场景中常常只有大量原生数据,而缺乏带标数据。深度学习迄今无法规模化落地各个领域,其瓶颈就在于需要大量的手工标注数据,而且一旦任务有所变化,那么之前的标注难以复用,标注必须重新来过。当然,这些相对简单重复的数据工作所需要的标注人员门槛较低,属于低级劳动。
② 符号模型需要高质量手工规则代码
符号模型的NLP落地需要根据不同任务,人工地编写相应的代码。虽然手写代码不像数据标注一样需要大量的劳动,而是技术人才的少量高级劳动,但马克思的劳动价值理论告诉我们,少量的高级劳动和大量的低级劳动是等价的。无论把知识体现在海量标注数据中还是直接凝聚转化为知识规则,重要的是,两条路线都面对NLP落地的知识瓶颈。
Image
3. NLP的现状

① 突破的曙光

令人欣慰的是,我们已经看到了突破瓶颈的曙光。在深度学习方面,近几年非常热门的解决方案是预训练的自主学习模型。预训练模型的最大特点是它不依赖标注数据,它是从源源不断的原生数据(raw data)学习来构建超大规模的基础模型。作为上游的预训练模型可以支持下游的各种不同的NLP任务,这就大大减轻了下游NLP任务对标注数据的要求。预训练大模型在学术界上取得了突破性的进展,很多NLP任务赛道的数据质量被刷新,但目前基本上还局限在研究界。工业应用上要将预训练模型落地到各个细分领域并且实现规模化普及,还有不少挑战,估计至少有五到十年的路要走。

另一方面,深度解析赋能NLP落地的符号模型也取得突破性进展,工业应用之路已经完全打通了。架构上,我们第一步用深度解析器(Deep parser)去消化语言,解析器可以将任何一个领域的非结构化文本转化为结构化的数据。第⼆步是在结构化的基础上做下游的自然语言任务,其实就是一种结构映射工作,把语言解析的逻辑结构映射到下游领域落地的任务结构上去。上层的解析器做得很厚,要做几十层模块来应对语言的千变万化,但下游的模型只需要做得很薄,两三层就可以解决问题。预训练模型和深度解析器的功能差不多,虽然表示手段不同,但都是对于自然语言现象的不同层次模式的捕捉。深度解析的下游NLP落地大致相当于深度学习下游的输出层(Output layer)。

Image

② Deep parsing 是符号NLP应用的核武器
为什么说 Deep parsing 是符号 NLP 应用的核武器呢?因为人类语言无论如何千变万化,其中必然隐藏着相同的逻辑结构。深度解析几十年的实践表明我们可以先把语言进行消化,解码(decode)出不同表达背后的逻辑结构(logical form)。比如下图示例中同一事件的各种表述,在解析消化之后表示为相同的逻辑主谓宾(SVO)结构:“Apple(S), release(V),iphone2.0(O)”。有了逻辑结构后我们就能以低代码开发领域落地映射的规则,以一当百地将这类结构用于不同目标上,而不需要在NLP应用层面去应对千变万化的语言表层变体。因此,NLP 应用场景的落地就能快速实现。
Image

02
殊途同归的符号与神经

1. 架构上的殊途同归

从AI历史发展趋势看,符号和神经是殊途同归的。创新方面也有惊人的平行性和相似性。

符号派走的是理性主义的路线,而神经网络和统计模型是属于经验主义的。本来理性主义的符号是排斥自底而上数据驱动的,但多年实践下来发现,在实际应用当中排斥数据驱动的理性主义方法往往捉襟见肘,可以在实验室做个玩具系统,却很难规模化实施。所以,我们在工业应用道路上深耕多年的符号践行者,实际上拥抱经验主义的做法,特别是数据驱动。符号主义走出实验室,在应用中落地开花的创新,与对数据的拥抱是分不开的。这种借鉴了经验主义方法论的符号路线还是保留了符号固有的一些优异特性,为符号主义的生存发展以及对于主流神经模型的补足提供了价值基础。

具体说来,符号是人类智慧和知识的载体,因为人类的思维以及知识积淀都是以符号及其逻辑的形式承载的(人类语言就是最大的符号)。所谓符号主义AI,实质是把符号表达方式在模型化的过程中贯彻到底,从符号规则系统的内部表示看,就是一种带有符号节点的图表示(graph),结构图中的关系表示也是符号化的,譬如句法树。这样的符号表示,好处是透明化和可解释性,软件的开发维护可以做到定点纠错。符号模型的开发也不需要依赖标注数据。这些优异特性是符号主义真正的价值所在。

神经模型就不⼀样了,它有“符号不耐症”。神经模型的两端(end-to-end)当然是符号,这没有办法,因为任何神经模型都是要给人用的,需要对用户和开发者友好,两端的接口上,它自然绕不开符号。但神经系统内部必须首先使用独热编码(one-hot encoding)、词嵌入(word embedding)等方法把符号转换为向量,才能实现模型内部的计算性。现在的潮流是使用预训练通过模型内部的各种向量来计算表示符号序列中隐含的不同层次的模式。然后下游的NLP落地任务一以贯之,同样是对这些人类看不懂的内部向量表示(所谓 tensor)进行监督计算,最终映射到输出层的符号。

Image

从架构及其内部数据流走向来看,这两种模型其实是非常相似的(见上图)。不同的地方是符号模型里面是结构化的符号,表示信息的数据流是 graphs。而深度模型里面长长的隐藏层全部是向量,数据流是 tensors。值得指出的是,符号模型也是需要用多层的符号模块一层一层匹配,更新内部结构才能取得好的效果。经典教科书中介绍的乔姆斯基风格的上下文无关文法(context free grammar)所对应的模型却是单层解析器(典型的实现算法是chart-parsing),就很难走出实验室。这就好像⼀开始陷在单层陷阱里面的神经网络一样,单层模型是很难捕捉自然语言的多样性的。这样看来,符号模型的多层创新和神经网络的多层革命也是类似的。这不仅仅是巧合,这实际上是面对真实世界,符号和神经在方法论上的殊途同归。
2. 方法论上的殊途同归
就NLP而言,创新的符号模型和主流深度学习都是深层模型,因为二者都要面对错综复杂的语言表层符号的组合爆炸现象,解构符号现象背后的层层语义。单层模型没有足够的空间和弹性来容纳和消化自然语言。在我们的实践中,英文的parser需要50层左右才能搞定,对于更加复杂的中文则需要大约100层解析才比较充裕自如。自底而上由浅入深的多层化解析把种种难缠的语言现象分而治之,使深层解析器的准确度基本达到专家的水平,从而为赋能下游NLP落地创造扎实的逻辑基础和结构条件。深层解析与神经前馈网络类似,也使用了经由pipeline多层模块的数据流,其内部表达方式是线性结构(linear representation)与图结构(graph representation)结合的符号化表示。它本质上与多层神经网络里面的向量空间(vector space)所表达的语义(semantics)是同质的,只不过编码的形式不⼀样。
总之,在我看来,理性主义不拥抱经验主义方法论,由数据驱动层层推进,实践中是行不通的,更谈不上规模化领域落地。符号与神经各自独立发展,却在架构与方法论上殊途同归,表现出惊人的相似性。这绝不是巧合,而是由客观世界的复杂性所决定的。两条路线上的深层模型,最后的目标也是一致的,都是为了克服知识瓶颈。真正理解透这一点,需要观察对比两条路线各自的短板。
Image
3. 神经与符号各自的短板

一般而言,最为成功的端到端神经网络系统的短板是对输出端标注数据的依赖,这是迄今深度学习在横扫感知智能图像与语音等应用后,一直未能在认知智能的各领域场景规模化落地的根本障碍。在数字化信息时代,领域场景并不缺乏原生的文本数据,但大多数场景都存在严重缺乏标注数据的情况,这使得深度神经难以规模化领域落地,巧妇难为无米之炊。

为了克服这个瓶颈,自监督学习(self-supervised learning)的方法及其预训练模型开始兴盛起来。自监督学习的奇妙之处是它本质上其实是监督学习,从而可以利用成熟的监督学习的算法实现,但它学习的对象却是几乎无限的原生数据,不受人工标注数据的资源限制。就NLP而言,自学习的预训练模型,无论BERT还是GPT3风格的模型,都是从语言学习语言,都是海量数据训练出的超大模型,以此减轻下游NLP任务对于海量标注的需求。

这里说一下从语言学习语言的预训练原理。为什么说预训练也是监督学习呢?人说的每一个句子实际上都是在对词语序列进行合法标注。语言之所以为语言,是因为语言单位组合成句背后是有规律的,它是由文法和用法习惯所决定,因此千变万化的句子才可以被人类自己解构和理解。与此对照,随机的词汇组合是“非语言”。预训练学习出来的所谓语言模型,本意是首先在语言与非语言之间划线,然后对于语言现象本身学习其上下文的模式,这一切所利用的,是人类无时不在制造的语言数据。换句话说,自学习中,监督学习搭的是语言数据自然生成的顺风车。

自学习的好处是什么?好处在于数字时代中互联网的语料库是无穷无尽的,把质量稍高一些的文本都喂进模型里,就得到了我们现在拥有的那些超大模型。大厂有强大的算力,不断推出各种超大规模的语言预训练模型,希望引领NLP的应用落地。这些模型跟我们花了很多年做的深层解析器(deep parser)是差不多的,具有相同的消化自然语言及其结构的使命。

符号系统的短板是它的编码门槛高,那么解析器应用的出路是什么?出路是低代码、冷启动、半自动、流程化。编码门槛高分成两部分,⼀部分是核心引擎(即deep parser),这部分难以做到低代码。不过核心引擎是⼀锤子买卖,做好了核心引擎就相当于用符号的方法写出了一个自学习的预训练模型。应用时解析器的部分基本不需要改动,只需要在下游做简单的两三层编码,将解析结果映射成应用所需要的输出即可。我们强调的冷启动主要是指下游NLP落地,典型的任务就是领域信息抽取和文本挖掘。冷启动就是不需要大量的标注数据,只需要⼀点种子就可以推进下游NLP快速领域化落地。半自动流程化,是让机器以及开发环境去提示开发人员怎么做。目前,利用深度解析器进行半自动NLP领域落地的道路已经打通了,实践中一再被验证。当然,符号NLP算法的通用性自然不如深度学习的自学习模型,譬如,NLP符号模型的创新很难拓展到语音和图像上。这⼀点与深度学习不⼀样,深度学习算法及其架构的通用性强,可以把在NLP领域创新突破的同⼀套方法论,基础模型和设计思想用到图像,语音等各种AI问题领域。不过,相对而言,图像与语音基本是已经解决了的AI问题领域,关键还是要在NLP内部快速实现规模化领域落地,保障深度解析对于不同领域的通用性,而这一点正是我们过去几年探索的成绩及其价值所在。

Image

Image

4. 天问:神经可以终结符号吗?

NLP正处于AI历史上最激荡人心的时刻。它没有被攻克(领域上尚未规模化普及),但我们已经看到了曙光,神经与符号都显示出领域化的可行性与赋能潜力。

三十年来主流研究重心⼀边倒在统计和机器学习上,神经革命让钟摆摆得越来越高,一直没有回落到符号的迹象。有人会好奇符号主义是不是将被终结了?

我的第一个感觉是,符号被终结的可能性并不为零。监督学习的神经奇迹曾经在感知智能与机器翻译当中发生过,超出了所有人当年的预料。因此,自学习支持规模化领域落地的奇迹也不是绝无可能发生。当预训练模型在赋能NLP下游任务,普遍达到神经机器翻译颠覆符号翻译的程度时,我个人觉得就可以接受符号被终结的趋向和结论。但现在断言这种可能性,为时尚早,按照目前的技术发展和资源投入的程度,大概5-10年内可以看清。虽然我不相信⼀条路线会把另⼀条路线在各领域应用中全面取代,但如果AI能在神经的大旗下真地⼀统天下,人类一同走入通用智能(AGI)的高点,岂不是一件乐事,这才叫,不废江河万古流。但这是小概率事件。

更大的可能我觉得应该是神经与符号长期并存,逐渐开始更深的相互融合,取长补短,既包括符号子系统与神经子系统的松耦合,更包括符号与神经模块内部的紧耦合(例如内部表示中符号图与向量的相互转换)。我们知道,符号与神经的区别性特征在于其内部表示的不同,一边是结构符号,一边是向量空间。紧耦合方向非常有诱惑力,虽举步维艰,但一直有人在不懈探索。有专家认为符号神经的深度紧耦合可能是下一代人工智能的真正突破点,甚至可能开启通用智能的新时代。

这里附带提个思考题:上帝用的是向量还是符号?外星人呢?

当然没有标准答案。但我心里倾向于这样回答:上帝应该是用向量的,但外星人不能免俗:他们与咱们人类一样,用的是符号(语言)。至于外星语的符号用的是什么编码载体,声音还是图形,则不确定。

03
低代码是趋势,也是王道

1. NLP低代码潮流
最后想强调的是NLP低代码的潮流,它是从AI开源平台的兴起开始的。当今互联网各大厂都在建立推广自己的深度学习平台,谷歌的TENSORFLOW,脸书的PYTORCH,等等。各种平台级工具箱和软件包也在开源社区流行,有KERAS的神经网络框架,还有SCIKIT-LEARN这样非常成熟的包括几乎所有统计模型的软件库。现在做模型就像玩积木一样,你可以用短短几行代码去调用这些库很快实现一个原型系统,刚毕业的大学生研究生也能很快实现一个像样的模型。
符号NLP这方面其实也有不少进展,我们做的多层NLP符号平台也是在半自动、冷启动、低代码和流程化的路上。其目标是把编写NLP代码的人从“码农”转化为判官,以高精度低召回的样例规则代码为起点,通过检验数据质量的变化决定符号规则的泛化路径及其迭代更新。这种低代码的开发流程在一系列不同领域的落地应用实践中验证了其有效性,使得NLP代码开发的效率至少提升了一个量级,从以前的几周时间缩短为几天。
2. 数据科学与工程的兴起
AI低代码趋势的标志之一是数据科学的兴起。这几年来,很多大学顺应市场需求,开设了数据科学(Data Science)专业,批量培养知识工程师。目前,数据科学专业有些杂,大体上一半是计算机的课程,另一半是不同领域的实践教学。它训练你在不同领域方向上将AI低代码能力与领域数据处理结合起来,完成一些领域应用。这标志着NLP和AI从学术的象牙塔里走了出来,逐步汇入各行各业的应用场景。各种开源低代码平台、工具和社区的推广,使得学习的门槛也降低了。在线教育如火如荼,也顺势而起,专精数据科学培训的datacamp上就有上百万人在学习相应技术课程。AI数据科学在行业落地应用的前景在接下来的十年中会越来越普及,低代码人力储备也逐步准备好了。有意思的是,前几年AI热引起的风投热度开始明显降温,但这与其说是AI泡沫破灭了,不如说是对于AI规模化领域落地和普及的预期过高,不了解AI的自身发展的真实趋势。上一波赶上了感知智能大爆发潮流的资本,有耐心和机缘赶上认知智能今后10年中的爆发节点吗?
04
NLP“半自动驾驶”

1. 半自动符号NLP的设计哲学

以上算是务虚,下面回到符号NLP创新的务实话题,讲述一下NLP老司机的半自动“驾驶”,结合本论坛的金融主题,介绍符号NLP在金融领域的落地中的实践。NLP落地金融与我们在法律、电力、航空、客服等应用场景的领域化工作一样,围绕一个相同的开发理念和设计哲学:数据驱动,但不依赖标注数据;无米可以,有稻即成:解析器作为碾稻成米的核武器,无米之炊可成。

具体说来,低代码半自动可以从样例种子开始。只要有“种子”就可以全自动地生成规则,并且在生成规则的基础上实行半自动的规则泛化流程。泛化的方式分为上下文泛化和词节点泛化两大类,其中上下文可以灵活应用图结构上下文与线性上下文(例如窗口限制)。词节点泛化带入本体知识库,包括常识的逻辑推理链条加持。泛化路径由系统内部自动配置确定可选项,由知识工程师(开发者)从可选项中选择进行。这就让纯粹手工的规则编码流程,转变为半自动的代码调整过程,大大减轻了代码开发成本以及知识工程师的培训成本。

NLP落地领域作为一项软件知识工程,整个流程遵循软件开发的best practice,包括建立和维护代码迭代更新的质量管控标准和措施,保证在不依赖标注数据条件下的数据质量。监督学习所依赖的标注数据黄金标准,被知识工程师的数据比对与判定代替,码农从而成为判官,半自动监督指导符号系统上线前的迭代开发以及上线后的维护开发。半自动模式下,只需要使用样例种子来冷启动符号规则的开发过程,系统自动提示调整泛化的路径。知识工程师从代码的细节解放出来,以人机互动的方式实现符号系统的快速领域化。目前我们已经在多语言(10多种欧洲和亚洲主要语言)和多领域(金融、法律、电力、航空、客服等)的不同场景落地,用的都是这套数据驱动的方法论:低代码、冷启动、半自动、流程化。

Image

2. 半自动符号NLP的实践

实践部分咱们以金融NLP落地为例。金融领域的特点是句子比较长、信息点多、关系复杂,一个两句话的例子中可能就有30多种关系需要抽取。但好在句子的模式比较固定,目标关系的抽取步骤是内部先消化成同一个结构,然后再把结构映射(map)到输出端去建立关系及其角色。属于图结构的匹配和映射。

Image
Image

经年打磨的深度解析引擎对各领域保持稳定。但在该核心引擎应用到具体领域的时候,有一个步骤是保障引擎领域化的关键,就是领域词典的加持。事实上,那些开源的深度学习训练出来的解析器(斯坦福parser,谷歌SyntaxNet,等)之所以至今没有规模化的领域应用成果,主要瓶颈就是难以适配领域化数据。这些在通用数据上训练出来的解析器虽然质量接近专家水平,但对于数据非常敏感,一旦数据场景偏离原训练数据,数据质量常常悬崖式下跌,不堪使用,其主要原因就是面临领域新词的挑战。训练模型缺乏外加词汇的加持手段,加上解析器的输出沿用社区标准(类似PennTree)只提供结构图,并不提供词节点的语义特征及其本体知识链条的支持,这就使得下游NLP很难落地。我们的多层符号解析模型克服了上述缺点,下游NLP任务继承核心引擎的所有信息和知识,用的是同样的机制和符号语言,从而打开了快速领域产品化的大门。

领域词典分为两部分,一部分是领域新词发现(或利用领域已有的开源词汇资源)。我们通过领域原生数据的N元组聚类获得候选领域词汇,然后经过噪音过滤等过程与系统内基础词典及其本体知识库对接。在金融领域,新词发现获得了三万N字新词或词组(9>N>2)。领域词汇的另一个来源是用户词典,这个规模小得多,但可以在开发过程中随时增补修改,可以更加灵活地配合引擎的领域化开发工作。

在词节点泛化路径中,内部有现成的本体知识库(HowNet的精简版)及其上下位路径去帮助泛化。在上下文约束条件的调整中,系统预先设置好了通过图关系或窗口限制的两条上下文泛化路径,只要点击就能调用。泛化过程与深度学习系统的梯度下降的原理类似,只不过符号系统的“拟合”按照系统设计者根据内部知识和经验预定的泛化路径来进行,路径节点是离散的有限集合,一条样例规则大约经过10-20次泛化迭代可以定形。无论节点泛化还是上下文泛化都具有可解释性。每一步泛化迭代都在由原生数据组成的开发集中得到验证,以此保障迭代开发的数据质量。金融实体与关系的抽取就相当于深度学习网络的输出层,由一些简单的抽取规则组成(见图),规则模式的条件是词和上下文之间发生的窗口关系(例如Win9,9词窗口)或者语法关系(例如Link1,一层关系,即直接依存关系)约束。系统自动提示约束条件的可选项,最后由在开发集上的回归质量测试决定一个选项在精度与召回上的表现。表现不够格就回滚到前一个状态重新尝试其他泛化路径,如此循环。主要理念是用半自动的系统提示的方法把⼀个很紧的规则松绑到恰到好处,让系统在精度和召回中做出合理平衡。这种方法可以概括正例排除反例,提高精度,同时在泛化中自然加强系统的召回(recall)与鲁棒。

Image

Image

总结一下,半自动流程化NLP落地的主要优点是不再依赖标注数据。基于结构和理解的冷启动低代码路线具有普适性和跨领域的优点。不足则是低代码并不是无代码,依旧需要一些代码纠错技能,但培训门槛则大大降低了。
05
精彩问答

Q1: 您在做parsing的时候使用的标签体系是否有统一的标准,在哪里可以学习呢?
A1:标签体系是有传承的,不是Penn Treebank那套标签体系,因为虽然Penn Treebank是符号领域中的社区黄金标准,但我们知道其中有很多的固有缺陷,落地实践用起来也不够方便。根本的标签是从 Dependency grammar这路继承发扬下来的。在我的NLP频道 (liweinlp.com) 的许多样例的后面,都配有这些标签的简单说明。句法语义的关系标签集合不大,粗线条的parsing标签不到10个,细线条的标签总数也就几十个。但是词概念的标签集合则大得多,我们用到的大约2000左右标签,包含了HowNet的核心本体特征。
Q2: 同一层解析中不同规则的优先级是完全基于语言专家知识来确定的吗,也就是确定性的非概率的吗?
A2: 对,是确定性的、非概率的,但在确定性中对于不确定性有⼀种包容。包容是指在非确定的情况下,不在特别关键点的时候,系统先把它包住。⽐如在某些节点中有词汇歧义,但这个歧义不是你所要做的任务急迫需要解决的问题,这时就可以先包住,等到条件成熟时再对付它。结构歧义也同样有包容的手段。我们虽然在pipeline的数据流里是用确定性方法往下传递数据结构,但里面同时蕴含了包容下来的不确定性或歧义。系统装备中有我们称为“睡眠唤醒”的机制,可以从事局部结构的重建、修正或再造,在宏观条件成熟的时候,例如在后期更大的上下文背景条件下,重新展开局部结构进行重建或覆盖。
Image

今天的分享就到这里,谢谢大家。

深层解析符号模型与深度学习预训练模型

 

【相关】

NLP 新纪元来临了吗?

推荐Chris Manning 论大模型,并附上相关讨论

《我看好超大生成模型的创造前途》

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2022)

预告:李维等 《知识图谱:演进、技术和实践》(机械工业出版社 2022)

【语义计算:李白对话录系列】

【置顶:立委NLP博文一览】

《朝华午拾》总目录

 

NLP 新纪元来临了吗?

【立委按】强力推荐NLP顶级权威,斯坦福Chris Manning教授论大模型,非常好的 review。曼宁教授深厚的计算语言学学识反映在他的综述和展望中,具有历史厚度和语言本质的理解深度。最后的那个点也很好:当前的一锅煮的超大模型实际上是一个可行性研究,已经初见成效;将来的大规模的领域场景应用,会召唤相对来说小一些但更加领域数据密集和纯化的基础模型,可以展望其革命性前景。至于这算不算 通用人工智能(AGI),曼宁说的也很有分寸:看上去算是在通向 AGI 的路上。短板主要是 semantics 还不够直接面向真实世界,而是源自符号世界、囿于符号世界(所谓 distributional semantics),等于是绕了一个弯儿,语义的深度以及语义结构本身就显得扁平、太浅,难以消化人类深厚的知识积淀。但即便如此,也堪称一个伟大征程的坚实脚步,是激动人心的NLP新时代。从分布角度看意义,如果说人是社会关系的总和(马克思),那么也可以说,语词基本上是语词间篇章关系的总和。很多年来,我们NLP践行者一直挣扎在如何把上下文合适的模型化,因为语言符号的歧义和微妙很大程度上可以在上下文中予以消解。上下文最直接有效的对象就是篇章(discourse),而恰恰在这一点,深度学习注意力机制为基础的大模型展示了其几乎神奇的表示能力。

AI 群里相关讨论很有意思,实录如下。

刘群:同意@wei,深度学习和预训练方法取得的进步非常惊人,超出想象。原来感觉不可解的一些问题,现在似乎都看到了曙光,解决路径隐隐约约能看到了。虽然对AGI仍然质疑,但对这个领域的前景真是非常看好。

算文解字:是的 同一个模型prompt一下就能完成各种nlp任务 就算不是agi 也是更g的ai了。而且即使是从denotational semanrics的角度看,加入多模态的预训练模型也算是部分和间接的grounding到真实世界了的物体了。

刘群:是的,原来觉得一般意义上的grounding几乎不可能,除非是特定领域。现在看越来越可能了。

立委:感觉上,意义表示(A)落地到客观世界(B)可以看成是人类与生俱来的本能,不需要特别的模型化,如果A本身比较充分的话。 那么这个 A 是个什么东西呢?A 可以看成是一个平面的表示,其中 X 轴就是篇章,而 Y 就是隐藏在文本之后人类知识,包括本体知识(ontology),带有语用(pragmatics)因素的世界知识及其推理体系。

目前的大模型的长处是 X 模型化,短处依然在 Y 不足。因此虽然从分布角度貌似也总结出了一些常识,以及浅层的推理能力,但这些能力还没有足够的深度和逻辑性,缺乏推理的链条性和一致性。【编者按:这是在 ChatGPT 和 GPT4 之前的议论,现在看来思维链和逻辑推理在LLM后续发展中已经大有进步,虽然知识的厚度和复杂推理依然是LLM的短板。】

符号知识图谱以及人类探索积累下来的本体知识库、领域知识库,这些东西都是非常浓缩的、高度结构化的知识体系,本质上具有严谨的逻辑性和推理能力。分布式序列学习学到了这些知识的皮毛,但总体上,对于这些知识精华还很陌生, 难以系统性直接兼容并蓄。

刘群:当然离解决这些问题还远,只是说能看到曙光了。以前感觉根本没希望。虽然还不怎么样,但不是没希望。日拱一卒。

算文解字:还有这两年出现的基于预训练模型的常识推理(如Yejin Choi组的工作)也让人眼前一亮。即使五年前还是,说研究常识(common sense)一般反应都是敬而远之。

立委:大数据为基础的序列学习可以反映相当多的常识,这个是没有疑问的。我们在本群中讨论过很多这类案例:所谓大数据支持的“相谐”性,其实与常识中的特征匹配,吻合度很高。

刘群:把符号融入到神经网络里面不是解决这个问题的正确方法,还是分阶段处理,来回迭代才是正途。

立委:方法论上也许的确如此,但直觉上是一种知识浪费。就是说,从DL外行的角度来看,明明人类已经世代努力提炼了精华,都规整得清清楚楚,可模型就是没法利用。一切必须从头开始,让人着急。

刘群:我说的来回迭代不是人机交互,是符号和神经来回迭代,可以自动化的。

立委:哦,那就是我希望看到的深度耦合/融合。这种融合是革命性的方向,有望发生新的AI突破与下一代的范式转变。但不久前,还普遍被认为是一种乌托邦,觉得符号和神经,就跟林黛玉与焦大似的,打死也不兼容。

算文解字:刘老师,这个方向上近期有哪些比较亮眼的工作呀?

刘群:WebGPT, AlphaCode等,还有周志华老师反绎学习的工作。

算文解字:恩恩,的确 WebGPT 这种都可以看做是大模型和离散/黑盒系统(可以是规则)交互迭代的方案。

立委:前面提到,对于大数据,人比起机器,有时候好像蚂蚁比大象。有老友不满了,说不要这样说,这是“物种”歧视。其实,很多事儿,人比起机器,还不如蚂蚁比大象……

1. 计算;2. 存贮/记忆;3. 下棋;4. 知识问答; 5. 翻译; 6. 做对联; 7. 格律诗; 8. ………。可以预见的未来清单还很长很长(自动驾驶、自动咨询、自动陪护、自动培训、自动写作、自动音乐、自动绘画 ………..), 都不是人力遥不可及的。事实在那里摆着。不服不行。

回顾历史,人类第一个被蒙圈的就是计算。以前的那些心算大师,算盘顶级快手,现在很少有宣传了,因为干不过一个小小的计算器。紧接着是存贮量和记忆力。当年我们最崇敬的人物就有不少是过目不忘,博闻强记的大师们。社科院流传着很多大师的传奇故事,都是能记住非常细节的东西,可以在记忆的大海捞针。现如今,谁敢说任何大师记忆的信息量能比过一个U盘。哪个大师还能在谷歌百度面前夸口自己的大海捞针的信息检索能力?

下棋不用说了,电脑完胜,两次载入计算机历史的里程碑。知识问答也进入了计算机历史博物馆,IBM 沃伦的高光时刻。机器翻译我一直在用,我本人就是机器翻译出身的,目前的翻译水平高过普通人类翻译毫无悬念,注意:不是指速度。对联、写诗 也有过大赛。自己试试就知道了:你可以尝试在家苦学格律诗n年,然后即兴写诗,与机器比试比试?

面对超大数据的基础模型,人类脑壳里的“小”只会越越来露怯,想藏拙也藏不住了。当然,严格说来这不是一场完全公平的实体之间的比试。一边是单个实体的人(例如世界围棋冠军),另一边是消化了人类整体知识积淀的实体机器人。好比一人对无数人,自然是蚂蚁遇上了大象。但是,另一方面看,每个碳基生物的人也在不断学习人类的知识才能成为专家或冠军,并非一张白纸。关键在于学习能力,碳基实体无法与硅基实体的电脑比试自动学习的能力,因为后者占尽了时间(速度)与空间(存贮)的优势。超人的出现不会是人,而是机器人,这应该是用不了50年就可以做实的现实。

新摇滚歌手汪峰曾经唱到:我该如何存在?

面对汹涌而来的大数据大模型,人类准备好了吗?

与曼宁教授合影(2017-07-18)

Chris 的这篇综述对于NLP意义重大,值得反复研读。文章也很好读,写得清晰简练。里面有一个有意思的观点,值得特别介绍。曼宁试图重新做NLP历史划分,从而突出自学习革命的分水岭作用:

In hindsight, the development of large-scale self-supervised learning approaches may well be viewed as the fundamental change, and the third era might be extended until 2017.

我们知道,过去30多年经验主义AI成为主流以来,常规的AI时代划分都是:第三代是传统的机器学习;第四代是深度学习,分水岭在 2013 年( ImageNet 上那次深度神经网络CNN的爆炸性突破)。

但是从NLP角度,2013-2017 这四五年,深度学习虽然横扫了图像和语音,但在 NLP 本身却遭遇挑战,没有真正的突破,根本原因还是因为NLP监督学习依赖太多的标注数据,这一点与AI第三代没有区别,甚至依赖性更强(数据上不来,神经的表现还不如传统的统计模型)。因此虽然 AI 整体的时代分水岭是 2013,NLP 作为认知智能的拦路虎却应该把里程碑推迟到 2018年。

2018年是自学习预训练大模型(LLM)元年。NLP终于摆脱了标注数据的桎梏,可以直接从语言学习语言,开始利用无穷无尽的自然语言原生数据。从研究角度看,曼宁显然认为这才是NLP范式转变的开始。这个历史观点我认为是站得住脚的,是个有洞见的划分。无论如何,没有自学习谈不上NLP的革命。这是这篇文章的主旨。

但如果细究,自学习 LLM(其实很长时间都是一直叫预训练,好像是 Yann Lecun 开始不断改用 self-supervised learning 才慢慢普及开来,目前的趋向是逐渐过渡到基础模型的说法)其实并没有真正从监督学习走向人们曾经向往的完全无监督学习。因为算法上,预训练大模型本质上还是“监督”学习,只是规模超大的自监督,因为数据超大而已。

这一切尝试本来也可能并不会引发一场可以认为是革命的事件。因为超大规模的模型本性上肯定是简单的,一开始就是做 next word 的预测,或者只是做填空猜字的游戏。谁也没想到这种看上去非常简单的模型居然有能力加强NLP任务的方方面面,甚至影响超越NLP,使得类似框架反过来延伸到多模态符号(图像、语音)上,一样可以循例建立基础模型赋能各自的AI任务。

虽然从小就被马克思辩证法教育,量变引起质变默念在心,其实心底一直没有真地(被)信服:大号的 X 还是 X,怎么就变成 Y 了呢。但是,到了自学习超大模型(BERT,GPT-3等)这里,我们确实见证了这种神奇的多任务效应。

当然,从 2018 年到现在,这场NLP革命也还只是处于初级阶段,等于是完成了可行性研究,NLP大模型在各场景全面开花结果还有很长的路要走。我以前觉得5年可见分晓。曼宁说的是今后10年是NLP革命最激动人心的时代。越来越多的资源和人才开始向这里聚集。

这个其实颇有争议。有不少人不以为然,认为这是高估了自学习大模型的作用,预见在领域普及化的过程中会遭遇困难,甚至滑铁卢。因为自学习模型在知识表示的层次性、一致性和完整性方面显然有严重缺陷,而且缺乏所谓“真正的”理解,虽然可行性研究展示了一些貌似非常理解非常智能的表现。这一观点也不无道理。是不是一场真正的NLP规模化落地的革命,5-10年后回看才能真正裁决。

马少平老师说:“打个比喻,大模型还只是地心说,虽然能解决一些问题,但还远没有到达日心说呢。” 说得有理,可能还要经过几次螺旋式上升,才能更加逼近通用的NLP和AI吧。但另一方面看,如果没有自学习的出现,NLP 就一直是个累赘,可现在转而成为 AI 的急先锋了。

 

 

【相关】

斯坦福教授曼宁AAAS特刊发文:大模型已成突破,展望通用人工智能

曼宁教授综述的英文原文

推荐Chris Manning 论大模型,并附上相关讨论

《我看好超大生成模型的创造前途》

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2022)

预告:李维等 《知识图谱:演进、技术和实践》(机械工业出版社 2022)

 

推荐Chris Manning 论大模型,并附上相关讨论

【立委按】强力推荐。非常好的 review。曼宁教授深厚的计算语言学学识反映在他的综述和展望中,具有历史厚度和语言本质的理解深度。最后的那个点也很好:当前的一锅煮的超大模型实际上是一个可行性研究,已经初见成效;将来的大规模的领域场景应用,会召唤相对来说小一些但更加领域数据密集和纯化的基础模型,可以展望其革命性前景。至于这算不算 AGI,曼宁说的也很有分寸:看上去算是在通向 AGI 的路上。短板主要是 semantics 还不够直接面向真实世界,而是源自符号世界、囿于符号世界(所谓 distributional semantics),等于是绕了一个弯儿,语义的深度以及语义结构本身就显得太扁平 太浅 难以消化人类深厚的知识积淀。但即便如此,也堪称一个伟大征程的坚实脚步,是激动人心的NLP新时代。从分布角度看意义,如果说人是社会关系的总和(马克思),那么也可以说,语词基本上是语词间篇章关系的总和。很多年来,我们 NLPers 一直挣扎在如何把 context 合适的模型化,因为语言符号的歧义和微妙很大程度上可以在 context 中予以消解。context 最直接有效的对象就是 sentences/discourse,而恰恰在这一点,深度学习注意力机制为基础的大模型展示了其几乎神奇的表示能力。

刘群老师:同意@wei,深度学习和预训练方法取得的进步非常惊人,超出想象。原来感觉不可解的一些问题,现在似乎都看到了曙光,解决路径隐隐约约能看到了。虽然对AGI仍然质疑,但对这个领域的前景真是非常看好。

算文解字:是的 同一个模型prompt一下就能完成各种nlp任务 就算不是agi 也是更g的ai了[Grin] 而且即使是从denotational semanrics的角度看 加入多模态的预训练模型也算是部分和间接的grounding到真实世界了的物体了。

刘群老师:是的,原来觉得一般意义上的grounding几乎不可能,除非是特定领域。现在看越来越可能了。

立委:感觉上,意义表示(A)落地到客观世界(B)可以看成是人类与生俱来的本能,不需要特别的模型化,如果A本身比较充分的话。 那么这个 A 是个什么东西呢?A 可以看成是一个平面的表示,其中 X 轴就是 discourse/context,而 Y 就是 ontology 甚至还带有 pragmatics 因素的世界知识和推理体系。

目前的大模型的长处是 X 模型化,短处依然在 Y。因此虽然从分布角度貌似也总结出了一些常识,以及浅层的推理能力,但这些能力没有足够的深度和逻辑性,缺乏推理的链条性和一致性。

符号知识图谱以及人类探索积累下来的本体知识库、领域知识库,这些东西都是非常浓缩的、高度结构化的知识体系,本质上具有严谨的逻辑性和推理能力。分布式学习学到了这些知识的皮毛,但总体上,对于这些知识精华还很陌生, 难以系统性直接兼容并蓄。

刘群老师:当然离解决这些问题还远,只是说能看到曙光了。以前感觉根本没希望。虽然还不怎么样,但不是没希望。日拱一卒[ThumbsUp]

算文解字:还有这两年出现的基于预训练模型的常识推理(如Yejin Choi组的工作)也让人眼前一亮。即使五年前,还是说研究common sense一般反应都是敬而远之[Facepalm]

立委:大数据为基础的分布学习可以反映相当多的常识,这个是没有疑问的。我们在本群中讨论过很多案例,也有这种反映:所谓大数据支持的“相谐”性,其实与常识中的特征匹配,吻合度很高。

刘群老师:把符号融入到神经网络里面不是解决这个问题的正确方法,还是分阶段处理,来回迭代才是正途。

立委:方法论上也许的确如此,但 intuitively 感觉是一种知识浪费。就是说,从我们DL外行的角度来看,明明人类已经世代努力提炼了精华,都规整得清清楚楚,可模型就是没法利用。一切必须从头开始。让人着急。

刘群老师:我说的来回迭代不是人机交互,是符号和神经来回迭代,可以自动化的。

立委:哦,那就是我希望看到的深度耦合/融合。这种融合是革命性的方向,有望发生新的AI突破与下一代的范式转变。但不久前,还普遍被认为是一种乌托邦,觉得符号和神经,就跟林黛玉与焦大似的,打死也不兼容。

算文解字:刘老师,这个方向上近期有哪些比较亮眼的工作呀?

刘群老师:WebGPT, AlphaCode等。还有周志华老师反绎学习的工作。

算文解字:恩恩 的确 webgpt这种都可以看做是 大模型 和 离散/黑盒系统(可以是规则)交互迭代的方案

立委:前面提到,对于大数据,人比起机器,有时候好像蚂蚁比大象。有老友不满了,说不要这样说,这是“物种”歧视。

其实,很多事儿,人比起机器,还不如蚂蚁比大象......

1. 计算

2. 存贮/记忆

3. 下棋

4. 知识问答

5. 翻译

6. 做对联

7. 格律诗

8. ......... 可以预见的未来清单还很长很长,都不是遥不可及的  ......
(自动驾驶、自动咨询、自动陪护、自动培训、自动写作、自动音乐、自动绘画 ...........)

事实在那里摆着。不服不行。

回顾历史,人类第一个被蒙圈的就是计算。以前的那些心算大师,算盘顶级快手,现在很少有宣传了,因为干不过一个小小的计算器。

紧接着是存贮量和记忆力。当年我们最崇敬的人物就有不少是过目不忘 博闻强记的大师们。社科院流传着很多大师的传奇故事,社会上也有很多周总理的超凡记忆力的故事,都是能记住非常细节的东西,可以在记忆的大海捞针。现如今,谁敢说任何大师记忆的信息量能比过一个U盘。哪个大师还能在谷歌百度面前夸口自己的大海捞针的信息检索能力?

下棋不用说了,电脑完胜,两次载入计算机历史的里程碑。知识问答也进入了计算机历史博物馆,IBM 沃伦的高光时刻。机器翻译我一直在用,我本人就是机器翻译出身的,目前的翻译水平高过普通翻译,注意:不是指速度。对联、写诗 也有过大赛。自己试试就知道了:你可以尝试在家苦学格律诗n年,然后即兴写诗,与机器比试比试?

面对超大数据的基础模型,人类脑壳里的“小”只会越越来露怯,想藏拙也藏不住了。

当然,严格说来这不是一场完全公平的实体之间的比试。一边是单个实体的人(例如世界围棋冠军),另一边是消化了人类整体知识积淀的实体机器人。好比一人对无数人,自然是蚂蚁遇上了大象。但是,另一方面看,每个碳基生物的人也在不断学习人类的知识才能成为专家或冠军,并非一张白纸。关键在于学习能力,碳基实体无法与硅基实体的电脑比试自动学习的能力,因为后者占尽了时间(速度)与空间(存贮)的优势。超人的出现不会是人,而是机器人,这应该是用不了50年就可以做实的现实。

新摇滚歌手汪峰曾经唱到:我该如何存在?

面对汹涌而来的大数据大模型,人类准备好了吗?

与曼宁教授在斯坦福合影(2017.07.18)

斯坦福Chris Manning: 大模型剑指通用人工智能

from 算文解字 算文解字 2022-04-30 03:06

著名NLP学者斯坦福大学的Chris Manning教授近期在美国人文与科学学院期刊的AI & Society特刊上发表了一篇题Human Language Understanding & Reasoning的论文。

文章在简单回顾了NLP的历史发展的基础上,分析了预训练的transformer模型何有此威力,探讨了语义和语言理解的本质,进而展望了大模型的未来,对新手还是老兵都颇有启发。本文就聊一聊论文的要点。顺便提一句,论文谈的是NLP,但本质也是在说或许我们已经在通用人工智能(Artificial general intelligence, AGI)上迈出了坚定的一步。

  1. NLP领域的范式转移

文章先简要回顾了自然语言处理(NLP)的几个阶段,这对于新一代炼丹师可能过于遥远,所以我们也一笔带过:

  • 第一阶段,发轫于冷战时期1950-1969的机器翻译工作,以现在的观点看数据和计算量都小的可怜,同时没太多语言结构或者机器学习技巧介入。

  • 第二阶段,1978-1992的符号主义,没错,约等于规则,那种很系统且elegant的规则。

  • 第三阶段,1993-2012的,实证主义,也就是基于语料库的机器学习时代。

  • 第四阶段,2013开始一直到现在,深度学习时代。

深度学习本身当然意义巨大,但2018年出现的大规模自监督(self-supervised)神经网络才是真正具有革命性的。这类模型的精髓是从自然语言句子中创造出一些预测任务来,比如预测下一个词或者预测被掩码(遮挡)词或短语。

这时,大量高质量文本语料就意味着自动获得了海量的标注数据。让模型从自己的预测错误中学习10亿+次之后,它就慢慢积累很多语言和世界知识,这让模型在问答或者文本分类等更有意义的任务中也取得好的效果。没错,说的就是BERT (Devlin et al, 2019)和GPT-3之类的大规模预训练语言模型,large pretrained language model (LPLM),中文世界也常称之为大模型

  1. 为什么大模型有革命性意义?

用Manning自己的话来说,在未标注的海量语料上训练大模型可以:

Produce one large pretrained model that can be very easily adapted, via fine-tuning or prompting, to give strong results on all sorts of natural language understanding and generation tasks.

从此,NLP领域的进展迎来了井喷。

Transformer 架构(Vaswani et al., 2017) 自2018年开始统治NLP领域。为何预训练的transformer有如此威力?论文从transformer的基本原理讲起,其中最重要的思想是attention,也就是注意力机制。

Attention其实非常简单,就是句子中每个位置的表征(representation,一般是一个稠密向量)是通过其他位置的表征加权求和而得到。Transformer模型通过每个位置的query, key以及value的表征计算来预测被掩码位置的单词。网上有很多介绍transformer的资料,不熟悉的同学可以自行搜索,大致过程如下图所示:

     

为什么这么简单的结构和任务能取得如此威力?

此处颇有insight。Manning认为通过简单的transformer结构执行如此简单的训练任务之所以能威力巨大的原因在其:通用性

预测下一个单词这类任务是如此简单和通用,以至于几乎所有形式的语言学和世界知识,从句子结构、词义引申、基本事实都能帮助这个任务取得更好的效果。因此,大模型也在训练过程中学到了这些信息,这也让单个模型在接收少量的指令后就能解决各种不同的NLP问题。也许,大模型就是“大道至简”的最好诠释

 

基于大模型完成多种NLP任务,在2018年之前靠fine-tuning(微调),也就是在少量针对任务构建的有监督数据上继续训练模型。最近则出现了prompt(提示学习)这种形式,只需要对任务用语言描述,或者给几个例子,模型就能很好的执行以前从未训练过的任务 (Brown et al, 2020).  

  1. NLP的大模型范式

传统的NLP是流水线范式:先做词法(如分词、命名实体识别)处理,再做句法处理(如自动句法分析等),然后再用这些特征进行领域任务(如智能问答、情感分析)。这个范式下,每个模块都是由不同模型完成的,并需要在不同标注数据集上训练。而大模型出现后,就完全代替了流水线模式,比如:

  • 机器翻译:用一个模型同时搞多语言对之间的翻译

  • 智能问答:基于LPLM微调的模型效果明显提升

  • 其他NLU任务如NER、情感分析也是类似

更值得一提的是自然语言生成 (natural language generation,  NLG),大模型在生成通顺文本上取得了革命性突破,对于这一点玩过GPT-3的同学一定深有体会。

这种能力还能用在更为实用的医学影像生成任务上。大模型能在NLP任务上取得优异效果是毋庸置疑的,但我们仍然有理由怀疑大模型真的理解语言吗,还是说它们仅仅是鹦鹉学舌?

  1. 大模型能真正理解人类语言吗?

要讨论这个问题,涉及到什么是语义,以及语言理解的本质是什么。关于语义,语言学和计算机科学领域的主流理论是指称语义(denotational semantics),是说一个单词短语或句子的语义就是它所指代的客观世界的对象。

与之形成鲜明对比的是,深度学习NLP遵循的分布式语义(distributional semantics),也就是单词的语义可以由其出现的语境所决定。Manning认为两者可以统一起来,用他的原话来说,就是:

Meaning arises from understanding the network of connections between a linguistic form and other things, whether they be objects in the world or other linguistic forms.

用对语言形式之间的连接来衡量语义的话,现在的大模型对语言的理解已经做的很好了。但目前的局限性在于,这种理解仍然缺乏世界知识,也需要用其他模态的感知来增强,毕竟用语言对图像和声音等的描述,远不如这些信号本身来的直接。这也正是很多大模型的改进方向。

  1. 大模型的未来

大模型在语言理解任务的成功,以及向其他数据模态,比如图像、知识、生物信息等的拓展巨大的前景指向了一个更通用的方向。在这个方向上,Manning本人也参与提出了近期大火的foundation model(基础模型)的概念。

基础模型是指百万以上参数,通过自监督学习在预料上训练的,可以轻松适配到多种下游任务的大模型(Bommasani et al., 2021)。BERT和GPT-3就是典型的例子,但最近在两个方向上涌现出不少的拓展性工作:

  • 大模型连接知识,无论是以连接知识图谱神经网络,还是实时搜索文本知识的形式。

  • 多模态的foundation model,比如DALL·E模型,这个方向也更激动人心。

Foundation model仍然在早期,但Manning描绘了一个可能的未来:

Most information processing and analysis tasks, and perhaps even things like robotic control, will be handled by a specialization of one of a relatively small number of foundation models. 
These models will be expensive and time-consuming to train, but adapting them to different tasks will be quite easy; indeed, one might be able to do it simply with natural language instructions.

AI模型收敛到少数几个大模型会带来伦理上的风险。但是大模型这种将海量数据中学来的知识应用到多种多样任务上的能力,在历史上第一次地非常地接近了(通用)AI的目标:对单一的机器模型发出简单的指令就做到各种各样的事情

这类大模型可能只拥有非常局限的逻辑推理能力,但是大模型的有效性会让它们得到非常广泛的部署,在未来数十年它们会让人们领略通用人工智能的一瞥。

 

Reference

Ashish Vaswani, Noam Shazeer, Niki Parmar, et al., “Attention Is All You Need,” Advances in Neural Information Processing Systems 30 (2017).
Tom Brown, Benjamin Mann, Nick Ryder, et al., “Language Models Are Few-Shot Learn- ers,” Advances in Neural Information Processing Systems 33 (2020): 1877–1901
Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova, “BERT: Pre-train- ing of Deep Bidirectional Transformers for Language Understanding,” in Proceedings of NAACL (Stroudsburg, Pa.: Association for Computational Linguistics, 2019), 4171–4186.
Rishi Bommasani, Drew A. Hudson, Ehsan Adeli, et al., “On the Opportunities and Risks of Foundation Models,” arXiv (2021), https://arxiv.org/abs/2108.07258.
点击"原文链接",读原始论文。

from https://mp.weixin.qq.com/s/pnd2Q-5duMtL0OLzrDJ2JA

 

【相关】

斯坦福教授曼宁AAAS特刊发文:大模型已成突破,展望通用人工智能

《我看好超大生成模型的创造前途》

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2022)

预告:李维等 《知识图谱:演进、技术和实践》(机械工业出版社 2022)

 

《我看好超大生成模型的创造前途》

最近,盘古群(一个围绕中文超大生成模型盘古的技术交流微信群)里的朋友在谈 open AI 最近发布的文字转图片的 Dalle2 应用,吸引了成千上万的人想要先睹为快。据介绍,Dalle2 可以根据你的自然语言的描述,随机生成任意图片。从发布的样例看,很多生成的图片超出人的想象,很像艺术品,当然也有次品,但都是唯一的。下面随手摘取几张样本:

Dalle 的出现是出版界的福音。出版界为了插图的授权问题,常常弄得头晕脑胀。我们在互联网上发帖子比较随意,需要插图的时候就搜索一幅用上再说,遭遇纠纷的时候撤下就好,但出版界最怕引起这些纠纷。现在好了,通过 Dalle 可以整出来各种插图可供选择,而且保证了这是唯一的“揉合创造”,不会侵权。

商务出版我的《NLP答问》的时候,建议为了回避可能的插图侵权,建议我找艺术家重新描画。无奈之下,我让女儿做了两张素描,她以我和她自己作为原型“再创作”,终于绕过了这个问题。LOL

回来说生成模型。我相信在“机助创作”这个大方向上,超大生成模型今后几年会有接地气的应用出现,Dalle 就是一个苗头。对于创业者,找准市场角度、收获千万用户的杀手级独角兽的出现,也不是小概率事件。因为市场需求是存在的。(据说现在美国有 300 多家初创团队或个人正在寻找利用 GPT3 模型的落地场景。)

这背后的原理,值得说一说。我们知道,计算复杂性研究中有个著名的 P vs NP 问题。简单说就是(在有限时间内)问题分为可解与不可解两类。搜索空间指数增长,组合爆炸,就是不可解的问题。而很多判定性问题具有确定性推理算法,不需要搜索,那就是可解的问题。

超大生成模型的出现就好比是提供了一个把不可解问题转化为可解问题的路径。当然,任何比喻不是跛腿就是夸张,严格说来,应该是超大模型为艺术家和匠人打开了次优解集合的大门。生成模型最大的为人诟病之处是其不稳定性:结果时好时坏,有时候让人拍案叫绝,有时候让人无语。这就是为什么网上对其前景争论不休的主要原因。粉丝报喜不报忧,批评者揭露其背后的缺乏理性或灵性。

这种情况下的最佳搭配其实就是人机耦合(让 human in the loop):人的归人,机器的归机器;各自发挥所长,取长补短。这在创造性应用中最为明显。创造需要消化前人的历史积淀,然后加入个人的灵感,才能成事。但消化类似于搜索,这一步对于人及其有限的脑容量、记忆力和时间,挑战实在太大了。而人作为万物之灵,“灵感”其实人人都有。

现在好了,超大生成模型几乎无限延伸了人的搜索消化的能力,在很多细分领域甚至可以对历史做到一网打尽。深度学习的革命现在可以让消化了的东西重新符号化(包括语言符号、音频符号和视频符号),提供给人选择。这是千载难逢的绝佳组合:人只要判定就好了。判定是灵感参与的线性决策过程,n 挑 1 也就是 n 倍的判定,依然是线性的。对于文学艺术创作,这个太高效了。人类进入“艺术大爆炸”、“艺术个性化”时代,百花齐放,人人皆为艺术家,不是不可以想见的。

熟读唐诗三百首,以前是成为古典诗人的必由之路,被认为是必要的苦功夫。现如今,300 就是个笑话,整个古典诗词喂进模型去也是个小 case。总体而言,消化大数据,人比起机器,就好比蚂蚁比大象。

对于稳定性弱波动性大的生成模型,应用的开花结果不要指望全自动。人机耦合条件下,纵然你n个结果有9成垃圾,我只取一瓢。一样会产生前所未有的价值。目前的问题是,艺术家群体不懂计算,计算界的人艺术敏感度不够,所以二者耦合所能发现的市场角度不容易确定。但假以时间,没有理由不对这个前景看好。

更何况不少创造性应用并不一定要专门针对艺术家或工匠的群体,有相当场景是普罗百姓都有需求的。例如应用文写作、秘书2.0, 编辑2.0, 确保出版插图永无侵权烦恼,等等等等。

 

 

【相关】

DALL·E 2

推荐Chris Manning 论大模型,并附上相关讨论

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2022)

预告:李维等 《知识图谱:演进、技术和实践》(机械工业出版社 2022)

立委随笔:机器翻译,从学者到学员

学了神经翻译网课,感慨良多。回想一下觉得有些好笑:30多年前好歹也是科班机器翻译出身(社科院语言所研究生院机器翻译专业硕士,1986),大小也可以说是个学“者”。河东河西,现在乖乖成了机器翻译学“员”了。机器翻译翻天覆地的变化是有目共睹的。如果NLP其他方面的变化也达到机器翻译的程度,那才真叫不废江河万古流。

机器翻译课讲义编得真心不错。这一段讲解有点意思:

3. Trained model
During the training of the Teacher-Forced model, you provided the French sentences to the decoder as inputs. What are the decoder inputs when performing a new translation? You cannot provide the translation as an input because that's what you want the model to generate.

4. Decoder of the inference model
You can solve this by building a recursive decoder which generates predictions for a single time step. First, it takes in some onehot encoded input word and some previous state as the initial state. The GRU layer then produces an output and a new state. Then, this GRU output goes through a Dense layer and produces an output word. In the next time step, the output and the new GRU state from the previous step become inputs to the decoder.

就是说在训练神经翻译模型的时候,源语与目标语都在,都作为 decoder 的 inputs 来帮助模型训练。但是到了应用模型来翻译的时候,目标语作为 input 的条件不在了,那么怎么来保证目标语的影响呢?

讲义中所谓 recursive decoder 就是把目标语的语言模型带入翻译过程。这时候与训练的时候有所不同,不再是具体的目标语的句子来制约,而是用目标语预测下一词的语言模型来介入。这就是为什么神经翻译可以通顺地道的主要原因。因为有了目标语语言模型的引导。

神经翻译常常通顺有余,精准不足。这其实是一对矛盾的反映,本质上是因为 decoder 解码的时候,有两股力量在影响它,一个是源语encoder 编码的输入(上下文的 vectors),另一个是目标语语言模型(next word prediction)的输入,这两个因素一个管精准,一个管通顺,协调起来难免出现偏差或偏向。

尝试把上述讲义自动翻译(谷歌MT)后编辑说明一下:

培训模型在“教师强制”模型的培训过程中,提供给译码器的法语句子作为输入。当执行新的翻译时,解码器的输入是什么?您不能将翻译作为输入来提供,因为这是您希望模型生成的结果。推理模型可以通过构建一个递归解码器来解决这个问题,该递归解码器可以生成针对 “单个时间步长“(即:词) 的预测。首先,它接受一个热编码的输入词(这是指的源语输入文句的词)和一些以前的状态(这是指该词的上文隐藏层的内部表示)作为初始状态。接着,GRU 神经层生成一个输出(指的是下一词的向量表示)和一个新状态。然后,这个 GRU 输出通过全连接稠密层产生一个输出词(这是目标语下一词)。在下一个时间步长中,前一步骤的输出(目标语的词)和新的 GRU 状态成为解码器的输入。

目标语的语言模型是生成模型,生成模型本性就是发散的,可能步步走偏。制约它不走(太)偏的约束来自于根据源语文句编码的上下文状态。这里面还有个魔鬼细节,那就是原文句子的启动是反向的,reverse=True,就是说,原文句子的输入做了逆序操作:

sos we love cats eos --> eos cats love we sos

这样一来,当 sos(句首标志)作为解码器启动的初始单元的时候,伴随它的前文(上下文中的上文部分)不再是空(没有逆序的原句,前文是空的),而是整个句子的浓缩状态来支持它。这就说明了为什么一个 sos 的启动操作,可以依据前文生成下一个词,与 we 对应的 nous,后面就是“链式反应”了,直到生成句末标志 eos,完成一个句子的翻译。在这个递归的链式反应的每一步,每生成一个词,“前文” 就少了一个词,前文的状态因此也在步步更新作为下一步的输入,而所生成的目标语词也作为下一步的输入带入了目标语的生成模型,二者的相互作用造成了精准和通顺的妥协和平衡。目前看来,目标语的生成模型对于翻译的作用容易大于前文状态的作用,造成错译(张冠李戴、指鹿为马,人间蒸发,鬼影乍现等等问题)。但原则上,应该有办法去做平衡配置,就好比在精准和召回之间做平衡配置一样。

这一段讲义讲得蛮明白:

11. Generating translations
Now you can start recursively generating French words. First you define a variable fr_sent to hold the full sentence. Then for fr_len steps in a loop you do the following. First you predict a word using the decoder. Remember that, the inputs to the decoder are, a word from the French vocabulary and the previous state of the decoder. In the fist step, the input will be "sos" and the input state will be the context vector from the encoder. This model then outputs a word, as a probability distribution and a new state. The new state will be recursively assigned to de_s_t. This means, at every time step, the previous decoder state will become an input to the model. Then in the next step you get the actual word string using probs2word() function. probs2word() is a function that accepts a probability distribution and a tokenizer and outputs the corresponding French word. After that, you convert that word to an onehot encoded sequence using the word2onehot() function. This is assigned back to de_seq which becomes an input to the model in the next step. And you keep iterating this process until the output word is "eos" or, until the end of the for loop.

这是最后的实际译文的(词循环)生成过程。利用浏览器Chrome自带的谷歌翻译(plu-g-in)如下:

给点说明:

11. 生成翻译
现在您可以开始递归生成法语译文了。首先,您定义一个变量 fr_sent 来保存完整的译文句子。然后对于循环中的 fr_len 步骤,您执行以下操作。首先,您使用解码器预测一个单词。请记住,解码器的输入是法语【即目标语】词汇表中的一个单词和解码器的先前状态【即源语的前文】。在第一步中,输入将是“sos”【句首标志】,输入的状态将是来自编码器的(源语文句的)上下文向量。然后该模型输出一个(目标语)单词【在目标语词汇表中的概率分布】和一个新状态【上下文动态更新】。新状态将递归赋值给 de_s_t。这意味着,在每个(单词生成的)时间步,之前的解码器状态都将成为模型的输入【这是译文精准的源头】。然后在下一步中,您使用 probs2word() 函数(从所预测的词的词汇概率分布)获取实际的单词字符串。probs2word() 是一个接受概率并输出相应法语单词的函数。之后,您使用 word2onehot() 函数将该单词转换为 onehot 编码序列【把生成的词重新编码以便模型下一步使用:这是引入目标语生成模型的关键输入,它是译文地道通顺的保证】。这将被分配回 de_seq,后者将在下一步中成为模型的输入。然后你不断地迭代这个过程,直到输出单词是“eos”【句末标志】,或者直到 for 循环结束。

是不是很有意思?

欣赏一下课件的图示:

 
课程最后的讲义总结如下:
Got It!
1. Wrap-up and the final showdown
You've learned a great deal about machine translation and maybe a little bit of French as well. Let's have a look back at what you've learned.

2. What you've done so far
First, in chapter 1 you learned what the encoder decoder architecture looks like and how it applies to machine translation. You then played around with a sequential model known as GRU, or, gated recurrent units. In chapter 2 you looked more closely at the encoder decoder architecture and implemented an actual encoder decoder model in Keras. You also learned how to use Dense and TimeDistributed layers in Keras to implement a prediction layer that outputs translation words.

3. What you've done so far
In chapter 3, you learned various data preprocessing techniques. You then trained an actual machine translation model and used it to generate translations. Finally in chapter 4 you learned about a training method known as "teacher forcing" which gives even better performance. You trained your own model using teacher forcing and then generated translations. At the end, you learned about word embeddings and how they can be incorporated to the machine translation model.

4. Machine transation models
In this course, you implemented three different models for an English to French translation task. Model 1 was the most basic model. The encoder consumed the English words as onehot encoded vectors and produced a context vector. Next the decoder consumed this context vector and produced the correct translation. In model 2, the encoder remained the same. The decoder in this model predicted the next word in the translation, given the previous words. For model 3, we replaced onehot vectors with word vectors. Word vectors are much more powerful than onehot vectors and enables the model to learn semantics of words. For example, word vectors capture that a cat is more similar to a dog than a window.

5. Performance of different models
Here you can see the performance of those three models. You can see that the models trained with teacher forcing give the best results. You should note that the model that uses word vectors gets to a higher accuracy much quicker than the model that is not using word vectors.

6. Latest developments and further reading
Though you used the accuracy to evaluate model performance, there is a better metric known as BLEU which tries to imitate how a human would assess the translation. Another important thing to know is how out-of-vocabulary words are treated in productionized models. For example, Google cannot simply replace unknown words with a special token. To address this problem these models use a word piece model. A word piece model will identify most frequent sub-words in a corpus. For example, if the model has seen the words "low" and "newer", and has learned the sub-words "low" and "er", the model can represent the unseen word "lower". One of the most important developments in the field of NLP is the Transformer. Transformer is based on the encoder-decoder architecture. However it does not use any sequential models like GRUs. Rather, it uses something known as attention which is more light-weight than a GRU.

7. All the best!
I hope this has been a fruitful journey about machine translation and I wish you all the best.
 
【相关】
 

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2022)

《李白126:神经 attention 机制搞定代词指代的案例》

李:看到 attention 机制一个图示:

这可算是 attention 机制可视化以后,明确显示其解决了 pronoun coreference 的难题。看前后两句 it 与 animal 和 street 的关联强度就明白了:

1. The <animal> didn't cross the street because [it] was too tired.
2. The animal didn't cross the <street> because [it] was too wide.

这只是过程中其中一幅 attention 的图示化,图中没有显示其他两两 attentions 的图示(包括 it/animal/street 与 wide/tired 的两两关联度),看完就知道形容词(wide/tired)与 host noun(animal/street)之间的相谐性,是如何对 it 的 coreference attention 的影响力了。

这种两两配对的机制 简直令人发指地有效 而且有解释性,也不怕爆炸,反正所谓 multihead self-attention 机制都是可以并行计算的,大不了多上GPU,费些电而已。

白:怕不怕干扰?

李:不知道 不过就看到的这个结果,已经让人嫉妒得咬牙。好玩的插曲是,下面留言貌似还有个“理呆”傻傻地问:老师 为什么 it 与不相干的词 wide 有很强的关系?这位学生理解了 it 与名词的关系 却不能理解与形容词的关系,哈。

白:我们的观点是,it与其所指建立关系时,会把所指的本体标签复制到it这里来,然后跟tired/wide检查相谐性就是邻居之间的事情了。飞线不是白拉的,是有本体标签输入的。

特别是,飞线的建立,是在各个chunk内部的萝卜填坑都搞定的情况下才会发生。而内部填坑就意味着,it的分子萝卜已经被chunk内部的坑所同化,不相谐的百毒不侵。相谐的一路绿灯。

李:感觉是 如果句子处理满足下列条件,能穷举两两关系 而且有足够数据训练去计算这种关系,那么我们引以为傲的结构,其桥梁价值就会趋近于零,因为位置信息加语义相谐的 attentions,应该可以搞定这种 hidden correlations。这样说来,attention is all we need 即便从字面上看 也说的不错。

自然语言说复杂也复杂 但说简单也简单。简单在于,有无穷无尽的语料,预训练可以发掘很多语言知识。到下游应用的时候 单位开始变小,小到一句一词 大也不过一篇文章 对于 attention,这都不算事。(也有人现在尝试把 input 扩大到一组文件,来做跨文件自动摘要,结果也让人开眼)。

白:NN容纳了结构,正常。

李:可几年前,我们是不相信神经系统可以搞定 long distance(hidden) correlations 的,当时觉得非符号结构不能的。这个不服不行。 

白:

在这个模型看来,光刻机是“我们的”了。其实是“它的”。“我们”的间接宾语角色没有被揭示出来。如果没有那个“给”,这一切本来都是说得通的。

谁没告诉别人?

李:是 he,不是 we。嗯,这两例的确没搞定,也更 tricky 一些,有间接宾语干扰项。再等两年,等最新机制和方法慢慢渗透消化部署到商用神经翻译系统后再看看搞定了多少。总之,总体方向上是向好的,我觉得。越来越多的“非低枝果实”正在被神经吞噬,一个幽灵在地球徘徊......

 

 

【相关】
 

《李白梁严127:神经的要害在数据瓶颈与定点纠错盲区》

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2021)

《AI 随笔:观老教授Walid的神经网络批判有感》

昨天在 YouTube听了一个数小时的批判深度学习的小圆桌会,有点意思:

NLP is not NLU and GPT-3 - Walid Saba (可惜国内需要翻墙才能看youTube,我截屏如下)

是三个名校中青年学者对一位学富五车的老年教授,大家抱着尊重老专家的尊敬之心,与这位批判者深入交谈究竟神经网络的短板在哪里。

Walid 教授对于领域一边倒极为不满,凭着他对于电脑科学(早年好像是伯克利电脑博士)、传统机器学习和现代神经网络、符号AI、心理学、语言学等多学科的了解,讲述自己对于所谓 Bertology(就是 Bert 这类神经方法论)的批判,他的博客也有系列点评和批判。他是真有学问,所以批判中不时有闪光金句和洞见,但总体而言,说老实话,他的批判显得无力。

说来说去 他批判的焦点就是 embedding 词向量这样的数据结构虽然是伟大的发明 因为语言单位可以做各种信息计算了 但是说到底会遭遇无结构的天花板。他所谓的结构 不是指的文法结构 而是说 向量本身算来算去 无论求和 求product 还是 concatenate 这些信息操作的结果 他认为还是平面的 没有结构的。最终无论模型多大,也只是对于语言数据中可以观察到的词与词之间的某种角度的 similarity 计算而已,尽管可以捕捉语言中的 long distance dependency。

但是 语言理解有两个部分,他说,一个是说出来的 可以观察到的部分 一个是没说出来的脑补的 “我知道你知道(I know you know)”的部分。二者缺一不可,但是纯粹通过大数据训练的模型没办法得到后者,因此是跛脚的。

这个论点有其闪光之处,但是他说的太绝对了。

所谓数据里面学不到的后者 听了半天就是指的某种 ontology(本体知识),他有点遮遮掩掩,说自己几十年探索的最新创新还不想马上公布于众,又忍不住说其实就是一个 type ontology,并不复杂,规模也不大,2000 个基本概念,是四岁儿童都具备的先验知识。这其实就是 HowNet 的头部 features,也是 Longman 词典中用来定义所有词汇的大约 2000 基本词汇的某种映射物,他也许会有些不同的组织方式,不会相差太远。

总之,这些基本概念或 types 所构成的常识(他称 type checking,和 type unification)在语言理解中一直在下意识中起到脑补作用,否则人类的交流难以进行。既然人类是这样利用二者理解和交流的,电脑单单凭借大数据怎么可能模拟人类的语言能力呢?

我来批判一下他的批判(其实三位后学中的一位也不断礼貌地在反驳他的系列批判)。

蕴含常识的基本ontology确实有脑补作用,这个我们在白硕老师的语义计算群讨论过的无数案例中都有体现,但是铁口说这些东西是不可能从大数据学出来的,感觉偏差很大。他举例说 want 需要的 agent 是 human,这是四岁小孩子都知道的常识。其实大数据里面这种主语谓语的 type correlation 太普遍了,不可能不在大数据(预)训练中反映出来。

他还举了两个图片的例子,一个是女老师辅导学生的照片,一个一家三口的全家福,他说这两张图片的数据本身是没有区别的,都是成年人与孩子在一起的合照。他挑战说,因为数据本身没有区别,所以系统学不出来前者是辅导员与学生 后者是父母与孩子的关系。这个笑话闹大了 因为后学马上把两幅照片输入谷歌图片理解系统。结果是:第一张图 tutoring 的概率最高,第二张图 family 概率最高。

他实际上是犯了同样的错误 他以为数据中不存在的某种知识 其实在大数据的雷达上是有反映的。如果是小数据 可能的确找不到区别性特征或规律 数据大了就不同了。老教授这时候不得不说 你不能拿我举的个别案例说事,总之是有一种数据里面不存在的知识在起作用。这么说自然也有一些道理 但是感觉他批判的力度太弱,而且留给自己的批判空间也越来越小了。

说他有一点道理 是说大数据即便学出来常识 这些常识也是支离破碎的 没有内部的组织性和严格的结构 hierarchy,学出来的 onology 和人头脑里的 ontology (以及语义学家精雕细琢的ontology模型)总是有区别的。这一点需要承认,但很难说在语言应用现场前者的效果比后者差,本体知识与其他知识一样最终还是要落地的,要以落地赋能效益作为最终衡量。

他还举了一个有意思的例子,他说大学校园(campus)与大型商场群(mall),从物理角度观察几乎没有区别。但是人类的认知很容易区别二者。既然没有物理区别,机器怎么能够区别它们?这实际上是 tutoring 与 family 的放大版,实际上也经不起质询。二者的区别即便在物理层面也还是有蛛丝马迹。

总之,老教授的道理越来越难验证,他费了很大力气找出来的批判反例,其实大多不能构成神经网络的真正挑战。

他还举了一个 product 的例子,他说人类的ontology中有 product 的概念,可是千差万别的几乎任何东西都可以是 product,数据中怎么能区分这样的概念呢?人怎么认知的呢?人是把 product 与 manufature(制造) 结合起来的,“制造”的结果/宾语 就是 product,不管结果如何不同。同理,teacher 这样的概念离不开 teaching,先有 teaching 才会有其 agent 来做 teacher,形成这个概念的 type。这样的先验知识 他认为纯粹数据是学不出来的。因为学不出来 所以需要用到这种知识的认知理解过程 神经网络就是无能为力的。

总之,不能说他的批判完全没有道理,但是力度很不够,不足以批判神经系统的潜力。有些知识目前的神经系统也许没有捕捉,因此表现不出来,但很难说以后就没有。关键是,坚持 ontology 只能先验,不能反映在大数据中,这个论点是有问题的。常识在个例中通常是不说的,人吃饱了撑的,不会总是说出来人人都知道的常识:人要吃饭;枪可以杀人,等等。但是既然是常识,大数据的趋向中就会有反映,而捕捉这种趋向,是多维度的向量空间的拿手戏。常常是系统其实捕捉了,但因为向量表示如果不做可视化的用户友好努力,不变成人可以理解的符号或图示,我们不知道模型已经捕捉了。

他的有道理之处可能是在常识的深度推理、长链条的推理方面,目前的神经架构纯粹靠大数据可能局限于框架而学不出来,也用不起来。但大数据深度学习是一个进展变化迅速的上升领域,今天的无能就是明天的突破口,很难说推理这条路它一定跨不过去。这就好比几年前我们都觉得 coreference 和其他篇章的关联,神经网络应该是无能的,直到今天我们亲眼看到了神经系统在篇章方面的成就,这才改变成见。

这才十年左右的功夫,从CNN,到 RNN,到双向RNN,到LSTM,到 transformer,到各种 attention机制,深度学习的进步让人眼花缭乱,而每次进步都是真实可测的。以前看不上所谓的 transfer learning,觉得有点不实在,但超大规模预训练落地以后,产生了GPT3和盘古这样的庞然大物,NLP方面的 transfer learning 一下子变得触手可及了。今后几年这方面可以预见有越来越多的应用实践出现。

老教授还反复质问:心理学家、语言学家、逻辑学家这么多学者这么多代人艰苦探索语言和思维的奥秘,做了那么多的工作,难道这些人都是做无用功吗?你凭着大数据,一招打天下,只靠神经网络就搞定了人类认知?come on,give me a break

这种质询诉诸感情大于讨论问题,没多大意义。不同的路线和方法论虽然理论上不可能完全覆盖和超越另外的路线和方法论以及先贤,以此说一边倒对科学发展是不健康的,盲目迷信神经网络是不智的,两条路线可以取长补短,这些道理都没问题,但是以此来挑战新方法 还是需要拿出更加实在的立论和案例。老教授给人的感觉“虚”了些,有些倚老卖老,又有点像堂吉柯德战风车。精神可嘉。毕竟这种声音已经很少听见了,即便发声了,也很快淹没。乔姆斯基也多次批判过经验主义路线和机器学习,谁把他老人家当回事呢?都是我干我的,供着他或无视他,敬而远之。

时代大概就是这么前进的。连坚信“上帝不掷骰子”的爱因斯坦反对量子不确定性固执了一辈子,物理界还是达成共识认定老爱错了,普遍接受了现代量子理论。人不会因为曾经伟大,就可以改变潮流方向。

老教授的批判,其实还不如我们的批判深刻。我看到的神经网络的短板很简单:迄今为止,神经网络基本上不能落地领域,在NLP领域场景无所作为。

这是基本事实。原因也很清晰:就是绝大多数领域场景应用,虽然有数据,但是多是 raw corpus,缺乏或根本就没有大规模带标数据。皮之不存毛将焉附?神经网络除了预训练的语言模型以外(其实也是监督学习,只不过不需要人工标注而已,无数的语料本身就是自然标注的语言模型训练集),全部的拿得出手的应用成功都源于标注数据的监督学习。不管怎么神经,无米之炊是做不到的。于是符号路线就有了用武之地,就是这么简单。

我们可以做领域NLP的无米之炊。符号NLP在建立了平台和parser以后,就可以用“冷启动”快速结构开发来弥补领域应用的空档。无米(labeled corpus)可以,有稻(raw caorpus)就成,parser 就是碾米成稻的机器,结构就是一种通用标注,在此基础上的领域落地不过就是配置调适到最终目标,这条路经过多领域的实践证明是快速有效的。(但是,预训练也许是个竞争性威胁,在此基础上的 transfer learning 可能是个领域落地的替代品。我们当翘首以望。)

往深里说,除了带标数据的知识瓶颈外,老教授提到的外在知识,譬如领域知识图谱,等也是一个因素:不能说大数据完全学不了,但学得不系统不完整链条没有深度和结构的确是目前的神经局限。

关于领域场景冷启动,可以从我们最近的电力场景知识图谱的实践得到一些启发。这个落地尝试我体会特别深。那真是冷启动,比冷还要冷,是冻启动。平常的冷启动,产品经理至少还能给一个 完整的 specs,里面给出领域知识抽取的样例,定义的每一种类至少给一个 input-output 对照的例子,作为种子去启动冷知识的开发过程。

回顾一下背景,电力NLP落地一直想做,但觉得很棘手,主要是行业太深,看不明白。而客户自己也说不清楚需求的细节,只是感觉有必要首先把这个场景的知识学习出来才好。这次是我们自己与电力客户做沟通了解,我们的一位 leader  临时充当产品经理的角色,给了一个电力图谱的初步 schema 设计图,有原始文档作为参照,完全没有时间去做例示化 specs 定义。我们要自己消化去启动知识工程。等于是把产品经理的任务转移到我们开发人员了。几天后做出的结果与做知识融合的后处理模块开发人员接口。知识融合需要做一些 dirty work,不仅仅是应对NLP抽取的碎片化知识结果,同样要应对半结构化表格抽取出来的碎片化结果,这个过程所化的时间远多于NLP冷启动抽取(现在看来语言parsing和抽取不是真正的瓶颈,后面的融合目前是瓶颈,这方面我们需要一些时间抽象和总结,来提高平台化的融合能力)。不久,做出来的图谱原型看上去有模有样,符合 schema 的设计要求。

电力领域的数据很各别。这与我们以前尝试过的金融文书、法律文本完全不同,因为金融法律虽然是领域风格的文字,但读起来与新闻类还是有不少类似的地方,起码外行也能大体读得懂,因此消化理解图谱里面的关系,心里感觉有谱。可是到了电力,虽然其实行文很规范(没有风格,完全的机械性文字表述,力求精确),但是没有领域基本知识,很难看懂,无从下手。

刚拿到薄薄的一页 schema 设计图,也是一头雾水,一组抽象的概念连接起来,到底想表示什么领域知识呢,不确定。但是几个小时对着原始文档的对照讲解和讨论,很快就冰释了这个领域知识的壁垒,有点豁然开朗的感觉。

说这是一次奇妙的NLP领域落地的产研经历,是很真实的感受。今后遇到其他暂新的领域,也不要被表面的“黑话”形式所吓倒。只要冷启动的方法论过硬,感觉困难的领域知识理解问题,也许实际落地操作层面就是一层没有捅破的窗户纸。

我们主打的RPA(Robotic Process Automation,机器人过程自动化)是普适的,可以触达各种各样的不同领域场景。由此带来的更加“高深”的领域知识抽取任务就会五花八门。这拓展了我们对于不同领域数据的视野。方法论和NLP平台的威力和意义就在于,任你千变万化,万变不离其宗。这个宗不仅仅是指背后的语言结构(这个高深一点,培训难度也大一些),也包括从原始数据自动做领域词汇习得(关键的一环)、上下文约束机制(线性的、结构的,线性的约束比较简单,能很快培训一线人员做低代码开发)、多层松绑机制、冷启动质量保障控制流程(没有大量标注数据也可以对精度和召回做系统性控制)等一系列配套工具,这些就是可以普适的NLP的平台工具。

这样的零标注数据的领域场景,神经纵然三头六臂,奈其何也?

 

 

 

【相关】
 
 

李维 郭进《自然语言处理答问》(商务印书馆 2020)

预告:李维《巴别塔影:符号自然语言处理之旅》(人民邮电出版社 2021)