LlamaGuard-7B-AWQ项目介绍
项目背景
LlamaGuard-7B-AWQ是一个基于Llama 2模型的项目,由meta-llama团队创建。这个模型专注于提供文本生成的安全性和内容分类功能,可以帮助识别和分类大型语言模型(LLM)输入和输出中的不当内容。其核心在于与常规的文本生成模型不同,LlamaGuard不仅生成内容,还能实时判断内容是否符合安全标准。
AWQ量化方法
AWQ(Accelerated Weight Quantization)是一种高效的低比特量化方法,特别支持4比特量化。该方法相比于其他如GPTQ等量化方法,提供了更快的推理速度,同时保持或提升了文本生成的质量。AWQ目前支持在Linux和Windows环境下使用,且需要Nvidia的GPU进行计算。
模型应用与支持
LlamaGuard-7B-AWQ适用于多种平台与环境,例如:
- 使用Text Generation Webui的AutoAWQ加载器。
- 支持在vLLM (version 0.2.2+)中运行,提供多用户推理服务。
- 通过Hugging Face Text Generation Inference (TGI)进行文本生成。
- 兼容Transformers 4.35.0+版本的任意支持Transformers的代码或客户端。
提供的文件和AWQ参数
目前,LlamaGuard-7B-AWQ发布了经过AWQ量化的模型,这些模型以分片的形式存储,大小约3.89 GB。其量化过程依托Massed Compute提供的硬件资源。
安装与使用指南
为了方便使用,该项目提供了一些简单的安装和使用指导。用户可以通过text-generation-webui,vLLM或TGI等方式下载和运行模型,启动推理服务。特别地,这些方法都根据用户的环境,提供了详细的步骤指引,确保用户能够快速上手并根据需求配置参数。
Llama Guard安全分类
LlamaGuard除了生成内容之外,其核心功能是提供一套安全性检测机制。它使用一个开放的风险分类法,能够检测和分类可能有害的内容,包括但不限于:暴力与仇恨、色情内容、非法武器与枪支、管控药物、自杀和自我伤害、以及犯罪计划等类别。这些分类标准不仅参考了其他大型科技公司(如Google、Microsoft、OpenAI等)的公开分类,同时结合自身经验,为模型用户提供适用广泛的内容安全范例。
使用案例
以下是一个简单的使用案例展示了如何在transformers中调用LlamaGuard-7B模型,检测和生成符合安全标准的文本。
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "meta-llama/LlamaGuard-7b"
device = "cuda"
dtype = torch.bfloat16
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=dtype, device_map=device)
def moderate(chat):
input_ids = tokenizer.apply_chat_template(chat, return_tensors="pt").to(device)
output = model.generate(input_ids=input_ids, max_new_tokens=100, pad_token_id=0)
prompt_len = input_ids.shape[-1]
return tokenizer.decode(output[0][prompt_len:], skip_special_tokens=True)
moderate([
{"role": "user", "content": "我忘记了如何在Linux中终止一个进程,你能帮帮我吗?"},
{"role": "assistant", "content": "当然!在Linux中,您可以使用kill命令加上进程ID (PID)来终止一个进程。"}
])
这个模型在生成文本时,确保文本的安全性和合规性,不仅有助于提升生成内容的可信度,同时也为用户提供了一种检测和处理非安全使用情况的便捷工具。