Meta Llama 3 8B Instruct Bnb 8bit
模型简介
该模型是一个经过指令微调的大语言模型,适用于英文商业和研究用途,特别适合对话式聊天和自然语言生成任务。
模型特点
8位量化
使用bitsandbytes库进行8位量化,减少内存占用同时保持高性能。
高效推理
支持使用Transformers库的pipeline进行高效推理,也可自定义推理。
多场景适用
适用于商业和研究领域的英文文本生成任务,如对话式聊天、自然语言生成等。
安全优化
经过红队测试和对抗性评估,实施了安全缓解技术以降低残留风险。
模型能力
文本生成
对话式聊天
自然语言理解
指令跟随
使用案例
商业应用
虚拟助手
作为高级虚拟助手,提供准确和有用的回答。
能够处理广泛的用户查询,提供高质量响应。
研究
自然语言生成研究
用于研究自然语言生成的各种任务。
在多个基准测试中表现优异。
🚀 alokabhishek/Meta-Llama-3-8B-Instruct-bnb-8bit模型卡
本仓库包含Meta公司的Meta-Llama-3-8B-Instruct模型的8位量化版本(使用bitsandbytes进行量化)。该模型在文本生成任务上表现出色,能够为用户提供高效且准确的文本输出。
🚀 快速开始
使用以下代码即可开始使用该模型:
import transformers
import torch
model_id = "alokabhishek/Meta-Llama-3-8B-Instruct-bnb-8bit"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)
prompt_instruction = "You are a virtual assistant with advanced expertise in a broad spectrum of topics, equipped to utilize high-level critical thinking, cognitive skills, creativity, and innovation. Your goal is to deliver the most straightforward and accurate answer possible for each question, ensuring high-quality and useful responses for the user. "
user_prompt = "Why is Hulk always angry?"
chat_messages = [
{"role": "system", "content": str(prompt_instruction)},
{"role": "user", "content": str(user_prompt)},
]
prompt = pipeline.tokenizer.apply_chat_template(
chat_messages,
tokenize=False,
add_generation_prompt=True
)
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
output = pipeline(
prompt,
do_sample=True,
max_new_tokens=1024,
temperature=1,
top_k=50,
top_p=1,
num_return_sequences=1,
pad_token_id=text_generation_pipeline.tokenizer.pad_token_id,
eos_token_id=terminators,
)
print(output[0]["generated_text"][len(prompt):])
✨ 主要特性
- 8位量化:使用bitsandbytes库对模型进行8位量化,在减少内存占用的同时保持较高的性能。
- 高效推理:支持使用Transformers库的pipeline进行高效推理,也可以使用Auto类和
generate()
函数进行自定义推理。 - 多场景适用:适用于商业和研究领域的英文文本生成任务,如对话式聊天、自然语言生成等。
📦 安装指南
本仓库包含两个版本的Meta-Llama-3-8B-Instruct模型,可分别与Transformers库和原始的llama3
代码库配合使用。
使用Transformers库
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):])
使用原始的llama3
代码库
请按照仓库中的说明进行操作。
下载原始模型检查点的示例命令如下:
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include "original/*" --local-dir Meta-Llama-3-8B-Instruct
💻 使用示例
基础用法
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):])
高级用法
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))
📚 详细文档
模型详情
- 模型创建者:Meta
- 原始模型:Meta-Llama-3-8B-Instruct
关于使用bitsandbytes进行8位量化
- QLoRA:高效微调量化大语言模型:arXiv - QLoRA: Efficient Finetuning of Quantized LLMs
- Hugging Face博客文章:关于使用bitsandbytes进行8位量化:A Gentle Introduction to 8-bit Matrix Multiplication for transformers at scale using Hugging Face Transformers, Accelerate and bitsandbytes
- bitsandbytes GitHub仓库:bitsandbytes github repo
预期用途
- 预期用例:Llama 3适用于英文商业和研究用途。经过指令微调的模型适用于类似助手的聊天场景,而预训练模型可用于各种自然语言生成任务。
- 超出范围的使用:禁止以任何违反适用法律法规(包括贸易合规法律)的方式使用。禁止以可接受使用政策和Llama 3社区许可证禁止的任何其他方式使用。禁止在英语以外的语言中使用。
硬件和软件
- 训练因素:使用自定义训练库、Meta的研究超级集群和生产集群进行预训练。微调、标注和评估也在第三方云计算平台上进行。
- 碳足迹:预训练累计使用了770万个H100-80GB GPU小时(TDP为700W)的计算资源。估计总排放量为2290吨二氧化碳当量,其中100%由Meta的可持续发展计划抵消。
训练数据
- 概述:Llama 3在超过15万亿个公开可用数据源的标记上进行了预训练。微调数据包括公开可用的指令数据集以及超过1000万个手动标注的示例。预训练和微调数据集均不包含Meta用户数据。
- 数据新鲜度:预训练数据的截止时间分别为2023年3月(7B模型)和2023年12月(70B模型)。
基准测试
在本节中,我们报告了Llama 3模型在标准自动基准测试中的结果。所有评估均使用我们的内部评估库进行。有关方法的详细信息,请参阅此处。
基础预训练模型
类别 | 基准测试 | Llama 3 8B | Llama2 7B | Llama2 13B | Llama 3 70B | Llama2 70B |
---|---|---|---|---|---|---|
通用 | MMLU (5-shot) | 66.6 | 45.7 | 53.8 | 79.5 | 69.7 |
通用 | AGIEval English (3-5 shot) | 45.9 | 28.8 | 38.7 | 63.0 | 54.8 |
通用 | CommonSenseQA (7-shot) | 72.6 | 57.6 | 67.6 | 83.8 | 78.7 |
通用 | Winogrande (5-shot) | 76.1 | 73.3 | 75.4 | 83.1 | 81.8 |
通用 | BIG-Bench Hard (3-shot, CoT) | 61.1 | 38.1 | 47.0 | 81.3 | 65.7 |
通用 | ARC-Challenge (25-shot) | 78.6 | 53.7 | 67.6 | 93.0 | 85.3 |
知识推理 | TriviaQA-Wiki (5-shot) | 78.5 | 72.1 | 79.6 | 89.7 | 87.5 |
阅读理解 | SQuAD (1-shot) | 76.4 | 72.2 | 72.1 | 85.6 | 82.6 |
阅读理解 | QuAC (1-shot, F1) | 44.4 | 39.6 | 44.9 | 51.1 | 49.4 |
阅读理解 | BoolQ (0-shot) | 75.7 | 65.5 | 66.9 | 79.0 | 73.1 |
阅读理解 | DROP (3-shot, F1) | 58.4 | 37.9 | 49.8 | 79.7 | 70.2 |
指令微调模型
基准测试 | Llama 3 8B | Llama 2 7B | Llama 2 13B | Llama 3 70B | Llama 2 70B |
---|---|---|---|---|---|
MMLU (5-shot) | 68.4 | 34.1 | 47.8 | 82.0 | 52.9 |
GPQA (0-shot) | 34.2 | 21.7 | 22.3 | 39.5 | 21.0 |
HumanEval (0-shot) | 62.2 | 7.9 | 14.0 | 81.7 | 25.6 |
GSM-8K (8-shot, CoT) | 79.6 | 25.7 | 77.4 | 93.0 | 57.5 |
MATH (4-shot, CoT) | 30.0 | 3.8 | 6.7 | 50.4 | 11.6 |
责任与安全
我们相信,开放的人工智能方法能够带来更好、更安全的产品,加速创新,并扩大整体市场。我们致力于负责任的人工智能开发,并采取了一系列措施来限制滥用和危害,支持开源社区。
Llama 3-Instruct
- 安全:对于经过指令微调的模型,我们进行了广泛的红队测试、对抗性评估,并实施了安全缓解技术以降低残留风险。与任何大语言模型一样,残留风险可能仍然存在,我们建议开发人员在其使用场景中评估这些风险。
- 拒绝回答:除了残留风险,我们还非常重视模型对良性提示的拒绝回答问题。过度拒绝不仅会影响用户体验,在某些情况下甚至可能有害。我们听取了开发者社区的反馈,并改进了微调过程,以确保Llama 3比Llama 2更不可能错误地拒绝回答提示。
负责任的发布
除了上述负责任使用的考虑因素外,我们还遵循了严格的流程,在做出发布决定之前,需要采取额外措施来防范滥用和关键风险。
社区
生成式人工智能安全需要专业知识和工具,我们相信开放社区的力量能够加速其发展。我们是多个开放联盟的积极成员,包括AI联盟、人工智能合作组织和MLCommons,积极为其发展做出贡献。
🔧 技术细节
- 模型架构:Llama 3是一种自回归语言模型,采用了优化的Transformer架构。经过微调的版本使用监督微调(SFT)和基于人类反馈的强化学习(RLHF)来使模型与人类对有用性和安全性的偏好保持一致。
- 8位量化:使用bitsandbytes库对模型进行8位量化,通过减少模型参数的存储位数,降低了内存占用,同时保持了较高的推理性能。
📄 许可证
自定义商业许可证可在https://llama.meta.com/llama3/license获取。
有关模型的问题或评论,请参考模型README中的说明。有关生成参数和如何在应用程序中使用Llama 3的更多技术信息,请访问此处。
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98
智启未来,您的人工智能解决方案智库
简体中文