博舍

快速训练自己的大语言模型:基于LLAMA 训练自己的gpt模型有什么用

快速训练自己的大语言模型:基于LLAMA

目录1.选用工程:lit-llama2.下载工程3.安装环境4.下载LLAMA-7B模型5.做模型转换6.初步测试7.为什么要进行指令微调?8.开始进行指令微调8.1.数据准备8.2开始模型训练8.3模型测试前言:系统:ubuntu18.04显卡:A100-80G(蹭的,嘿嘿~)(本次主要记录如何快速进行大模型的指令微调)1.选用工程:lit-llama地址:https://github.com/Lightning-AI/lit-llama2.下载工程gitclonehttps://github.com/Lightning-AI/lit-llama.git3.安装环境切换到工程目录cd./lit-llama使用pip安装依赖库pipinstall-rrequirements.txt

(当然,这里可能会遇到网络问题,安装不了lightning)可使用以下方式安装:

下载lightning工程

解压进入工程目录,使用以下命令安装

pythonsetup.pyinstall

查看lightning是否安装成功:

piplist|greplightning

(这里注意lightning的版本是2.1.0)

4.下载LLAMA-7B模型

这里我们要基于LLAMA-7B做指令微调,所以要先下载模型权重,并作一系列转换。

切换到lit-llama所在位置,使用以下命令下载权重:pythonscripts/download.py--repo_idopenlm-research/open_llama_7b--local_dircheckpoints/open-llama/7B

(文件有点大,需要等待一些时间)

下载完毕之后,会得到如下的文件:5.做模型转换还是切换到lit-llama所在位置,使用以下指令进行转换pythonscripts/convert_hf_checkpoint.py--checkpoint_dircheckpoints/open-llama/7B--model_size7B转换完毕之后,在lit-llama/checkpoints/lit-llama/7B位置,会得到大小为26G左右的lit-llama.pth文件,在上一级目录(lit-llama/checkpoints/lit-llama)还有一个tokenizer.model文件6.初步测试

在命令行,使用如下命令运行:

pythongenerate.py--prompt"Todayisa"

使用中文测试,发现效果不好(开始胡说八道了~)

7.为什么要进行指令微调?因为原始的预训练LLAMA模型是一个大语言模型(废话~),会根据前面的单词预测下一个词语,如果你问它问题,它不会正确回答你,你问它一个问题,它可能会续写一些跟你一样的句子,例如,Prompt为“WhatisthecapitalofChina?”,它的回复如下所示:8.开始进行指令微调8.1.数据准备

这里使用alpaca的52k指令数据进行微调,使用如下指令:

pythonscripts/prepare_alpaca.py

如果下载不下来的话,我们直接打开scripts/prepare_alpaca.py文件,如下所示:

直接打开链接https://raw.githubusercontent.com/tloen/alpaca-lora/main/alpaca_data_cleaned_archive.json,然后全选页面复制,再保存到新建的文件里。

得到alpaca_data_cleaned_archive.json(看名字的clean应该是清洗过的),每条指令包含"instruction"、“input”、"output"三个关键字,本次先不具体展开讲解,如下所示:

运行指令后,还会作数据划分,train-49759,val-2000如下所示:

最后,会在lit-llama/data/alpaca路径下得到以下文件:

8.2开始模型训练

使用以下指令:

pythonfinetune/lora.py

训练过程如下所示:

整个训练过程大约要1.5个小时(16:51~18:22)

训练完毕之后,会在out/lora/alpaca得到一系列lora的权重文件,如下图所示:

8.3模型测试

使用如下指令进行提问,其中prompt为"whatisthecapitalofChina?",

pythongenerate/lora.py--prompt"whatisthecapitalofChina?"

得到的结果如下所示

可以看到,经过指令微调之后,模型已经可以正常回答我们的问题了。

(ps:其他细节可以参考工程的README,写的很清楚~)

结束。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇