用Azure快速创建机器学习应用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cuiwader/article/details/78719364

更新

Azure Machine Learning Workbench & Experimental已经被弃用,并且被Azure Machine Learning service取代。Python用户可以通过Azure Machine Learning SDK for Python使用该service。SDK还支持Auto ML。SDK的介绍在这里:https://docs.microsoft.com/en-us/python/api/overview/azure/ml/intro?view=azure-ml-py

 

以下是之前的文章:

最近看了一些Azure上面做大数据分析和机器学习模型的框架和工具,感觉挺好的,已经形成了一个闭环,可以非常快捷的创建机器学习的应用。这里通过一个虚构的例子,简单列举一下相关的几个技术。有兴趣的可以阅读微软的官方文档详细了解。

 

Azure Machine Learning Workbench & Experimental

我训练出来了一个很厉害的分类模型,给我一段时间的股价,我能告诉你明天股票是涨是跌。但是怎么我怎么才能用它呢?一个自然的想法是我要建立一个RESTful的Web App,接受输入数据,传递给模型做predict,拿到输出返回。于是噩梦来了,从模型到Web App,这里面的工作量不小,并且我不感兴趣,我感兴趣的只是预测股票明天走势的服务。这里就需要用到Azure Machine Learning Workbench & Experimental了。只需要一点代码,它就可以帮我们捕捉模型的输入和输出,并且建立符合Swagger规范的Web App。Web App的运行使用了docker技术,支持cluster。具体请参考:https://docs.microsoft.com/en-us/azure/machine-learning/preview/

 

Azure Event Hubs

机器学习模型的Web App有了,但是我需要给它喂数据它才能出结果啊。对于股票来说,每天有大量的交易数据产生,怎么处理它们呢?首先需要用到的是Azure Event Hubs。每个股票创建一个Event Hub,有了交易数据进来就放到对应的股票的Event Hub。至于后面怎么处理,就不需要关心了,解耦了后续的逻辑。事实上,Event Hub可以自动把数据保存在数据库,Azure Blob,Azure Data Lake等地方,只需要在Azure Portal上面动动鼠标。详情:https://docs.microsoft.com/en-us/azure/event-hubs/

 

Azure Stream Analytics

交易数据不能直接给模型,还需要ETL,需要按照Time Window做Aggregation,Azure Stream Analytics可以不需要编程,就可以直接从Azure Event Hubs抓取数据,然后用类似SQL的语法分析和处理数据(并且提供了Time Windows)的支持,然后再输出到另一个Azure Event Hubs。注意输出到Azure Event Hubs也不需要编程,在Azure Portal上面动动鼠标就可以了。详情:https://docs.microsoft.com/en-us/azure/stream-analytics/

 

Azure Functions

说了这么多,还是没有调到我的机器学习Web App啊,别急,Azure Functions来了。Azure Functions实现了Serverless的概念,写一段code,不用管它在哪里执行,设置好Trigger和输入,Trigger发生了,这段code就回被执行。Trigger可以是HTTP Request,也可以是Azure Event Hubs上的Event。输出同样也支持很多种类,甚至是短信。那么我写一个Azure Function,从Azure Stream Analytics的Event Hub接收数据,调用人工智能Web App,结果再输出到Event Hub或者数据库。这样所有的技术都粘合起来了:Data -> Azure Event Hubs -> Azure Stream Analytics -> Azure Function -> Machine Learning Web App。详情:https://docs.microsoft.com/en-us/azure/azure-functions/

 

BUT?

这一套流程,有一部分和Apache的一系列框架和工具很接近。如果想用Apache系列的产品,实际上Azure也是支持的,即Azure对于部分功能,提供了两个产品线的支持。

 

AND?

如果想尝试上文提到的这些技术,可以申请一个免费的Azure账户,不过需要注意的是,注册账户的时候,地区不能选择中国。

 

 

展开阅读全文

没有更多推荐了,返回首页