ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ModelScope本地部署实战:从3行代码跑通推理,到微调出你自己的模型

ModelScope本地部署实战:从3行代码跑通推理,到微调出你自己的模型 ModelScope本地部署实战从3行代码跑通推理到微调出你自己的模型【免费下载链接】modelscopeModelScope: bring the notion of Model-as-a-Service to life.项目地址: https://gitcode.com/GitHub_Trending/mo/modelscopeModelScope魔搭是一个模型即服务MaaS的开源平台把自然语言处理、计算机视觉、语音、多模态、科学计算等数百个预训练模型装进一个统一的 Python 库让你用几行代码就能完成推理、训练与评估。这篇文章不按安装手册的套路走而是带你跟着一条真实的实践路径先看效果、再装环境、边跑边修坑、最后把模型改成你自己的。上图是 ModelScope 在线体验区的真实运行画面左侧是模型加载与下载日志右侧输入一张人像照片模型自动输出 3D 卡通化结果。这整套流程你在自己的电脑上同样能复现。先别急着安装看看 3 行代码能干什么很多人第一次接触 ModelScope 都会被吓到几百个模型我该从哪下手其实根本不用选因为它给所有模型套了一层统一的壳叫做pipeline管道。不管输入是文字、图片还是音频不管任务是分词、翻译还是抠图写法都是同一套from modelscope.pipelines import pipeline # 第1行指定任务和模型 word_seg pipeline(word-segmentation, modeldamo/nlp_structbert_word-segmentation_chinese-base) # 第2行喂数据 result word_seg(今天天气不错适合出去游玩) # 第3行看结果 print(result) # 输出: {output: 今天 天气 不错 适合 出去 游玩 }输入一句没分词的汉语返回带空格的分词结果中间发生了什么你完全不用关心。这就是 ModelScope 的核心价值把模型即服务落到了三行代码的粒度。框架负责下载模型、加载权重、拼装前后处理你只负责给它数据和取结果。再试一个视觉任务——人像抠图同样三行import cv2 from modelscope.pipelines import pipeline matting pipeline(portrait-matting, modeldamo/cv_unet_image-matting) result matting(你的图片路径.jpg) cv2.imwrite(result.png, result[output_img]) 这里有个小秘密任务名如portrait-matting可以在不指定 model 时使用框架会拉取该任务的默认模型。新手先别纠结选模型让框架替你选。把环境搭好一次安装三个可选套餐看完效果我们来搭本地环境。整个过程分三步拿到代码 → 建隔离环境 → 按需装领域包。第一步把仓库克隆到本地git clone https://gitcode.com/GitHub_Trending/mo/modelscope.git cd modelscope第二步创建虚拟环境。把虚拟环境想象成隔离房你装的依赖都关在这间房里不会污染系统 Python也不会和其他项目打架python -m venv modelscope-env source modelscope-env/bin/activate # Windows 下用 modelscope-env\Scripts\activate第三步安装。这是最容易让人迷糊的一步我们拆开讲。ModelScope 分为核心框架和领域扩展两块。只装核心能跑通所有任务的推理入口但个别领域模型缺依赖pip install .项目根目录的setup.py里定义了几个领域套餐对应关系如下你要玩的领域安装命令备注文本类分类、分词、翻译pip install .[nlp]部分依赖需-f参数指定独立源图像类检测、抠图、生成pip install .[cv]部分模型需额外装 mmcv语音类ASR、TTSpip install .[audio]Linux 下推荐 python3.7 tensorflow1.x多模态图文理解pip install .[multi-modal]安装包相对独立科学计算蛋白质结构等pip install .[science]按需安装完整写法示例nlp 和 cv 需要-f指定 ModelScope 自建的依赖源pip install .[nlp] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html pip install .[cv] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html 建议先只装核心框架跑通一个简单任务后再按需补领域包。装得越全将来版本冲突的概率越大别一上来就pip install .[cv,nlp,audio,multi-modal]全家桶。跑不起来这份报错急救包请收好装完环境第一次跑模型大概率会遇到报错。别慌九成问题都逃不出下面这几类。我们把每个坑的成因和修法一起说清。坑一Failed building wheel for xxx成因某个依赖没有现成的二进制包需要现场编译而你机器上缺编译器。 解法Ubuntusudo apt install build-essential python3-dev如果还失败试试只装预编译版本pip install --only-binary :all: modelscope。坑二提示缺少 mmcv / mmcv-full成因CV 领域少数模型依赖 mmcv 做算子加速它没被自动装上。 解法先卸载已有 mmcv再用 openmim 安装pip uninstall mmcv pip install -U openmim mim install mmcv-full⚠️ mmcv 的编译和你的 CUDA 版本强相关想省事就严格按 mmcv 官方安装手册选版本别硬装最新版。坑三语音模型报 SoundFile 相关错误成因Linux 下处理 wav 文件需要底层库 libsndfilepip 不会自动帮你装系统库。 解法sudo apt-get update sudo apt-get install libsndfile1坑四CUDA out of memory成因显卡显存不够装下整个模型。 解法优先换小模型模型 ID 带-small、-tiny后缀的其次减小batch_size最后再考虑半精度推理。坑五模型下载慢成因默认从境外源拉模型。 解法设环境变量切到国内环境export MODELSCOPE_ENVIRONMENTcn或把模型文件手动放进缓存目录。模型缓存理解它你就掌握了 ModelScope 的一半第一次运行 pipeline 时你会看到漫长的下载日志。下载的东西去哪了默认存在~/.cache/modelscope/hub目录。把这里想成仓库货架每个模型占一个格子第一次是进货之后每次使用都是取货不再重复下载。这带来几个实用技巧# 看看你的货架占了多少空间 du -sh ~/.cache/modelscope/hub # 换一个自定义货架位置比如挪到空间大的磁盘 export MODELSCOPE_CACHE/data/modelscope_cache模型下载到一半失败了怎么办重跑一次 pipeline 即可框架支持断点续传已经下好的文件会直接跳过。下次再遇到下载慢别删缓存重下先想想是不是网络问题。从能跑到好用设备、批量、精度三板斧模型跑通了接下来是让它跑得更顺手。三个高频优化点按性价比排序1. 指定设备。默认优先 GPU想强制 CPU省内存就显式声明pipeline(text-classification, model模型ID, devicecpu)2. 批量处理。给 pipeline 传一个文本列表它会自动批量推理classifier pipeline(text-classification, modeldamo/nlp_structbert_sentiment-analysis_chinese-base, batch_size32) texts [好评物流很快, 商品有瑕疵, 客服态度好] print(classifier(texts))3. 半精度推理。GPU 支持时用precisionfp16显存占用几乎减半速度还有提升。 记住这个顺序先换小模型再调 batch最后动精度。直接上 fp16 遇到算子不支持反而会踩新坑。更高一层用十几行代码微调出一个你的模型推理只是入门ModelScope 的另一半价值在训练。它把训练流程也抽象成了统一接口用MsDataset加载数据集用build_trainer构建训练器然后train()。下面这段官方示例用 1.3B 的 GPT-3 模型在古诗数据集上微调训练一个古诗生成器。注意看数据集的加载和字段重命名这是整个流程里唯一需要动脑的地方from modelscope.metainfo import Trainers from modelscope.msdatasets import MsDataset from modelscope.trainers import build_trainer # 1. 加载古诗数据集并把 text1 列重命名为模型要的 src_txt train_dataset MsDataset.load(chinese-poetry-collection, splittrain).remap_columns({text1: src_txt}) eval_dataset MsDataset.load(chinese-poetry-collection, splittest).remap_columns({text1: src_txt}) # 2. 组装训练参数 kwargs dict( modeldamo/nlp_gpt3_text-generation_1.3B, train_datasettrain_dataset, eval_dataseteval_dataset, max_epochs10, work_dir./gpt3_poetry) # 3. 构建训练器并开跑 trainer build_trainer(nameTrainers.gpt3_trainer, default_argskwargs) trainer.train()跑完trainer.evaluate()就能看评估指标。想深入训练细节可以参考仓库里的完整示例examples/pytorch/text_classification/文本分类微调和 modelscope/trainers/各领域训练器实现。让服务上生产Docker 与项目地图本地玩熟了想把服务部署到服务器ModelScope 仓库自带完整 Docker 方案。在 docker/ 目录里你能找到不同底座的 DockerfileCPU 版、NVIDIA GPU 版Dockerfile.ascend是昇腾版、以及Dockerfile.extra_install这类扩展安装脚本配合 docker/install.sh 可以一键构建带全部依赖的镜像。最后送你一份项目寻宝地图想深挖的时候按图索骥想找什么去哪看各任务 pipeline 实现modelscope/pipelines/cv/、modelscope/pipelines/nlp/训练器与钩子modelscope/trainers/数据集加载逻辑modelscope/msdatasets/配置示例configs/examples/各领域示例代码examples/pytorch/完整 API 文档docs/source/动手挑战今天就用 ModelScope 做一件事光看不练等于白看。给你三个难度递增的挑战任选一个完成入门级用pipeline(text-classification)对十条影评做情感分类统计正负比例。进阶级用人像抠图 pipeline 处理一张自己的照片把透明背景和原图合成到新背景上。挑战级用古诗数据集微调 GPT-3 小模型让它模仿你指定的诗人风格写五言绝句数据清洗是最大的坑欢迎回来交流。要点回顾ModelScope 用 pipeline 统一了数百个模型的推理入口3 行代码即可上手安装分核心框架与领域套餐两层按需安装模型缓存、设备切换、批量推理是最实用的三把调优钥匙训练同样被抽象成数据集 训练器的统一接口。下一步建议先跑通入门挑战再读一遍 README_zh.md 里的模型清单挑一个和你工作最相关的领域深入。别忘了把模型缓存目录规划好——它决定了你换机器后要等多久。【免费下载链接】modelscopeModelScope: bring the notion of Model-as-a-Service to life.项目地址: https://gitcode.com/GitHub_Trending/mo/modelscope创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表