作者:Loraine Lawson
为浏览器创建了他所谓的“穷人机器学习”模型。“我真正想做的是将机器学习引入前端,而且我不相信模型需要十亿个参数才能完成真正酷的事情,尤其是在前端,”他说。
“我要做的是创建一个新模型,它不需要大量参数和大量内存来运行,但仍然能够在网络浏览器中执行非常实用的操作。”
结果是AsterMind-ELM,一个开源机器学习库,编写于JavaScript他补充说,而不是Python带有 JavaScript 包装器的库。他在会上介绍了这个开源项目devmio 国际 JavaScript 会议上周在布鲁克林举行。
Wilkison-Duran 是 Ippon Technologies 的全栈软件工程师,他将 AsterMind-ELM 构建为一个模块化的极限学习机 (ELM) 库,用于 JavaScript 和打字稿。他重写了极限学习机(ELM)JavaScript 中的网络供前端开发人员使用。
是 2006 年开发的神经网络算法类型黄广斌,他在新加坡南洋理工大学的研究重点是神经网络。ELM 用于机器学习和人工智能。它可以快速高效地训练分类、回归和聚类等任务。
但在 2006 年,研究人员试图解决平衡数据集最佳学习率的问题。
“很多人到处都在问这个问题,因为他们不想在数据中心上花费数十亿美元,”他说。
黄的解决方案是问如果我们不通过创建一个完全随机且从未接触过的隐藏层来训练所有这些会怎样。它还可以工作吗?
– 对于许多工程师来说,尤其是在他那个时代,这听起来就像在不运行单元测试的情况下发布生产代码。这听起来很疯狂,”威尔基森-杜兰说。——他所做的只是我们在高中时学过的一个简单的数学技巧。他说:“如果我们使用隐藏图层作为地图会怎么样?”
他补充说,所有的魔力都发生在隐藏层内。这就像俯瞰一座城市并试图指路一样——你看不到单独的街道,因为建筑物太高了。但威尔基森-杜兰说,如果你在城市顶部放置一个网格会怎样。
“突然之间,[它]有点像战舰:所以你可以说,“哦,银行在三、五方格内,或者公园在四、三方格内,”他解释道。
“我发现的是神经网络,它们就是矩阵数学。”
– Julian Wilkison-Duran,AstroMind ELM 的创建者
他说,它为开发人员提供了一个不准确、也永远不会准确的参考,但它是一个足够好的数据地图,能够告诉人们东西在哪里。
现在你有了地图,你如何计算出如何从 A 点到 B 点。答案是摩尔-彭罗斯逆,也称为伪逆。
– 这是我们大多数人在高中学到的简单矩阵运算,但我们并不真正理解为什么要学习它;直到一年前,我才真正明白为什么自己在高中学习矩阵数学。”威尔基森-杜兰说。– 我发现的是神经网络,这就是它们的全部矩阵数学. –威尔基森-杜兰解释说,可以这样想隐藏层:当数据放入隐藏层时,它就像一张混在一起的纸。
Astro-Mind ELM 使用输出层作为隐藏层图的 GPS。
– 假设我拿一张纸,然后将其捣碎。现在我真的很难说出那张纸上的句子,甚至它说的是什么,但如果我展开那张纸,它突然又开始有意义了,”他说。
ELM 用于实时训练速度和计算效率比实现绝对最高准确度更重要的情况。用途包括训练速度至关重要的工业应用,例如财务预测、社交媒体情绪分析、实时控制系统和复杂模式识别。
与普通神经网络不同,Astro-Mind ELM 不会求解所有隐藏层。他说,它只解决最后一层的问题,因此内存消耗和所有设置都会显着减少。
“您不必训练数十亿个参数,而只需训练最后一层,”他说。
AstroMind-ELM 将 ELM 的功能引入浏览器,并可供 JavaScript 开发人员使用。
“我把它放入浏览器中,然后说既然它已经在浏览器中了,你能用它做什么?”威尔基森-杜兰说。“我采用了技术、数学以及所有构成 ELM 的东西,并将其重写为 JavaScript……这样您就可以立即训练模型,并且它可以在浏览器中运行,而无需大量内存。”
他再次强调,AsterMind-ELM并不是用Python编写然后用JavaScript封装的,而是完全用JavaScript重写的。
AstroMind-ELM 并非设计用于处理巨大的大语言模型他补充说,这会产生大量文本。相反,它是非常具体的模型,你可以即时创建和训练,然后像乐高积木一样链接在一起,他说。
“AsterMind 将即时、微型、设备上的 ML 引入网络,”Wilkison-Duran 在 GitHub 存储库中解释道。– 它可以让您交付以毫秒为单位进行训练、以微秒延迟进行预测并完全在浏览器中运行的模型 – 无需 GPU、无需服务器、无需跟踪。
除了 ELM 之外,该库现在还包括内核 ELM。
“在这种情况下,内核 ELM 不使用网格,”他说。– 相反,他们使用某种地标。如果你想到一个社区,并且你正在穿过它,那里有一棵树,它很大,我可以认出它。那边有一个邮箱。内核 ELM 所做的就是使用这些地标来尝试找出数据的位置。 –
他演示了仅用 20 个句子即可实时训练模型。然后,该模型将数据分类为世界、体育、商业和科学技术。它预测有一句话属于科学技术,这是正确的。但有趣的是,当它给这句话提供了 48% 的机会成为科学和技术时,它是正确的,而其他选项的排名仅为 18% 和 17%。
“它所做的是将所有数据分类为世界体育、商业和科学技术,然后在列方面,这些都是你的向量,”他说。– 向量没有任何意义,除非你给它一个名字,但在这种情况下,向量代表句子,我想在这张幻灯片中指出的另一件事是它并不大,所以模型本身实际上只是一个JSON 文件. –
–AsterMind 将即时、微型、设备上的 ML 引入网络。 –
– AstroMind GitHub 存储库
他还演示了训练模型识别他的声音并区分左右,然后玩一个使用语音命令控制动作的游戏。
– 这将改变游戏规则,因为每个人都在说, – 哦,前端现在是 DEA(到达时死亡)。你可以用法学硕士来生成它,[并且]它可以生成丰富且动态的 UI,你实际上可以用它来做一些令人惊奇的事情,”他说。“作为 JavaScript 开发人员,我们真正喜欢做的事情是,创建令人惊叹的小部件,创建非常出色的视觉效果。”
他演示了如何使用四层鼓节奏训练 ELM,这是典型的摇滚鼓节奏。它很快就生成了节拍,无需等待任何东西旋转或任何后端干预。
AstroMind ELM 库还允许开发人员将模型链接在一起,并一次在浏览器中运行多个模型。他演示了库中的几个不同模型。
“重点是你可以用这个模型构建出奇妙的东西,”他说。“你可以用很少的数据训练它。您甚至可以使用合成数据来对其进行初始训练。 –
ELM 也不要求您保留数据。一旦训练完成,数据就可以被丢弃以释放内存。
至于上下文窗口——这可能是法学硕士的一个问题——限制在隐藏层和 JavaScript 本身的内存限制内,他说。
“我对此进行了广泛的实验,我可以使用网络工作者和在线学习获得多达 1,000 个参数,”他说。“这意味着,我可以有 1,000 个参数,但它是在网络工作者中,并且我流式传输训练数据,这样它就不会一次占用所有内存。”
该存储库解释说,利用 AstroMind ELM 库组件(例如 Kernel ELMS、Online ELM、DeepELM 和 Web Worker 卸载),开发人员可以创建:
Wilkinson-Duran 希望围绕开源项目建立一个社区。他说,现在想要参与的人可以提出拉取请求,他将对此进行审查。他想要的结果之一是建立一个开发者可以共享的权重生态系统。
“我真正想要的是人们能够改进这些模型,因此我将其开源,以便每个人都可以深入研究,帮助我弄清楚如何使这些模型比现有模型更强大,”他说。——我想说的是,这并不需要太多。你可以向它提供任何你想要的数据,立即训练它,谁在乎它是否不能立即工作,因为你没有像法学硕士那样花费数十亿美元。你可以利用你所拥有的,并用你所拥有的来训练。”
YOUTUBE.COM/THENEWSTACK
科技发展日新月异,不要错过任何一集。订阅我们的 YouTube频道可播放我们所有的播客、采访、演示等。