写点什么

Databricks 整合 Spark 和 TensorFlow 用于深度学习模型

  • 2016-03-14
  • 本文字数:1368 字

    阅读完需:约 4 分钟

结合去年年底谷歌宣布开源其机器学习开源库 TensorFlow,以及之前 InfoQ 报道的内容来看,数据科学界已经迎来了尝试将 TensorFlow 应用到自己的项目里的机会。

Databricks 公司的 Tim Hunter 通过 Spark 演示了使用 TensorFlow 生成模型选项和一定规模的神经网络处理。Hunter 在描述人工神经网络的时候,将之形容成一个在人脑的视觉皮层里模拟神经元一样,这样的模拟在经过大量充分训练之后,可以被用于处理复杂的输入数据,如图像或音频等等。

Hunter 详细讲述了他是如何把 TensorFlow 运行在各种 Spark 配置上来平衡对超参数的调整的。Hunter 说,目前 TensorFlow 支持 Python 和 C++ 这两种语言,帮助了“自动创建可用于各种形状和尺寸的神经网络的训练算法”,此训练算法是为了训练一个神经网络,用这个受训的神经网络来处理更大规模的数据,同时还能保证处理结果的高精度和最佳运行时性能。

Hunter 提到的一些超参数其实指的是各层神经元数据和学习率,这些数据都是从用于神经网络的训练算法本身分离出来的。

如何更好的调整超参数,让已经给定的算法对运行时间和模型精度产生最佳的影响。超参数的设置是经过相互比对的,目的是把在每一层神经元和错误测试数据里产生的变量关联起来,找到这之间的关系。

学习率是相当关键的点:如果学习率太低,神经网络是不会学习任何东西的。如果学习率太高,只能说明训练过程中可能出现了随机振荡,使得某些配置发生了偏离。

神经网络典型权衡曲线:

  • 学习率非常关键,太低学不到东西(高测试误差),太高则训练过程可能随机振荡导致某些配置偏离。
  • 神经元的数目对性能没那么重要,大量神经元的网络对学习率更敏感。

Databricks 建立了一项实验来测量基于 Spark 的 TensorFlow 神经网络训练算法对精度和运行时间性能的影响程度有多大。实验包括一个默认的超参数组,多个超参数的排列,一个测试数据集,一个单一节点,双节点和 13 节点的 Spark 集群。为了找出最优超参数设置,Hunter 使用 Spark 来分布式处理 TensorFlow 生成集,目的是并行测试模型的有效性。对于使用 Spark,Hunter 这样说:

为了传播数据和模型描述等常规元素,然后用容错的方式在一个机器集群里调度个别重复计算。

Hunter 指出,通过和 Spark 集成,在模型精确度和运行时间方面都有所改进:

尽管我们使用的神经网络框架本身只在单节点的时候起作用,但是我们可以使用 Spark 来分配超参数和模型部署。

选择分布式算法大大减少了训练时间,在超参数设置上将精度提高了 34% 以上,这也帮助 Databricks 更好地理解各种超参数的敏感性。它加快了模型验证速度,并证实了这种做法是单节点模型验证速度的七倍。一旦选择最佳的拟合模型和神经网络进行训练,神经网络就会被部署到 Spark 大数据集上运行。

Databricks 并没有谈到具体的硬件实现,但是一些迹象可以从为了这个实验而制作的基于 iPython notebook,以及 Databricks 为客户创建的集群选项里都可以看出来。测量模型选择和神经网络调整能力是通过采用像 Spark 和 TensorFlow 这样的工具而获得的,这可能是对数据科学和机器学习社区的一种恩惠,由于日益普及的云计算和大范围的并行资源在一定程度上帮助工程师们更好的选择实现方式。更多内容可以看看 Tim Hunter 之前写的博客《 Deep Learning with Spark and TensorFlow 》。

参考英文原文: Databricks Integrates Spark and TensorFlow for Deep Learning

2016-03-14 19:007159
用户头像

发布了 25 篇内容, 共 83078 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

使用tidb-toolkit批量删除/更新数据

TiDB 社区干货传送门

性能调优 管理与运维 应用适配

基于 Vercel & TiDB Serverless 的 chatbot

TiDB 社区干货传送门

社区活动

基于迁移学习的基础设施成本优化框架,火山引擎数智平台与北京大学联合论文被KDD收录

字节跳动数据平台

大数据 A/B测试 企业号 8 月 PK 榜

Vue 框架提升加载速度的经验分享

FinClip

奖金丰厚 等你来拿!第六届开源创新大赛飞桨赛道下半场来啦

飞桨PaddlePaddle

人工智能 百度飞桨

TiDB Hackathon 2023 获奖名单新鲜出炉,来看一下都有哪些特别惊喜的项目吧!

TiDB 社区干货传送门

一文带你读懂设计模式之责任链模式 | 京东云技术团队

京东科技开发者

源码分析 设计模式 责任链模式 企业号 8 月 PK 榜

SpringBoot 太强了,这些优势你需要了解

java易二三

Java 程序员 Spring Boot 后端 计算机

Oracle-TiDB迁移-生僻字乱码问题

TiDB 社区干货传送门

迁移 实践案例 应用适配

7种创建方式,带你理解Java的单例模式

华为云开发者联盟

Java 开发 华为云 华为云开发者联盟 企业号 8 月 PK 榜

PCTA 认证考试高分通过经验分享

TiDB 社区干货传送门

社区活动 6.x 实践

我和 TiDB 的故事 | 远近高低各不同

TiDB 社区干货传送门

人物访谈 社区活动

开放原子开源基金会TOC(技术监督委员会)第八十次全体会议

开放原子开源基金会

开源

TiDB 多集群告警监控-中章-融合多集群 Grafana

TiDB 社区干货传送门

监控 集群管理 管理与运维 6.x 实践

这,就是大模型时代的生产力!

飞桨PaddlePaddle

人工智能 paddle 百度飞桨 文心大模型 WAVE SUMMIT

ThreadLocal不过如此

java易二三

Java 程序员 计算机

校源行丨开放原子开源基金会赴福州走访交流

开放原子开源基金会

开源

简单理解 TiDB Serverless branching

TiDB 社区干货传送门

数据库前沿趋势

React请求机制优化思路 | 京东云技术团队

京东科技开发者

React 前端性能 企业号 8 月 PK 榜 react18 请求机制

SimpleDateFormat 线程安全问题修复方案 | 京东物流技术团队

京东科技开发者

jdk8 线程安全 SimpleDateFormat类 SimpleDateFormat 企业号 8 月 PK 榜

java——反射与注解

java易二三

Java 程序员 计算机 API 科技

PoseiSwap 更新质押系统,并将在 8 月18 日开启“Trident ”快照

鳄鱼视界

爆款升级,价格喜人,京东超品日即将上新小度青禾学习手机5G版

新消费日报

TiDB 源码编译之 TiFlash 篇

TiDB 社区干货传送门

新版本/特性解读 HTAP 场景实践 7.x 实践

Java如何生成随机数?要不要了解一下!

java易二三

Java 程序员 random 计算机

API 自动化测试的佳实践

Apifox

软件测试 自动化测试 API测试 API开发 测试自动化工具

三生ONE物,无限可能|博睿数据上市三周年!

博睿数据

可观测性 智能运维 One 上市3周年

Databricks整合Spark和TensorFlow用于深度学习模型_Google_Dylan Raithel_InfoQ精选文章