解读FastAPI异步化为transformers模型打造高性能接口解析

bash 复制代码
from fastapi import FastAPI
from transformers import AutoModel, AutoTokenizer
import numpy as np
from starlette.responses import JSONResponse
 
 app = FastAPI()

加载模型和分词器

bash 复制代码
model = AutoModel.from_pretrained("distilbert-base-uncased")
  tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")

异步函数用于将输入文本转换为模型需要的格式

bash 复制代码
  async def prepare_input_for_model(text: str):
       inputs = tokenizer.encode(text, return_tensors='pt')
           return inputs

异步函数用于模型预测

bash 复制代码
 async def get_prediction(inputs):
        outputs = model(inputs)
        return outputs.logits

异步接口用于处理HTTP请求并返回预测结果

bash 复制代码
   @app.post("/predict")
   async def predict(text: str):
             inputs = await prepare_input_for_model(text)
             outputs = await get_prediction(inputs)
             predictions = np.argmax(outputs.numpy(), axis=-1)
             return JSONResponse(content={"prediction": predictions[0]})

这段代码展示了如何使用FastAPI框架的异步功能来提高性能。通过异步函数prepare_input_for_model和get_prediction,我们能够处理并行任务,有效利用服务器资源。这样的设计模式对于需要处理大量并发请求的应用程序非常有用。

相关推荐
nwsuaf_huasir12 小时前
pycharm加载anaconda环境失败,无pytho解释器解决方案
ide·python·pycharm
studytosky12 小时前
Linux 基础开发工具(1):yum 与 vim 实用指南
linux·运维·服务器·git·python·编辑器·vim
刚哥的进化路12 小时前
Python实现基于UDP的文件传输:完整教程(附避坑指南)
python
编织幻境的妖12 小时前
Python with语句与上下文管理器详解
开发语言·数据库·python
水木姚姚13 小时前
TensorFlow在Microsoft Windows 11下编程
人工智能·windows·python·深度学习·tensorflow·ai编程
B站计算机毕业设计之家13 小时前
基于python京东商品销售数据分析可视化系统 Django框架 爬虫 大数据(源码)
大数据·爬虫·python·selenium·机器学习·数据分析·django
free-elcmacom13 小时前
机器学习进阶<1>像侦探一样思考——朴素贝叶斯分类器全解析
大数据·人工智能·python·机器学习·朴素贝叶斯
free-elcmacom13 小时前
机器学习进阶<4>探索数据中的物以类聚——直观理解k-均值聚类算法
人工智能·python·机器学习·k-means
0思必得013 小时前
[Web自动化] HTML元素的定位(Xpath)
前端·python·自动化·html·web自动化
云天徽上13 小时前
【数据可视化-162】数据见证大爱!企业捐款驰援香港数据可视化分析(Pyecharts实现)
开发语言·python·信息可视化·数据可视化·pyecharts