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
英文地址,請注明出處:http://en.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;通過…