学习log1|llm学习笔记-modelscope框架常用组件

最近终于有时间看大模型相关的教程,由于huggingface国内访问受阻,因此探索了一下阿里的modelscope,并记录常用的组件和模块供以后学习工作复查。

0、准备篇

看了一段时间的教程,关于大模型的使用主要涉及到以下的点:
1、用什么框架加载大模型(modelscope, huggingface);
2、如何训练大模型以使大模型能够根据特定的场景/问题回答给出答案(涉及比较专业的数据);
3、如何准备高质量训练数据及训练数据的类型有什么;
4、如何训练大模型,用什么方法对大模型进行训练,训练的本质是什么;
5、如何评估模型:怎样才知道训练好的模型是否按预期输出;
6、大模型训练、部署及成本评估

  • 安装modelscope库
pip install modelscope
#gpt-3的模型下载需要用到这个
pip install megatron_util -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

1、模型加载

  • 以chatGLM2-6b为例:不问为什么,就只有这个模型跑得顺利
from modelscope.models import Model
model = Model.from_pretrained('ZhipuAI/chatglm2-6b', device_map='auto', revision='v1.0.12')

2、数据加载

使用的modelscope模块是MsDataset

  • 加载本地数据集、加载huggingface hub的数据集,加载modelscope的数据集等,官方目前支持的文件格式有:csv、txt、json、jsonl、pickle、png、jpeg

  • 下面的代码全部来自官方文档

#加载本地数据集
dataset_en = MsDataset.load("/path/to/data")
#批量加载数据集
ds = MsDataset.load('csv', data_files=[my_csv_1, my_csv_2])

# 加载modelscope上的数据集

# 以cats_and_dogs数据集为例,数据集链接: https://modelscope.cn/datasets/tany0699/cats_and_dogs/summary
ds = MsDataset.load('cats_and_dogs', namespace='tany0699', split='train')
print(next(iter(ds)))


#加载huggingface_hub的数据集
#可以通过split参数加载部分数据集,也可以将split参数去掉加载全部数据集
#加载指定数据集
ds_train = MsDataset.load('glue', subset_name='sst2', split='train', hub='huggingface')
#加载全部数据集
ds_train = MsDataset.load('glue', subset_name='sst2', hub='huggingface')
print(next(iter(ds_train))


3、pipeline推理(模型预测)

  • 什么是推理任务: 在深度学习中指的是模型预测这一行为,模型在ModelScope里面指的是一系列的任务,包括数据加载,数据预处理和模型推导任务等
from modelscope.pipelines import pipeline
#推理
word_segmentation = pipeline('word-segmentation',  
                            model=word_seg_model, preprocessor=tokenizer)

#批量推理
word_segmentation = pipeline('word-segmentation',  
                            model=word_seg_model, preprocessor=tokenizer, batch_size=2)

inputs = "XXX,XXX"

print(word_segmentation(inputs))

4、模型训练

  • 框架:SWIFT, 这个框架里面包含了LoRA训练法等等,根据Modelscope的官方说法就是一行代码实现"XXXX"方法的训练,下面知乎的文档中有少许过时,下面贴出截止到2023年10月18号版本的代码。原来的两个参数改变了:replace_modules-->target_modules, rank-->merge_weights。另外swift的utils模块中也取消了show_freeze_layers的功能

  • 安装相关的库

pip install ms-swift -U
  • Swift框架下的LoRA训练代码
LORA_TARGET_MODULES = ['query_key_value']
LORA_RANK = 8
LORA_ALPHA = 32
LORA_DROPOUT_P = 0.1
lora_config = LoRAConfig(
    target_modules=LORA_TARGET_MODULES,
    merge_weights=LORA_RANK,
    lora_alpha=LORA_ALPHA,
    lora_dropout=LORA_DROPOUT_P
)

logger.info(f'lora_config: {lora_config}')
Swift.prepare_model(model, lora_config) #加载配置

  • ps:官方的手册非常详细且说人话,更多功能参考官方文档。Learning through making对于我来说真的非常必要,边学边做才能真正学会。
  • 吐槽:官方在知乎8月份挂的代码是跑不通的,小白心塞,建议直接到github看

参考
modelscope手册
用modelscope训练chatGLM
Swift推理readme手册

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341

推荐阅读更多精彩内容