一、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
- tokenizer
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
- char_tokenizer
vocoder_v2.yaml
:- checkpoint
https://dl.fbaipublicfiles.com/seamless/models/vocoder_v2.pt
- checkpoint
xlsr2_1b_v2.yaml
:- checkpoint
https://dl.fbaipublicfiles.com/seamlessM4T/models/unit_extraction/xlsr2_1b_v2.pt
- checkpoint
-
将对应的模型资源上传到服务器上的对应位置(我这里在
seamless_communication
文件夹中新建了一个model
文件夹,并将模型资源上传至此)
Q:如何上传文件至服务器?
A:请参考AutoDL帮助文档
4.2 修改配置文件
- 右键复制文件路径,分别修改上述四个
yaml
文件配置内的地址- unity_nllb-100.yaml
- tokenizer
file://root/Lab/seamless_communication/model/tokenizer.model
- tokenizer
- 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
- char_tokenizer
- vocoder_v2.yaml
- checkpoint
file://root/Lab/seamless_communication/model/vocoder_v2.pt
- checkpoint
- xlsr2_1b_v2.yaml
- checkpoint
file://root/Lab/seamless_communication/model/xlsr2_1b_v2.pt
- checkpoint
- unity_nllb-100.yaml
- 修改
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