大模型管理工具:SWIFT

目录

一、SWIFT 介绍

二、SWIFT 安装

2.0 配置环境(可选)

2.1 使用pip进行安装

2.2 源代码安装

2.3 启动 WEB-UI

三、部署模型

3.0 deploy命令参数

3.1 原始模型

3.2 微调后模型


一、SWIFT 介绍

        SWIFT(Scalable lightWeight Infrastructure for Fine-Tuning)是魔搭ModelScope开源社区推出的一套完整的轻量级训练、推理、评估和部署工具,支持200+大模型、15+多模态大模型以及10+轻量化Tuners,让AI爱好者能够使用自己的消费级显卡玩转大模型和AIGC。

        SWIFT 框架主要特征特性:

  • 具备SOTA特性的Efficient Tuners:用于结合大模型实现轻量级(在商业级显卡上,如RTX3080、RTX3090、RTX4090等)训练和推理,并取得较好效果
  • 使用ModelScope Hub的Trainer:基于transformers trainer提供,支持LLM模型的训练,并支持将训练后的模型上传到ModelScope Hub中
  • 可运行的模型Examples:针对热门大模型提供的训练脚本和推理脚本,并针对热门开源数据集提供了预处理逻辑,可直接运行使用
  • 支持界面化训练和推理

二、SWIFT 安装

        SWIFT在Python环境中运行。请确保您的Python版本高于3.8。

2.0 配置环境(可选)

# 创建新的conda虚拟环境
conda create -n swift python=3.1 -y
conda activate swift

# 设置pip全局镜像
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
 

2.1 使用pip进行安装

# 全量能力
pip install ms-swift[all] -U
# 仅使用LLM
pip install ms-swift[llm] -U
# 仅使用AIGC
pip install ms-swift[aigc] -U
# 仅使用adapters
pip install ms-swift -U

2.2 源代码安装

git clone https://github.com/modelscope/swift.git
cd swift
pip install -e .[llm]

2.3 启动 WEB-UI

export WEBUI_SHARE=1

export WEBUI_SERVER=0.0.0.0

swift web-ui

        web-ui没有传入参数,所有可控部分都在界面中。但是有几个环境变量可以使用:

  • WEBUI_SHARE=1:控制gradio是否是share状态
  • SWIFT_UI_LANG=en/zh:控制web-ui界面语言
  • WEBUI_SERVER:server_name参数, web-ui host ip,0.0.0.0代表所有ip均可访问,127.0.0.1代表只允许本机访问
  • WEBUI_PORT:web-ui的端口号

三、部署模型

        swift使用VLLM作为推理后端, 并兼容openai的API样式。

3.0 deploy命令参数

        deploy参数继承了infer参数, 除此之外增加了以下参数:

  • --host: 默认为'127.0.0.1.
  • --port: 默认为8000.
  • --ssl_keyfile: 默认为None.
  • --ssl_certfile: 默认为None.

3.1 原始模型

        服务端:

CUDA_VISIBLE_DEVICES=0 swift deploy --model_type qwen-7b-chat

# 使用VLLM加速
CUDA_VISIBLE_DEVICES=0 swift deploy --model_type qwen-7b-chat \
    --infer_backend vllm --max_model_len 8192
# 多卡部署
RAY_memory_monitor_refresh_ms=0 CUDA_VISIBLE_DEVICES=0,1,2,3 swift deploy --model_type qwen-7b-chat --tensor_parallel_size 4

       客户端:

 curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-7b-chat",
"messages": [{"role": "user", "content": "晚上睡不着觉怎么办?"}],
"max_tokens": 256,
"temperature": 0
}'

3.2 微调后模型

        服务端:

CUDA_VISIBLE_DEVICES=0 swift deploy --ckpt_dir xxx/checkpoint-xxx
# 使用VLLM加速
CUDA_VISIBLE_DEVICES=0 swift deploy \
    --ckpt_dir xxx/checkpoint-xxx --merge_lora true \
    --infer_backend vllm --max_model_len 8192

        客户端:

#客户端示例代码同原始模型,openai的API参数可以参考官方文档

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

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

相关文章

Vue 局部布局 Layout 内部布局 [el-row]、[el-col]

之前的布局容器是一个整体的框架,layout里面的布局其实就是el-row和el-col的组合。 基础布局 使用单一分栏创建基础的栅格布局。 通过 ​row ​和 ​col ​组件,并通过 ​col ​组件的 ​span ​属性我们就可以自由地组合布局。 这种最简单,…

房屋出租管理系统需求分析及功能介绍

房屋租赁管理系统适用于写字楼、办公楼、厂区、园区、商城、公寓等商办商业不动产的租赁管理及租赁营销;提供资产管理,合同管理,租赁管理, 物业管理,门禁管理等一体化的运营管理平台,提高项目方管理运营效率…

纯血鸿蒙APP实战开发——一镜到底“页面转场”动画

介绍 本方案做的是页面点击卡片跳转到详情预览的转场动画效果 效果图预览 使用说明 点击首页卡片跳转到详情页,再点击进入路由页面按钮,进入新的路由页面 实现思路 首页使用了一种视觉上看起来像是组件的转场动画,这种转场动画通常是通过…

Linux---windows 机器和远端的 Linux 机器如何通过 XShell 传输文件

一、关于rzsz 这个工具用于 windows 机器和远端的 Linux 机器通过 Xshell 传输文件. 二、下载rzsz软件 用root输入命令: sudo yum install -y lrzsz下载完成: 三、如何传输 有图形化界面 1、从Windows机器传输给远端Linux机器 ① 直接拖拽 直接将…

栈和队列的基础知识,C语言实现及经典OJ题

基础知识 一.栈 1.栈的概念 定义:堆栈又名栈(stack),它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。 压栈:向一个栈插入新…

2024年3月 青少年等级考试机器人理论真题二级

202403 青少年等级考试机器人理论真题二级 第 1 题 一个机器小车,用左右两个电机分别控制左右车轮,左侧电机转速是100rpm,右侧电机转速是50rpm,则此机器小车?( ) A:原地右转 B&am…

聚类分析 | 基于GA遗传算法优化kmeans聚类(Matlab)

聚类分析 | 基于GA遗传算法优化kmeans聚类(Matlab) 目录 聚类分析 | 基于GA遗传算法优化kmeans聚类(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GA-kmeans聚类算法,通过GA遗传算法优化kmeans聚类&…

【C++】set 和 map 学习及使用

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 前言一、预备知识1.1 关联式容器1.2 键值对1.3 树型结构的关联式容器 二、set2.1 什么是 se…

【论文阅读笔记】HermesSim(Code is not Natural Language) (Security 24)

个人博客地址 HermesSim [Security 24] 论文:《Code is not Natural Language: Unlock the Power of Semantics-Oriented Graph Representation for Binary Code Similarity Detection》 仓库:https://github.com/NSSL-SJTU/HermesSim 提出的问题 二…

Rx(Reactive Extensions)的由来

既然我们已经介绍了响应式编程,现在是时候了解我们的明星了:响应式扩展,通常简称为Rx。微软开发了Reactive扩展库,使其易于处理事件流和数据流。在某种程度上,时变值本身就是一个事件流;每个值更改都是一种类型的事件它会更新依赖…

libcity 笔记:libcity/data/utils.py

1 get_dataset 2 list_dataset.py/ListDataset from torch.utils.data import Datasetclass ListDataset(Dataset):def __init__(self, data):"""data: 必须是一个 list"""self.data datadef __getitem__(self, index):return self.data[index…

机器学习中表格数据预处理

目录 缺失值处理 在dataframe中进行填补 使用模型填补缺失值(随机森林) 异常值 数据无量纲化 中心化 数据归一化 数据标准化 缩放处理 转换数据类型 文本—>数值preprocessing.LabelEncoder:标签专用,能够将分类转换为…