2026/5/20 13:28:55
网站建设
项目流程
wap手机网站尺寸,网站策划书怎么写,抖音代运营违法吗,wordpress首页错误Speech Seaco Paraformer启动失败#xff1f;run.sh脚本执行问题排查
1. 问题定位#xff1a;为什么/bin/bash /root/run.sh会失败#xff1f;
当你在终端输入 /bin/bash /root/run.sh 却看到报错、无响应、或界面无法访问#xff08;如 http://localhost:7860 打不开run.sh脚本执行问题排查1. 问题定位为什么/bin/bash /root/run.sh会失败当你在终端输入/bin/bash /root/run.sh却看到报错、无响应、或界面无法访问如http://localhost:7860打不开这通常不是模型本身的问题而是环境执行链中的某个环节被卡住了。很多用户第一反应是“模型坏了”或“镜像有问题”但实际90%以上的启动失败都出在run.sh这个看似简单的脚本上。我们不猜、不跳步直接从脚本执行的真实路径开始排查run.sh是整个 WebUI 的“总开关”它负责检查 Python 环境和依赖是否就绪启动 Gradio 服务WebUI 核心加载 Paraformer 模型权重约 1.2GB绑定端口7860并监听请求它不是黑盒——你完全可以在终端里逐行运行它看清哪一步停住了。关键提醒不要直接双击或右键运行run.sh必须在终端中用bash -x方式执行才能看到每条命令的真实输出。2. 排查四步法从终端输出找真相2.1 第一步用调试模式运行脚本捕获完整日志在服务器终端中执行cd /root bash -x ./run.sh 21 | tee run_debug.logbash -x让 shell 显示每一条执行的命令带前缀21把错误信息stderr也重定向到标准输出| tee run_debug.log同时打印到屏幕 保存到文件方便回溯正常流程应类似 python3 -c import torch; print(torch.cuda.is_available()) True python3 -m pip list | grep gradio gradio 4.41.0 python3 webui.py --share --port 7860 Running on local URL: http://127.0.0.1:7860❌ 如果卡在某一行比如停在 python3 webui.py ...不再往下走说明问题就在这里。2.2 第二步重点检查三个“高频断点”2.2.1 断点一CUDA不可用 → GPU识别失败常见报错False ... OSError: libcudnn.so.8: cannot open shared object file: No such file or directory原因系统未安装 NVIDIA 驱动或驱动版本太低需 ≥525CUDA Toolkit 未正确配置nvcc -V报错或显示为空PyTorch 安装的是 CPU 版本torch.cuda.is_available()返回False快速验证nvidia-smi # 应显示GPU型号和温度 nvcc -V # 应显示 CUDA 版本如 12.1 python3 -c import torch; print(torch.__version__, torch.cuda.is_available())正确输出示例2.1.0cu121 True❌ 若为False→ 先确认是否真有 GPUlspci | grep -i nvidia→ 若有重装 PyTorch 官方 CUDA 版pip3 uninstall torch torchvision torchaudio -y pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu1212.2.2 断点二端口被占用 → 7860 已被其他进程霸占常见现象脚本执行到python3 webui.py --port 7860后无响应或报错OSError: [Errno 98] Address already in use验证命令ss -tuln | grep :7860 # 或 lsof -i :7860若有输出如python3 12345 root ...说明端口正被占用。解决方法# 强制杀掉占用进程谨慎使用 kill -9 12345 # 或换端口启动临时绕过 python3 webui.py --port 7861 # 然后访问 http://localhost:7861小技巧run.sh中可修改--port参数避免冲突。2.2.3 断点三模型加载失败 → 权重文件缺失或路径错误常见报错FileNotFoundError: [Errno 2] No such file or directory: /root/models/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch检查路径真实性ls -lh /root/models/ # 正常应看到类似 # speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/ # └── model.pth # └── config.yaml # └── vocab.txt若目录不存在→ 检查镜像是否完整下载部分镜像需首次运行时自动拉取模型→ 手动下载模型推荐方式cd /root/models git clone https://www.modelscope.cn/Linly-Talker/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch.git注意不要用modelscopeCLI 下载——该模型在 ModelScope 上为私有仓库ms download会失败必须用git clone。3. run.sh 脚本精读每一行都在做什么别把它当黑盒。下面是对/root/run.sh的逐行功能解析基于科哥公开版本 v1.0.0#!/bin/bash # 第1行声明这是 bash 脚本必须否则可能被 sh 解释导致语法错误 cd /root # 第3行强制进入根目录确保后续路径相对正确关键若当前路径不对webui.py 找不到模型 source /root/venv/bin/activate # 第5行激活 Python 虚拟环境所有依赖都在这里漏这步没装包 export PYTHONPATH/root:$PYTHONPATH # 第7行把项目根目录加入 Python 模块搜索路径否则 import webui 会失败 python3 -m pip install -r requirements.txt -q # 第9行静默安装依赖-q 表示不输出过程。若此处卡住大概率是 pip 源慢或网络问题 python3 webui.py --share --port 7860 # 第11行真正启动服务。--share 开通公网临时链接可选--port 指定端口最容易被忽略的陷阱如果你手动改过webui.py路径或把项目挪到了/home/user/下但run.sh仍写cd /root那必然失败。venv目录被误删source命令会报No such file or directory但因-q参数被静默你根本看不到。自查清单执行前快速扫一遍[ ]ls /root/run.sh存在且有执行权限chmod x /root/run.sh[ ]ls /root/venv/bin/activate存在[ ]ls /root/webui.py存在[ ]ls /root/models/...模型目录存在且非空[ ]nvidia-smi可见 GPUtorch.cuda.is_available()为True4. 实战修复案例3个真实用户问题还原4.1 案例一WSL2 用户启动白屏无报错现象bash -x ./run.sh最后停在python3 webui.py ...浏览器打不开7860但终端无任何错误。排查发现WSL2 默认不支持 GUIGradio 的--share和本地绑定需额外配置。解决方案# 改用 host 绑定非 localhost python3 webui.py --server-name 0.0.0.0 --port 7860 # 然后在 Windows 浏览器访问http://localhost:7860 # 或查 WSL IPip addr show eth0 | grep inet | awk {print $2} | cut -d/ -f14.2 案例二国产显卡昇腾/寒武纪无法启动现象torch.cuda.is_available()返回False但npu-smi显示昇腾卡正常。原因Paraformer 当前仅适配 CUDA不支持 CANN/NPU 生态。run.sh中硬编码了cuda设备调用。临时绕过仅测试用编辑webui.py搜索device cuda改为device cpu性能下降约 8 倍仅用于验证流程是否通畅。4.3 案例三中文路径导致热词加载失败现象单文件识别成功但热词列表输入后无效果日志中出现UnicodeDecodeError。根源run.sh启动时未设置语言环境Linux 默认LANGC无法正确读取含中文的vocab.txt或热词字符串。永久修复在run.sh顶部添加export LANGzh_CN.UTF-8 export LC_ALLzh_CN.UTF-8并确保系统已生成该 localelocale-gen zh_CN.UTF-85. 预防性建议让 run.sh 更健壮科哥的脚本已很简洁但我们可以加几行“保险丝”让它失败时主动告诉你哪里错了5.1 在 run.sh 中插入状态检查推荐追加在python3 webui.py ...前插入# 健康检查区 echo [INFO] 正在检查运行环境... if ! command -v nvidia-smi /dev/null; then echo [ERROR] NVIDIA 驱动未安装请先安装驱动 exit 1 fi if ! python3 -c import torch; assert torch.cuda.is_available(), CUDA 不可用 /dev/null; then echo [ERROR] PyTorch CUDA 支持异常请检查 torch 安装 exit 1 fi if [ ! -d /root/models/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch ]; then echo [ERROR] 模型目录缺失请运行 git clone ... exit 1 fi echo [OK] 环境检查通过正在启动服务... # 健康检查区结束 这样一旦失败你会立刻看到明确提示不用翻几百行日志。5.2 替代启动方案不用 run.sh直启更透明如果你只想快速验证模型能否跑通跳过所有封装cd /root source venv/bin/activate cd /root/models/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch python3 -c from modelscope.pipelines import pipeline asr pipeline(speech_paraformer_asr, modeldamo/speech_paraformer_asr_nat-zh-cn-16k-common-vocab8404-pytorch) result asr(https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/ASR/test_audio/asr_example_zh.wav) print( 本地模型调用成功, result[text][:20]) 输出本地模型调用成功 今天天气不错啊→ 证明模型、CUDA、权重全部就绪❌ 报错 → 错误精准定位到模型加载层与 WebUI 无关6. 总结启动失败从来不是玄学run.sh启动失败本质是环境、路径、权限、依赖四个维度中至少一个没对齐。它不像训练任务那样涉及复杂超参而是一个确定性的工程执行流。记住这三句话下次遇到问题就能秒定位“卡在哪就看 bash -x 输出的最后一行”“报错说找不到先 ls 看看文件真在不在”“CUDA 不可用先 nvidia-smi再 nvcc -V最后 torch.cuda”你不需要成为 Linux 专家只需要养成「看输出、查路径、验依赖」的习惯。每一次成功的启动都是对系统理解的一次加固。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。