模型下载
先说结论:
使用使用Hugging Face的命令行工具huggingface cli(如何使用可以见我之前写的文章),来下载llama3.1是最方便的!
那本文就只讲这种方法,因为其他方法都失败了😅(其他方法怎么失败的我也会记录一下)
1、llama权限申请,坑!!
第一步就是去huggingface官网上,随便找一个llama模型,进入他的File and versions页进行权限申请
值得注意的是,这里有一个坑:在申请的时候country不要写China,否则会meta那边会把你reject掉。。。。(我因为懒得申请新huggingface号,导致我后面去尝试其他方法,结果没一个行得通的,浪费时间!)
开新号后我编一个名字,填了一个梯子ip地的大学,几分钟就审核过了
2、学会使用huggingface cli
这个命令行工具确实好用,想学会使用的,详情见我前面文章
3、下载模型
学会了huggingface cli,就是一行命令的事,如下
huggingface-cli download --resume-download meta-llama/Meta-Llama-3.1-8B --local-dir {想要下载到的目录}
4、登陆并添加token
在运行3时,会让你login,这时在终端输入并执行huggingface-cli login,并在https://huggingface.co/settings/tokens 创建一个token,并复制到终端login中,即可,现在再去执行3即可成功开始下载
其他踩坑历程:
1、去meta官方下载,按照它发的邮件里的步骤一步步来,又去github上的llama-model仓库按照里面readme的步骤来,遭遇 403:Forbidden
2、克隆github仓库,使用download.sh脚本下载,试到最后终端自动关闭,尝试了解决办法也无效。。。。
初步使用
现在使用刚刚下载的模型,进行推理:
from transformers import LlamaForCausalLM, AutoTokenizer
#下载好的模型地址
model_path = 'xxx/yyy/llama3.1-8b-base'
model = LlamaForCausalLM.from_pretrained(model_path, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_path)
prompt = "你好啊"
inputs = tokenizer(prompt, return_tensors="pt")
# Generate
generate_ids = model.generate(inputs.input_ids, max_length=100)
res = tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
print(res)
base模型会生成通顺但让人意想不到的内容,因为它还没有进行指令微调,instruct/chat 版本的模型在和人类沟通方面会表现好很多