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

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

相关推荐
chicpopoo几秒前
Python打卡DAY25
开发语言·python
crazyme_643 分钟前
深入掌握 Python 切片操作:解锁数据处理的高效密码
开发语言·python
真的想上岸啊1 小时前
学习51单片机01(安装开发环境)
嵌入式硬件·学习·51单片机
邹诗钰-电子信息工程1 小时前
嵌入式自学第二十一天(5.14)
java·开发语言·算法
每次的天空2 小时前
Android学习总结之Glide自定义三级缓存(面试篇)
android·学习·glide
恋猫de小郭2 小时前
如何查看项目是否支持最新 Android 16K Page Size 一文汇总
android·开发语言·javascript·kotlin
名誉寒冰2 小时前
# KVstorageBaseRaft-cpp 项目 RPC 模块源码学习
qt·学习·rpc
于壮士hoho3 小时前
Python | Dashboard制作
开发语言·python
开发游戏的老王3 小时前
[虚幻官方教程学习笔记]深入理解实时渲染(An In-Depth Look at Real-Time Rendering)
笔记·学习·虚幻
Asus.Blogs4 小时前
为什么go语言中返回的指针类型,不需要用*取值(解引用),就可以直接赋值呢?
开发语言·后端·golang