项目介绍:LLaMAntino-2-chat-13b-hf-UltraChat-ITA
模型概述
LLaMAntino-2-chat-13b-UltraChat 是一个大型语言模型(LLM),专门为意大利语对话场景进行了调整。它是基于最初的 LLaMAntino-2-chat-13b 模型而开发的,这一模型已经适配了意大利版的 LLaMA 2 chat。该模型旨在为意大利的自然语言处理(NLP)研究人员提供一个更为出色的工具,以便更好地处理意大利语对话相关用例。
该模型使用 QLora 方法进行训练,并且利用 UltraChat 数据集,通过 Argos Translate 转译为意大利语。
开发背景
- 主要开发人员:Pierpaolo Basile, Elio Musacchio, Marco Polignano, Lucia Siciliani, Giuseppe Fiameni, Giovanni Semeraro
- 资助项目:PNRR项目 FAIR - 未来人工智能研究
- 计算设施:Leonardo 超级计算机
- 模型类型:LLaMA-2-chat
- 语言:意大利语
- 许可证:Llama 2 社区许可证
- 细化自的基础模型:swap-uniba/LLaMAntino-2-chat-13b-hf-ITA
推荐的模型提示格式
在推理中使用以下提示格式,可以获得最佳结果:
" [INST]<<SYS>>\n" \
"Sei un assistente disponibile, rispettoso e onesto. " \
"Rispondi sempre nel modo piu' utile possibile, pur essendo sicuro. " \
"Le risposte non devono includere contenuti dannosi, non etici, razzisti, sessisti, tossici, pericolosi o illegali. " \
"Assicurati che le tue risposte siano socialmente imparziali e positive. " \
"Se una domanda non ha senso o non e' coerente con i fatti, spiegane il motivo invece di rispondere in modo non corretto. " \
"Se non conosci la risposta a una domanda, non condividere informazioni false.\n" \
"<</SYS>>\n\n" \
f"{user_msg_1}[/INST] {model_answer_1} </s> <s> [INST]{user_msg_2}[/INST] {model_answer_2} </s> ... <s> [INST]{user_msg_N}[/INST] {model_answer_N} </s>"
如何开始使用模型
以下是使用模型的小例子:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "swap-uniba/LLaMAntino-2-chat-13b-hf-UltraChat-ITA"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
user_msg = "Ciao! Come stai?"
prompt = " [INST]<<SYS>>\n" \
"Sei un assistente disponibile, rispettoso e onesto. " \
"Rispondi sempre nel modo piu' utile possibile, pur essendo sicuro. " \
"Le risposte non devono includere contenuti dannosi, non etici, razzisti, sessisti, tossici, pericolosi o illegali. " \
"Assicurati che le tue risposte siano socialmente imparziali e positive. " \
"Se una domanda non ha senso o non e' coerente con i fatti, spiegane il motivo invece di rispondere in modo non corretto. " \
"Se non conosci la risposta a una domanda, non condividere informazioni false.\n" \
"<</SYS>>\n\n" \
f"{user_msg}[/INST]"
pipe = transformers.pipeline(
model=model,
tokenizer=tokenizer,
return_full_text=False, # langchain expects the full text
task='text-generation',
max_new_tokens=512, # max number of tokens to generate in the output
temperature=0.8 #温度调节用于控制回答的创造性
)
# 方法1
sequences = pipe(text)
for seq in sequences:
print(f"{seq['generated_text']}")
# 方法2
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
outputs = model.generate(input_ids=input_ids, max_length=512)
print(tokenizer.batch_decode(outputs.detach().cpu().numpy()[:, input_ids.shape[1]:], skip_special_tokens=True)[0])
如果在加载模型时遇到问题,可以尝试使用量化加载方法:
model = AutoModelForCausalLM.from_pretrained(model_id, load_in_8bit=True)
注意:
- 上述模型加载策略需要 bitsandbytes 和 accelerate 库的支持。
- Tokenizer 默认会在提示开头添加 '<BOS>' 符号。如果不是这样的情况,请添加 <s> 字符串作为开始符。
模型评估
即将发布。
引用
如果在研究中使用了此模型,请引用以下内容:
@misc{basile2023llamantino,
title={LLaMAntino: LLaMA 2 Models for Effective Text Generation in Italian Language},
author={Pierpaolo Basile and Elio Musacchio and Marco Polignano and Lucia Siciliani and Giuseppe Fiameni and Giovanni Semeraro},
year={2023},
eprint={2312.09993},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
提示:Llama 2 是根据 LLAMA 2 社区许可证授权使用的,版权所有 © Meta Platforms, Inc. All Rights Reserved. 许可证