SWIFT介绍和学习(简单入门级别)

SWIFT介绍和学习

项目地址:https://github.com/modelscope/swift
任何有疑惑的地方,参考项目首页readme寻求答案

SWIFT功能介绍

SWIFT(可扩展的轻量级微调基础设施)是一个可扩展的框架,旨在促进轻量级模型的微调和推理。它通过采用参数高效、内存高效和时间高效的方法,集成了各种高效微调方法的实现。SWIFT无缝集成到ModelScope生态系统中,并提供微调各种模型的能力,主要侧重于LLM和视觉模型。此外,SWIFT与PEFT完全兼容,使用户能够利用熟悉的PEFT接口来微调ModelScope模型。

可以支持的微调方法及具体使用指导

🔥LoRA: LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

🔥LoRA+: LoRA+: Efficient Low Rank Adaptation of Large Models

🔥LLaMA PRO: LLAMA PRO: Progressive LLaMA with Block Expansion

🔥SCEdit: SCEdit: Efficient and Controllable Image Diffusion Generation via Skip Connection Editing < arXiv | Project Page >

🔥NEFTune: Noisy Embeddings Improve Instruction Finetuning

QA-LoRA:Quantization-Aware Low-Rank Adaptation of Large Language Models.

LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models

ROME: Rank-One Editing of Encoder-Decoder Models

Adapter: Parameter-Efficient Transfer Learning for NLP

Prompt Tuning: Visual Prompt Tuning

Side: Side-Tuning: A Baseline for Network Adaptation via Additive Side Networks

Res-Tuning: Res-Tuning: A Flexible and Efficient Tuning Paradigm via Unbinding Tuner from Backbone < arXiv | Project Page | Usage >

All tuners offered on PEFT, like IA3, AdaLoRA

Swift是一个提供LLM模型轻量级训练和推理的开源框架。Swift提供的主要能力是efficient tuners和开箱即用的训练推理能力。tuners是运行时动态加载到模型上的额外结构,在训练时将原模型的参数冻结,只训练tuner部分,这样可以达到快速训练、降低显存使用的目的。比如,最常用的tuner是LoRA。

总之,在这个框架中提供了以下特性:

具备SOTA特性的Efficient Tuners:用于结合大模型实现轻量级(在商业级显卡上,如RTX3080、RTX3090、RTX4090等)训练和推理,并取得较好效果

使用ModelScope Hub的Trainer:基于transformers trainer提供,支持LLM模型的训练,并支持将训练后的模型上传到ModelScope Hub中

可运行的模型Examples:针对热门大模型提供的训练脚本和推理脚本,并针对热门开源数据集提供了预处理逻辑,可直接运行使用

SWIFT快速使用

在本章节会介绍如何快速安装swift并设定好运行环境,并跑通一个用例。

安装swift的方式非常简单,用户只需要在python>=3.8环境中运行:

bash 复制代码
# 全量能力
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

源代码安装
git clone https://github.com/modelscope/swift.git
cd swift
pip install -e .[all]

SWIFT库提供了LLM&AIGC模型的训练推理脚手架,支持LLaMA、QWen、ChatGLM、Stable Diffusion等多种模型的直接训练和推理,并且集成了SWIFT库提供的tuners,开发者可以直接使用。它们的位置在:https://github.com/modelscope/swift/tree/main/examples/pytorch/llm

LLM训练和推理可以查看: LLM系列文档

AIGC训练和推理可以查看: 文生图微调文档

SWIFT支持界面化训练和推理,只需要在执行上述的安装后启动web-ui即可:

bash 复制代码
swift web-ui

使用指导参考:

LLM及LLM最佳实践(LLM系列文章)

如果您想了解更多关于LLM或多模式LLM的最佳实践,或者如果您对LLM的推理、微调、量化和部署教程感兴趣,可以参考https://github.com/modelscope/swift/blob/main/docs/source/LLM/index.md

部署指南 vllm

这里

非官方介绍资料

https://zhuanlan.zhihu.com/p/657668033

这个内容很全面,最下面还有视频介绍。

相关推荐
DisonTangor6 分钟前
字节开源 OneReward: 通过多任务人类偏好学习实现统一掩模引导的图像生成
学习·ai作画·开源·aigc
黎宇幻生1 小时前
Java全栈学习笔记33
java·笔记·学习
2501_926227942 小时前
.Net程序员就业现状以及学习路线图(五)
学习·.net
希望20172 小时前
Golang Panic & Throw & Map/Channel 并发笔记
开发语言·golang
朗迹 - 张伟2 小时前
Golang安装笔记
开发语言·笔记·golang
yzx9910132 小时前
生活在数字世界:一份人人都能看懂的网络安全生存指南
运维·开发语言·网络·人工智能·自动化
小周同学@2 小时前
谈谈对this的理解
开发语言·前端·javascript
橙*^O^*安3 小时前
Go 语言基础:变量与常量
运维·开发语言·后端·golang·kubernetes
NiKo_W4 小时前
Linux 文件系统与基础指令
linux·开发语言·指令
工程师小星星4 小时前
Golang语言的文件组织方式
开发语言·后端·golang