LLaMAntino-3-ANITA-8B-Inst-DPO-ITA项目介绍
项目背景
LLaMAntino-3-ANITA-8B-Inst-DPO-ITA是LLaMAntino大型语言模型家族的一员,这个模型是基于Meta-Llama-3-8B-Instruct的指令调优版,旨在成为多语言模型,特别关注意大利语的任务。这一模型为意大利自然语言处理(NLP)研究人员提供了一个增强的意大利语模型,以支持相关的使用场景。
项目目标
该项目的目标是通过改进自然互动的方式,提升意大利语NLP模型的能力,从而更好地服务于意大利语用户。ANITA项目(意大利语自然交互高级版)即是其中的核心,力图在特定的意大利语任务中发挥更出色的表现。
技术细节
- 模型开发者: 由Marco Polignano博士及巴里阿尔多莫罗大学的SWAP研究小组开发。
- 模型架构: 使用了Llama 3的架构形式。
- 语言支持: 支持多种语言,专注于意大利语。
- 输入与输出: 接受文字输入,仅生成文字和代码作为输出。
- 使用的库: 采用Unsloth工具进行开发。
数据集与评估
该模型使用了多种数据集进行训练和评估,包括:
- AI2推理挑战赛: 在25次样本的条件下,达到了74.57%的标准化准确率。
- HellaSwag: 在10次样本验证中,取得了92.75%的标准化准确率。
- MMLU: 在5次样本下,获得了66.85%的准确率。
- TruthfulQA: 在不提供任何样本的条件下,达到了75.93%的表现。
- Winogrande: 经过5次样本验证,准确率达到82.0%。
- GSM8k: 在5次样本测试中,实现了58.61%的准确率。
评估结果详见Open LLM Leaderboard。
实验与使用
想要体验该模型,可以通过以下几种方式进行:
使用Transformers
-
安装Transformers库:
pip install -U transformers trl peft accelerate bitsandbytes
-
利用以下代码直接使用模型:
import torch from transformers import AutoModelForCausalLM, AutoTokenizer base_model = "swap-uniba/LLaMAntino-3-ANITA-8B-Inst-DPO-ITA" model = AutoModelForCausalLM.from_pretrained(base_model, torch_dtype=torch.bfloat16, device_map="auto") tokenizer = AutoTokenizer.from_pretrained(base_model) # 方法1 messages = [{"role": "system", "content": sys}, {"role": "user", "content": "Chi è Carlo Magno?"}] prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False) for k,v in inputs.items(): inputs[k] = v.cuda() outputs = model.generate(**inputs, max_new_tokens=512, do_sample=True, top_p=0.9, temperature=0.6) results = tokenizer.batch_decode(outputs)[0] print(results)
使用量化模型
通过4位量化技术,可以降低资源需求:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
base_model = "swap-uniba/LLaMAntino-3-ANITA-8B-Inst-DPO-ITA"
bnb_config = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=False)
model = AutoModelForCausalLM.from_pretrained(base_model, quantization_config=bnb_config, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(base_model)
# 同上示例继续操作
使用工具
该项目得到了Unsloth工具的支持,这是一款帮助产品开发、提高效率并降低成本的工具。用户可以通过访问Unsloth来了解更多信息。
致谢
特别感谢FAIR项目的支持,该项目由NextGenerationEU资助,为意大利人工智能的未来研究提供支持。该模型是在Leonardo超级计算机上开发的,由CINECA-意大利超级计算资源分配提供支持。详细评估结果及模型信息可在详细评估结果页面查看。