本文主要介绍部署机器学习模型的一种自动化方式,如题所示,通过 FlaskDocker, JenkinsKubernets 实现。基本原理就是通过 Flask 提供 RESTful API 接收客户端的 predict 请求,然后将这个服务打包成一个 docker image 便于部署和迁移,当代码或模型更新时通过 Jenkins 触发自动构建新的 docker image,而通过 kubernets 管理容器则让整个服务具备伸缩性和可靠性。本文主要参考了 Deploy a machine learning model in 10 minutes with Flask, Docker, and Jenkins,并在其基础上进行了完善和拓展,如通过一个简单的 shell script 实现 jenkins 的触发功能,并添加了 kubernets 部分的介绍等。本文的对应的所有代码可从 DeployMachineLearningModel 获取。

阅读全文 »

本文主要介绍在 LeetCode 题目 496. Next Greater Element I975. Odd Even Jump503. Next Greater Element II 中需要解决的共同问题:next greater element,就是对于一个数组中的每个 element,求出下标和值都比其大的一个 element,根据要求不同,这个问题又可分为 nearest of next greater elements 和 smallest of next greater elements,前者指的是 next greater elements 中离当前 element 最近的那个,后者指的是 next greater elements 中值最小的那个。两个问题都可通过 stack 解决,后者也可通过 treemap 解决。最后会将原来的问题进行的拓展,将原来的数据改成头尾相接的,其解决方法是将来的数组进行 duplicate, 然后把环解开,详细请看后文。

阅读全文 »

本文是 Effective Go 中的一些摘记,主要涉及 golang 中的语法、技巧、风格等。为了尽可能保持原文意思,会通过英文记录相关的知识点。

阅读全文 »

最近看到一篇关于 MLE (Maximum Likelihood Estimation) 和 MAP(Maximum A Posteriori) 的文章,写的很好,非常值得一看,文章链接为 聊一聊机器学习的 MLE 和 MAP:最大似然估计和最大后验估计,本文几乎不加修改地转载了文章,侵删。

阅读全文 »

本系列文章是学习课程 6.824: Distributed Systems 时的一些学习笔记,整个课程的相关材料已整理至 DistributedSystemInGo。本文是 LEC3 的内容,介绍了分布式文件系统 GFS,GFS 为 MapReduce 提供了存储,同样是出自 Google,同样是年代久远,但是其中的一些设计思想同样值得我们参考。

阅读全文 »

本系列文章是学习课程 6.824: Distributed Systems 时的一些学习笔记,整个课程的相关材料已整理至 DistributedSystemInGo。本文是 LEC2 的内容,主要介绍了 RPC 的概念并通过 RPC 实现了一个简单的 c/s 架构的 kv 数据库;同时介绍了多线程编程并通过两种方式实现了一个多线程爬虫。

阅读全文 »

一直都想系统性地学习一下分布式系统的一些理论,所以打算开个坑学习一下 MIT 的课程 6.824: Distributed Systems 。本文主要是 LEC 1 中的内容,简单介绍了分布式系统的几个核心问题,以及经典的分布式计算框架 - MapReduce, 虽然这是耳熟能详的一个框架(或者说是编程范式)了,但是其设计思想至今还是非常值得参考的。

阅读全文 »

EE (Exploitation & Exploration) 问题在计算广告 / 推荐系统中非常常见,甚至在更广义的范围上,任意决策问题都会牵涉到 EE 问题。简单来说,这个问题就是要解决的是在决策时到底是根据已有经验选择最优的策略 (Exploitation),还是去探索一些新的策略来提升未来的收益 (Exploration)。本文主要介绍解决这个问题的三种比较常见的方法:随机方法,UCB 方法,Thompson sampling 方法,侧重于方法的具体流程和基本思想。

阅读全文 »
0%