使用python调用llama3进行对话的操作步骤

 更新时间:2024年09月26日 08:45:41   作者:董董灿是个攻城狮  
Meta 已将最新的 LLaMa3 进行了开源,因此,我们也可以方便的使用 Python 进行 LLaMa3 模型的调用和开发,本文给大家介绍了如何使用 python 调用 llama3 进行对话,需要的朋友可以参考下

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

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

首先,导入必要的库:

pip3 install transformers torch

快速配置 Hugging Face的方法:

1. 什么是 Hugging Face

Hugging Face 本身是一家科技公司,专注于自然语言处理(NLP)和机器学习领域。 

最初以其聊天机器人应用闻名,后来逐渐转型,专注于开发和提供开源的人工智能模型和工具。

这家公司最著名的就是开发一个名为“Transformers”的库,这个库集成了很多比较先进的预训练模型,如BERT、GPT-2、GPT-3等等。

除此之外,Hugging Face 还有一个模型共享平台,类似于大模型界的Github,开发者可以在这个平台上下载训练好的大模型来使用。

官网在这:https://huggingface.co/

要学习与Transformer架构相关的知识,肯定要接触一些大模型,要接触大模型就免不了要从Hugging Face上下载一些模型和参数等文件。

但很多同学限于国外网站网速的问题,以及一些模型都很大(基本都是几个G起步),经常下载很长时间最终还是失败。

本节给出一个配置 Hugging Face镜像的方法,可以帮助你快速从Hugging Face上下载模型。

2、操作步骤

这里就不说原理了,按以下操作即可,在开发环境下安装以下库,执行命令:

pip3 install -U huggingface_hub
pip install -U "huggingface_hub[cli]"

待上述命令执行完,导入一个环境变量:

export HF_ENDPOINT=https://hf-mirror.com

之后访问Hugging Face就可以用该镜像网站访问,并且下载模型了,速度很快。

另外,如果你是在Linux 环境下做开发,建议将导入环境变量那条命令放在 ~/.bashrc 中,这样系统启动就会自动导入该环境变量,之后所有的开发就不用关心Hugging Face 有关的环境配置了。

然后,使用上面讲过的方法替换 HuggingFace 的国内源。需要注意的是,在下载LLaMa3 的时候,需要前往 huggingface.co/填写一份申请,官方审核通过后,你才拥有下载 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, 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 的开发环境下进行,否则输出一句话都会运行非常久的时间。

到此这篇关于使用python调用llama3进行对话的操作步骤的文章就介绍到这了,更多相关python llama3进行对话内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Python和Scikit-Learn的机器学习探索

    基于Python和Scikit-Learn的机器学习探索

    这篇文章主要介绍了基于Python和Scikit-Learn的机器学习探索的相关内容,小编觉得还是挺不错的,这里分享给大家,供需要的朋友学习和参考。
    2017-10-10
  • Gradio构建交互式Python应用使用示例详解

    Gradio构建交互式Python应用使用示例详解

    这篇文章主要为大家介绍了Gradio构建交互式Python应用使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • pytorch: Parameter 的数据结构实例

    pytorch: Parameter 的数据结构实例

    今天小编就为大家分享一篇pytorch: Parameter 的数据结构实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python装饰器使用实例:验证参数合法性

    Python装饰器使用实例:验证参数合法性

    这篇文章主要介绍了Python装饰器使用实例:验证参数合法性,本文直接给出代码实例,代码中包含详细注释,需要的朋友可以参考下
    2015-06-06
  • Eclipse中Python开发环境搭建简单教程

    Eclipse中Python开发环境搭建简单教程

    这篇文章主要为大家分享了Eclipse中Python开发环境搭建简单教程,步骤简洁,一目了然,可以帮助大家快速搭建python开发环境,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Python logging模块handlers用法详解

    Python logging模块handlers用法详解

    这篇文章主要介绍了Python logging模块handlers用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • python顺序的读取文件夹下名称有序的文件方法

    python顺序的读取文件夹下名称有序的文件方法

    今天小编就为大家分享一篇python顺序的读取文件夹下名称有序的文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python如何查找列表中元素的位置

    python如何查找列表中元素的位置

    这篇文章主要介绍了python如何查找列表中元素的位置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python实现堆和索引堆的代码示例

    python实现堆和索引堆的代码示例

    本篇文章主要介绍了python实现堆和索引堆的代码示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • python flask几分钟实现web服务的例子

    python flask几分钟实现web服务的例子

    今天小编就为大家分享一篇python flask几分钟实现web服务的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论