【Python】fastapi框架之Web部署机器学习模型

简介: 【Python】fastapi框架之Web部署机器学习模型

fastapi框架之Web部署机器学习模型


随着机器学习的广泛应用,如何高效的把训练好的机器学习的模型部署在Web端。


效果展示


fastapi之Web部署机器学习模型


安装第三方库


pip install fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install sklearn -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install jinja2 -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install python-multipart -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple some-package


训练模型


做了个小例子。用numpy随机生成训练集,使用线性回归进行训练,使用pickle库保存model模型。如下图所示

1684134263094.jpg

makeModel.py

import pickle
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
#创建数据
x=np.linspace(0,1,100).reshape(-1,1)
y=[i*np.random.uniform(0.5,0.7) for i in np.linspace(0,1,100)]
y=np.array(y)
model=LinearRegression()
model.fit(x,y)
y_pred=model.predict(x)
plt.plot(x,y)
plt.plot(x,y_pred)
plt.show()
with open('model.pickle', 'wb') as file:
    pickle.dump(model, file)

1684134290542.jpg


app.py

from fastapi import FastAPI,Form,Request
import uvicorn
from fastapi.templating import Jinja2Templates
import pickle
import numpy as np
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get('/')
def index(request: Request):
    return templates.TemplateResponse("index.html",{"request": request,'y':''})
@app.post('/')
def yPred(request: Request,argument=Form(...)):
    argument = argument
    lis = [[argument]]
    lis = np.array(lis).reshape(-1, 1)
    with open('model.pickle', 'rb') as f:
        model=pickle.load(f)
        y_pred=model.predict(lis)
    return templates.TemplateResponse("index.html",{"request": request,'y':{'x':argument,'y_pred':y_pred[0]}})
if __name__ == '__main__':
    uvicorn.run('app:app', port=8000)


index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="/" method="post">
        <input name="argument">
        <button>提交</button>
        {{y}}
    </form>
</body>
</html>

项目完整代码请点击我的云盘

提取码:6a1k

如有任何问题,欢迎在下方留言,谢谢!

相关文章
|
6月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
月之暗面发布开源模型Kimi K2,采用MoE架构,参数达1T,激活参数32B,具备强代码能力及Agent任务处理优势。在编程、工具调用、数学推理测试中表现优异。阿里云PAI-Model Gallery已支持云端部署,提供企业级方案。
378 0
【新模型速递】PAI-Model Gallery云上一键部署Kimi K2模型
|
8月前
|
数据采集 自动驾驶 Java
PAI-TurboX:面向自动驾驶的训练推理加速框架
PAI-TurboX 为自动驾驶场景中的复杂数据预处理、离线大规模模型训练和实时智能驾驶推理,提供了全方位的加速解决方案。PAI-Notebook Gallery 提供PAI-TurboX 一键启动的 Notebook 最佳实践
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
Cosmos on PAI系列一:PAI-Model Gallery云上一键部署NVIDIA Cosmos Reason-1
本篇文章介绍 Cosmos 最新世界基础模型 Cosmos Reason-1 如何在阿里云人工智能平台 PAI 上进行快速部署使用。
|
9月前
|
人工智能 JSON 算法
【解决方案】DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践
DistilQwen 系列是阿里云人工智能平台 PAI 推出的蒸馏语言模型系列,包括 DistilQwen2、DistilQwen2.5、DistilQwen2.5-R1 等。本文详细介绍DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践。
|
10月前
|
人工智能 运维 API
PAI-Model Gallery云上一键部署阶跃星辰新模型Step1X-Edit
4月27日,阶跃星辰正式发布并开源图像编辑大模型 Step1X-Edit,性能达到开源 SOTA。Step1X-Edit模型总参数量为19B,实现 MLLM 与 DiT 的深度融合,在编辑精度与图像保真度上实现大幅提升,具备语义精准解析、身份一致性保持、高精度区域级控制三项关键能力;支持文字替换、风格迁移等11 类高频图像编辑任务类型。在最新发布的图像编辑基准 GEdit-Bench 中,Step1X-Edit 在语义一致性、图像质量与综合得分三项指标上全面领先现有开源模型,比肩 GPT-4o 与 Gemin。PAI-ModelGallery 支持Step1X-Edit一键部署方案。
|
6月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI-Model Gallery云上一键部署gpt-oss系列模型
阿里云 PAI-Model Gallery 已同步接入 gpt-oss 系列模型,提供企业级部署方案。
|
机器学习/深度学习 人工智能 算法
Post-Training on PAI (3):PAI-ChatLearn,PAI 自研高性能强化学习框架
人工智能平台 PAI 推出了高性能一体化强化学习框架 PAI-Chatlearn,从框架层面解决强化学习在计算性能和易用性方面的挑战。
|
9月前
|
机器学习/深度学习 人工智能 算法
PaperCoder:一种利用大型语言模型自动生成机器学习论文代码的框架
PaperCoder是一种基于多智能体LLM框架的工具,可自动将机器学习研究论文转化为代码库。它通过规划、分析和生成三个阶段,系统性地实现从论文到代码的转化,解决当前研究中代码缺失导致的可复现性问题。实验表明,PaperCoder在自动生成高质量代码方面显著优于基线方法,并获得专家高度认可。这一工具降低了验证研究成果的门槛,推动科研透明与高效。
725 19
PaperCoder:一种利用大型语言模型自动生成机器学习论文代码的框架
|
8月前
|
机器学习/深度学习 人工智能 分布式计算
Post-Training on PAI (1):一文览尽开源强化学习框架在PAI平台的应用
Post-Training(即模型后训练)作为大模型落地的重要一环,能显著优化模型性能,适配特定领域需求。相比于 Pre-Training(即模型预训练),Post-Training 阶段对计算资源和数据资源需求更小,更易迭代,因此备受推崇。近期,我们将体系化地分享基于阿里云人工智能平台 PAI 在强化学习、模型蒸馏、数据预处理、SFT等方向的技术实践,旨在清晰地展现 PAI 在 Post-Training 各个环节的产品能力和使用方法,欢迎大家随时交流探讨。
|
10月前
|
机器学习/深度学习 算法 数据挖掘
PyTabKit:比sklearn更强大的表格数据机器学习框架
PyTabKit是一个专为表格数据设计的新兴机器学习框架,集成了RealMLP等先进深度学习技术与优化的GBDT超参数配置。相比传统Scikit-Learn,PyTabKit通过元级调优的默认参数设置,在无需复杂超参调整的情况下,显著提升中大型数据集的性能表现。其简化API设计、高效训练速度和多模型集成能力,使其成为企业决策与竞赛建模的理想工具。
365 12
PyTabKit:比sklearn更强大的表格数据机器学习框架

相关产品

  • 人工智能平台 PAI