第一讲

第一节课从整体上讲解了计算机科学及其前沿技术包含哪些领域,及其重要性。我认识到,计算机科学对工程有着十分重要的影响,可以促进工程技术的改进、促进工程设备革命、也可以促进工程水平的发展。

我意识到自己所学的计算机科学这门专业不仅仅是局限于书本上的知识和平时完成的作业,更是能有机会促进工业界、社会、乃至全人类发展的学科。

第二讲

第二讲主要介绍了超级计算机,老师从天河超算讲起,讲解了世界各国超级计算机的发展历程,最后讲到 HPC 技术等。

与个人计算机不同,超级计算机面向需要大量计算的工作,如自然灾害预报、密码分析、天体物理模拟、核物理模拟等。超级计算机并没有明确的定义,且其计算能力也在不断的提升。如今的个人计算机的算力远超最早的超级计算机,而如今的超级计算机的运算速度则是可以达到每秒一兆(万亿)次以上。中国江苏省无锡市的神威·太湖之光就是现代超级计算机其中之一,它由清华大学负责运营,在 2016 年曾一度称为世界上最快的超级计算机,其实际运算速度可达 93.0146 PFlops。

超级计算机的设计与制造上均有诸多难点,如网络连接、同构异构、存储连接模式、文件系统、散热等,下面将分别介绍。

首先介绍同构与异构计算。同构计算是指计算机中的运算单元使用相同指令集和体系结构的一种组织方式,同构超级计算机只使用一种处理器。而异构计算则是指使用不同类型指令集和体系结构的计算单元组成系统的计算方式。常见的计算单元包含 CPU、GPU、DSP、FPGA 等。异构计算属于并行和分布式计算,支持一组计算机通过网络等手段互联,共同完成计算任务,也是目前绝大多数超级计算机所使用的组织方式。

超级计算机的组织常常以集群的方式,简称为计算机集群,表示一组松散或紧密连接在一起工作的计算机。这些计算机虽然相互独立,但协同工作,可视为一个整体的系统。计算机集群的控制和调度由软件完成,且集群内的计算机通常通过快速局域网相互连接。部署为集群可以提高单台计算机的性能和可用性,也降低成本,增加容错率和可靠性。

由于以集群的方式连接,因此不同计算机之间的连接方式也会对整体性能产生至关重要的影响。主要的存储连接模式分为三类,一是直接连接存储,又称为 DAS (Direct Access Storage),采用 SCSI 接口或光纤通道将计算机直接连接;二是网络连接存储,又称为 NAS (Network Attached Storage),顾名思义,该方法将设备通过网络相互连接;最后是存储区域网络,又称为 SAN (Storage Area Network),它通过光纤通道连接倒一群计算机上,提供了多主机连接,而非标准的网络拓扑。

此外,为了能使集群中各个计算机都能访问文件,还需要部署共享文件系统。这可以让两台及其之间的文件系统能够更紧密的结合在一起,实现方式主要分为共享磁盘和共享文件两种,除此之外,随着网络技术的发展,基于网络的共享文件系统也更多的得到了使用。

第三讲

第三讲主要介绍人工智能技术及其应用。人工智能可以被车工作第四次技术革命的基石,虽然还处于发展阶段,但已对人们的生活起到了很大的影响。

人工智能是研究、开发用于模拟、延伸和扩展人的只能的理论、方法、技术及应用系统的学课,又称为人造智能、机器智能。谈及 AI,就必须要了解其背后的几个重要概念。首先是信号,信号是由传感器测量的物理量,信号可分为模拟信号和数字信号,如电压、温度、电流等都属于信号。数据是信号被传感器感知并显示和存储的内容,可以分为模拟数据和数字数据,模拟数据是连续变化的,而数字数据的分布则是离散的。数据的内容和解释称为信息,是具有语义含义的内容。而知识是信息的一种,具体而言,知识指被验证过的、正确的,且有价值的信息。

人工智能技术在现实生活中有着广泛的应用,小到生活中随处可见的人脸识别,达到实时飞行器检测与区域跟踪,再到目前热门的无人驾驶领域,人工智能的应用无处不在。因此,各大高校也退出了人工智能研讨会,甚至人工智能专业,新闻媒体也将目光聚焦到人工智能领域的前沿发展上。

然而,人工智能的发展目前还面对不少难题,如人工智能缺少常识,因此难以解答对于人类而言很简单的问题。为了应用无穷无尽的常识、事先无法指导的不确定性,这要求人工智能应用场景化(任务化);即在具体的场景中,考虑智能系统需要的尝试,预测可能面临的不确定性问题。此外,人工智能还面临可解释性的困境,且在处理具体问题时比传统算法耗电,且执行速度一般较慢。

第四讲

第四讲主要介绍了虚拟现实与信息技术。首先,老师从宏观的角度介绍了科技的发展,并得出了“新计数的普及速度正在不断加速”的结论。然而,传统的通信发展目前遭遇了瓶颈,尤其是在信息处理方面,从 1G 到 5G,现实物理世界的提升空间殆尽;且现实物理空间与虚拟空间之间存在语义鸿沟。

目前虚拟现实与天空地网数据在现实中已有一些使用。如在 2013 年 8 月,科研工作者已经实现利用人脑通过网络远程控制他人手指,而在 2006 年 IBM 建立了研究课题——复制人脑项目,试图通过重新创造计算机硬件和软件打造出生物智慧。其模拟对象从老鼠大脑开始,再到猫、猴子的大脑、最后到人类的大脑。

第五讲

第五讲主要讲解了软件工程中的一大研究领域——软件性能分析与优化。

软件工程的性能测试分为以下几个阶段:模块单元级别的性能测试、基础设施级别的性能测试、临界测试(最低性能)、(狭义的,即仅判断软件是否能发布的)性能测试、临界测试(即测试软件的最大性能是否超过目标值)、以及耐久测试,这些测试对于软件的开发和发布都至关重要。

然而,软件性能测试目前依然存在一定的困难。具体而言,性能测试用例缺乏统一的描述标准。其原因主要有两点。首先,性能测试用例的编写涉及软件中许多因素,难以做到简介有效;其次,针对云平台系统或实时系统等复杂系统的性能指标十分复杂,且运行时常带有并发、并行不确定等过程,因此测试用例的涉及经常无法反映系统的实际性能情况。

目前,学术界有一套规范性能测试用例的原型系统。这包含一种声明式的领域特定语言,用户可以使用 DSL 生命测试的预期负载、性能指标、测试目标、终止条件等属性,以此几个却描述性能测试的过程,目的和适用范围。原型系统还包括一种基于测试用例的执行日志和软件系统日志,自动化评估性能测试是否与软件系统的实际负载相似,以帮助测试人员更新测试用例,使性能测试尽可能与实际相符。

性能设计与预测在工业上也有着广泛应用,如淘宝的电商平台服务架构就基于云系统实现了工业级性能设计。具体而言,其采用分布式架构,使用多个服务器来处理用户请求,并配置反向代理,实现机房级别的水平扩展,可支持千万级到亿级的并发量,实现负载均衡。此外,淘宝电商平台还将访问率高的数据缓存,从而减轻数据库压力,优化数据库结构,实现数据库性能提高。最后,还利用微服务技术提高系统的利用率;利用容器技术实现运行环境隔离。

第六讲

第六讲主要讲解了网络方面的前沿技术。

随着互联网的发展,其应用场景也逐渐多样化,但传统的 TCP/IP 协议只能提供单一类型的通讯管道,而忽略传输内容,因此难以良好的适应新的网络需求。现代的互联网内容跟更加丰富,且更加注重内容的分发和获取,且对网络带宽和性能的要求高。为了弥补现有 TCP/IP 协议的不足,新兴的网络结构应运而生。

命名数据网络 NDN (Named Data Networking) 是 2010 年发起的未来网络架构研究方案之一,意在开发全新的网络架构,以适应新兴的通信需求,并取代现有的 TCP/IP 协议。它从协议架构设计上入手,致力于解决可扩展性、内容高效分发、内容保护、内容安全、隐私信任等关键问题。

老师还提到,数字经济事关国家发展大局。发展数字经济是把握新一轮科技革命和产业变革新机遇的战略选择。我国需要加强形势研判、抓住机遇、赢得主动权。目前,区块链与隐私计算方向还面临着人才短缺的问题,由于其涉及到包括数学、数据科学、密码学、计算机、通信、经济学、组织行为学等多领域的知识,因此相关人才依然有限。

第七讲

第七讲介绍了人脸识别相关的研究进展及现有问题与挑战。人脸识别的研究很早就已经开始,随着深度神经网络的发展,人脸识别的精度取得了极大的进展,如今已被应用于生活中的方方面面,如手机人脸解锁,或刷脸支付等。

如今,人脸识别依然存在一定的技术挑战。具体而言,人脸的图像受光照与情绪影响明显,且人脸图像通常为 2D,但人脸本身是三维立体的,这意味着在转换的过程中可能出现变形等问题。更特别的,双胞胎或这等环境的存在也使得人脸识别变得困难。

表情识别 (FER) 是人脸识别的分支之一,意在让机器识别人的表情。与人脸识别相反,面部表情越丰富越有利于识别,而微表情的识别还是有挑战性的任务。

第八讲

第八讲介绍了人工智能领域的一大研究方向——自然语言处理,简称 NLP。本次讲座主要针对基于预训练模型的自然语言处理技术及其研究进展展开。

老师按照时间的发展顺序,从计算机与人工智能的起源谈起。1950 年,计算机之父图灵在其著作《计算机器与智能》中,首次提出“图灵测试”,以用于判断机器是否能进行思维,因此他也被誉为“人工智能之父”。在人工智能被提出之后,一些研究者进行了研究,但在 1966 年,人工智能迎来机器翻译的失败,之后渐渐走向低谷。2016 年 3 越。阿尔法围棋战败世界围棋大师李世石,标记着人工智能卷土重来,这离不开算力的提升与大数据的支持。

目前,人工智能的发展相比最初已经有了长足进步。首先,知识获取更方便:随着大数据与大语料库的发展,训练数据量与日俱增。其次,人工智能的应用范围也更宽,如面向开放领域的关系抽取、迁移学习等都需要人工智能的知识。另外,现代计算机的计算与推理能力相较以前有了长足进步。但即时如此,强人工智能目前也只是梦想。

自然语言处理的任务流程主要分为四大部分。一是文本数据获取,这包括将语言数据或非结构化数据转化为统一的文本格式;二是词法分析;三是基础任务,如信息抽取、句法分析、文本分类以及文本聚类等;最后是高层语义理解以及具体任务,如对话、机器翻译、摘要生成、关键字提取等。

自然语言处理的优势在于存在大量可以利用的先验知识,如维基百科等开源的语料库等。但其难点在于研究问题复杂,难以被单一模型处理,且与图像标注相比,其难以获得大量的标注数据,且普遍难度较大,涉及常识、推理与认知能力。此外,部分 NLP 领域的任务评测难度高,难以可关公正的标注语料库,且现有评测指标有时也难以正确反映算法结果的优劣。特别对于中文而言,自然语言处理的问题复杂性较高,因为涉及一词多义与一义多词的问题。

为了解决上述问题,一个里程碑似的技术——预训练模型技术应运而生。它预先在大规模无标注的文本上学习可复用的知识,从而提高后续特定任务的性能。预训练技术将模型训练分为两个部分:预训练 (pre-train) 与微调 (fine-tune)。

一个典型的预训练技术模型是 BERT,它采用子监督学习,并结合 Transformer 结构,在各大 NLP 任务榜单上都取得了极佳的效果。目前,一些新的模型也在 BERT 的基础上诞生,如 RoBERTa、XLNET、ERNIE 等,它们在预训练方式、面向任务以及参数等方面进行了改进。