为了获得更多的控制权,我想将Mii Package 在FastAPI中。因此,我决定使用管道。
作为参考,我想运行类似以下内容的操作:
pipe = mii.pipeline("llama-2-7b-chat-hf")
@app.post("/generate")
async def generate(req):
return {"outputs": pipe(**(req.model_dump()))}
在这个过程中,我希望能够"释放"或"释放"管道中的资源。假设我想通过FastAPI中的端点替换正在运行的llama 2 7b为mistral 7b,并在启动mistral 7b之前释放GPU内存,可以实现这样的操作吗?类似于以下方式:
@app.post("/swap")
async def swap(req):
pipe.terminate()
pipe = mii.pipeline(req.model)
tensor_parallelism
和num_replicas
是否支持非持久化的管道?
1条答案
按热度按时间yiytaume1#
遗憾的是,我们目前没有简单易行的方法来拆除管道。这是我一直困扰的问题,也在我的待办事项列表中。我会看看这周是否能解决这个问题!
我们确实支持使用管道部署
tensor_parallelism
,但您需要使用deepspeed --num_gpus 2
启动命令进行部署。我想这在 fastapi 中会是个问题。我会尝试用 fastapi 进行测试,但在此期间,请查看我们如何使用 flask 在持久部署下搭建类似的端点:https://github.com/microsoft/DeepSpeed-MII/blob/main/mii/grpc_related/restful_gateway.py