ModelScope概述与实战

概述

ModelScope,简称MS,魔搭社区,由阿里巴巴达摩院推出的一个多任务、多模态的预训练模型开放平台,提供模型下载与运行、数据集管理、在线推理体验、开发者社区交流等一站式服务,支持多种主流框架(如PyTorch、Transformers)。整体上它的定位类似于HuggingFace(HF),但在多模态支持、国产模型整合和本地化适配方面做得更加贴近国内开发者的使用需求。

Web

https://modelscope.cn/home,很奇怪为啥不能注册:
在这里插入图片描述
功能包括:模型库、数据集、创空间、AIGC专区、文档、社区(合集、论文、研习社
公告、竞赛、交流区)、MCP广场。
在这里插入图片描述
其中AIGC专区是一个大杂烩,功能定位类似于:ComfyUI、liblib、

模型下载及使用

下载模型的两种方式:

# 命令行
modelscope download --model="Qwen/Qwen2.5-0.5B-Instruct" --local_dir ./model-dir
# Python SDK,支持更多个性化配置,如只下载特定文件、跳过某些组件等
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct', local_dir = './model-dir')

实例:

from modelscope import AutoModelForCausalLM, AutoTokenizermodel_name = "输入本地文件夹路径"
# 从预训练模型加载因果语言模型和分词器
# 模型会根据可用硬件自动选择精度(torch_dtype="auto")并进行设备分配(device_map="auto")
model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype="auto",device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)# 构建对话历史,包含系统角色和用户角色的消息
messages = [{"role": "system", "content": "你是一个有用的助手"}, # 系统消息设定助手的行为模式{"role": "user", "content": "请简单介绍一下大语言模型"}
]# 将对话历史转换为模型可接受的文本格式
text = tokenizer.apply_chat_template(messages,tokenize=False, # 表示不直接分词,而是保留文本形式add_generation_prompt=True # 添加模型特定的生成提示标记
)
# 使用分词器将文本转换为模型所需的张量格式,并移至与模型相同的设备
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)# 模型生成回答
generated_ids = model.generate(**model_inputs,max_new_tokens=512
)
# 从生成的token ID序列中提取出模型生成的部分(去掉输入部分)
generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
# 将生成的token ID序列解码为文本,并跳过特殊标记(如填充标记、结束标记等)
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)

MS Hub

即ModelScope的模型库,共享机器学习模型、demo演示、数据集和数据指标的地方。

模型公开属性:

  • 公开模型:社区所有人可见、可下载;
  • 非公开模型:私有模型,仅组织成员或模型所有者可见、可下载;
  • 申请制模型:任意用户均可在按照要求发起申请、并经模型所有者审批同意后可见、可下载。

MS-SWIFT

Scalable lightWeight Infrastructure for Fine-Tuning,魔搭社区推出的一套完整的轻量级量化、训练、推理、评估、部署工具。支持200+LLM、15+多模态大模型、10+轻量化Tuners,支持消费级显卡玩转LLM和AIGC。

特性:

  • 具备SOTA特性的Efficient Tuners:可结合LLM在商业级显卡上实现轻量级训练和推理。
  • 使用MS Hub的Trainer:基于Transformers Trainer提供,支持LLM训练,且能将训练后的模型上传到MS Hub中。
  • 可运行的模型Examples:针对热门大模型提供训练脚本和推理脚本,同时针对热门开源数据集提供预处理逻辑,可直接运行使用。
  • 支持界面化训练和推理:基于Gradio Web界面,简化大模型全链路流程。

安装

pip install ms-swift
# 或pip install git+https://github.com/modelscope/ms-swift.git,或
git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .

微调数据集示例:

{"messages": [{"role": "user", "content": "浙江的省会在哪?"}, {"role": "assistant", "content": "<think>\nxxx\n</think>\n\n浙江的省会在杭州。"}]}

GRPO训练数据集示例:

  • LLM类型:
{"messages": [{"role": "user", "content": "What is your name?"}]}
  • MLLM类型:
{"messages": [{"role": "user", "content": "<image><image>What is the difference between the two images?"}], "images": ["/xxx/y.jpg", "/xxx/z.png"]}

Lora微调

  1. 训练显存要求为22GB。
  2. 可指定--dataset AI-ModelScope/alpaca-gpt4-data-zh来跑通实验。
  3. 训练命令:
CUDA_VISIBLE_DEVICES=0 \
swift sft \
--model Qwen/Qwen3-8B \
--train_type lora \
--dataset '<dataset-path>' \
--torch_dtype bfloat16 \
--num_train_epochs 1 \
--per_device_train_batch_size 1 \
--per_device_eval_batch_size 1 \
--learning_rate 1e-4 \
--lora_rank 8 \
--lora_alpha 32 \
--target_modules all-linear \
--gradient_accumulation_steps 4 \
--eval_steps 50 \
--save_steps 50 \
--save_total_limit 2 \
--logging_steps 5 \
--max_length 2048 \
--output_dir output \
--warmup_ratio 0.05 \
--dataloader_num_workers 4 \
--packing true \
--user_liger_kernel true

GRPO训练
硬件要求为70G*8,训练命令:

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
NPROC_PER_NODE=8 \
swift rlhf \
--rlhf_type grpo \
--model Qwen/Qwen3-8B \
--train_type full \
--dataset AI-MO/NuminaMath-TIR \
--torch_dtype bfloat16 \
--num_train_epochs 1 \
--per_device_train_batch_size 2 \
--per_device_eval_batch_size 2 \
--learning_rate 1e-6 \
--save_total_limit 2 \
--logging_steps 5 \
--output_dir output \
--gradient_accumulation_steps 1 \
--warmup_ratio 0.05 \
--dataloader_num_workers 4 \
--max_completion_length 4096 \
--vllm_max_model_len 8192 \
--reward_funcs accuracy \
--num_generations 16 \
--use_vllm true \
--vllm_gpu_memory_utilization 0.4 \
--sleep_level 1 \
--offload_model true \
--offload_optimizer true \
--gc_collect_after_offload true \
--deepspeed zero3 \
--num_infer_workers 8 \
--tensor_parallel_size 1 \
--temperature 1.0 \
--top_p 0.85 \
--report_to wandb \
--log_completions true \
--overlong_filter true

Megatron并行训练
引入Megatron的并行技术来加速大模型的训练,包括数据并行、张量并行、流水线并行、序列并行,上下文并行,专家并行。支持Qwen3等模型的预训练和微调。

训练命令:

NNODES=$WORLD_SIZE \
NODE_RANK=$RANK \
megatron sft \
--load Qwen3-30B-A3B-Base-mcore \
--dataset 'liucong/Chinese-DeepSeek-R1-Distill-data-110k-SFT' \
--tensor_model_parallel_size 2 \
--expert_model_parallel_size 8 \
--moe_grouped_gemm true \
--moe_shared_expert_overlap true \
--moe_aux_loss_coeff 0.01 \
--micro_batch_size 1 \
--global_batch_size 16 \
--packing true \
--recompute_granularity full \
--recompute_method uniform \
--recompute_num_layers 1 \
--train_iters 2000 \
--eval_iters 50 \
--finetune true \
--cross_entropy_loss_fusion true \
--lr 1e-5 \
--lr_warmup_iters 100 \
--min_lr 1e-6 \
--save megatron_output/Qwen3-30B-A3B-Base \
--eval_interval 200 \
--save_interval 200 \
--max_length 8192 \
--num_workers 8 \
--dataset_num_proc 8 \
--no_save_optim true \
--no_save_rng true \
--sequence_parallel true \
--use_flash_attn true

MS-EvalScope

开源模型评估框架,旨在为LLM和多模态模型提供统一、系统化的性能评估方案。具备高度的自动化和可扩展性,适用于研究机构、工业界以及模型开发者在模型验证与性能对比场景中的广泛需求。

特点

  • 丰富的评测基准覆盖:内置多种权威评测数据集,涵盖中英文通用知识问答、数学推理、常识判断、代码生成等多个方向,支持多维度评估。
  • 多样的评估模式支持:提供单模型评估模式(Single)、基于基线的两两对比模式(Pairwise-Baseline)、全模型两两对比模式(Pairwise-All),满足不同使用场景。
  • 统一的模型接入接口:对不同类型的模型提供统一调用方式,兼容HF、本地部署模型及API远程调用,降低模型集成复杂度。
  • 评估流程高度自动化:实现评测任务全自动执行,包括客观题自动打分、复杂问题使用评审模型辅助判定结果等,支持批量评估与日志记录。
  • 完善的可视化工具:支持生成详细评估报告和图表,展示模型在不同任务维度下的表现,便于横向对比和性能分析。
  • 多后端与评测能力扩展:可集成多个评测后端,支持从单模态到多模态、从语言建模到RAG端到端评测的全链路能力。
  • 支持部署性能测试:提供服务端推理性能测试工具,涵盖吞吐量、响应时延等关键指标,帮助评估模型部署实用性。

MS-Agent

GitHub,文档,论文,ModelScopeGPT体验地址,已停止维护,生成有问题。

MS-Agent是魔搭社区打造的开源多模态多智能体系统。

特点:

  • 可定制且功能全面的框架,提供可定制化的引擎、数据集收集、工具检索与注册、存储处理、定制模型训练和应用开发等功能,可快速应用于实际场景。
  • 以开源LLM为核心组件,支持各种文本或多模态大模型。
  • 支持多样化且全面的API开发。

架构
在这里插入图片描述

AgentExecutor对象包含以下组件:

  • LLM:负责处理输入并决定调用哪些工具;
  • tool_list:由代理可使用的工具组成的列表;
  • PromptGenerator:将prompt_templateuser_inputhistorytool_list…整合为高效的提示;
  • OutputParser:用于解析LLM响应,确定要调用的工具及其相应参数。

安装

git clone https://github.com/modelscope/ms-agent.git
cd modelscope-agent && pip install -r requirements.txt

或:pip install modelscope_agent

文本转语音工具:

from modelscope_agent.tools import ModelscopePipelineTool
from modelscope.utils.constant import Tasks
from modelscope_agent.output_wrapper import AudioWrapperclass TextToSpeechTool(ModelscopePipelineTool):default_model = 'damo/speech_sambert-hifigan_tts_zh-cn_16k'description = '文本转语音服务,将文字转换为自然而逼真的语音,可配置男声/女声'name = 'modelscope_speech-generation'parameters: list = [{'name': 'input','description': '要转成语音的文本','required': True}, {'name': 'gender','description': '用户身份','required': True}]task = Tasks.text_to_speechdef _remote_parse_input(self, *args, **kwargs):if 'gender' not in kwargs:kwargs['gender'] = 'man'voice = 'zhibei_emo' if kwargs['gender'] == 'man' else 'zhiyan_emo'kwargs['parameters'] = voicekwargs.pop('gender')return kwargsdef _parse_output(self, origin_result, remote=True):audio = origin_result['output_wav']return {'result': AudioWrapper(audio)}

文本地址解析工具

from modelscope_agent.tools import ModelscopePipelineTool
from modelscope.utils.constant import Tasksclass TextAddressTool(ModelscopePipelineTool):default_model = 'damo/mgeo_geographic_elements_tagging_chinese_base'description = '地址解析服务,针对中文地址信息,识别出里面的元素,包括省、市、区、镇、社区、道路、路号、POI、楼栋号、户室号等'name = 'modelscope_text-address'parameters: list = [{'name': 'input','description': '用户输入的地址信息','required': True}]task = Tasks.token_classificationdef _parse_output(self, origin_result, *args, **kwargs):final_result = {}for e in origin_result['output']:final_result[e['type']] = e['span']return final_result

集成LangChain:

from modelscope_agent.tools import LangchainTool
from langchain_community.tools import ShellTool, ReadFileTool# 包装一下
shell_tool = LangchainTool(ShellTool())
print(shell_tool(commands=["echo 'Hello World!'", "ls"]))

数据集

MSAgent-Bench:综合性工具数据集,包含59.8万个对话,涵盖模型API、通用API、面向API的QA对、API无关指令。
在这里插入图片描述

评估包含下面四个维度:

  • 插件调用的准确率:识别api_name是否正确;
  • 插件url的准确率:URL地址是否正确;
  • 插件传入参数的准确率:parameters对应参数是否正确;
  • 插件整体的准确率:生成的Function Calling是否完全正确,整个JSON可以被加载的格式。

MSAgent-MultiRole:在MSAgent-Bench基础上,增加多角色扮演数据集,提升开源LLM作为中枢来做多角色扮演实现多角色聊天的能力。

下载方式:

  • 页面下载
  • SDK
import ast
from modelscope.msdatasets import MsDatasetds = MsDataset.load('damo/MSAgent-Bench', split='train') # or split='validation'
one_ds = next(iter(ds))
print(one_ds)
# to parse conversations value
conv = one_ds['conversations']
conv = ast.literal_eval(conv)
print(conv[0]['from'])
print(conv[0]['value'])

参考

  • MSAgent-Bench

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96008.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能学习:LR和SVM的联系与区别?

LR和SVM的联系与区别&#xff1f;相同点&#xff1a;&#xff08;1&#xff09; LR和SVM都可以处理分类问题 &#xff0c;且— 般都用于处理线性二 分类问题&#xff08;在改进的情况下可以处理多分类问题&#xff09;&#xff08;2&#xff09;两个方 法都可以增加不同的正则化…

Integer 缓存机制

现象描述 Integer a 100; Integer b 100; System.out.println(a b); // true&#xff08;引用相同&#xff0c;从缓存中取&#xff09;Integer c 200; Integer d 200; System.out.println(c b); // false&#xff08;超出缓存范围&#xff0c;new Integer(200)&#xff0…

生物化学Learning Track(II)——多肽+蛋白质一级结构

本笔记基于杨荣武教授第四版《生物化学》&#xff08;持续更新&#xff09;1. 多肽我们在上一节笔记里面介绍了什么是氨基酸&#xff0c;还有氨基酸的种类以及氨基酸基本的一些性质如等电点极性手性等等&#xff0c;这里我们开始介绍氨基酸结合的产物&#xff0c;因为氨基酸是脱…

Caffeine Weigher

Weigher 接口Weigher 是 Caffeine 缓存库中一个非常重要的函数式接口&#xff0c;它用于计算缓存中每个条目&#xff08;entry&#xff09;的权重&#xff08;weight&#xff09;。这个权重值主要用于基于容量的驱逐策略&#xff0c;特别是当你希望缓存的总大小不是基于条目数量…

C/C++入门之搭建开发环境(VScode篇)

本文主要记录 Visual Studio Code 中配置 C/C 的开发环境&#xff0c;包括项目设置、编译选项和调试配置。VScode是编辑器&#xff0c;我们还需要安装编译器&#xff0c;才能实现编写程序到生成可执行文件这一流程。关于编辑器&#xff0c;编译器和IDE如果有些分不清&#xff0…

【营销策略算法】关联规则学习-购物篮分析

Apriori算法是关联规则学习领域中最经典、最著名的算法之一&#xff0c;用于从大规模数据集中发现有价值的关联规则。最典型的例子就是购物篮分析&#xff0c;通过分析顾客的购物篮&#xff0c;发现商品之间的关联关系&#xff0c;从而制定营销策略&#xff08;如“买尿布的顾客…

行为式验证码技术解析:滑块拼图、语序选词与智能无感知

随着传统字符验证码逐渐被 OCR 与自动化脚本攻破&#xff0c;越来越多业务开始采用 行为式验证码 来区分真人与机器。这类验证码不仅依赖用户的操作行为&#xff0c;还结合图形干扰、环境信息和风控模型&#xff0c;既提升了安全性&#xff0c;也改善了用户体验。 常见的实现方…

基于多项式同态加密和秘密共享的JPEG可逆信息隐藏

学习题为《Reversible steganography in cipher domain for JPEG images using polynomial homomorphism》的论文随着物联网&#xff08;IoT&#xff09;设备的普及&#xff0c;大量敏感数据&#xff08;如指纹、身份信息&#xff09;需要在云端传输和存储。传统隐写技术虽然能…

从 0 到 1 攻克订单表分表分库:亿级流量下的数据库架构实战指南

引言&#xff1a; 本文总字数&#xff1a;约 8500 字建议阅读时间&#xff1a;35 分钟 当订单表撑爆数据库&#xff0c;我们该怎么办&#xff1f; 想象一下&#xff0c;你负责的电商平台在经历了几个双十一后&#xff0c;订单系统开始频繁出现问题&#xff1a;数据库查询越来…

网络编程(5)Modbus

【1】Modbus 1. 起源Modbus由Modicon公司于1979年开发&#xff0c;是全球第一个真正用于工业现场的总线协议在中国&#xff0c;Modbus 已经成为国家标准&#xff0c;并有专业的规范文档&#xff0c;感兴趣的可以去查阅相关的文件&#xff0c;详情如下&#xff1a;标准编号为:GB…

WordPress性能优化全攻略:从插件实战到系统级优化

一、性能诊断&#xff1a;定位瓶颈是优化第一步 在对 WordPress 进行性能优化前&#xff0c;精准定位性能瓶颈至关重要。这就好比医生看病&#xff0c;只有先准确诊断&#xff0c;才能对症下药。下面将从核心性能指标检测工具和服务器基础性能排查两个方面展开。 1.1 核心性能…

十、网络与信息安全基础知识

1 网络概述 1.1 计算机网络的概念 1.1.1 计算机网络的发展 计算机网络的发展经历了四个主要阶段&#xff1a; 具有通信功能的单机系统&#xff1a; 早期形式&#xff1a;一台计算机连接多个终端。例子&#xff1a;20 世纪 50 年代的 SAGE 系统。 具有通信功能的多机系统&#x…

校园管理系统|基于SpringBoot和Vue的校园管理系统(源码+数据库+文档)

项目介绍 : SpringbootMavenMybatis PlusVue Element UIMysql 开发的前后端分离的校园管理系统&#xff0c;项目分为管理端和用户端和院校管理员端 项目演示: 基于SpringBoot和Vue的校园管理系统 运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理…

新后端漏洞(上)- Weblogic SSRF漏洞

漏洞介绍&#xff1a;Weblogic中存在一个SSRF漏洞&#xff0c;利用该漏洞可以发送任意HTTP请求&#xff0c;进而攻击内网中redis、fastcgi等脆弱组件。编译及启动测试环境docker-compose up -d访问http://127.0.0.1:7001/uddiexplorer/&#xff0c;无需登录即可查看uddiexplore…

Fiddler 实战案例解析,开发者如何用抓包工具快速解决问题

在现代软件开发中&#xff0c;网络通信问题几乎是最常见的 Bug 来源。无论是前端调用后端 API、移动端与服务端交互&#xff0c;还是第三方 SDK 请求&#xff0c;都会因为参数错误、环境差异、网络条件不稳定而出现各种难以复现的问题。 在这些场景下&#xff0c;日志往往并不…

【佳易王药品进销存软件实测】:操作简单 + 全流程管理,医药台账管理好帮手#软件教程全解析

前言&#xff1a; &#xff08;一&#xff09;试用版获取方式 资源下载路径&#xff1a;进入博主头像主页第一篇文章末尾&#xff0c;点击卡片按钮&#xff1b;或访问左上角博客主页&#xff0c;通过右侧按钮获取详细资料。 说明&#xff1a;下载文件为压缩包&#xff0c;使用…

【设计模式】UML 基础教程总结(软件设计师考试重点)

【设计模式】UML 基础教程总结(软件设计师考试重点) 统一建模语言(Unified Modeling Language,UML),是一种标准化的面向对象建模语言,用于可视化、规范化和文档化软件系统设计。 参考资料:UML基础教程资料(可用于软件设计师考试)! (关注不迷路哈!!!) 文章目录 【…

vite_react 插件 find_code 最终版本

vite_react 插件 find_code 最终版本当初在开发一个大型项目的时候&#xff0c;第一次接触 vite 构建&#xff0c;由于系统功能很庞大&#xff0c;在问题排查上和模块开发上比较耗时&#xff0c;然后就开始找解决方案&#xff0c;find-code 插件方案就这样实现出来了&#xff0…

Python+DRVT 从外部调用 Revit:批量创建梁(2)

接着昨天的示例&#xff0c;继续创建梁&#xff0c;这次展示以椭圆弧、Nurbs为轴线。 创建以椭圆弧为轴线的梁 椭圆弧曲线的创建&#xff1a; # 创建椭圆弧 def CreateEllipse(ctx : MyContext, z: float) -> DB.Curve:"""create a horizontal partial el…

Flutter × 鸿蒙系统:一文搞懂如何将你的 App 移植到 HarmonyOS!

摘要 Flutter 是一个高效的跨平台框架&#xff0c;开发者可以使用同一套代码快速部署到 Android、iOS 等主流平台。随着华为鸿蒙系统&#xff08;HarmonyOS&#xff09;的崛起&#xff0c;越来越多开发者希望能将已有的 Flutter 应用迁移到鸿蒙生态中运行。目前&#xff0c;通过…