苹果AppleMacOs最新Sonoma系统本地训练和推理GPT-SoVITS模型实践

简介: GPT-SoVITS是少有的可以在MacOs系统下训练和推理的TTS项目,虽然在效率上没有办法和N卡设备相提并论,但终归是开发者在MacOs系统构建基于M系列芯片AI生态的第一步。

GPT-SoVITS教程_苹果MacOs系统本地训练和推理GPT-SoVITS模型整合包,Jaime-封面.jpg

GPT-SoVITS是少有的可以在MacOs系统下训练和推理的TTS项目,虽然在效率上没有办法和N卡设备相提并论,但终归是开发者在MacOs系统构建基于M系列芯片AI生态的第一步。

环境搭建

首先要确保本地环境已经安装好版本大于6.1的FFMPEG软件:

(base) ➜  ~ ffmpeg -version  
ffmpeg version 6.1.1 Copyright (c) 2000-2023 the FFmpeg developers  
built with Apple clang version 15.0.0 (clang-1500.1.0.2.5)  
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.1.1_3 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon  
libavutil      58. 29.100 / 58. 29.100  
libavcodec     60. 31.102 / 60. 31.102  
libavformat    60. 16.100 / 60. 16.100  
libavdevice    60.  3.100 / 60.  3.100  
libavfilter     9. 12.100 /  9. 12.100  
libswscale      7.  5.100 /  7.  5.100  
libswresample   4. 12.100 /  4. 12.100  
libpostproc    57.  3.100 / 57.  3.100

如果没有安装,可以先升级HomeBrew,随后通过brew命令来安装FFMPEG:

brew cleanup && brew update

安装ffmpeg

brew install ffmpeg

随后需要确保本地已经安装好了conda环境:

(base) ➜  ~ conda info  

     active environment : base  
    active env location : /Users/liuyue/anaconda3  
            shell level : 1  
       user config file : /Users/liuyue/.condarc  
 populated config files : /Users/liuyue/.condarc  
          conda version : 23.7.4  
    conda-build version : 3.26.1  
         python version : 3.11.5.final.0  
       virtual packages : __archspec=1=arm64  
                          __osx=14.3=0  
                          __unix=0=0  
       base environment : /Users/liuyue/anaconda3  (writable)  
      conda av data dir : /Users/liuyue/anaconda3/etc/conda  
  conda av metadata url : None  
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-arm64  
                          https://repo.anaconda.com/pkgs/main/noarch  
                          https://repo.anaconda.com/pkgs/r/osx-arm64  
                          https://repo.anaconda.com/pkgs/r/noarch  
          package cache : /Users/liuyue/anaconda3/pkgs  
                          /Users/liuyue/.conda/pkgs  
       envs directories : /Users/liuyue/anaconda3/envs  
                          /Users/liuyue/.conda/envs  
               platform : osx-arm64  
             user-agent : conda/23.7.4 requests/2.31.0 CPython/3.11.5 Darwin/23.3.0 OSX/14.3 aau/0.4.2 s/XQcGHFltC5oP5DK5UVaTDA e/E37crlCLfv4OPFn-Q0QPJw  
                UID:GID : 502:20  
             netrc file : None  
           offline mode : False

如果没有安装过conda,推荐去anaconda官网下载安装包:

https://www.anaconda.com

接着通过conda命令创建并激活基于3.9的Python开发虚拟环境:

conda create -n GPTSoVits python=3.9  
conda activate GPTSoVits

安装依赖以及Mac版本的Torch

克隆GPT-SoVits项目:

https://github.com/RVC-Boss/GPT-SoVITS.git

进入项目:

cd GPT-SoVITS

安装基础依赖:

pip3 install -r requirements.txt

安装基于Mac的Pytorch:

pip3 install --pre torch torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu

随后检查一下mps是否可用:

(base) ➜  ~ conda activate GPTSoVits  
(GPTSoVits) ➜  ~ python  
Python 3.9.18 (main, Sep 11 2023, 08:25:10)   
[Clang 14.0.6 ] :: Anaconda, Inc. on darwin  
Type "help", "copyright", "credits" or "license" for more information.  
>>> import torch  
>>> torch.backends.mps.is_available()   
True  
>>>

如果没有问题,那么直接在项目目录运行命令进入webui即可:

python3 webui.py

到底用CPU还是用MPS

在推理环节上,有个细节非常值得玩味,那就是,到底是MPS效率更高,还是直接用CPU效率更高,理论上当然是MPS了,但其实未必,我们可以修改项目中的config.py文件来强行指定api推理设备:

if torch.cuda.is_available():  
    infer_device = "cuda"  
elif torch.backends.mps.is_available():  
    infer_device = "mps"  
else:  
    infer_device = "cpu"

或者修改inference_webui.py文件来指定页面推理设备:

if torch.cuda.is_available():  
    device = "cuda"  
elif torch.backends.mps.is_available():  
    device = "mps"  
else:  
    device = "cpu"

基于cpu的推理效率:

CPU推理时Python全程内存占用3GB,内存曲线全程绿色,推理速度长时间保持55it/s。

作为对比,使用MPS进行推理,GPU推理时,Python进程内存占用持续稳步上升至14GB,推理速度最高30it/s,偶发1-2it/s。

但实际上,在Pytorch官方的帖子中:

https://github.com/pytorch/pytorch/issues/111517

提到了解决方案,即修改cmakes的编译方式。

修改后推理对比:

cpu推理:  

['zh']  
 19%|███████▍                                | 280/1500 [00:12<00:47, 25.55it/s]T2S Decoding EOS [102 -> 382]  
 19%|███████▍                                | 280/1500 [00:12<00:56, 21.54it/s]

gpu推理:  

 21%|████████▌                               | 322/1500 [00:08<00:32, 36.46it/s]T2S Decoding EOS [102 -> 426]  
 22%|████████▋                               | 324/1500 [00:08<00:29, 39.26it/s]

但MPS方式确实有内存泄露的现象。

相关文章
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
当语言遇见智慧火花:GPT家族历代模型大起底,带你见证从平凡到卓越的AI进化奇迹!
【10月更文挑战第6天】随着自然语言处理技术的进步,GPT系列模型(Generative Pre-trained Transformers)成为该领域的明星。从GPT-1的开创性工作,到GPT-2在规模与性能上的突破,再到拥有1750亿参数的GPT-3及其无需微调即可执行多种NLP任务的能力,以及社区驱动的GPT-NeoX,这些模型不断进化。虽然它们展现出强大的语言理解和生成能力,但也存在如生成错误信息或偏见等问题。本文将对比分析各代GPT模型的特点,并通过示例代码展示其部分功能。
48 2
|
8天前
|
数据采集 API 决策智能
华为诺亚联合中科大发布工具调用模型ToolACE,效果持平GPT-4获开源第一
 【10月更文挑战第10天】华为诺亚方舟实验室与中国科学技术大学合作推出ToolACE,一种自进化合成过程的工具调用模型。ToolACE通过多智能体交互和双重验证系统生成准确、复杂、多样化的工具学习数据,显著提升大型语言模型(LLM)的功能调用能力。实验结果显示,使用ToolACE数据训练的80亿参数模型性能媲美GPT-4,在伯克利功能调用排行榜上获得开源第一。
30 4
|
1月前
|
API 云栖大会
通义千问升级旗舰模型Qwen-Max,性能接近GPT-4o
通义旗舰模型Qwen-Max全方位升级,性能接近GPT-4o
526 10
|
19天前
|
存储 数据采集 数据安全/隐私保护
商汤、清华、复旦等开源百亿级多模态数据集,可训练类GPT-4o模型
商汤科技、清华大学和复旦大学等机构联合开源了名为OmniCorpus的多模态数据集,规模达百亿级,旨在支持类似GPT-4级别的大型多模态模型训练。该数据集包含86亿张图像和1696亿个文本标记,远超现有数据集规模并保持高质量,具备广泛来源和灵活性,可轻松转换为纯文本或图像-文本对。经验证,该数据集质量优良,有望促进多模态模型研究,但同时也面临存储管理、数据偏见及隐私保护等挑战。
110 60
|
15天前
|
API
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
31 0
|
15天前
|
开发工具 git
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
33 0
|
1月前
|
人工智能 自然语言处理 数据挖掘
【通义】AI视界|性能超越GPT-4o?最强大的开源AI模型来了……
本文介绍了五项最新AI技术动态,包括性能超越GPT-4o的开源AI模型Reflection70B、智谱清言App限时免费的视频通话功能、哈佛医学院研发的癌症诊断AI模型CHIEF、Replit推出的AI编程助手,以及英特尔与日本AIST合作设立的芯片制造研发中心。这些进展展示了AI领域的快速创新与广泛应用。更多详情,请访问通义官网体验。
|
1月前
|
编解码 定位技术 计算机视觉
多模态LLM视觉推理能力堪忧,浙大领衔用GPT-4合成数据构建多模态基准
【9月更文挑战第2天】浙江大学领衔的研究团队针对多模态大型模型(MLLM)在抽象图像理解和视觉推理上的不足,提出了一种利用GPT-4合成数据构建多模态基准的方法。该研究通过合成数据提高了MLLM处理图表、文档等复杂图像的能力,并构建了一个包含11,193条指令的基准,涵盖8种视觉场景。实验表明,这种方法能显著提升模型性能,但依赖闭源模型和高计算成本是其局限。论文详细内容见:https://arxiv.org/pdf/2407.07053
72 10
|
1月前
|
机器学习/深度学习 数据采集 人工智能
Llama 8B搜索100次超越GPT-4o!推理+搜索即可提升性能,新Scaling Law诞生?
【9月更文挑战第8天】在人工智能领域,理查德·萨顿提出了一项重要观点,即利用通用计算方法最终是最有效的途径,这一理念在诸如计算机象棋、围棋、语音识别及视觉等多个子领域中得到了验证。萨顿强调,计算能力的指数增长使得依赖大量计算的技术更加吸引人,并且从长远来看,计算能力将是唯一重要的因素。尽管他的观点强调了搜索和学习方法的力量,但也有人批评其忽略了领域知识和其他因素的重要性。
34 2
|
1月前
|
机器学习/深度学习 数据可视化 UED
黑匣子被打开了!能玩的Transformer可视化解释工具,本地运行GPT-2、还可实时推理
【9月更文挑战第4天】Transformer Explainer是一款基于网页的交互式可视化工具,专为帮助用户理解复杂的Transformer模型而设计。通过多层次抽象、实时推理及互动实验,以及无需安装即可使用的便捷性,此工具选取GPT-2作为教学模型,降低了学习门槛并提升了教育普及度。用户可以通过输入自定义文本观察预测过程,深入了解内部组件的工作原理。此外,它还减少了认知负荷,增强了互动学习体验。未来,该工具将在复杂性管理和性能优化方面继续改进,并通过用户研究进一步提升功能和可用性。[论文地址:https://arxiv.org/pdf/2408.04619]
38 1

热门文章

最新文章