应用常见问题
如何安装依赖?
以应用 SDK 为 Gradio 为例,将 python 依赖写入 requirements.txt 文件至仓库根目录即可。 以安装 NodeJs 为例,根目录写入 packages.txt 文件,重启应用将会自动使用 apt-get 安装。
当应用 SDK 为 Docker 时,将完全由您自定义环境, 需要您自己执行相关操作,本次竞赛环境中,为正常使用算力,需要使用 registry.gitee-ai.local/base/iluvatar-corex:3.2.0-bi100 作为基础镜像
应用中如何高速下载模型?
使用 transformers、diffusers 、huggingface_hub 等库载入模型将会从 Gitee AI 高速下载。您也可以使 Git 克隆模型。
在 应用 中默认即为内网高速下载。请勿修改环境变量 HF_ENDPOINT
。
下载格式一般为 hf-models/模型名
,举例如下:
- transformers
- huggingface
- diffusers
- git lfs
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
"hf-models/glm-4-9b-chat",
torch_dtype=torch.float16,
low_cpu_mem_usage=True,
trust_remote_code=True,
).to(0).eval()
from huggingface_hub import hf_hub_download
hf_hub_download("hf-models/sdxl-turbo", "sd_xl_turbo_1.0.safetensors", local_dir="./models/checkpoints")
from diffusers import DiffusionPipeline
DiffusionPipeline.from_pretrained("hf-models/sdxl-turbo", variant="fp16", use_safetensors=True, torch_dtype=torch.float16)
git clone https://gitee.com/hf-models/glm-4-9b-chat.git --depth=1 --single-branch --progress --verbose
-c lfs.url="http://lfs-service/hf-models/glm-4-9b-chat" ./checkpoints # 然后可以从 ./checkpoints 文件夹加载模型。
如何使用环境变量、秘钥?
在应用设置-功能中,您可以添加环境变量,使用方法参考: 在应用中使用环境变量、秘钥
如何让团队成员有权限推送代码到仓库?
应用设置 “成员管理” 可前往 Gitee 添加仓库成员。
如果使用 SSH 方式推送代码,需要 Gitee 账号添加 SHH 公钥 https://gitee.com/profile/sshkeys
应用显示 Running 为什么页面没有响应?
- 如果您查看日志,应用运行正常,您可以检查您的应用是否运行在 7860 端口。
- 或者检查应用是否运行在 0.0.0.0 ip 上,如果是其他 特定的 ip, 则可能无法访问。
为什么我的应用会出现 CORS、CRSF 等报错,导致页面无法访问?
- 您需要取消应用的访问限制,例如 jupyter-lab, 存在配置
--NotebookApp.allow_remote_access=True
允许远程访问,--NotebookApp.allow_origin=*
允许跨域请求。 Streamlit 也有类似的配置,例如
ENTRYPOINT ["streamlit", "run", "app.py", \
"--server.port=7860",\
"--server.enableCORS=false", \
"--server.headless=true", \
"--server.enableXsrfProtection=false", \
"--server.fileWatcherType=none", \
"--global.developmentMode=false", \
"--server.enableWebsocketCompression=false", \
"--browser.gatherUsageStats=false"]
通常这些配置都可添加到启动参数上。
如何排查错误
您可以点击界面的日志按钮,查询日志信息,以及提供的运行时信息。将会提供当前状态的原因、消息,上次启动失败的报错信息、重启次数、退出码等。
为什么我的应用一直在 Pending 状态?
可能是正在分配资源,或平台 CPU、内存资源不足,请耐心等待
应用各类状态是什么意思?
状态名称 | 描述 |
---|---|
No_app_file | 应用没有入口文件 |
Building | 应用正在拉取代码、构建中 |
Readying | 应用正在准备中,可能是正在执行仓库代码、下载模型 |
Running on CPU | 应用运行在 CPU 算力上 |
Running on Nvidia A10 | 应用运行在 Nvidia A10 显卡算力上 |
Pending | 应用正在等待中,可能是正在分配资源中、资源不足 |
Paused | 用户手动暂停应用 |
Stopped | 应用异常停止,可能是系统或代码出现异常 |
Runtime_error | 应用运行时出现错误,可能是代码或系统错误 |
Sleeping | 应用休眠中,满足休眠倒计时,效果同暂停 |
应用设置中的“出厂重启”和“重启”有什么区别?
类型 | 出厂重启 | 重启 |
---|---|---|
是否拉取仓库最新代码 | 是 | 否 |
是否重新构建 | 是 | 否 |
是否重新下载依赖 | 是 | 否 |
是否重新执行仓库代码 | 是 | 是 |
是否更新硬件配置 | 是 | 是 |
是否更新环境变量 | 是 | 是 |
如果您更新了仓库代码,应用将会识别并在界面顶部提示重启,此时重启与出厂重启效果一致。
应用的生命周期是?
应用内部的流程为:
- 用户选择 SDK,创建应用
- 用户写入代码到仓库
- 根据 SDK 和代码构建为 Docker 镜像,安装依赖
- 启动镜像,执行仓库中的用户代码,最终启动服务到 7860 端口
- 用户可在浏览器在线访问应用
如何在应用中使用环境变量、秘钥?
您可以正常使用代码获取系统环境变量。
注意,秘钥也会作为环境变量注入,但秘钥被设置后不可见,也无法被 Fork。
以 Python 为例,获取环境变量:
如果您在应用设置中添加了 键: G_TOKEN
值:b53de003db22348606b
import os
G_TOKEN = os.getenv('G_TOKEN')
print(G_TOKEN) # 输出: b53de003db22348606b
如何安装 依赖?
- python 依赖
- SDK 为 Gradio、Streamlit 时,将 python 依赖写入 requirements.txt 即可。
- 系统依赖
- 例如安装 NodeJs,根目录写入 packages.txt 文件,重启应用将会自动使用 apt-get 安装。
nodejs
npm
下载依赖镜像源可以自定义吗?
Gitee AI 默认使用了国内镜像源,您可以自行修改镜像源地址加速,例如 Python requirements.txt 文件:
--extra-index-url https://mirrors.cloud.tencent.com/pypi/simple
gradio==4.31.5
推荐使用的国内源源:
- 腾讯 https://mirrors.cloud.tencent.com/pypi/simple
- 阿里 https://mirrors.aliyun.com/pypi/simple/
- 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
- 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
免费存储空间是多少?存储的数据会消失吗?
目前应用免费临时存储为 60GB,如果您未购买持久存储,则临时存储在应用重启、超额时会被清空。
参考:应用存储
为什么我的应用在页面中高度不对?
如果您自定义了程序,请在 html 中引用即可:
<script src="https://e-assets.gitee.com/gitee-ai/js/iframeResizer.contentWindow.min.js" async></script>
创建的应用,Web 界面太小,如何全屏?
应用设置 - 功能 - 应用 Header 布局中可选择布局。
如何让我的应用被推荐?
如果您开发了优秀、好玩、有趣的应用,您可以前往 反馈 提供应用信息申请