近年来,随着互联网、云计算、大数据、人工智能等前沿技术的陆续诞生,越来越多的企业转向开源软件,以至于大家都认为开源是天然正确的。开源社区使全球信息技术领域发生了全局性、持续性的重大变化,在社会基础设施建设方面也发挥着越来越重要的作用。
什么是开源
开源,也就是开放源代码,市场上开源软件层出不穷,开源面向的用户主要有两个群体,一个是程序员,他们会关心源代码能不能进行二次开发利用。其次是普通终端用户,他们关心软件的功能够不够强。很多人都认为开源软件最明显的特点是免费,但实际上并不是,开源软件最大的特点应该是开放。任何人都可以得到软件的源代码,在此基础上加以修改学习,甚至在版权限制范围之内重新发放。
当前开源软件运营模式
目前一些公司正在通过与开发人员合作进一步的推进开源。当前的开源软件运营模式分为三种。
1.软件完全免费,后续服务收费。但是这种模式并不是每一家开源企业都能使用的,一般只有行业领先者才有这样的资本。
2.软件免费,没有售后服务,在软件市场成熟后,靠出售专利谋生。
3.应用服务提供模式在这种模式下,软件和服务都是免费的,企业按时间缴纳使用费用。
对一些发展中国家,或者说那些软件业欠发达国家来说,开源软件还为他们制造了后发优势,提供了追赶和超越发达国家软件业的机会。毕竟对于像中国这样的发展中国家,软件业的发展严重滞后,完全依靠国内的资金和人才要想赶超像美国这样的软件大国,是非常困难的。但是如果能在基于开源软件的基础上加大投入的话,这种理想就有了实现的可能性。
饱受好评的开源项目
一.Synaptic.js:用于浏览器的神经网络库
Synaptic.js是一个用于node.js 和浏览器的 JavaScript 神经网络库,可以构建和训练基本上任何类型的一阶甚至二阶神经网络。
该项目内置了 4 种经典的神经网络算法:多层感知器(multilayer perceptrons)、长短期记忆网络(multilayer long-short term memory networks)、液体状态机(Liquid State Machine)、Hopfield神经网络。使用 Synaptic.js ,你可以轻松测试和比较不同体系结构的性能。
二.VideoOS open:视频小程序
由极链科技推出的视频小程序在 github 上公开了源代码,并给这个新版本取名“VideoOS open”,意为开放、开源。用户可以上 github 搜索关键字“VideoOS”查看代码。
VideoOS open 的动态化解决方案基于阿里开源的 LuaViewSDK。Lua 是一个高效灵活的语言,它可以非常方便地绑定各类底层库,在 iOS 上单个 Lua 虚拟机仅占用200K到300K。集成 VideoOS open 的移动端 SDK 后,APP 包体增加控制在2.5M以内。
开发者完成 Lua 脚本开发后,只需要在控制台上传,并进行投放,新应用即可触达用户。开发,测试,上线完整的流程可以缩短到1周时间。
官方目前已经开发了气泡对话、卡牌收集、中插广告、投票、云图5款应用,用户也可以对这些应用的 Lua 脚本稍作修改,针对各自的行业做定制化开发。
三.Sockeye:基于Apache MXNet的神经机器翻译框架
Sockeye 是一个基于 Apache MXNet 的快速而可扩展的深度学习库。其代码库具有来自 MXNet 的独特优势。例如,通过符号式和命令式 MXNet API,Sockeye 结合了陈述式和命令式编程风格;它同样可以在多块 GPU 上并行训练模型。
Sockeye 实现了 MXNet 上当前最佳的序列到序列模型。它同样为所有序列到序列模型的超参数提供恰当的默认值。对于优化,无需担心停止标准、指标跟踪或者权重初始化。可以简单地运行已提供的训练命令行界面(CLI),也可以轻易改变基础模型架构。
四.CycleGAN:生成对抗网络图像处理工具
这个工具功能十分强大,不仅可将绘画作品“还原”成照片(可理解为是一个 “反滤镜”),还能将夏天转换成冬天,或将普通的马转化成斑马。
与其它人工智能绘画不同,CycleGAN 的研究团队试图建立一个可双向转化不丢失信息的双向算法。在 CycleGAN 里照片的细节被要求完全保留,研究人员希望能够将一张图片输入 CycleGAN 后进行多次反复转化(照片→绘画→照片→绘画→照片),最终可以获得与原始照片相同或相近的图片。
五.Deeplearn.js:可实现硬件加速的机器学习 JavaScript库
DeepLearn.js 是谷歌推出的一个可用于机器智能并加速 WebGL 的开源 JavaScript 库,完全在浏览器中运行,不需要安装,不需要后端处理。
DeepLearn.js 提供高效的机器学习构建模块,使我们能够在浏览器中训练神经网络或在推断模式中运行预训练模型。它提供构建可微数据流图的 API,以及一系列可直接使用的数学函数。
虽然浏览器上的机器学习库已经存在多年(例如 Andrej Karpathy 的 convnetjs),但是它们受到 JavaScript 速度的限制,或者局限于推理而不能用于训练(例如 TensorFire)。相比之下,deeplearn.js 通过利用 WebGL 在GPU上执行计算,以及进行完全反向传播(full backpropagation)的能力,实现了显着的加速。
小结:
开源的本质是共享技术,而技术是生产资料的组成部分。显然随着开源软件的流行,给消费者带来了显而易见的利益。从安全角度上看,开源技术丝毫不逊色闭源技术,甚至更有优势。但开源也面临着可能被黑客关注,会被黑客攻击漏洞的问题。但正因为此,开源的代码也会有源源不断的开发者加入对其优化,使他的漏洞今早被发现,从而避免遭受攻击。如果技术的共享开源可以称作是开源精神的诞生,那么商业模式的开源也可以算得上是开源精神的涅槃。