如何使用 python 调用 llama3 进行对话?

Meta 已将最新的 LLaMa3 进行了开源,因此,我们也可以方便的使用 Python 进行 LLaMa3 模型的调用和开发。

接下来,简单介绍如何通过 transformers 库来使用 LLaMa3。

1、导入库

首先,导入必要的库:

pip3 install transformers torch

然后,使用这篇文章讲过的方法替换 HuggingFace 的国内源。需要注意的是,在下载LLaMa3 的时候,需要前往 https://huggingface.co/meta-llama/Meta-Llama-3-8B 填写一份申请,官方审核通过后,你才拥有下载 LLaMa3 的资格。

审核通过后是下面的页面:

2、下载模型

下载 LLaMa3 可通过以下命令完成:

huggingface-cli download meta-llama/Meta-Llama-3-8B  --local-dir Meta-Llama-3-8B

其中, “--local-dir Meta-Llama-3-8B” 为你希望下载的模型存放的目录,由于llama-3 的模型非常大,上述命令会下载大概 32 GB的数据,因此,在下载前你需要你找一个磁盘空间足够大的目录来存放。

温馨提示:下载过程会比较漫长,等待即可。如果中途下载中断,你可以重新执行相同的指令来继续完成下载。

下载完成后,你可以直接使用下面的代码进行体验:

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "meta-llama/Meta-Llama-3-8B-Instruct"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    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?"},
]

input_ids = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt"
).to(model.device)

terminators = [
    tokenizer.eos_token_id,
    tokenizer.convert_tokens_to_ids("<|eot_id|>")
]

outputs = model.generate(
    input_ids,
    max_new_tokens=256,
    eos_token_id=terminators,
    do_sample=True,
    temperature=0.6,
    top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))

或者使用下面的代码:

import transformers
import torch

model_id = "meta-llama/Meta-Llama-3-8B"
pipeline = transformers.pipeline(
    "text-generation", model=model_id, model_kwargs={"torch_dtype": torch.bfloat16}, device_map="auto"
)
pipeline("Hey how are you doing today?")

同样的,LLaMa3 模型的运行最好在有 GPU 的开发环境下进行,否则输出一句话都会运行非常久的时间。


如果你想学习 AI ,欢迎来添加我的微信 (vx: ddcsggcs),会有很多好玩的AI技术分享,可以咨询、也可以围观朋友圈呀~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董董灿是个攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值