生信log

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

2023-10-18  本文已影响0人  小周的万用胶囊

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

0、准备篇

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

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

1、模型加载

from modelscope.models import Model
model = Model.from_pretrained('ZhipuAI/chatglm2-6b', device_map='auto', revision='v1.0.12')

2、数据加载

使用的modelscope模块是MsDataset

#加载本地数据集
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推理(模型预测)

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、模型训练

pip install ms-swift -U
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) #加载配置


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

上一篇 下一篇

猜你喜欢

热点阅读