怎么为机器学习工程设计Python接口

技术怎么为机器学习工程设计Python接口本篇内容主要讲解“怎么为机器学习工程设计Python接口”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么为机器学习工程设计Pyth

本文主要讲解如何为机器学习工程设计Python接口。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖学习“如何为机器学习工程设计Python接口”!

1.预测器只是一个Python Cortex。Cortex的核心是我们的预测器,本质上是一个预测API,包括所有的请求处理代码和依赖关系。预测器接口为这些预测API实现了一些简单的需求。

因为Cortex使用微服务来服务模型,所以预测器接口密切关注两件事:

初始化模型

提供预测

本着这种精神,Cortex的预测接口需要两个函数,即剩下的init__()和predict(),它们或多或少地实现了你所期望的:

importtorchf from transformers import pipeline classpysonpredictor : def _ _ init _ _(self,config):#UseGPUs,ifavailable device=0if torch . cuda . is _ available()-else-1 # Initializemodel self . summer=pipeline(任务=' summary ',设备=设备)defpredict(self,有效负载): # Generatepredictionsummary=self . summary(有效负载['text'],num_beams=4,length _ pension=2.0,最大值

初始化后,您可以将预测器视为Python对象,当用户查询端点时,将调用它的单个predict()函数。

这种方法最大的优点之一是对任何有软件工程经验的人来说都是直观的。不需要接触数据管道或模型训练代码。模型只是一个文件,预测器只是一个导入模型并运行predict()方法的对象。

然而,除了语法吸引力之外,这种方法还提供了一些关键的好处,即它如何补充更广泛的皮层方法。

ction>

2. 预测只是一个HTTP请求

为生产中提供预测服务而构建接口的复杂性之一是,输入几乎肯定会与模型的训练数据不同,至少在格式上是这样。

这在两个层面上起作用:

  • POST请求的主体不是一个NumPy数组,也不是您的模型用来处理的任何数据结构。

  • 机器学习工程就是使用模型来构建软件,这通常意味着使用模型来处理它们没有受过训练的数据,例如使用GPT-2来编写民间音乐。

因此,预测器接口不能对预测API的输入和输出固执己见。预测只是一个HTTP请求,开发人员可以随意处理它。例如,如果他们想部署一个多模型端点,并基于请求参数查询不同的模型,他们可以这样做:

import torchfrom transformers import pipelinefrom starlette.responses import JSONResponse
class PythonPredictor:    def __init__(self, config):        self.analyzer = pipeline(task="sentiment-analysis")        self.summarizer = pipeline(task="summarization")
    def predict(self, query_params, payload):        model_name = query_params.get("model")        if model_name == "sentiment":            return self.analyzer(payload["text"])[0]        elif model_name == "summarizer":            summary = self.summarizer(payload["text"])[0]        else:            return JSONResponse({"error": f"unknown model: {model_name}"}, status_code=400)     

虽然这个界面让开发者可以自由地使用他们的API做什么,它也提供了一些自然的范围,使皮质在基础设施方面更加固执己见。

例如,在后台Cortex使用FastAPI来设置请求路由。Cortex在这一层设置了许多与自动排序、监控和其他基础设施功能相关的过程,如果开发人员需要实现路由,这些功能可能会变得非常复杂。

但是,因为每个API都有一个predict()方法,所以每个API都有相同数量的路由—1。假设这允许Cortex在基础设施层面做更多的事情,而不限制工程师。

3.服务模型只是一个微服务

对于在生产中使用机器学习的人来说,规模是一个主要的问题。型号可能会很大(GPT-2大约是6 GB),计算成本高,并且可能有很高的延迟。特别是对于实时推断,扩大规模来处理流量是一项挑战——如果你的预算有限,情况更是如此。

为了解决这个问题,Cortex把预测器当作微型服务,可以水平伸缩。更具体地说,当开发人员进行Cortex部署时,Cortex将包含API,旋转为推理准备的集群,并进行部署。然后,它将API公开为负载平衡器背后的web服务,并配置自动缩放、更新和监视:

怎么为机器学习工程设计Python接口

预测器接口是此过程的基础,尽管它“只是”一个Python接口。

预测器接口所做的是强制打包代码,使其成为推理的单个原子单元。单个API所需的所有请求处理代码都包含在一个预测器中。这使得大脑皮层能够很容易地衡量预测因素。

通过这种方式,工程师不必做任何额外的工作——当然,除非他们想做一些调整——准备一个用于生产的API。一个皮层的部署是默认的生产准备就绪。

到此,相信大家对“怎么为机器学习工程设计Python接口”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/118550.html

(0)

相关推荐

  • kcl方程,基尔霍夫解光的电磁波方程

    技术kcl方程,基尔霍夫解光的电磁波方程1、假设各支路电流正方向及回路的绕行方向kcl方程。
    2、应用KCL列出节点的电流方程。对于有n个节点的电路,只能选取n-1个节点列方程。
    3、应用KVL列出回路的电压方程。对于有

    生活 2021年10月19日
  • 抖音点赞在线自助平台24小时,抖音24小时秒单业务平台好用吗

    技术抖音点赞在线自助平台24小时,抖音24小时秒单业务平台好用吗现在抖音火遍大江南北,玩抖音的人是越来越多,想要让自己的作品上热门,就少不了需要粉丝,很多同学想到了怎么快速涨粉丝涨赞等等,那么抖音1000粉丝和抖音100

    测评 2021年11月9日
  • qq提醒,QQ有没有群的提醒功能

    技术qq提醒,QQ有没有群的提醒功能1qq提醒、对某一好友添加定时提醒功能:、打开手机QQ,进入与好友的聊天窗口,点击最下面的“+”按钮打开扩展面板,点击“提醒”功能。  2、在打开的“创建提醒”界面中,输入“提醒内容”

    生活 2021年10月30日
  • oraclepdb库(oracle跨pdb互访)

    技术Oracle怎么实现跨平台传输PDB本篇内容主要讲解“Oracle怎么实现跨平台传输PDB”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle怎么实现跨平台传输PD

    攻略 2021年12月21日
  • vue中router-view组件怎么用

    技术vue中router-view组件怎么用这篇文章主要介绍了vue中router-view组件怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在开发

    攻略 2021年10月25日
  • 怎么使用数据泵的parfile

    技术怎么使用数据泵的parfile本篇内容介绍了“怎么使用数据泵的parfile”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年11月9日