推荐:用 NSDT编辑器 快速搭建可编程3D场景
我想在我的网络和移动应用程序中使用机器学习模型,但要做到这一点,我必须在某个地方托管我的机器学习应用程序。
托管预先训练的 ML 模型称为推理。 我只想添加一些 Python ML 代码并快速获得 REST API,但事实证明找到一种简单的方法来实现这一点比我预期的要困难。
“我只想添加一些 Python ML 代码并获得 REST API”
有很多托管提供商,包括 Amazon AWS 和 Google GCP 等大型提供商,但使用这些提供商的过程很复杂,并且通常需要构建自己的 Flask REST API。
幸运的是,@prundin 和 @abidlabs 有一个解决方案:Gradio 和 Huggingface Spaces。
Huggingface 就像 GitHub,但适用于 ML 模型和应用程序。 Huggingface 上的“Space”是一个 ML 应用程序,你可以通过 Git 进行更新。 空间根据CPU类型定价,最简单的一个是免费的!
Gradio 是 ML 应用程序的用户界面组件(例如输入字段)库。
通过以下方式创建新空间:
转到 space并单击创建新空间。
如果不确定,请选择 OpenRAIL 许可证。
选择Gradio作为Space SDK。
转到你的开发文件夹并克隆你的空间:
git clone https://huggingface.co/spaces/USER_NAME/SPACE_NAME
cd SPACE_NAME
设置 Python、Gradio 等:
# Create and activate a “safe” virtual Python environment (exit with command “deactivate”)
python3 -m venv env
source env/bin/activate
# Create a .gitignore file to exclude the packages in `env` folder
echo "env/" >> .gitignore
# Install Gradio
pip3 install gradio
# Update the list of required packages (do this every time you add packages)
pip3 freeze > requirements.txt
README.md 包含你的应用程序的一些关键设置。
我在 Huggingface 的实时环境中遇到了一些错误,直到我意识到我必须锁定 Python 版本以使其与我本地使用的版本相同。 通过如下命令查看本地版本号:
python3 --version
然后将版本号添加到 README.md 中,如下所示:
python_version: 3.9.13
创建一个空白的 app.py 文件:
touch app.py
编辑app.py:
import gradio
def my_inference_function(name):
return "Hello " + name + "!"
gradio_interface = gradio.Interface(
fn = my_inference_function,
inputs = "text",
outputs = "text"
)
gradio_interface.launch()
使用 Git 将文件上传到 Huggingface:
git add .
git commit -m "Creating app.py"
git push
不管你是否相信,你现在已经有了一个带有 REST API 的实用应用程序!
在浏览器中打开如下网址:
https://huggingface.co/spaces/USER_NAME/SPACE_NAME
请参阅此处的示例 。
curl -X POST -H 'Content-type: application/json' --data '{ "data": ["Jill"] }' https://USER_NAME-SPACE_NAME.hf.space/run/predict
REST API将返回如下结果:
{
"data":[
"Hello Jill!"
],
"is_generating":false,
"duration":0.00015354156494140625,
"average_duration":0.00015354156494140625
}
在本地你可以运行:
python3 app.py
现在可以在 http://127.0.0.1:7860/ 上以交互方式测试你的应用程序,并在 http://127.0.0.1:7860/run/predict 上访问 REST API。
修改app.py时需要停止(Ctrl+C)并重新启动应用程序。
你现在可以探索 Huggingface 上的所有模型,包括 Stable Diffusion 2 和 GPT-Neo,并将它们添加到你的 Spaces 应用程序中。
请参阅完整的 ML 示例,你可以看到调用 ML 模型实际上只需要很少的代码行。
原文链接:Huggingface托管ML API — BimAnt