在开发本项目之前,请确保已经安装了以下依赖项:
- paconvert
- Python 3.8+
- paddlepaddle-gpu 2.6+ (建议: develop)
- paddlenlp
- wget
Llama源码下载命令
git clone https://github.com/meta-llama/llama.git
模型代码转换使用如下命令:
paconvert --in_dir ./Llama --out_dir ./convert_model/Llama
Llama模型已实现一键转换,故无需手动编写转换规则,只需指定输入路径和输出路径即可。但对于其他待转模型可能存在未转换情形,欢迎参考贡献手册向本项目贡献代码。
Pytorch 的模型参数与 Paddle 的模型参数无法共用,可用如下命令获取适用于 Paddle 的模型参数。
cd ./convert_model/Llama
wget https://x2paddle.bj.bcebos.com/PaConvert/llama-7B/LLama-7B-Weights.tar.gz
tar -xvf LLama-7B-Weights.tar.gz
# LLama-7B-Weights/params.json
# LLama-7B-Weights/paddle_llama.00.pth
# LLama-7B-Weights/tokenizer.model
如需手动转换原始 Pytorch 权重可参考模型格式转换。
使用如下命令运行转换后的代码:
CUDA_VISIBLE_DEVICES=0 python -m paddle.distributed.launch --devices=0 ./example_chat_completion.py --ckpt_dir ./LLama-7B-Weights --tokenizer_path ./LLama-7B-Weights/tokenizer.model --max_seq_len 64
# 运行结果
# Mayonnaise is a sauce made from egg yolk, vinegar, lemon juice, and oil.
# ...
[可选] example_chat_completion.py 中输入的对话列表 dialogs
有多条对话,若机器显存有限,可删除部分对话,以节省显存。