脸书AI探索Kotlin语言的自动区分系统

0
2044
//ai.facebook.com/blog/paving-the-way-for-software-20-with-kotlin/

可微分的编程使程序能够优化自身,并且是其中的一部分 脸书AI致力于建立更多高级机器学习编程工具。 脸书AI正在为Kotlin编程语言开发一种自动区分系统。 

研究人员表示,这项工作将进一步探索 软件2.0,软件可以有效地自我编写。现在,允许开发人员通过在Kotlin中启用直观且性能卓越的差异化程序来创建健壮的程序。这些程序非常灵活,可以利用问题结构的优势,同时保持类型安全并简化调试。

科特林是一种静态类型的通用编程语言,具有针对JVM,Android和Web开发的类型推断。它由捷克软件公司JetBrains开发,并于2011年首次发布。Google已将Kotlin成为Android应用程序开发人员的首选编程语言。

差分编程和自动差分     

大多数代码要么使用限制性的机器学习库编写,要么使用传统的编码范例进行显式编程。这两种方法之间没有真正的兼容性是实现Software 2.0的重大障碍。此问题已通过差分编程解决。

大多数可区分的编程框架都构造一个图形,该图形由程序的控制流和数据结构组成。任意的用户代码和库代码已合并到进一步的综合模型中。开发人员和专业人员可以利用等级来优化未自动使用ML库编写的参数化程序。

自动微分(AD)发生在编译时,维护程序结构,如控制流和函数调用。它启用了运行时AD无法实现的编译器优化。 

脸书AI团队建立了一个框架,用于确定自定义可区分数据类型并利用其提供可区分Tensor类。建立该框架是为了扩展Kotlin编译器,使可区分性成为Kotlin语言的一流功能。该团队指出,这将使用户能够通过Kotlin中表示的传统ML模型和任意Kotlin代码来区分。

//ai.facebook.com/blog/paving-the-way-for-software-20-with-kotlin/

张量输入

卷积和其他许多深度学习运算符涉及对称为张量的多维数组的复杂操作。没有静态形状信息,很容易混淆不同的形状张量,从而导致运行时错误难以调试。

张量输入系统为开发人员提供了编译时形状推断和检查。张量输入还可以提供更好的代码文档和清晰度。开发人员可以使用类型注释作为文档来记录可接受和预期的张量输入的类型。类型别名和泛型可以进一步用于扩展代码的可理解性,共享和重用。

该小组指出,为了进一步促进差异化的编程工作, 脸书AI 将发布一个利用AD和张量输入系统的最大优势的用户库。它还使工程专业人士和开发人员可以轻松地从任何ML框架过渡到Kotlin系统。

资源: //ai.facebook.com/blog/paving-the-way-for-software-20-with-kotlin/

广告

发表评论

请输入您的评论!
请在这里输入您的名字

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.