「天工」Skywork-13B系列已在魔搭社区全球首发开源,魔搭也推出了模型部署相关教程,供开发者参考并快速上手,欢迎大家体验!
昆仑万维「天工」Skywork-13B魔搭社区首发开源!魔搭最佳实践来了!
导读 10月30日,昆仑万维宣布开源百亿级大语言模型「天工」Skywork-13B系列,包括130亿参数的两大模型:Skywork-13B-Base模型、Skywork-13B-Math模型,它们在CEVAL, GSM8K等多个权威评测与基准测试上都展现了同等规模模型的最佳效果,其中文能力尤为出色,在中文科技、金融、政务等领域表现均高于其他开源模型。(截止至10月25日数据) 作为国内最
导读
10月30日,昆仑万维宣布开源百亿级大语言模型「天工」Skywork-13B系列,包括130亿参数的两大模型:Skywork-13B-Base模型、Skywork-13B-Math模型,它们在CEVAL, GSM8K等多个权威评测与基准测试上都展现了同等规模模型的最佳效果,其中文能力尤为出色,在中文科技、金融、政务等领域表现均高于其他开源模型。(截止至10月25日数据)
作为国内最具诚意的开源百亿大模型,「天工」Skywork-13B系列无需申请即可实现商用,授权链路极简,且无用户数、行业、公司规模限制。
环境配置与安装
-
python 3.8及以上版本
-
pytorch 1.12及以上版本,推荐2.0及以上版本
-
建议使用CUDA 11.4及以上
本文主要演示的模型为天工13B模型-8bits量化版,在魔搭社区免费实例PAI-DSW的配置下运行(显存24G) :
第一步:点击模型右侧Notebook快速开发按钮,选择GPU环境
第二步:新建Notebook
第三步:运行示例代码,下载模型并推理
模型链接和下载
「天工」Skywork-13B系列模型现已在ModelScope社区开源,包括:
Skywork-13B-Base模型:
https://modelscope.cn/models/skywork/Skywork-13B-base/summary
Skywork-13B-Base模型-8bits量化版:
https://modelscope.cn/models/skywork/Skywork-13B-Base-8bits/summary
Skywork-13B-Math模型:
https://modelscope.cn/models/skywork/Skywork-13B-Math/summary
Skywork-13B-Math模型-8bits量化版:
https://modelscope.cn/models/skywork/Skywork-13B-Math-8bits/summary
社区支持直接下载模型的repo:
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('skywork/Skywork-13B-base', 'master')
模型推理
Skywork-13B-Base-8bits量化版推理代码:
from modelscope import (
AutoModelForCausalLM, AutoTokenizer, GenerationConfig, snapshot_download
)
import torch
model_dir = snapshot_download('skywork/Skywork-13B-Base-8bits', 'master')
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", trust_remote_code=True).eval()
inputs = tokenizer('陕西的省会是西安', return_tensors='pt').to(model.device)
response = model.generate(inputs.input_ids, max_length=128)
print(tokenizer.decode(response.cpu()[0], skip_special_tokens=True))
# 陕西的省会是西安,西安是我国著名的古都,在历史上有十三个朝代在此建都,所以西安又被称为“十三朝古都”。西安是我国著名的旅游城市,每年都有大量的游客来到西安旅游,西安的旅游资源非常丰富,有很多著名的旅游景点,比如秦始皇兵马俑、大雁塔、华清池、大唐芙蓉园、西安城墙、大明宫国家遗址公园、西安碑林博物馆、西安钟楼、西安鼓楼、西安半坡博物馆、西安大兴善寺、西安小雁塔
inputs = tokenizer('陕西的省会是西安,甘肃的省会是兰州,河南的省会是郑州', return_tensors='pt').to(model.device)
response = model.generate(inputs.input_ids, max_length=128)
print(tokenizer.decode(response.cpu()[0], skip_special_tokens=True))
# 陕西的省会是西安,甘肃的省会是兰州,河南的省会是郑州,湖北的省会是武汉,湖南的省会是长沙,江西的省会是南昌,安徽的省会是合肥,江苏的省会是南京,浙江的省会是杭州,福建的省会是福州,广东的省会是广州,广西的省会是南宁,海南的省会是海口,四川的省会是成都,贵州的省会是贵阳,云南的省会是昆明,西藏的省会是拉萨,青海的省会是西宁,宁夏的省会是银川,新疆的省会是乌鲁木齐。
资源消耗:
Skywork-13b 模型微调和微调后推理
微调代码开源地址:
https://github.com/modelscope/swift/blob/main/examples/pytorch/llm
clone swift仓库并安装swift
# 设置pip全局镜像和安装相关的python包
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
git clone https://github.com/modelscope/swift.git
cd swift
pip install .[llm]
# 下面的脚本需要在此目录下执行
cd examples/pytorch/llm
pip install deepspeed -U
pip install bitsandbytes -U
模型微调脚本 (qlora)
# Experimental environment: A10, 3090
# 16GB GPU memory
PYTHONPATH=../../.. \
CUDA_VISIBLE_DEVICES=0 \
python llm_sft.py \
--model_id_or_path skywork/Skywork-13B-base \
--model_revision master \
--sft_type lora \
--tuner_backend swift \
--template_type default-generation \
--dtype bf16 \
--output_dir output \
--dataset advertise-gen-zh \
--train_dataset_sample 20000 \
--num_train_epochs 1 \
--max_length 2048 \
--quantization_bit 4 \
--bnb_4bit_comp_dtype bf16 \
--lora_rank 8 \
--lora_alpha 32 \
--lora_dropout_p 0.05 \
--lora_target_modules AUTO \
--gradient_checkpointing true \
--batch_size 1 \
--weight_decay 0.01 \
--learning_rate 1e-4 \
--gradient_accumulation_steps 16 \
--max_grad_norm 0.5 \
--warmup_ratio 0.03 \
--eval_steps 100 \
--save_steps 100 \
--save_total_limit 2 \
--logging_steps 10 \
--push_to_hub false \
--hub_model_id skywork-13b-qlora \
--hub_private_repo true \
--hub_token 'your-sdk-token' \
模型微调后的推理脚本
# Experimental environment: A10, 3090
PYTHONPATH=../../.. \
CUDA_VISIBLE_DEVICES=0 \
python llm_infer.py \
--model_id_or_path skywork/Skywork-13B-base \
--model_revision master \
--sft_type lora \
--template_type default-generation \
--dtype bf16 \
--ckpt_dir "output/skywork-13b/vx_xxx/checkpoint-xxx" \
--eval_human false \
--dataset advertise-gen-zh \
--max_length 2048 \
--quantization_bit 4 \
--bnb_4bit_comp_dtype bf16 \
--max_new_tokens 2048 \
--temperature 0.9 \
--top_k 20 \
--top_p 0.9 \
--repetition_penalty 1.05 \
--do_sample true \
--merge_lora_and_save false \
微调的可视化结果
训练损失:
评估损失
训练后生成样例
[PROMPT]Task: Generating advertisements based on keywords.
Keywords: 上衣,牛仔布,白色,简约,刺绣,外套,破洞
Advertisements: [OUTPUT]牛仔外套是春季必备的单品,这款牛仔外套采用经典的白色,简约大方又百搭。前片的立体贴布刺绣,打破了纯色外套的单调感。衣袖上的破洞设计,增添了几分街头感。</s>
[PROMPT]Task: Generating advertisements based on keywords.
Keywords: 上衣,嘻哈,卡通,印花,撞色,卫衣,连帽
Advertisements: [OUTPUT]一款个性十足的连帽卫衣,经典的嘻哈风设计风格,加上卡通的印花装饰,为整件衣服带来了更多的时尚感。撞色的领口和袖口设计,使其更加有特色,更具视觉效果。</s>
[PROMPT]Task: Generating advertisements based on keywords.
Keywords: 裙,弧形,高腰,半身裙,不规则,收腰
Advertisements: [OUTPUT]半身裙的版型是比较修身的,能凸显女性纤细的腰部曲线,同时对大腿的包容度也比较高。高腰的设计可以将腰线拉高,让身材比例更加匀称。不规则的裙摆,更有层次感,还能拉长下半身的比例。裙摆下方还有弧形开叉,修饰腿部的曲线,走路更方便。</s>
资源消耗:
13G显存
点击直达Skywork-13b 开源链接
https://modelscope.cn/models/skywork/Skywork-13B-base/summary
更多推荐