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

在这里插入图片描述

### SeamlessM4T 技术文档和使用教程 #### 安装与配置 SeamlessM4T v2 提供了详细的安装指南,旨在帮助用户顺利部署该模型。无论是本地环境还是云端服务器,官方都给出了详尽的操作说明[^1]。 对于初次使用者而言,推荐先阅读官方提供的入门级教程,这部分内容涵盖了基础概念介绍以及如何设置开发环境等内容。此外,在完成基本配置之后,还可以进一步探索有关性能优化方面的指导材料。 #### 使用示例 除了文字形式的教学资料外,SeamlessM4T 还附带了一系列实用的例子程序。这些例子不仅展示了怎样调用 API 接口实现多模态任务间的无缝衔接,同时也包含了针对特定应用场景下的解决方案展示。例如,利用预训练好的模型进行跨语言音频转录或是基于上下文理解生成对应的目标语言表述等操作均可以在样例项目里找到具体实现方式。 ```python from seamless_m4t import TranslatorModel, AudioProcessor # 初始化翻译器实例 translator = TranslatorModel() # 加载待处理文件路径 audio_path = "path/to/your/audiofile.wav" text_output = translator.translate(audio=AudioProcessor.load_audio(audio_path), target_language="zh") print(f"Translated Text: {text_output}") ``` 上述代码片段演示了一个简单的场景——将一段英语语音转化为中文文本输出。这只是一个起点;更多复杂的功能等待着开发者们去发掘。 #### 高阶应用 当掌握了基础知识以后,可以深入研究一些更复杂的主题,比如自定义微调流程、参数调整技巧等等。社区内活跃的技术交流平台也为遇到难题时寻求外部支持提供了便利条件。在这里不仅可以获取最新资讯更新,还能与其他爱好者分享经验心得,共同进步成长。
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值