llama3.1模型下载攻略(多坑探索)+ 初步使用

模型下载

先说结论:

使用使用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 版本的模型在和人类沟通方面会表现好很多

### 解决 Llama3.2 访问资源时遇到的 403 错误 当尝试访问与 Llama3.2 相关的资源并收到 403 Forbidden 错误时,这通常意味着服务器理解请求但拒绝授权。可能的原因包括但不限于 API 密钥无效、权限不足或 IP 地址被阻止。 #### 可能原因分析 1. **API 密钥验证失败** 如果使用的 API 密钥不正确或已过期,则会触发此错误。建议重新确认密钥的有效性和准确性[^1]。 2. **IP 黑名单** 若当前网络环境下的 IP 被目标服务列入黑名单,也会导致此类问题。可以联系服务商查询具体状况。 3. **频率限制超出** 部分接口存在调用次数上限,频繁请求可能导致临时封禁。适当降低请求频次有助于解决问题。 #### 实施解决方案 针对上述情况,可采取如下措施: - 对于 API 密钥问题,应前往官方平台获取最新有效的凭证,并更新配置文件中的相应字段; - 如怀疑是由于 IP 限制引起,考虑通过代理服务器发送请求或将应用部署到受信任的数据中心; - 当面临速率控制障碍时,优化代码逻辑减少不必要的重复调用,同时设置合理的等待间隔时间。 ```python import time def fetch_data_with_retry(url, retries=5, delay_seconds=60): attempt = 0 while attempt < retries: try: response = requests.get(url) if response.status_code == 200: return response.json() elif response.status_code == 403 and &#39;rate limit&#39; in response.text.lower(): print(f"Hit rate limit, retrying after {delay_seconds} seconds...") time.sleep(delay_seconds) else: raise Exception(f"Unexpected status code: {response.status_code}") except Exception as e: print(e) finally: attempt += 1 raise Exception("Failed to retrieve data after multiple attempts.") ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值