Llama 3 安装使用方法

Llama3简介:

llama3是一种自回归语言模型,采用了transformer架构,目前开源了8b和70b参数的预训练和指令微调模型,400b正在训练中,性能非常强悍,并且在15万亿个标记的公开数据进行了预训练,比llama2大了7倍,距离llama2的开源发布仅仅过去了10个月,llama3就强势发布,一起来看一下他的使用方法。

在这里我经过查询Meta公布的4月15日的基准测试结果,Llama 3 400B+模型的表现已经持平Claude 3 Opus,超过Gemini 1.5 Pro,仅在数学部分落后于最先进的 GPT-4 Turbo 2024-04-09模型。

作为一个优秀团队的开源模型,我们更重要的是知道如何使用它,来减轻我们的负担,提升我们学习,完成任务,创作内容的效率与准确率。

Llama3安装:

git clone 安装

Llama3的git地址是 https://github.com/meta-llama/llama3 ,可以直接git克隆到本地

bash 复制代码
git clone https://github.com/meta-llama/llama3

然后在根目录运行

bash 复制代码
pip install -e .

去metallama官网登录使用下载该模型 https://llama.meta.com/llama-downloads/

  1. 注册登录,您将得到一个电子邮件的网址下载模型。当你运行下载时,你需要这个网址,一旦你收到电子邮件,导航到你下载的骆驼存储库和运行下载。
  2. 确保授予下载的执行权限。
  3. 在此过程中,将提示您从邮件中输入URL。
  4. 不要使用"复制链接"选项,而是要确保从电子邮件中手动复制链接

本地运行

bash 复制代码
torchrun --nproc_per_node 1 example_chat_completion.py \
    --ckpt_dir Meta-Llama-3-8B-Instruct/ \
    --tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model \
    --max_seq_len 512 --max_batch_size 6

注意事项:

  1. 替换 Meta-Llama-3-8B-Instruct/ 你的检查站目录的路径Meta-Llama-3-8B-Instruct/tokenizer.model 找到了你的标记器模型.
  2. ...--nproc_per_node 我们应该把它放在你所使用的模型的价值。
  3. 调整max_seq_len 和max_batch_size 必要时参数.
  4. 这个例子运行了 example_chat_completion.py 在这个存储库中找到,但是你可以将它更改为不同的文件。
  5. 根据你本身的硬件来调整max_seq_len 和max_batch_size参数

huggingface 平台下载

可以通过huggingface 平台下载(需要先进入huggingface平台申请,同意它的条款,)

然后先安装huggingface工具

bash 复制代码
pip install huggingface-hub

然后指定meta-llama/Meta-Llama-3-8B-Instruct

bash 复制代码
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include "original/*" --local-dir meta-llama/Meta-Llama-3-8B-Instruct

然后transformer的使用

python 复制代码
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
  "text-generation",
  model="meta-llama/Meta-Llama-3-8B-Instruct",
  model_kwargs={"torch_dtype": torch.bfloat16},
  device="cuda", 
)

如果没有gpu的同学可以使用cpu device=cuda,计算性能会差一些

完整的使用方式:

python 复制代码
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
    "text-generation",
    model=model_id,
    model_kwargs={"torch_dtype": torch.bfloat16},
    device_map="auto",
)
messages = [
    {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
    {"role": "user", "content": "Who are you?"},
]
prompt = pipeline.tokenizer.apply_chat_template(
        messages, 
        tokenize=False, 
        add_generation_prompt=True
)
terminators = [
    pipeline.tokenizer.eos_token_id,
    pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = pipeline(
    prompt,
    max_new_tokens=256,
    eos_token_id=terminators,
    do_sample=True,
    temperature=0.6,
    top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])

基于ollama使用:

目前推荐使用ollama的8b,70b,instruct, text 其他量化模型是别的用户微调过的,建议使用原生的llama3.

执行:

bash 复制代码
ollama run llama3:instruct

或者

bash 复制代码
ollama run llama3  (ollama pull llama3:8b)



测试llama3的生成速度非常快,至少是llama2的两倍,如果有强大的显存支持效率会更高。

总结

llama3在llama2的基础上实现了质的飞跃,已经超过chat3.5的性能,并且他的预训练和微调是目前市面上开源的参数规模最好的,不仅是对于开发者还有企业使用者,这都是非常合适的一个模型。

下表显示了我们的评估结果与Claude Sonnet、Mistral Medium和GPT-3.5相比,在这些类别和提示上的汇总结果

在未来的大模型道路上,选择最优秀的模型往往是我们第一步需要考虑的事情。

相关推荐
Jamence5 分钟前
多模态大语言模型arxiv论文略读(三十六)
人工智能·语言模型·自然语言处理
豌豆花下猫2 小时前
Python 潮流周刊#99:如何在生产环境中运行 Python?(摘要)
后端·python·ai
深圳市快瞳科技有限公司2 小时前
当OCR遇上“幻觉”:如何让AI更靠谱地“看懂”文字?
人工智能·ai·ocr
SLY司赖2 小时前
大模型应用开发之LLM入门
语言模型·chatgpt·llm
带刺的坐椅4 小时前
开发 MCP Proxy(代理)也可以用 Solon AI MCP 哟!
java·ai·llm·solon·mcp·mcp-server·mcp-client
白云coy4 小时前
AI编程:[体验]从 0 到 1 开发一个项目的初体验
ai编程
QING6185 小时前
Android 定位权限兼容问题详解 —— 新手指南
android·ai编程·trae
QING6185 小时前
Android 存储权限兼容问题详解 —— 新手指南
android·ai编程·trae
Gsen28196 小时前
AI大模型从0到1记录学习 数据结构和算法 day20
数据结构·学习·算法·生成对抗网络·目标跟踪·语言模型·知识图谱