1 什么是huggingface
Hugging Face 是一个专注于人工智能(尤其是自然语言处理,NLP)的开源平台和社区,它为开发者和研究人员提供了一个集模型、数据集、工具和资源于一体的生态系统。Hugging Face 的核心产品是 Transformers 库,这是一个用 Python 编写的开源库,包含了大量预训练的 NLP 模型,支持多种深度学习框架(如 PyTorch、TensorFlow、JAX)和硬件平台(如 CPU、GPU、TPU)。此外,Hugging Face 还提供了一个在线平台 HuggingFace Hub,用户可以在上面发布、共享和探索预训练模型、数据集和演示文件。
简单来说就是huggingface是全球最大的模型托管平台厂商。

2.huggingface免费资源
Hugging Face 的 Spaces 平台为用户提供了一个免费的 CPU 空间,适用于部署和展示小型演示和应用程序。根据提供的信息,免费 CPU 空间的默认配置是 2 个 vCPU 和 16GB 内存 ,并且提供 50GB 的临时磁盘空间 。这种配置允许用户在不承担初始成本的情况下运行简单的 AI 模型或 Web 应用程序。
这样配置的服务器资源在云服务器厂商大概多少钱呢?我们看一下



粗略的估算一下这样的配置1年至少也要1000多块钱。通过下面的方案我们这钱就省了,哈哈是不是挺爽的。下面介绍下如何实现这个免费资源。
登录一下huggingface。(没有账号的可以自己注册一个)

我们点击space进入创空间,然后点击new space 可以创建一个新的space,我们填写space name, Short description,License
创建space
在Space SDK 这里我们有3个人选项,一个是基于gradio 模版,一个是基于docker模版,一个static(静态页面)
docker
服务器资源这里我们可以选择2CPU 16GB free 免费的资源
服务这里我们选择public 如果调试的话可以考虑使用private

上面的配置选择完成后,我们就可以点击"create space" 来创建空间了。
创建完成后我们就可以看到 一个空项目

提交代码
创建完成后我们把这个空项目下载到本地,使用下面的命令执行
bash
git clone https://<你的账号>:<你的访问令牌>@huggingface.co/spaces/zhouhui/pdftranslate_web

下载完成后我们把需要在huggingface 部署代码部署到当前代码目录结构下。

使用git 命令提交代码。 这里需要注意考虑代码安全性,huggingface 代码的提交需要使用到 使用Access Tokens 我们可以在huggingface 管理账号创建

我们使用vscode 等开发工具提交代码

构建程序包
提交后push 代码仓库,huggingface 会自动构建

构建完成后我们就可以访问镜像包里面包含的jupyter notebook 页面了

使用jupyter notebook
我们输入访问jupyter token (页面访问账号),这样我们就进入jupyter notebook 开发代码界面了。

后面我们就可以借助这个管理页面操控容器内部部署我们自己的应用程序了。
应用程序发布
上面容器镜像里面我们包含了一个叫做pdftranslate_web的项目。项目的源码我已经开源的 地址是:github.com/wwwzhouhui/...
我们点jupyter notebook terminal终端进入 shell 窗口中

进入容器内部输入ls -lh查看代码目录

代码目录不在左边区域,我们复制到/data 目录下。
bash
cp -rf pdftranslate_web/ /data

这样我们就可以通过命令行启动程序了。
bash
cd /data/pdftranslate_web/
# 安装依赖包
uv sync

arduino
uv run python scripts/run_server.py --host 0.0.0.0 --port 8000
uv run python scripts/run_gradio.py --server-url http://localhost:8000 --port 7861


通过上面的方式我们就在容器内部启动了一个后端接口和一个基于gradio 页面了。
3.容器的拨测
目前对于使用免费 CPU 的 Spaces,huggingface其默认执行时间可能受到平台策略的限制。例如,某些 Spaces 在未使用时会进入"睡眠"状态,并且在一段时间内没有活动后会被自动暂停。根据,Hugging Face 的免费空间每 48 小时如果没有活动就会自动停止服务。
也就是说 48个小时没有请求化我们的容器就进入睡眠状态,这样时候部署在容器的内部程序就终止了,从而达不到免费永久使用的目的。
我们可以借助另外一些脚本对这个页面进行访问,从而使其容器达到保活状态。我们可以借助一个开源项目github.com/louislam/up...
来实现在线站点的拨测,从而达到保活目的。
uptime-kuma部署
找一台服务器我这里就拿我的火山云服务器部署
bash
docker run -d --restart=always -p 8009:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

监控页面添加
我们访问刚才添加的uptime-kuma系统http://14.103.204.132:8011

输入账号和密码进入后台管理

我们把上面huggingface 部署的jupyter notebook 地址添加实现监控。
ClawCloud部署
没有服务器的小伙伴也可以借助ClawCloud来实现部署,这爪子云之前给大家介绍过 可以实现每个月5美金的白嫖。
不熟悉的小伙伴可以看我之前的文章《01-N8N教程-手把手教你搭建 N8N 自动化工作流:从安装到云部署全流程实战

部署完成后我们就可以访问地址ayhdatvyuhmf.ap-southeast-1.clawcloudrun.com
4.说明
有的小伙伴会提出问题,上面的jupyter notebook 能运行程序,但是如果我想对外接口服务或者WEB访问怎么办?呵呵 这个问题嘛,我就不回答了,聪明小伙伴应该可以想到如何操作。由于篇幅有限,这里就不展开了。另外这里也不属于正常软件开发范围,文章写出来也不定能发的出去。感兴趣的小伙伴可以私下交流。
5.总结
今天主要带大家了解了如何利用 Hugging Face 的免费 CPU 服务器资源,从创建 Space 空间、提交部署代码,到通过 Jupyter Notebook 运行应用程序,再到借助 uptime-kuma 或 ClawCloud 实现容器保活,完整展示了免费利用 Hugging Face 资源部署应用的全流程。
总的来说,通过此次实践,我们充分体验到了 Hugging Face 平台在资源提供和应用部署方面的便利性。它为开发者提供了免费的 CPU 资源支持,简化了应用部署的流程,让我们能以极低的成本实现应用的搭建与运行,为小型演示、工具开发等场景提供了实用且经济的解决方案。
感兴趣的小伙伴可以按照本文步骤去尝试利用 Hugging Face 的免费资源,部署自己的应用程序,体验低成本开发的便捷。今天的分享就到这里结束了,我们下一篇文章见。