ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Llama-3.2-3B-Instruct PyTorch模子微调最佳实践
[打印本页]
作者:
大连密封材料
时间:
2024-10-13 23:35
标题:
Llama-3.2-3B-Instruct PyTorch模子微调最佳实践
1 引言
Meta Llama 3.2多语言大型语言模子聚集(LM)是一个1B和3B巨细(文本输入/文本输出)的预训练和指令微调模子聚集。Llama 3.2指令调整的纯文本模子针对多语言对话用例进行了优化,包括智能检索和总结使命。它们在常见的行业基准上优于许多可用的开源和闭源谈天模子。
2 环境预备
2.1 安装Ascend CANN Toolkit和Kernels
安装方法请参考安装教程或利用以下下令。
# 请替换URL为CANN版本和设备型号对应的URL
# 安装CANN Toolkit
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C17SPC701/Ascend-cann-toolkit_8.0.RC1.alpha001_linux-"$(uname -i)".run
bash Ascend-cann-toolkit_8.0.RC1.alpha001_linux-"$(uname -i)".run --install
# 安装CANN Kernels
wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Milan-ASL/Milan-ASL%20V100R001C17SPC701/Ascend-cann-kernels-910b_8.0.RC1.alpha001_linux.run
bash Ascend-cann-kernels-910b_8.0.RC1.alpha001_linux.run --install
# 设置环境变量
source /usr/local/Ascend/ascend-toolkit/set_env.sh
复制代码
2.2 安装openMind Library以及openMind Hub Client
安装openMind Hub Client
pip install openmind_hub
复制代码
安装openMind Library,并安装PyTorch框架及其依靠。
pip install openmind[pt]
复制代码
更详细的安装信息请参考openMind官方的环境安装章节。
2.3 安装llama-factory
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch-npu,metrics]"
复制代码
3 模子链接和下载
Llama-3.2-3B模子系列由社区开发者在魔乐社区贡献,包括:
Llama-3.2-3B
:modelers.cn/models/AI-R…
Llama-3.2-3B-Instruct
:modelers.cn/models/AI-R…
通过Git从魔乐社区下载模子的repo,以Llama-3.2-3B-Instruct为例:
# 首先保证已安装git-lfs(https://git-lfs.com)
git lfs install
git clone https://modelers.cn/AI-Research/Llama-3.2-3B-Instruct.git
复制代码
4 模子推理
用户可以利用openMind Library或者LLaMa Factory进行模子推理,以Llama-3.2-3B-Instruct为例,详细如下:
利用openMind Library进行模子推理
新建推理脚本inference_llama3.2_3b_chat.py,推理脚本内容为:
import argparse
import torch
from openmind import pipeline
from openmind_hub import snapshot_download
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"--model_name_or_path",
type=str,
help="Path to model",
default=None,
)
args = parser.parse_args()
return args
def main():
args = parse_args()
if args.model_name_or_path:
model_path = args.model_name_or_path
else:
model_path = snapshot_download("AI-Research/Llama-3.2-3B-Instruct", revision="main", resume_download=True,
ignore_patterns=["*.h5", "*.ot", "*.mspack"])
pipe = pipeline(
"text-generation",
model=model_path,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": ""},
{"role": "user", "content": "你是谁"},
]
outputs = pipe(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
if __name__ == "__main__":
main()
复制代码
实行推理脚本:
python inference_llama3.2_3b_chat.py
复制代码
推理结果如下:
利用LLaMa Factory与模子交互
在LLaMa Factory路径下新建examples/inference/llama3.2_3b_chat.yaml推理设置文件,文件内容为:
model_name_or_path: xxx # 当前仅支持本地加载,填写Llama-3.2-3B-Instruct本地权重路径
template: llama3
复制代码
利用以下下令与模子进行交互:
llamafactory-cli examples/inference/llama3.2_3b_chat.yaml
复制代码
交互结果如下:
5 模子微调
5.1 数据集
利用Llama-Factory集成的identity数据集。
修改data/identity.json,将{{name}}替换为openmind,{{author}}替换为shengteng。
5.2 微调
新建examples/train_lora/llama3.2_3b_lora_sft.yaml 微调设置文件,微调设置文件如下:
### model
model_name_or_path: xxx/xxx # 预训练模型路径
### method
stage: sft
do_train: true
finetuning_type: lora
lora_target: all
### dataset
dataset: identity
template: llama3
cutoff_len: 1024
overwrite_cache: true
preprocessing_num_workers: 16
### output
output_dir: ./saves/llama3.2-3b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true
### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
ddp_timeout: 180000000
### eval
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500
复制代码
利用以下下令进行微调:
llamafactory-cli train examples/train_lora/llama3.2_3b_lora_sft.yaml
复制代码
5.3 微调可视化
训练Loss可视化:
6 微调后推理
模子推理
修改examples/inference/llama3.2_3b_lora_sft.yaml推理设置文件,文件内容为:
model_name_or_path: xxx # 当前仅支持本地加载,填写Llama-3.2-3B-Instruct本地权重路径
adapter_name_or_path: ./saves/llama3.2-3b/lora/sft
template: llama3
复制代码
利用以下下令进行推理:
llamafactory-cli chat examples/inference/llama3.2_3b_lora_sft.yaml
复制代码
推理结果:
7 结语
应用使能套件openMind在华为全联接大会2024的展示吸引了我们的注意。通过专家们的分享,得以相识魔乐社区,也相识到openMind在其中发挥的技术能力和未来发展。
通过本次微调的实践,更能领会到openMind套件的魅力。它让微调过程变得更加高效和直观,希望每一位开发者都来尝试它,一起交换履历,更好地提升它的能力。
相干链接:
[1] openMind Library介绍: modelers.cn/docs/zh/ope…
[2] openMind Hub Client介绍: modelers.cn/docs/zh/ope…
怎样学习AI大模子?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。
我已将重要的AI大模子资料包括AI大模子入门学习思维导图、精品AI大模子学习册本手册、视频教程、实战学习等录播视频免费分享出来。
这份完备版的大模子 AI 学习资料已经上传CSDN,朋侪们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
一、全套AGI大模子学习路线
AI大模子期间的学习之旅:从基础到前沿,把握人工智能的焦点技能!
二、640套AI大模子报告合集
这套包罗640份报告的合集,涵盖了AI大模子的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,照旧对AI大模子感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模子经典PDF籍
随着人工智能技术的飞速发展,AI大模子已经成为了当今科技范畴的一大热点。这些大型预训练模子,如GPT-3、BERT、XLNet等,以其强盛的语言明白和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模子贸易化落地方案
作为平凡人,入局大模子期间需要持续学习和实践,不停提高本身的技能和认知程度,同时也需要有责任感和伦理意识,为人工智能的康健发展贡献气力。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4