当前位置: 首页 > article >正文

AI模型平台之——ModelScope(魔搭)

ModelScope 是什么?

ModelScope 是一个由阿里巴巴达摩院推出的开源模型库和工具集,旨在为开发者提供高效、便捷的机器学习模型和工具。ModelScope 提供了丰富的预训练模型、数据集和工具,支持多种任务和应用场景,如自然语言处理、计算机视觉、语音识别等。为AI开发者提供灵活、易用、低成本的一站式模型服务产品。
ModelScope 是一个开放的 AI 模型共享平台,是一个生态系统,涵盖了从模型开发、训练、部署到共享的全流程。

ModelScope提供了一个Web的界面,界面的地址: https://www.modelscope.cn/
当前界面样子如下:
在这里插入图片描述

在国外,与ModelScope对应的平台是: Hugging Face。

ModelScope 涉及的一些概念

1. 模型

是指一个具体的模型实例,包括模型网络结构和相应参数。

2. 模型库 (Model Hub)

是指对模型进行存储、版本管理和相关操作的模型服务,用户上传和共享的模型将存储至模型库中,同时用户也可在Model hub中创建属于自己的模型存储库,并沿用平台提供的模型库管理功能进行模型管理。

3. ModelScope 模型库

ModelScope的模型库(Model Hub)是共享机器学习模型、demo演示、数据集和数据指标的地方。
可以创建和管理自己的模型库,利用界面或开发环境来便捷地上传、下载相关模型文件,并从 Model Hub中获取有用的模型和数据集元数据。

4. ModelScope 和 ModelScope Library 的关系与区别

1. ModelScope

ModelScope 是一个开放的 AI 模型共享平台,旨在为开发者、研究者和企业提供丰富的预训练模型和工具。它是一个生态系统,涵盖了从模型开发、训练、部署到共享的全流程。

主要特点

  • 模型仓库:提供大量预训练模型,涵盖 NLP、CV、语音等多个领域。
  • 模型共享:支持用户上传和共享自己的模型。
  • 在线服务:提供模型的在线推理和 API 调用服务。
  • 社区协作:促进开发者之间的协作与交流。

定位

  • ModelScope 是一个 平台,类似于 Hugging Face 或 TensorFlow Hub,专注于模型的共享和服务化。

2. ModelScope Library

ModelScope Library 是一个 Python 库,是 ModelScope 平台的核心工具之一。它为开发者提供了访问和使用 ModelScope 平台中模型的接口和工具。

主要特点

  • 模型加载:支持从 ModelScope 平台加载预训练模型。
  • 模型推理:提供简单的 API 进行模型推理。
  • 模型微调:支持基于预训练模型的微调。
  • 工具集成:集成了数据处理、模型评估等工具。

定位

  • ModelScope Library 是一个 工具库,帮助开发者在本地或云端使用 ModelScope 平台中的模型。

3. 关系
  • ModelScope 是平台,ModelScope Library 是工具。
  • ModelScope Library 是 ModelScope 平台的一部分,用于与平台中的模型进行交互。
  • 开发者通过 ModelScope Library 访问和使用 ModelScope 平台中的模型。

4. 区别
特性ModelScope(平台)ModelScope Library(工具库)
定位模型共享与服务平台访问和使用模型的 Python 工具库
功能模型存储、共享、在线服务、社区协作模型加载、推理、微调、工具集成
使用方式通过网页或 API 访问通过 Python 代码调用
目标用户开发者、研究者、企业开发者、研究者
依赖关系包含 ModelScope Library 作为工具依赖 ModelScope 平台提供模型资源

5. 使用场景
  • ModelScope

    • 寻找和下载预训练模型。
    • 共享自己的模型。
    • 使用在线推理服务。
  • ModelScope Library

    • 在本地加载和使用 ModelScope 平台中的模型。
    • 对模型进行微调和部署。
    • 集成到自己的 AI 项目中。

6. 总结
  • ModelScope 是一个开放的 AI 模型共享平台,提供模型存储、共享和服务化功能。
  • ModelScope Library 是一个 Python 工具库,用于访问和使用 ModelScope 平台中的模型。
  • 两者相辅相成,ModelScope 提供资源,ModelScope Library 提供工具,共同构建了一个完整的 AI 开发生态系统。

ModelScope 的主要特点

  1. 丰富的预训练模型:ModelScope 提供了大量的预训练模型,涵盖了多种任务和应用场景,开发者可以直接使用这些模型进行推理或微调。
  2. 便捷的工具集:ModelScope 提供了一系列工具,帮助开发者进行数据处理、模型训练、评估和部署。
  3. 开源和社区驱动:ModelScope 是一个开源项目,开发者可以自由使用、修改和贡献代码,促进社区的共同发展。
  4. 多语言支持:ModelScope 支持多种编程语言,如 Python、Java 等,方便开发者在不同的开发环境中使用。

ModelScope 的主要组件

  1. 模型库:ModelScope 提供了丰富的预训练模型,开发者可以根据需要选择合适的模型进行使用。
  2. 数据集:ModelScope 提供了多种数据集,方便开发者进行模型训练和评估。
  3. 工具集:ModelScope 提供了一系列工具,帮助开发者进行数据处理、模型训练、评估和部署。

Python环境和ModelScope Library 安装

这里通过Anaconda 安装和管理Python库及隔离环境, Anaconda 的安装参考:
AI开发之 ——Anaconda 介绍

  1. 创建Python隔离环境

可以在Anaconda 的界面(Anaconda Navigator)直接创建环境,环境相关文件的位置位于Anaconda 安装路径的envs 目录下:
在这里插入图片描述

也可以使用conda 命令行创建环境(如何conda 命令找不到则需要将Anaconda 路径的Scripts目录添加到Path 环境变量中)

conda create -n modelscope python=3.12 

在这里插入图片描述

注意: 不管在哪个路径下执行创建环境命令,环境相关文件的位置都是在Anaconda 安装路径的envs 目录下,比如C:\Users\xx\anaconda3\envs

  1. 激活环境
conda activate modelscope
  1. 安装ModelScope Library
    如果只需要ModelScope的核心hub支持,也就是只使用ModelScope下载模型,则运行如下命令:
pip install modelscope

如果需要ModelScope的完整功能,包括数据集的下载,外部模型的使用,则使用如下命令:


pip install modelscope[framework]

如何从模型库下载和使用模型

模型下载的存放路径

使用SDK或是命令行下载模型,默认会下载到当前用户目录的 ~/.cache/modelscope/hub中,比如:
C:\Users\xxx\.cache\modelscope\hub
如果C盘不够或是其他原因需要更改存放的其他目录,可以使用环境变量: MODELSCOPE_CACHE 进行设置。

下载方式:

  1. 使用Git
    Model Hub 上的模型通过 Git 进行存储和版本管理,可以下载单个文件或整个模型的所有相关文件。
    注意: 需要安装Git LFS
# 公开模型下载
git lfs install
git clone https://www.modelscope.cn/<namespace>/<model-name>.git
# 例如: git clone https://www.modelscope.cn/iic/ofa_image-caption_coco_large_en.git

# 私有模型下载,前提是您有响应模型权限 方法1
git lfs install
git clone http://oauth2:your_git_token@www.modelscope.cn/<namespace>/<model-name>.git
# 方法2
git clone http://your_user_name@www.modelscope.cn/<namespace>/<model-name>.git
# Password for 'http://your_user_name@modelscope.cn':
# input git token

如果希望跳过LFS大文件的下载,可以在git clone命令前添加GIT_LFS_SKIP_SMUDGE=1,来只获取LFS指针,而不下载实际的大文件:

GIT_LFS_SKIP_SMUDGE=1 https://www.modelscope.cn/<namespace>/<model-name>.git
  1. 使用ModelScope SDK
    ModelScope的SDK会自动缓存本地下载的模型文件,以便下次加载相同文件时无需重新下载。
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('iic/nlp_xlmr_named-entity-recognition_viet-ecommerce-title', cache_dir='path/to/local/dir', revision='v1.0.1')

下载单个文件:

from modelscope.hub.file_download import model_file_download

model_dir = model_file_download(model_id='AI-ModelScope/rwkv-4-world',file_path='RWKV-4-World-CHNtuned-7B-v1-20230709-ctx4096.pth',revision='v1.0.0')

下载私有模型,需要先登录:

from modelscope import HubApi
from modelscope import snapshot_download

api=HubApi()
api.login('YOUR_MODELSCOPE_SDK_ACCESS_TOKEN')

# download your model, the model_path is downloaded model path.
model_path =snapshot_download(model_id='the_model_id', revision='the_model_version')

除了使用download()相关的方法下载模型之外,使用SDK加载模型时,也会触发的下载(前提是模型已集成至ModelScope的SDK中):

from modelscope.models import Model
model = Model.from_pretrained('iic/nlp_xlmr_named-entity-recognition_viet-ecommerce-title', revision='v1.0.1')
# revision为可选参数,不指定版本会取模型默认版本,默认版本,默认版本为ModelScope library发布前最后一个版本

# 如何得到发布时间
import modelscope
print(modelscope.version.__release_datetime__)
  1. 使用ModelScope 命令
    可以使用以下命令查看具体的命令行:
modelscope download --help

这里以下载Qwen2-7B模型为例:

  • 下载到默认cache 地址:modelscope download --model 'Qwen/Qwen2-7b'
  • 下载到指定目录: modelscope download --model 'Qwen/Qwen2-7b' --local_dir D:/devworkspace/ai/modelscope/models
  • 下载单个文件(tokenizer.json):modelscope download --model 'Qwen/Qwen2-7b' tokenizer.json
  • 下载多个文件:modelscope download --model 'Qwen/Qwen2-7b' tokenizer.json config.json
  • 下载匹配的文件: modelscope download --model 'Qwen/Qwen2-7b' --include '*.safetensors'
  • 过滤某些文件不下载: modelscope download --model 'Qwen/Qwen2-7b' --exclude '*.safetensors'
  • 指定下载cache_dir: modelscope download --model 'Qwen/Qwen2-7b' --include '*.json' --cache_dir './cache_dir'
  • 指定下载local_dir: modelscope download --model 'Qwen/Qwen2-7b' --include '*.json' --local_dir './local_dir'

如果cache_dir和local_dir参数同时被指定,local_dir优先级高,cache_dir将被忽略。

local_dir 和 cache_dir

--local_dir--cache_dir 是两个不同的选项,分别用于指定文件的下载位置和缓存位置。它们的作用和区别如下:


1. --local_dir
  • 作用:指定模型文件下载后保存的目标目录。
  • 特点
    • 文件会直接下载到该目录中。
    • 适合需要将模型文件保存到特定位置的场景。
    • 如果目录不存在,会自动创建。
  • 示例
    modelscope download --model my-model --local_dir /path/to/save
    
    模型文件会直接保存到 /path/to/save 目录中。

2. --cache_dir
  • 作用:指定模型文件的缓存目录。
  • 特点
    • 文件会先下载到缓存目录中,后续使用时可以直接从缓存加载,避免重复下载。
    • 适合需要重复使用同一模型的场景。
    • 如果未指定 --local_dir,文件会默认保存到缓存目录中。
  • 示例
    modelscope download --model my-model --cache_dir /path/to/cache
    
    模型文件会先下载到 /path/to/cache 目录中,后续使用时可以直接从缓存加载。

主要区别
特性--local_dir--cache_dir
用途指定文件下载的目标目录。指定文件缓存的目录。
文件存储方式文件直接保存到指定目录。文件先保存到缓存目录,后续使用时从缓存加载。
适用场景需要将文件保存到特定位置。需要重复使用同一模型,避免重复下载。
默认行为如果未指定,文件会保存到缓存目录。如果未指定,使用系统默认缓存目录。

使用建议
  • 如果需要将模型文件保存到特定目录(如项目目录),使用 --local_dir
  • 如果需要重复使用模型文件,使用 --cache_dir 以提高效率。

下载私有模型

下载私有模型需要登录,使用 login 选项进行登录

usage: modelscope <command> [<args>] login [-h] --token TOKEN

options:
  -h, --help     show this help message and exit
  --token TOKEN  The Access Token for modelscope.

  modelscope login --token YOUR_MODELSCOPE_SDK_TOKEN

如何在ModelScope 创建自己的模型库

方式1: 使用Web页面进行

  1. 使用ModelScope的web页面创建模型库
    在头像左侧会出现创建按钮,点击可创建模型或数据集。点击创建模型,进入模型页面填写基础信息实现模型库的创建。
    在这里插入图片描述

  2. 完成创建后,平台将为分配一个存储地址,可通过页面或者git的方式将文件添加至该模型库中,也可通过页面上传相关的模型文件。

方式2: 使用SDK创建

  1. 获取SDK令牌
    账号设置 > 访问令牌
    在这里插入图片描述

SDK(Software Development Kit,软件开发工具包)是一组工具、库、文档和示例代码的集合,旨在帮助开发者快速构建特定平台、框架或服务的应用程序。

  1. 使用SDK编写代码创建模型库
from modelscope.hub.constants import Licenses, ModelVisibility
from modelscope.hub.api import HubApi

api = HubApi()
api.login(access_token="YOUR_MODELSCOPE_SDK_TOKEN")

username = 'user'
model_name = 'my-test-model'
model_id = f"{username}/{model_name}"

api.create_model(
    model_id,
    visibility=ModelVisibility.PUBLIC,
    license=Licenses.APACHE_V2,
    chinese_name="我的测试模型"
)
字段名必填类型描述
model_idstr模型ID
visibilityint模型的可见性,1-私有,5-公开,不填默认5
licensestr模型的许可证,不填默认为Apache-2.0
chinese_namestr模型的中文名称,默认None

使用 ModelScope下载和使用模型的具体示例

具体的示例可以参考下面这篇:
编程大模型之—Qwen2.5-Coder

这一篇的后半部分使用ModelScope 下载Qwen2.5-Coder大模型,并使用这个模型产生一段代码。




http://www.kler.cn/a/530331.html

相关文章:

  • LabVIEW如何高频采集温度数据?
  • [EAI-023] FAST,机器人动作专用的Tokenizer,提高VLA模型的能力和训练效率
  • FastAPI 多语言国际化实现:支持25种语言的博客系统
  • C++编程语言:抽象机制:模板(Bjarne Stroustrup)
  • JVM方法区
  • STM32 TIM定时器配置
  • 面试题-消失的数字-异或
  • 线性回归的损失和优化02
  • 小红的合数寻找
  • DeepSeek 详细使用教程
  • 笔灵ai写作技术浅析(三):深度学习
  • 携程Java开发面试题及参考答案 (200道-上)
  • 深度学习 DAY3:NLP发展史(全网最全)
  • 【Windows7和Windows10下从零搭建Qt+Leaflet开发环境】
  • doris:主键模型的更新并发控制
  • css三角图标
  • Linux的循环,bash的循环
  • 开源模型应用落地-DeepSeek-R1-Distill-Qwen-7B与vllm实现推理加速的正确姿势(一)
  • 【C语言】结构体对齐规则
  • MySQL是怎么实现事务隔离的?
  • [权限提升] Windows 提权 维持 — 系统错误配置提权 - PATH 环境变量提权
  • Linux环境下测试服务器的DDR5内存性能
  • C语言 --- 分支
  • 【Leetcode 每日一题】598. 区间加法 II
  • 知识库管理在提升企业决策效率与知识共享中的应用探讨
  • Java 大视界 -- Java 大数据在智慧农业中的应用与实践(70)