NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模
我想在我的网络和移动应用程序中使用机器学习模型,但要做到这一点,我必须在某个地方托管我的机器学习应用程序。
托管预先训练的 ML 模型称为推理。 我只想添加一些 Python ML 代码并快速获得 REST API,但事实证明找到一种简单的方法来实现这一点比我预期的要困难。
“我只想添加一些 Python ML 代码并获得 REST API”
有很多托管提供商,包括 Amazon AWS 和 Google GCP 等大型提供商,但使用这些提供商的过程很复杂,并且通常需要构建自己的 Flask REST API。
幸运的是,@prundin 和 @abidlabs 有一个解决方案:Gradio 和 Huggingface Spaces。
1、在 Huggingface 上创建一个新空间
Huggingface 就像 GitHub,但适用于 ML 模型和应用程序。 Huggingface 上的“Space”是一个 ML 应用程序,你可以通过 Git 进行更新。 空间根据CPU类型定价,最简单的一个是免费的!
Gradio 是 ML 应用程序的用户界面组件(例如输入字段)库。
通过以下方式创建新空间:
- 转到 space并单击创建新空间。
- 如果不确定,请选择 OpenRAIL 许可证。
- 选择Gradio作为Space SDK。
2、本地开发设置
转到你的开发文件夹并克隆你的空间:
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
3、README 文件中的设置
README.md 包含你的应用程序的一些关键设置。
我在 Huggingface 的实时环境中遇到了一些错误,直到我意识到我必须锁定 Python 版本以使其与我本地使用的版本相同。 通过如下命令查看本地版本号:
python3 --version
然后将版本号添加到 README.md 中,如下所示:
python_version: 3.9.13
4、创建用户界面和 REST API
创建一个空白的 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
5、在 Huggingface 上测试应用
不管你是否相信,你现在已经有了一个带有 REST API 的实用应用程序!
在浏览器中打开如下网址:
https://huggingface.co/spaces/USER_NAME/SPACE_NAME
请参阅此处的示例 。
- 用户界面:你可以在名称框中输入内容,然后按提交。
- REST API 接口:在页面底部有一个名为“Use via API”的链接。 单击它以获取说明,但你现在可以使用 REST 调用应用程序:
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
}
6、在本地测试应用程序
在本地你可以运行:
python3 app.py
现在可以在 http://127.0.0.1:7860/
上以交互方式测试你的应用程序,并在 http://127.0.0.1:7860/run/predict
上访问 REST API。
修改app.py时需要停止(Ctrl+C)并重新启动应用程序。
7、更进一步
你现在可以探索 Huggingface 上的所有模型,包括 Stable Diffusion 2 和 GPT-Neo,并将它们添加到你的 Spaces 应用程序中。
请参阅完整的 ML 示例,你可以看到调用 ML 模型实际上只需要很少的代码行。
原文链接:Building an AI powered REST API with Gradio and Huggingface Spaces – for free!
BimAnt翻译整理,转载请标明出处