如何使用 python 调用 llama3 进行对话?
大模型开发/技术交流
- LLM
2024.10.30616看过
Meta 已将最新的 LLaMa3 进行了开源,因此,我们也可以方便的使用 Python 进行 LLaMa3 模型的调用和开发。
接下来,简单介绍如何通过 transformers 库来使用 LLaMa3。
首先,导入必要的库:
pip3 install transformers torch
然后,使用这篇文章讲过的方法替换 HuggingFace 的国内源。需要注意的是,在下载LLaMa3 的时候,需要前往 huggingface.co/meta-llama/… 填写一份申请,官方审核通过后,你才拥有下载 LLaMa3 的资格。
审核通过后是下面的页面:

下载 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, AutoModelForCausalLMimport torchmodel_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 transformersimport torchmodel_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技术分享,可以咨询、也可以围观朋友圈呀~
————————————————
版权声明:本文为稀土掘金博主「董董灿是个攻城狮」的原创文章
原文链接:https://juejin.cn/post/7418378848402604042
如有侵权,请联系千帆社区进行删除
评论
