天心智能层

Skymind智能层(skil)的社区版是免费的。它需要数据科学项目从原型到生产快速而容易。skil通过一个面向数据科学家的跨团队平台弥合了python生态系统和jvm之间的鸿沟,yabo重庆时时彩数据工程师,和DevOps /它。它是用于机器学习工作流的自动化工具,可以方便地对Spark GPU集群进行培训,实验跟踪,一键部署训练模型,模型性能监控等等。

开始

快速启动

请求演练

喜欢导游旅游吗?点击这里联系一个头脑清醒的专家。

Skymind智能层(skil)的社区版是免费的。它是一个数据科学平台,可以快速轻松地将数据yabo重庆时时彩科学项目从原型部署到生产部署。skil通过面向数据科学家的跨团队平台弥合了python数据科学生态系统和生产JVM环境之间的差距,yabo重庆时时彩数据工程师,和DevOps /它。它是机器学习工作流程的自动化工具,可以方便地对Spark GPU集群进行培训;实验跟踪;一键部署训练模型;模型性能监控等等。

在这个快速启动中,您将学习如何:

  • 下载并安装skil ce
  • 创建示例工作区笔记本并培训模型
  • 将模型部署到skil模型服务器
  • 从REST端点获取预测
    • 通过网络浏览器
    • 通过Java代码

检查系统要求

确保您的机器符合系统要求在继续之前。

如果需要快速启动与skil兼容的机器,阅读我们的启动指南亚马逊AMI.

安装滑雪橇

先决条件

确保您的机器安装了吉特Apache Maven.

滑雪板有两种口味:

开始滑雪

确保端口9008和8080打开。

本地启动Skil CE系统,使用以下命令:

苏多系统CTL开始斯基尔

等待一分钟,让Skil加载,然后访问地址网址:http://localhost:9008http://[主机名]:9008在Web浏览器中。等待5-10分钟,让滑雪板第一次完成启动(随后的运行将比这快)。

滑雪板启动

滑雪板启动

输入Skil许可证

首先,您需要在“许可证”屏幕输入您的滑雪许可证:

如果你没有执照,您可以在注册试用许可证//www.ramirtha.com/激活.

为用户“admin”添加密码

现在添加根帐户的密码,即“admin”完成初始设置。

更新

更新“admin”用户密码

Skil CE是由一位数据科学家使用和评估的,所以在这篇快速入门文章中,我们将忽略角色和帐户管理。

下一步,本指南将演示如何构建笔记本并将其部署到模型服务器。

将模型从笔记本带到部署

Skil和Skil CE的目的是快速原型化深度学习应用程序,并将最佳模型部署到生产级人工智能模型服务器。

深度学习模型的构建很复杂,部署起来很难。Skil为数据科学家和基础设施工程团队解决了这些难题。深度学习在预测分析和机器感知方面有广泛的应用领域,它几乎影响到每个行业。

下面是一些可以集成到我们的应用程序中的深入学习模型:

  • ICU患者死亡率
  • 计算机视觉
  • 异常检测

除了建立上述模型外,skil使开发人员能够将预测引擎插入现实世界的应用程序中,例如:

  • Tomcat Web应用程序
  • WildFly应用程序
  • 移动应用程序
  • 流系统(流集)
  • 机器人系统和边缘设备(体细胞,乐高思维风暴)

skil平台帮助数yabo重庆时时彩据科学家构建深度学习模型,并将其与工作台和人工智能模型服务器集成到应用程序中。

您可以跟踪模型的多个版本,比较每个人训练后的表现,只需点击一下,就可以将最佳模型部署到Skil的人工智能模型服务器上。

用SKIL CE,开发人员可以开始建造真实的,最先进的深度学习应用程序,无需担心基础设施和管道。yabo亚博金融投注

下图概述了skil工作区系统和skil的ai模型服务器如何协同工作,以提供一个企业级平台来操作深度学习应用程序。yabo重庆时时彩

下面介绍如何用Skil CE构建您的第一个滑雪模型。

创建工作区

开始,按照以下步骤在skil用户界面中创建新工作区:

1)单击主skil界面左侧的工作空间选项卡,弹出工作空间屏幕,如下图所示。

每个新的工作空间都是一个围绕特定项目进行一组“实验”的地方。

“实验”只是应用于给定问题的神经网络模型和数据管道的不同配置,工作区实际上是一个共享的实验室,数据科学家可以用它来测试哪种神经网络在这个问题上表现最好。一个关于滑雪的实验可以放在齐柏林飞艇的笔记本里。这让你可以保存,克隆,并根据需要运行特定的建模作业。

每本笔记本都会被skil跟踪和索引,笔记本中配置的训练模型可以直接发送到Skil的人工智能模型服务器。当数据科学家寻求最佳模型时,一个skil工作区可以有许多不同的笔记本来进行不同的实验。比如说,经过几次实验,您会发现一个性能良好的模型,并希望将它与生产中的应用程序集成。

2)创建工作区

单击左侧的“工作空间”选项卡后,点击页面右侧的“创建工作区”按钮(见下文)。

单击“创建工作区”按钮将显示此对话框窗口:

在这个窗口中,您命名一个实验,以将其与将在此公共工作区中创建的其他实验区分开来。

对于本教程,请将此实验称为“第一传感器项目”。可选,我们可以向这个工作区添加一些标签,以帮助以后识别它(例如,“旁白计划”或“PRODIJOP”,等)。当您准备完成新工作区时,您可以单击窗口右下角的“创建工作区”。

新工作区应出现在工作区列表中:

单击刚刚创建的工作区名称(“第一传感器项目”)将显示工作区详细信息:

现在,您已经准备好在新工作区中创建第一个实验。

创建实验

在工作区内,您可以创建包含在齐柏林飞艇笔记本中的实验。你和你的团队可以创造,跑,并克隆这些笔记本实验,以改进协作并加快洞察时间。

点击“创建新实验”按钮,您将打开“创建实验”对话框窗口(如下)。

给这个实验一个独特的描述性名称,这样以后就很容易找到了,使用“实验名称”下的输入框。

为“模型历史服务器ID”和“齐柏林服务器ID”选择唯一列出的选项(在当前版本的skil ce中,他们每个人只有一个选择)。您还可以提供一个独特的笔记本名称,该名称将应用于Zeppelin笔记本存储系统中。

一旦你完成了实验及其笔记本的设置,点击“创建实验笔记本”按钮。新实验应该出现在当前工作区的实验列表中,如下图所示。

随着实验的建立,您可以通过单击新实验的“打开笔记本”按钮来签出关联的实验笔记本。这将显示嵌入式笔记本系统(如下)。

每个笔记本都以包含DL4J代码的通用模板开始,该模板将作为典型项目的基础。

对于这个例子,你要建立一个基于传感器数据的LSTM模型。此笔记本的代码如下:

uci_quickstart_notebook.scala

在这个具体的例子中,删除模板代码块,并将上面的Github链接中的代码块复制粘贴到笔记本中。笔记本应该自动保存,但在任何时候,您可以使用“版本控制”按钮对齐柏林版本控制系统进行特定的提交,如下所示。

单击齐柏林飞艇内部的版本控制按钮,可以选择添加提交消息以保存当前状态。一旦笔记本代码输入到笔记本本身并保存,您已准备好执行此笔记本并生成模型。

运行实验

在笔记本上运行实验,点击嵌入式齐柏林笔记本用户界面顶部工具栏上的“播放”图标。这将运行该笔记本中的所有代码段。

笔记本需要一些时间才能运行。一旦完成,笔记本的输出将在笔记本内可见。

本指南将介绍笔记本的一些代码片段。笔记本中的第一段运行所有需要的导入(scala中)并设置其他段落以供执行。本笔记本有四个主要功能区:

  1. UCI数据下载和数据准备/ETL
  2. 神经网络配置
  3. 网络训练环
  4. 向skil model server注册建模结果

代码的第一个区域,我们将重点介绍下载培训数据和对代码执行一些基本ETL。这个链接带我们到代码,在这里我们可以看到原始的csv数据:

  1. 从磁盘加载
  2. 转换成序列
  3. 收集有关数据的统计数据yabo亚博金融投注
  4. 然后对序列进行规范化/标准化

代码的下一个领域是使用DL4JAPI配置神经网络。在这个例子中,我们使用的是一种称为长期短期记忆网络(LSTM)的复发性神经网络的变体。

//配置网络
瓦尔 康夫 = 新的 神经网络配置.建设者()种子一百二十三优化算法优化算法.随机梯度下降称重称重.沙维尔更新器新的 涅斯特罗夫斯零点零零五零点九梯度归一化梯度归一化.CLIPELEMENTWISE绝对值梯度规格化阈值零点五图形生成器()附加输入“输入”设置类型指定输入类型.复发的附加层“LSTM”新的 墓碑.建设者()激活激活.坦赫内因诺特建造()“输入”附加顶点“池”新的 最后一个时间点顶点“输入”“LSTM”附加层“输出”新的 输出层.建设者损耗函数.麦克森特激活激活.软最大值内因诺特数字类建造()“池”设置输出“输出”预习反支柱建造()

该网络有一个单独的LSTM隐藏层(graves变量)和一个softmax输出层,以给出六类时间序列数据的概率。网络的训练循环为40个时期(每个时期是对训练集中所有记录的完整传递)。

瓦尔 纽波克人 = 四十
对于 <  直到 纽波克人{NETWORKY模型.适合特伦达塔//对测试集进行评估:
  瓦尔 评价 = 埃瓦测试数据瓦尔 精确 = 评价.精确()瓦尔 F1 = 评价.F1()印刷字体S“在epoch$i的测试集评估:精度=$精度,F1= $F1测试数据.重置()特伦达塔.重置()}//在笔记本的训练循环的正下方,一些调试行演示如何查询LSTM网络。
//测试一条记录(标签应为1)
瓦尔 记录 = 数组数组数组-一点六五一点三八一点三七二点五六二点七二零点六四零点七六零点四五-零点二八-二点七二-二点八五-二点二七-一点二三-一点四二零点九零一点八一二点七七一点一二二点二五一点二六-零点二三-零点二七-一点七四-一点九零-一点五六-一点三五-零点五四零点四一一点二零一点五九一点六六零点七五零点九六零点零七-零点七零-零点三二-一点一三-零点七七-零点九六-零点五五零点三九零点五六零点五二零点九八零点九一零点二三-零点一三-零点三一-零点九八-零点七三-零点八五-零点七七-零点八零-零点零四零点六四零点七七零点五零零点九八零点四零零点二四))瓦尔 扁平的 = 阿勒尤蒂尔.扁平双耳射线记录瓦尔 输入 = ND4J.创造扁平的数组六十“C”瓦尔 输出 = NETWORKY模型.输出输入瓦尔 标签 = ND4J.阿尔马克斯输出-印刷字体S“标签:$标签”

网络预测返回的标签应为“1”,稍后我们将从客户方进行检查。笔记本以一段代码结尾,该代码收集刚刚培训过的模型,并将其编入模型历史跟踪系统中。

每个实验都需要向模型服务器发送一个模型及其评估指标,以便注册和存档。每个Skil笔记本必须包含少量代码,解释如下:以确保模型存储在正确的位置。

瓦尔 模型ID = 技巧背景.添加模型以进行实验ZNETWORKY模型“LSTM模型”瓦尔 埃弗里德 = 技巧背景.添加评估工具Z模型ID评价“测试集”

除了正确的导入头和在笔记本顶部附近创建skilContext对象之外,这些代码行将笔记本与Skil系统的结果连接起来。

在第一行,具体模型附在滑雪系统的实验中。在下一行,评估指标结果用skil中的model id标签进行编目,因此,稍后可以在UI中对模型进行评估。

目录模式

人工智能模型服务器允许skil存储和集成深度学习模型和人工智能应用程序。它存储给定实验的所有模型修订,并允许您选择要“部署”或标记为“活动”的模型。部署一个模型意味着它将是一个为查询REST端点的任何生产应用程序提供预测的模型。

上面的笔记本示例在skil中运行完成后,单击“实验”页面中的“模型”子选项卡,查看表中列出的新模型(如下所示)。这可能需要刷新页面。

现在,您已经用笔记本构建了一个模型,并确保模型已在模型服务器中编目,下一个指南将展示如何通过REST接口通过部署模型向世界其他地方公开模型。

部署模型

一旦模型在模型历史服务器中建立了索引,它将显示在可以部署到生产中以处理新数据推断请求的模型列表中。

在“实验”页面的“模型”子选项卡中,有一个列表,列出了本实验笔记本电脑运行产生的所有模型,如上所述。单击列表中的一个模型将显示特定的模型详细信息(如下)。

对于此列表中的每个模型,可以执行两个操作:

  1. 马克斯贝斯特
  2. 部署

将模型标记为“最佳”会将其固定到模型列表的顶部,如上所述。点击“部署向导”按钮,弹出“部署模型”对话框窗口。

在斯基尔内,“部署”是“模型的逻辑组,变换,和KNN端点”。它有助于我们在逻辑上对部署的组件进行分组,以跟踪哪些组件组合在一起,以便更好地管理系统。

如对话框中所述,此向导将通过REST API使您的模型可用。然后您就可以将ETL进程作为转换端点公开,并配置模型。您还可以选择就地更新现有模型。单击“下一步”可以创建新部署或替换现有部署,如下面的对话框所示。

让我们创建一个新的部署,并将其命名为“ourfirstdeployment”。在按下“下一步”按钮后出现的对话框窗口中,您可以看到“将当前ETL JSON部署为转换”选项。

这是指ETL数据的矢量化,对此的解释超出了本文的范围。现在,您可以不选中该复选框。再次单击“下一步”将进入最终部署向导屏幕(如下)。

这里的“name”选项不同于“deployment name”,因为它区分了部署组中的模型。这是必需的。对于这个例子,我们将使用名称“lstm_model”。您还可以在本地文件系统中看到物理模型文件的静态文件路径。

“scale”选项告诉系统要启动多少模型服务器进行模型复制。Skil CE仅限于1台型号服务器,所以你不需要改变这个参数。

在下一行,该选项用于提供其他JVM参数。最后一个选择,“端点URL”,提供在同一URI下容纳多个模型的选项。在本快速入门教程中,我们不会设置此选项。接受“部署模式”为“新模型”,然后单击“部署”以完成部署。

单击“部署”按钮完成部署后,模型将在“部署”屏幕中列出(如下)。

单击这个新部署模型的条目会显示部署详细信息(如下)。

注意:如果模型未部署,单击模型上的“开始”按钮:

此部署包括其各自的ETL矢量化转换。它还包括“端点”列中绑定到模型服务器的端点URL。以下是如何通过这个新部署的模型的REST接口获得实时预测:

故障排除

您可能会在某个时刻看到以下错误(部署模型,JWT不存在或已过期):

如果是这样,保持当前浏览器选项卡打开。创建一个新选项卡,然后重新登录。重新登录后关闭新选项卡。再次尝试执行导致错误的原始操作。

推论

通过模型服务器获取预测

一旦创建并启动部署,您需要通过实际服务从这个新创建的人工智能模型到实际应用程序的实时预测来完成“最后一英里”。

在本节中,您将学习如何建立一个样例Java客户端(可以很容易地集成到Tomcat或Java应用程序)中,以查询您刚刚用笔记本构建的模型。

模型服务器正在本地运行,它已在以下位置公开了一个REST端点:

http://[主机]:9008/endpoints/ourfirstdeployment/model/lstmmodel/default/

现在,将客户机配置为“speak rest”正确,并使用您选择的输入数据发送特定的查询。让我们看看如何得到这些预测,使用下面的Java客户端示例代码。

通过休息获得预测

要获得一个工作的skil模型服务器客户机,“Git克隆”存储在此处的项目

https://github.com/skymedio/skil_示例

使用以下命令:

$Git克隆吉特@github.com:skymedio/skil_examples.git

使用以下命令构建客户机应用程序JAR:

美元光盘技巧实例美元光盘样品API$MVN清洁包装

一旦构建了客户机应用程序,使用jar通过以下命令对skil的ai模型服务器进行rest调用:

$Java 罐子target/skil-ce-examples-1.0.0.jar快速启动http://host:9008/[skil_endpoint_name]

注释更换skil_端点名称]使用模型部署到的端点。

客户端示例代码的输出应该如下所示:

推理响应:推理。响应。分类结果[1],概率[0.9729845]预期标签:推理响应:推理。响应。分类结果[4],概率[0.8539419]预期标签:推理响应:推理。响应。分类结果[5],概率[0.9414516]预期标签:推理响应:推理。响应。分类结果[5],概率[0.94135857]预期标签:上面的输出显示了skil ai模型服务器返回的推理预测,参考特定标签在里面分类器。

这样,你已经用skil构建了你的第一个深度学习应用程序,从笔记本到部署的生产模型。不难,是吗?

观看此空间,了解有关生产中深入学习的更多应用程序的进一步教程。

快速启动


建议的编辑仅限于API参考页

您只能建议对标记正文内容进行编辑,但不符合API规范。