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

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

相关推荐
载数而行5206 小时前
QT的五类布局
c++·qt·学习
Cg136269159746 小时前
JS-对象-Dom案例
开发语言·前端·javascript
故事和你916 小时前
sdut-程序设计基础Ⅰ-实验五一维数组(8-13)
开发语言·数据结构·c++·算法·蓝桥杯·图论·类和对象
载数而行5206 小时前
QT的QString类
c++·qt·学习
Jin、yz6 小时前
JAVA 八股
java·开发语言
zl_dfq7 小时前
Python学习2 之 【数据类型、运算及相关函数、math库】
学习
我是唐青枫7 小时前
C#.NET Span 深入解析:零拷贝内存切片与高性能实战
开发语言·c#·.net
lxh01137 小时前
数据流的中位数
开发语言·前端·javascript
盒马盒马7 小时前
Rust:迭代器
开发语言·后端·rust
Full Stack Developme8 小时前
Java 常用通信协议及对应的框架
java·开发语言