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套件的魅力。它让微调过程变得更加高效和直观,希望每一位开发者都来尝试它,一起交流经验,更好地提升它的能力。
大模型&AI产品经理如何学习
求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。
1.学习路线图
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方图片前往获取
3.技术文档和电子书
这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
4.LLM面试题和面经合集
这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓