🎆 🧨 🔥 🎠 Mustango 登场,这是多模态大型语言模型领域中一款令人兴奋的新成员,专为可控音乐生成而设计。Mustango 借助潜在扩散模型(LDM)、Flan-T5 和音乐特征施展“魔法”!
📣 我们推出了 Red-Eval,用于通过多个越狱提示词评估大型语言模型(LLM)的安全性。使用 Red-Eval,在 DangerousQA 和 HarmfulQA 基准测试中,对 GPT-4 的越狱/红队攻击成功率可达 65.1%,对 ChatGPT 的越狱成功率为 73%。更多详情请见:代码 和 论文。
📣 我们通过在 Flan 数据集上对 Vicuna-13B 进行微调,开发了 Flacuna。Flacuna 在解决问题方面优于 Vicuna。在此访问模型:https://huggingface.co/declare-lab/flacuna-13b-v1.0。
📣 想了解 🍮 🦙 Flan-Alpaca 在大规模 LLM 评估基准 InstructEval 上的表现吗?阅读我们的论文 https://arxiv.org/pdf/2306.04757.pdf。我们评估了 10 多个开源指令调优 LLM,它们分属不同的 LLM 家族,包括 Pythia、LLaMA、T5、UL2、OPT 和 Mosaic。代码和数据集:https://github.com/declare-lab/instruct-eval
📣 FLAN-T5 在文本到音频生成方面也很有用。如果您感兴趣,可以在 https://github.com/declare-lab/tango 查看我们的研究成果。
我们的 仓库 包含用于将 Stanford Alpaca 的合成指令调优扩展到现有指令调优模型(如 Flan-T5)的代码。 感谢 Joao Gante,我们提供了一个 实时交互式演示! 我们还在 declare-lab/flan-eval 对许多指令调优模型进行基准测试。 我们的预训练模型可在 HuggingFace 🤗 上完全获取:
| 模型 | 参数规模 | 指令数据 | 训练 GPU |
|---|---|---|---|
| Flan-Alpaca-Base | 2.2 亿 | Flan、Alpaca | 1x A6000 |
| Flan-Alpaca-Large | 7.7 亿 | Flan、Alpaca | 1x A6000 |
| Flan-Alpaca-XL | 30 亿 | Flan、Alpaca | 1x A6000 |
| Flan-Alpaca-XXL | 110 亿 | Flan、Alpaca | 4x A6000 (FSDP) |
| Flan-GPT4All-XL | 30 亿 | Flan、GPT4All | 1x A6000 |
| Flan-ShareGPT-XL | 30 亿 | Flan、ShareGPT/Vicuna | 1x A6000 |
| Flan-Alpaca-GPT4-XL* | 30 亿 | Flan、GPT4-Alpaca | 1x A6000 |
*推荐用于获得更优性能
Alpaca 为低成本且便捷地逼近 ChatGPT 等大型语言模型(LLMs)的性能开辟了令人振奋的新方向。具体而言,它们利用 GPT-3 等大型语言模型生成指令作为合成训练数据。这些涵盖 5 万多项任务的合成数据可用于微调规模更小的模型。然而,由于底层 LLaMA 模型的许可限制,原始实现的可访问性较低。此外,用户已注意到合成数据集中存在潜在噪声。因此,探索一种完全可访问、且已在高质量(尽管多样性较低)指令上训练的模型(如 Flan-T5)可能是更优选择。
import torch
import argparse
from openmind import AutoTokenizer, is_torch_npu_available
from transformers import AutoModelForSeq2SeqLM
import time
def parse_args():
parser = argparse.ArgumentParser(description="Eval the model")
parser.add_argument(
"--model_name_or_path",
type=str,
help="path or model",
default="jeffding/flan-alpaca-gpt4-xl-openmind",
)
args = parser.parse_args()
return args
def main():
args = parse_args()
model_path = args.model_name_or_path
if is_torch_npu_available():
device = "npu:0"
else:
device = "cpu"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForSeq2SeqLM.from_pretrained(model_path).to(device)
data = "translate English to German:That is good."
start_time = time.time()
encoded = tokenizer([data], return_tensors="pt").to(device)
translation = model.generate(**encoded)
result = tokenizer.batch_decode(translation, skip_special_tokens=True)[0]
print(result)
end_time = time.time()
print(f"硬件环境:{device},推理执行时间:{end_time - start_time}秒")
if __name__ == "__main__":
main()from transformers import pipeline
prompt = "Write an email about an alpaca that likes flan"
model = pipeline(model="declare-lab/flan-alpaca-gpt4-xl")
model(prompt, max_length=128, do_sample=True)
# Dear AlpacaFriend,
# My name is Alpaca and I'm 10 years old.
# I'm excited to announce that I'm a big fan of flan!
# We like to eat it as a snack and I believe that it can help with our overall growth.
# I'd love to hear your feedback on this idea.
# Have a great day!
# Best, AL Paca