Transformers 4.37 中文文档(四十)

2024-06-26 16:16:06 浏览数 (1)

原文:huggingface.co/docs/transformers

LLaMA

原始文本:huggingface.co/docs/transformers/v4.37.2/en/model_doc/llama

概述

Hugo Touvron、Thibaut Lavril、Gautier Izacard、Xavier Martinet、Marie-Anne Lachaux、Timothée Lacroix、Baptiste Rozière、Naman Goyal、Eric Hambro、Faisal Azhar、Aurelien Rodriguez、Armand Joulin、Edouard Grave、Guillaume Lample 在LLaMA: Open and Efficient Foundation Language Models中提出了 LLaMA 模型。它是一个包含从 7B 到 65B 参数的基础语言模型的集合。

该论文的摘要如下:

我们介绍 LLaMA,这是一个包含从 7B 到 65B 参数的基础语言模型的集合。我们在数万亿标记上训练我们的模型,并展示了可以仅使用公开可用的数据集训练最先进的模型,而无需使用专有和不可访问的数据集。特别是,LLaMA-13B 在大多数基准测试中优于 GPT-3(175B),而 LLaMA-65B 与最佳模型 Chinchilla-70B 和 PaLM-540B 竞争。我们向研究社区发布了所有我们的模型。

此模型由zphang贡献,BlackSamorez也有贡献。 Hugging Face 中的实现代码基于 GPT-NeoX 这里。作者的原始代码可以在这里找到。

使用提示

  • LLaMA 模型的权重可以通过填写此表格获得。
  • 下载权重后,需要使用转换脚本将其转换为 Hugging Face Transformers 格式。可以使用以下(示例)命令调用脚本:
代码语言:javascript复制
python src/transformers/models/llama/convert_llama_weights_to_hf.py 
    --input_dir /path/to/downloaded/llama/weights --model_size 7B --output_dir /output/path
  • 转换后,可以通过以下方式加载模型和分词器:
代码语言:javascript复制
from transformers import LlamaForCausalLM, LlamaTokenizer

tokenizer = LlamaTokenizer.from_pretrained("/output/path")
model = LlamaForCausalLM.from_pretrained("/output/path")

请注意,执行脚本需要足够的 CPU RAM 来托管整个模型的 float16 精度(即使最大版本分为几个检查点,它们每个都包含模型的每个权重的一部分,因此我们需要将它们全部加载到 RAM 中)。对于 65B 模型,因此需要 130GB 的 RAM。

  • LLaMA 分词器是基于sentencepiece的 BPE 模型。sentencepiece 的一个特点是,在解码序列时,如果第一个标记是单词的开头(例如“Banana”),分词器不会在字符串前添加前缀空格。

此模型由zphang贡献,BlackSamorez也有贡献。 Hugging Face 中的实现代码基于 GPT-NeoX 这里。作者的原始代码可以在这里找到。实现的 Flax 版本由afmck贡献,实现中的代码基于 Hugging Face 的 Flax GPT-Neo。

基于原始 LLaMA 模型,Meta AI 发布了一些后续作品:

  • Llama2:Llama2 是 Llama 的改进版本,具有一些架构调整(Grouped Query Attention),并且在 2 万亿标记上进行了预训练。请参考可以在这里找到的 Llama2 的文档。

资源

一系列官方 Hugging Face 和社区(由

0 人点赞