社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python迎来新挑战:LeCun站台的Skip语言有机会成为深度学习语言吗?

极市平台 • 3 年前 • 347 次点击  
↑ 点击蓝字 关注极市平台

来源丨新智元
编辑丨极市平台

极市导读

 

每年都有很多新的编程语言来挑战Python在深度学习的地位,但无一例外都失败了。最近图灵奖得主在推特上再度提起4年前就已经停更的Skip语言,并看好它在深度学习领域的发展。>>加入极市CV技术交流群,走在计算机视觉的最前沿

图灵奖得主LeCun最近在twitter上分享了一门新的编程语言Skip,并表示它有很多有趣的新特性。


包括安全的并发、具有类型推断的强类型化、简单的语法、面向函数也可以面向对象、默认不可变的变量、可预测的垃圾回收器、支持预计算和缓存、类Lisp:闭包和指令序列等。

 

 

LeCun 也指出,虽然Skip语言很有意思,但目前来说把Python作为顶层语言更符合人民的意愿;对于其他下层语言来说,面向数值、支持GPU版本的Skip语言可能会有意义。

 

实验性语言Skip


Skip 是 Facebook(Meta前身) 于 2015-2018 年开发的一种实验性质的编程语言。

 

 

作为一个研究项目,Skip 的主要目标是探索支持准确、高效、基于记忆化(memoization)的缓存和缓存失效的语言和运行时。通过静态类型系统追踪可变性,Skip 做到了前面提到的特性,同时它也支持现代语言特征,例如 trait、泛型与子类型。

 

Skip 项目于 2018 年结束,Facebook表示不再积极开发 Skip,而是以开源的方式保持语言的稳定性,让编程语言研究社区在语言设计与实现、编译器和库的基础上进行研究和构建。

 

 

而编译器和库由该语言的主要设计者 Julien Verlaguet 作为一个副项目进行维护。

 

后来Julien 围绕Skip语言打造了几个产品,如关系型数据库SQLive。

 

 

顾名思义,SQLive受到SQLite的启发,支持一个强大的SQL子集(包括事务)。它的与众不同之处在于,它也是高度并发的。SQLive支持处理来自多个同步reader/writer的复杂查询,而不会让其他数据库用户阻塞住。

 

用户可以订阅query的变化。通过一种叫做虚拟视图(virtual views)的新结构,数据库可以在任何时候都保持一个特定的视图是最新的,当该视图发生变化时通知用户。

 

目前SQLive仍处于早期开发阶段,目前已经可以用于免费用于非商用领域。

 

Skip的开发团队有着多门语言的开发经验,包括ActionScript、C#、Flow、Hack、HHVM、Prettier、React Native和Relay的高级贡献者。

 

Skip的特性


从名字就可以看出来,Skip的开发就是为了跳过「某些已经计算过的东西」来加快执行速度。

 

Skip的主要新语言特征是它对副作用(side effect)的精确跟踪,包括值的可变性,以及区分非确定性数据源和那些可以提供反应性无效的数据源(当数据发生变化时告诉Skip)。当Skip的类型系统能够证明在一个给定的函数边界没有副作用时,开发者可以选择安全地记忆该计算,运行时确保当底层数据发生变化时,先前的缓存值会被删除。

 

Skip还支持两种互补的并发编程,都能避免通常的线程安全问题。首先,Skip支持使用 async/await 语法的 ergonomic 异步计算。由于Skip对副作用的跟踪,异步计算不能引用易变的状态,因此可以安全地并行执行(所以独立的异步继续可以并行地继续)。其次,Skip有用于直接并行计算的API,再次利用其对副作用的跟踪来防止线程安全问题,如对易变状态的共享访问。

 

 

Skip使用了一种新颖的内存管理方法,将典型的垃圾收集器与更直接的线性(凹凸)分配方案相结合。由于Skip对副作用的跟踪,垃圾收集器只需要扫描从计算的根部可以到达的内存。在实践中,这意味着开发者可以用可预测的GC开销来编写代码。

 

Skip的另一大特点是将函数式和面向对象式的观点混合在一起,所有这些都被仔细地整合在一起,形成一种有聚合力的语言。像函数式语言一样,Skip是面向表达式的,并支持抽象数据类型、模式匹配、简单的lambdas、高阶函数,以及(可选择)强制执行纯/反向透明的API边界。像命令式/OO语言一样,Skip支持具有继承性的类、可变的对象、循环和提前返回。Skip还融合了「systems」语言的思想,以支持低开销的抽象,通过值类对对象进行紧凑的内存布局,以及通过静态方法调度确保代码特化(code specialization)的模式。

 

Skip从一开始就被设计为支持良好的开发者体验,其快速的迭代速度通常与动态语言有关。编译器支持增量类型检查(IDE插件的alpha版本在你输入时提供近乎瞬时的错误),为常见的语法错误提供提示,帮助新手学习语言,识别方法/类名称的小错,甚至识别Skip标准库方法名称的常见替代品,并在Skip中建议正确的名称。Skip还具有一个代码格式调整器,能够帮助确保代码风格的一致性,以及一个用于运行代码模型的工具。

 

Hello World


根据官方提供的Playground,可以在网页交互页面上轻松实现第一个Skip程序。

 

 

可以看到,函数需要类型注释:指定了返回类型(void),名为 main 的特殊函数被调用作为程序的入口点。

 

Skip 是一种类型化语言。函数参数、返回类型和类别字段等声明都包括类型注释。编译器计算所有表达式的类型,并在遇到预料之外的类型时报错。Skip 包括常见的基元类型:Int、Float、String、Char、Bool、void。

 

并且函数没有使用关键词 return,因为 Skip 是一种基于表达式的语言,即没有语句的概念。

 

修改本地变量时需要使用感叹号,等号作为声明局部变量的操作符。

 

 

Skip 还包括常见的控制流语句,如 if、for/in、while、do 和 loop。与大部分语言不同,Skip 的控制流语句是表达式,且和其它表达式一样可以生成值。控制流表达式可用于期望使用的任何语境。

 

 

稍有不同的是,break, else都有返回值。

 

和深度学习有关?


LeCun在介绍Skip语言的时候,还提到一个问题:Skip会成为深度学习框架、深度学习语言的一个新品种吗?

 

并且还附上了一个Skip语言编写的、基于ArrayFire引擎的深度学习原型框架Skai的GitHub仓库。Skai的开发受到著名C++机器学习库FlashLight的启发。

 

LeCun表示,期待下一个Skip的特性就是支持GPU计算。

 

Grid.ai的首席 AI Educator、威斯康星大学麦迪逊分校的统计专业副教授Sebastian Raschka表示,由于Skip的开发始终围绕着副作用和缓存的特点,有可能是一种优秀的DL语言。不过与此同时,要换成非Python的东西真的很难。Python有一个强大的社区,这也是新的语言很难从头开始建立的东西。Julia对于ML/DL来说也有很大的意义,但它也没被选中。

 

 

也有网友表示Facebook开发的产品通常都是虎头蛇尾,有着很强大的理想主义,但最终无法普及也就无法获得成功,只能变成一个实验项目开放出来给大家玩。

 

不过这么多年,想挑战Python的语言都没成功,停更近4年的Skip靠着社区能翻盘吗?


参考资料:

https://twitter.com/ylecun/status/1495029342203695104

http://skiplang.com/

https://github.com/pikatchu/skai


公众号后台回复“ 数据集”获取30+深度学习数据集下载~

△点击卡片关注极市平台,获取最新CV干货
极市干货
数据集资源汇总:10个开源工业检测数据集汇总21个深度学习开源数据集分类汇总
算法trick目标检测比赛中的tricks集锦从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
技术综述:一文弄懂各种loss function工业图像异常检测最新研究总结(2019-2020)


CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart4)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解 等技术交流群


每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~


觉得有用麻烦给个在看啦~  
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127606
 
347 次点击