Seamless M4T_v2 部署

一、AutoDL

1.1 注册

  • 进入AutoDL官网
    在这里插入图片描述

  • 注册完成之后选择控制台
    在这里插入图片描述

1.2 租用服务器

  • 进入算力市场选择合适的服务器,我这里选择的是RTX 4090
    在这里插入图片描述

  • 选择基础镜像为:Miniconda / conda3 / 3.8(ubuntu20.04) / 11.3(cudagl)
    在这里插入图片描述
    在这里插入图片描述

  • 选择立即创建容器示例中会显示你选择的服务器
    在这里插入图片描述

1.3 无卡模式开机

  • 先选择关机,点击更多,选择无卡模式开机。此时服务器使用CPU,价格只需0.1元/小时
    在这里插入图片描述

  • 开启无卡模式,选择JupyterLab进入可视化界面
    在这里插入图片描述

  • 来到如下页面,前期工作准备完成
    在这里插入图片描述

二、拉取项目

2.1 克隆项目

  • 右键选择新建文件夹Lab,进入文件夹
cd Lab/
git clone https://github.com/facebookresearch/seamless_communication.git

在这里插入图片描述

2.2 安装依赖

  • 进入seamless_communication文件夹
cd seamless_communication/
  • 安装依赖 (耗时极长,且需要较大的存储空间)
pip install .

在这里插入图片描述

三、安装ffmpeg

3.1 下载ffmpeg

  • 在等待依赖安装的同时,安装ffmpeg。新建启动页(蓝色按钮),新建终端。
    在这里插入图片描述
    在这里插入图片描述

  • 本地打开ffmpeg的压缩包下载地址,选择ffmpeg-4.1.tar.xz
    在这里插入图片描述

  • 右键ffmpeg-4.1.tar.xz,复制文件下载链接
    在这里插入图片描述

  • 回到服务器终端,输入下述命令,可自定义安装路径,我这里安装在/Lab/seamless_communication/目录下。

cd Lab/seamless_communication/
wget https://johnvansickle.com/ffmpeg/release-source/ffmpeg-4.1.tar.xz

在这里插入图片描述

3.2 解压并安装

  • 解压文件
tar -xvf ffmpeg-4.1.tar.xz

在这里插入图片描述

  • 设置安装目录,在/usr/local下新建了ffmpeg文件夹。
cd /usr/local/
mkdir ffmpeg

在这里插入图片描述

  • 系统库检测安装
apt install gcc
apt install yasm

在这里插入图片描述

  • 切换至ffmpeg文件下,配置安装目录
cd root/Lab/seamless_communication/ffmpeg-4.1
./configure --prefix=/usr/local/ffmpeg

在这里插入图片描述

  • 编译源代码并安装,过程极其漫长……
make && make install

在这里插入图片描述

  • 安装完成
    在这里插入图片描述

3.3 配置环境变量

  • 使用vim编辑~/.bashrc文件,选择(E)dit anyway,输入E,选择编辑模式。
vim ~/.bashrc

在这里插入图片描述

  • 键入i,切换至INSERT模式,在文件最末行添加代码,将/usr/local/ffmpeg/bin路径添加到系统的PATH环境变量中,键入Esc,退出插入模式,输入:wq并回车,保存当前文件并退出。
    Q:不会使用vim编辑文件
    A :参考教程
export PATH="/usr/local/ffmpeg/bin:$PATH"

在这里插入图片描述

  • 运行命令使更改生效
source ~/.bashrc
  • 如果之前已经安装过FFmpeg,可以通过运行以下命令来清除缓存并重新加载路径
hash -r

四、启动模型

4.1 下载并上传权重文件

  • 进入项目 seamless_communication\src\seamless_communication\cards路径下,分别查看以下四个文件的内容。
seamlessM4T_v2_large.yaml
vocoder_v2.yaml
xlsr2_1b_v2.yaml
  • 每个文件写有对应的模型网络资源,将其下载至本地,之后需要对其进行替换。

    • unity_nllb-100.yaml
      • tokenizer
        https://huggingface.co/facebook/seamless-m4t-large/resolve/main/tokenizer.model
    • seamlessM4T_v2_large.yaml
      • char_tokenizer
        https://huggingface.co/facebook/seamless-m4t-v2-large/resolve/main/spm_char_lang38_tc.model
      • checkpoint
        https://huggingface.co/facebook/seamless-m4t-v2-large/resolve/main/seamlessM4T_v2_large.pt
    • vocoder_v2.yaml
      • checkpoint
        https://dl.fbaipublicfiles.com/seamless/models/vocoder_v2.pt
    • xlsr2_1b_v2.yaml
      • checkpoint
        https://dl.fbaipublicfiles.com/seamlessM4T/models/unit_extraction/xlsr2_1b_v2.pt
        在这里插入图片描述
  • 将对应的模型资源上传到服务器上的对应位置(我这里在seamless_communication文件夹中新建了一个model文件夹,并将模型资源上传至此)
    Q:如何上传文件至服务器?
    A:请参考AutoDL帮助文档
    在这里插入图片描述

4.2 修改配置文件

  • 右键复制文件路径,分别修改上述四个yaml文件配置内的地址
    • unity_nllb-100.yaml
      • tokenizer
        file://root/Lab/seamless_communication/model/tokenizer.model
    • seamlessM4T_v2_large.yaml
      • char_tokenizer
        file://root/Lab/seamless_communication/model/spm_char_lang38_tc.model
      • checkpoint
        file://root/Lab/seamless_communication/model/seamlessM4T_v2_large.pt
    • vocoder_v2.yaml
      • checkpoint
        file://root/Lab/seamless_communication/model/vocoder_v2.pt
    • xlsr2_1b_v2.yaml
      • checkpoint
        file://root/Lab/seamless_communication/model/xlsr2_1b_v2.pt

在这里插入图片描述

  • 修改demo/m4tv2目录下app.py第33行代码,将
CHECKPOINTS_PATH = pathlib.Path(os.getenv("CHECKPOINTS_PATH", f"/home/{user}/app/models"))
  • 改为下述代码,model文件夹内是模型的pt权重文件
CHECKPOINTS_PATH = pathlib.Path(os.getenv("CHECKPOINTS_PATH", f"/{user}/Lab/seamless_communication/model"))

4.3 安装 m4tv2模型依赖库

  • 进入demo文件夹下的m4tv2文件夹中安装模型所需要的对应依赖。
cd demo/m4tv2
pip install -r requirements.txt

在这里插入图片描述

  • 下载成功
    在这里插入图片描述

  • 学术资源加速 运行代码时需要下载分词器文件,不换源会导致连接超时

source /etc/network_turbo
  • 取消学术加速,如果不再需要建议关闭学术加速,因为该加速可能对正常网络造成一定影响
unset http_proxy && unset https_proxy

4.4 运行项目

  • 运行项目文件app.py,必须在GPU环境下运行,否则程序直接Killed
python app.py
  • 部署成功!
    在这里插入图片描述

  • 阅读AutoDL官方提供的帮助文档,可使用SSH隧道技术将实例中的端口代理到本地windows!

ssh -CNg -L 8880:127.0.0.1:7860 root@connect.bjb1.seetacloud.com -p 51287 
  • 本地访问
http://127.0.0.1:8880

在这里插入图片描述

  • 31
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值