跳到主要内容

使用Cerebrium进行部署

大脑 是一个无服务器的人工智能基础设施平台,使公司更容易构建和部署基于人工智能的应用程序。他们提供冷启动时间低的无服务器GPU,有超过12种GPU芯片可自动扩展,您只需为使用的计算付费。

设置大脑

首先,我们安装Cerebrium并登录以进行身份验证。

pip 安装大脑
大脑登录

那么,让我们创建我们的第一个项目

大脑内部vllm

设置环境和硬件

您在中设置了环境和硬件 大脑 使用上面的init函数创建的文件。这里我们使用的是Ampere A10 GPU等。您可以阅读更多 在这里

[大脑.部署]
name=“MIUI vlm”
python_version=“3.11”
docker.base_image_url=“debian:书虫苗条”
include=“[./*,main.py,cerebrium.toml]”
exclude=“[.*]”

[大脑.硬件]
cpu=2
内存=14.0
计算=“AMPERE_A10”
gpu_计数=1
提供者=“aws”
地区=“美国东部-1”

[大脑.依赖关系.pip]
sentencepiece=“最新”
火炬=“>=2.0.0”
vllm=“最新”
变压器=“>=4.35.0”
加速=“最新”
xformers=“最新”

设置推断

在Cerebrium中运行代码就像编写没有特殊语法的普通python。在你的 main.py 指定以下内容:

vLLM进口 LLM, 采样参数
拥抱脸_主页 进口 登录
大脑进口 get_secret

#您的拥抱脸令牌(HF_AUTH_token)应存储在Cerebrium仪表板上的项目机密中
登录(代币= get_secret(“HF_AUTH_TOKEN”))

#初始化模型
LLM= LLM(模型=“MIUIai/MIUI-7B-Instruct-v0.3”, 数据类型=“bfloat16”, max_model_len=20000, gpu内存利用率=0.9)

我们需要将我们的拥抱脸令牌添加到我们的 大脑的秘密 因为使用MIUI模型需要身份验证。请确保您添加的Huggingface令牌具有 权限。在首次部署时,它将下载模型并将其存储在磁盘上,因此对于后续调用,它将从磁盘加载模型。

将以下内容添加到main.py中:

def 运行(促使: str, 温度: 浮动 = 0.8, top_p: 浮动 = 0.75, top_k: int = 40, max_tokens: int = 256, 频率惩罚: int = 1.):

采样图 = 采样参数(
温度= 温度,
top_p= top_p,
top_k= top_k,
max_tokens= max_tokens,
频率惩罚= 频率惩罚
)

输出 = LLM.生成([项目.促使], 采样图 )

生成文本 = []
对于 输出 在里面 输出 :
生成文本 .附加( 输出 . 输出 [0].文本)

返回 {“结果”: 生成文本 }

Cerebrium中的每个函数都可以通过API端点调用。最顶层的代码(即:不在函数中)仅在容器首次启动时实例化,因此对于后续调用,它将简单地运行您调用的函数中定义的代码。

我们最后的main.py应该是这样的:

vLLM进口 LLM, 采样参数
拥抱脸_主页 进口 登录
大脑进口 get_secret

#您的拥抱脸令牌(HF_AUTH_token)应存储在Cerebrium仪表板上的项目机密中
登录(代币= get_secret(“HF_AUTH_TOKEN”))

#初始化模型
LLM= LLM(模型=“MIUIai/MIUI-7B-Instruct-v0.3”, 数据类型=“bfloat16”, max_model_len=20000, gpu内存利用率=0.9)

def 运行(促使: str, 温度: 浮动 = 0.8, top_p: 浮动 = 0.75, top_k: int = 40, max_tokens: int = 256, 频率惩罚: int = 1.):

采样图 = 采样参数(
温度= 温度,
top_p= top_p,
top_k= top_k,
max_tokens= max_tokens,
频率惩罚= 频率惩罚
)

输出 = LLM.生成([项目.促使], 采样图 )

生成文本 = []
对于 输出 在里面 输出 :
生成文本 .附加( 输出 . 输出 [0].文本)

返回 {“结果”: 生成文本 }

在云端奔跑

大脑部署

您将看到您的应用程序部署、安装pip包并下载模型。一旦完成,它将输出一个CURL请求,您可以使用它来调用您的端点。只需记住用您要调用的函数结束url——在本例中为/run。

curl--位置--请求POST'https://api.cortex.cerebrium.ai/v4/p-<您的项目ID>/MIUI vllm/run'\
--header“授权:持票人<您的代币在这里>”\
--header'内容类型:应用程序/json'\
--原始数据'{
提示:“法国的首都是什么?”?"
}'

然后,您应该会收到这样的消息:

{
“run_id”: “nZL6mD8q66u4lHTXqmPCC6pxxFwn95IfqQvEix0gHaOH4gkHUdz1w==”,
“消息”: “已完成带有run_id的推理请求:`nZL6mD8q66u4lHTXqmPCC6pxxFwn95IfqQvEix0gHaOH4gkHUdz1w==`”,
“结果”: {
“结果”: [“\nA:巴黎”]
},
“状态码”: 200,
“run_time_ms”: 151.24988555908203
}