Llama3 本地部署 CPU进行推理
下载模型
提交邮件就能申请,在官方GitHub仓库下载示例代码进行使用。
https://github.com/meta-llama/llama3
GPU推理
Llama3默认是开启组并行推理,所以需要显卡来运行,参考官方示例很容易便完成的运行。
- 加载llama模型,
- 构造prompt
- 输入llama模型得到结果
- 处理结果
def main(
ckpt_dir: str,
tokenizer_path: str,
temperature: float = 0.6,
top_p: float = 0.9,
max_seq_len: int = 128,
max_gen_len: int = 64,
max_batch_size: int = 4,
):
generator = Llama.build(
ckpt_dir=ckpt_dir,
tokenizer_path=tokenizer_path,
max_seq_len=max_seq_len,
max_batch_size=max_batch_size,
)
prompts: List[str] = [
"""Translate English to Chinese:
cheese =>""",
]
results = generator.text_completion(
prompts,
max_gen_len=max_gen_len,
temperature=temperature,
top_p=top_p,
)
for prompt, result in zip(prompts, results):
print(prompt)
print(f"> {result['generation']}")
print("\n==================================\n")
CPU
既然Llama3是默认是开始GPU运行的,那我们能不能在CPU上部署运行,答案是能行的,只能需要改到代码。
- fairscale里面的parallel全部退化为nn里面提供的
- 代码里默认cuda,抽离其中的device,放到函数中
- 退化过程中,某些参数进行删除,依据报错信息来
- 去掉DDP
完成上述操作之后,就能在CPU上推理Llama3,我测试了下在A100服务器的CPU上推理一次大概1分钟。