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翻译整理,转载请标明出处