当前位置: 首页 > news >正文

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

from fastapi import FastAPI
from transformers import AutoModel, AutoTokenizer
import numpy as np
from starlette.responses import JSONResponseapp = FastAPI()

加载模型和分词器

model = AutoModel.from_pretrained("distilbert-base-uncased")tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")

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

  async def prepare_input_for_model(text: str):inputs = tokenizer.encode(text, return_tensors='pt')return inputs

异步函数用于模型预测

 async def get_prediction(inputs):outputs = model(inputs)return outputs.logits

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

   @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,我们能够处理并行任务,有效利用服务器资源。这样的设计模式对于需要处理大量并发请求的应用程序非常有用。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【在Linux世界中追寻伟大的One Piece】应用层协议HTTP
  • 关于Java中@Component的使用中出现@Autowired为NULL的问题
  • 模型 FIRE沟通法
  • 视频插帧—— RIFE 和 IFNet 的机制和应用
  • Code Practice Journal | Day53_Graph04
  • 力扣1442.形成两个异或相等数组的三元组数目
  • android studio 设置gradle jdk
  • 工业4G路由器
  • Android 消息机制Handler完全解析(一)
  • 【Qt】常用控件QProgressBar
  • C++题解(23) 信息学奥赛一本通:1026:空格分隔输出
  • 初识redis:Zset有序集合
  • ESP RainMaker OTA 自动签名功能的安全启动
  • ssrf漏洞复现
  • 《机器学习》—— 通过下采样方法实现逻辑回归分类问题
  • [deviceone开发]-do_Webview的基本示例
  • 【React系列】如何构建React应用程序
  • es6
  • HTTP请求重发
  • isset在php5.6-和php7.0+的一些差异
  • JavaScript类型识别
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Vue 2.3、2.4 知识点小结
  • Vue UI框架库开发介绍
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Web标准制定过程
  • 给github项目添加CI badge
  • 机器学习中为什么要做归一化normalization
  • 浏览器缓存机制分析
  • 前端攻城师
  • 前端面试之CSS3新特性
  • -- 数据结构 顺序表 --Java
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 优秀架构师必须掌握的架构思维
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • $forceUpdate()函数
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)Elastix图像配准:3D图像
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (c语言)strcpy函数用法
  • (k8s中)docker netty OOM问题记录
  • (备忘)Java Map 遍历
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)ssm高校实验室 毕业设计 800008
  • (十八)三元表达式和列表解析
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (四)js前端开发中设计模式之工厂方法模式
  • **python多态
  • .NET C# 使用 iText 生成PDF
  • .NET大文件上传知识整理
  • /etc/sudoer文件配置简析