LLaMA-2|FreeWilly2微调模型

FreeWilly2是由Stability AI基于Llama2 70B所微调后发布的大语言模型,部分推理能力已经超越openAI的GPT-3.5。且在HuggingFace开源语言模型排行榜的榜首。

基于LLaMA-2进行微调的FreeWilly2开源语言模型

FreeWilly2是由Stability AI基于Llama2 70B所微调后发布的大语言模型,该模型的部分推理能力甚至已经超越openAIGPT-3.5。截止至发稿前,该模型在HuggingFace开源语言模型排行榜中位列榜首,大部分语言模型加载工具也正在处于积极适配中

看来开源语言模型终于要变天了,毕竟现在各种技术层出不穷,就像站长所说的,超越闭门造车不再open的oepnAI,只是时间问题。

模型描述

FreeWilly2是一个在Orca风格数据集上微调的Llama2 70B模型。Stability AI及其CarperAI实验室自豪地宣布FreeWilly1及其后继者FreeWilly2,这是两个强大的新型开放访问的大型语言模型(LLM)。这两个模型在各种基准测试中展现出了卓越的推理能力。FreeWilly1利用了原始的LLaMA 65B基础模型,并通过新的合成数据集使用标准Alpaca格式进行了精心微调。类似地,FreeWilly2利用了LLaMA 2 70B基础模型,其性能在某些任务上与GPT-3.5相比表现出色。

数据生成和收集

FreeWilly模型的训练直接受到了微软在其论文《Orca:从GPT-4的复杂解释跟踪中进行渐进学习》中开创的方法的启发。虽然我们的数据生成过程类似,但我们在数据来源上有所不同。

我们的数据集变种包含了60万个数据点(大约是原始Orca论文使用的数据集大小的10%),这些数据点是通过对以下由Enrico Shippole创建的高质量指令数据集进行语言模型提示而生成的:

  1. COT Submix原始数据集
  2. NIV2 Submix原始数据集
  3. FLAN 2021 Submix原始数据集
  4. T0 Submix原始数据集

通过这种方法,我们使用一个较简单的LLM模型生成了50万个示例,并使用一个更复杂的LLM模型生成了额外的10万个示例。为了确保公平比较,我们仔细筛选了这些数据集,并删除了来自评估基准的示例。尽管训练样本大小仅为原始Orca论文的十分之一(大大减少了与原始论文相比训练模型的成本和碳足迹),但由此产生的FreeWilly模型在各种基准测试中表现出色,验证了我们合成数据集的方法。

性能评估

为了对这些模型进行内部评估,我们使用了EleutherAI的lm-eval-harness,并加入了AGIEval

这两个FreeWilly模型在许多方面表现出色,包括复杂推理、理解语言细微之处,并回答与专业领域(例如法律和数学问题解决)相关的复杂问题。

开放式LLM排行榜基准

这些FreeWilly模型的结果由Stability AI的研究人员进行评估,并在2023年7月21日由Hugging Face进行独立复现,并在他们的排行榜上发布。

LLaMA-2|FreeWilly2微调模型

GPT4ALL基准测试(全零样本)

LLaMA-2|FreeWilly2微调模型

AGI Eval(全零样本)

LLaMA-2|FreeWilly2微调模型

模型细节

开发者:Stability AI 模型类型:FreeWilly是一个在Llama2 70B上进行微调的自回归语言模型。 语言:英语 库:HuggingFace Transformers 许可证:经过微调的检查点(FreeWilly2)使用非商业性创作共享许可证(CC BY-NC-4.0)授权

训练数据集

FreeWilly2是在我们内部的Orca风格数据集上进行训练的。

训练过程

模型通过在前述数据集上进行有监督微调来进行学习,采用混合精度(BF16)进行训练,并使用AdamW进行优化。我们概述以下超参数:

数据集Batch Size学习率学习率衰减Warm-up权重衰减Betas
Orca pt1 packed2563e-5Cosine to 3e-61001e-6(0.9, 0.95)
Orca pt2 unpacked5123e-5Cosine to 3e-61001e-6(0.9, 0.95)

使用和限制

预期用途

这些模型仅供研究使用,遵守CC BY-NC-4.0许可证。

限制和偏见

虽然上述数据集有助于将基础语言模型引导到“更安全”的文本分布,但并非所有偏见和有害内容都能通过微调来缓解。我们要求用户注意在生成的响应中可能出现的潜在问题。请不要将模型输出视为人类判断的替代品或真相来源。请负责任地使用它。

项目仓库

GitHub:stabilityai/FreeWilly2 · Hugging Face

模型部署

为了避免各个语言模型需要单独安装配置各种语言环境等复杂问题,站长推荐大家使用Text-Generation-WebUI来加载模型。

你可以将Text-Generation-WebUI理解为是一个通用的语言模型加载工具,在你部署成功之后,各主流的开源语言模型无需单独安装部署,仅需要将模型放置到Text-Generation-WebUI的模型路径下即可使用,非常方便。

关于Text-Generation-WebUI的安装部署以及使用教程,请查看如下文章。


注意:站长的电脑内存和显存条件都不足以能够支撑运行该模型,在加载时会遇到如下报错,大概意思为内存不足:您尝试分配 469762048 字节,所以关于是否能够通过该语言模型加载器成功运行存疑,毕竟站长没有跑通,但理论上是可行的,如果有成功的小伙伴欢迎反馈一下,非常感谢。

2023-07-24 12:00:23 INFO:Loading FreeWilly2...
Loading checkpoint shards:  48%|██████████████████████████                            | 14/29 [23:36<25:18, 101.21s/it]
2023-07-24 12:24:05 ERROR:Failed to load the model.
Traceback (most recent call last):
  File "D:\openai.wiki\oobabooga\text-generation-webui\server.py", line 68, in load_model_wrapper
    shared.model, shared.tokenizer = load_model(shared.model_name, loader)
  File "D:\openai.wiki\oobabooga\text-generation-webui\modules\models.py", line 79, in load_model
    output = load_func_map[loader](model_name)
  File "D:\openai.wiki\oobabooga\text-generation-webui\modules\models.py", line 149, in huggingface_loader
    model = LoaderClass.from_pretrained(Path(f"{shared.args.model_dir}/{model_name}"), low_cpu_mem_usage=True, torch_dtype=torch.bfloat16 if shared.args.bf16 else torch.float16, trust_remote_code=shared.args.trust_remote_code)
  File "D:\openai.wiki\oobabooga\installer_files\env\lib\site-packages\transformers\models\auto\auto_factory.py", line 493, in from_pretrained
    return model_class.from_pretrained(
  File "D:\openai.wiki\oobabooga\installer_files\env\lib\site-packages\transformers\modeling_utils.py", line 2903, in from_pretrained
    ) = cls._load_pretrained_model(
  File "D:\openai.wiki\oobabooga\installer_files\env\lib\site-packages\transformers\modeling_utils.py", line 3260, in _load_pretrained_model
    new_error_msgs, offload_index, state_dict_index = _load_state_dict_into_meta_model(
  File "D:\openai.wiki\oobabooga\installer_files\env\lib\site-packages\transformers\modeling_utils.py", line 682, in _load_state_dict_into_meta_model
    param = param.to(dtype)
RuntimeError: [enforce fail at ..\c10\core\impl\alloc_cpu.cpp:72] data. DefaultCPUAllocator: not enough memory: you tried to allocate 469762048 bytes.

模型下载

官方下载

https://huggingface.co/stabilityai/FreeWilly2

网盘下载

关于此项目的模型,本站已为您下载并整理好。如果你不方便通过官网下载,可以使用本站所提供的网盘下载地址。

FreeWilly2

提取密码 文件说明 文件大小 256GB 文件格式 Model 资源价格 免费 下载次数 0

模型安装

在您下载完成模型之后,将名为FreeWilly2的模型文件夹移动至.\text-generation-webui\models目录下即可。

模型加载

在你安装完成text-generation-webui之后,在text-generation-webuiModel选项卡界面界面,左侧的Model下拉框中选择FreeWilly2,然后点击Load按钮。

LLaMA-2|FreeWilly2微调模型

代码推理

官方提供了一些简短的代码,站长已经帮你写好了代码注释,如果你有相应的环境和硬件,那么你也可以使用以下代码片段开始与FreeWilly2进行推理

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

# 从预训练模型中加载tokenizer
tokenizer = AutoTokenizer.from_pretrained("stabilityai/FreeWilly2", use_fast=False)

# 从预训练模型中加载model,并使用混合精度(float16)计算,降低CPU内存使用,自动分配设备
model = AutoModelForCausalLM.from_pretrained("stabilityai/FreeWilly2", torch_dtype=torch.float16, low_cpu_mem_usage=True, device_map="auto")

# 系统提示
system_prompt = "### System:\nYou are Free Willy, an AI that follows instructions extremely well. Help as much as you can. Remember, be safe, and don't do anything illegal.\n\n"

# 用户输入
message = "Write me a poem please"

# 拼接完整的输入文本,包括系统提示和用户输入
prompt = f"{system_prompt}### User: {message}\n\n### Assistant:\n"

# 使用tokenizer将输入文本编码为模型输入的张量
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")

# 使用模型生成输出文本,采用采样方式生成,使用top_p(nucleus sampling)策略设置概率阈值,max_new_tokens设置生成文本的最大长度
output = model.generate(**inputs, do_sample=True, top_p=0.95, top_k=0, max_new_tokens=256)

# 将生成的张量文本解码为可读文本并输出
print(tokenizer.decode(output[0], skip_special_tokens=True))

FreeWilly应该使用以下提示格式:

### System:
This is a system prompt, please behave and help the user.

### User:
Your prompt here

### Assistant
The output of FreeWilly2

为开放未来做出贡献

FreeWilly1和FreeWilly2在开放获取的大型语言模型领域树立了新的标准。它们显著推进了研究,增强了自然语言理解,并实现了复杂的任务。我们对这些模型将为人工智能社区带来无限可能感到兴奋,以及它们将激发的新应用。

我们要衷心感谢我们充满激情的研究人员、工程师和合作伙伴团队,他们卓越的努力和奉献使我们能够达到这一重要的里程碑。


请继续关注更多激动人心的发展,并开始探索FreeWilly所带来的难以置信的潜力!

  1. FreeWilly2的权重是原样发布的,而FreeWilly1的权重是对原始模型的增量发布的。这两个模型均在CC-BY-NC 4.0许可下发布。
  2. 包括ARC-Challenge等开放式LLM排行榜和GPT4ALL的性能基准。
  3. 正如OpenAI于2023年3月27日发布的“GPT-4技术报告”中所述。
  4. 正如微软研究部于2023年6月5日发布的论文“Orca: Progressive Learning from Complex Explanation Traces of GPT-4”中所述。

总结

唉,硬件不达标的吐槽,我已经懒的再吐槽了。

但是这个模型就目前在排行榜的参数排名来看,真的很顶,实际效果不知道能不能打。

或放大家可以通过LoRA方式调教一下FreeWilly2,使其更加适合国人。

此文章由OpenAI开源维基百科原创发布,如若转载请注明出处:https://openai.wiki/freewilly2.html

(0)
上一篇 2023-07-23 15:13
下一篇 2023-07-24 20:38

相关推荐

  • Llama2|Meta开源语言模型

    Meta发布的Llama2模型系列包含70 亿、130亿和700亿三种参数变体。训练数据比上一代多了40%,上下文长度翻倍,Llama 2 预训练模型在2万亿的token上训练并精调Chat等能力。

    2023-07-21
    022.6K
  • llama2.c|Baby LLaMA

    llama2.c使用纯C语言中推理一个baby Llama 2模型,你可以在PyTorch中从头开始训练Llama 2 LLM架构,然后将权重保存为原始二进制文件,再将其加载到一个用于推理的模型。

    2023-07-25
    031.9K
  • LLaMA|Alpaca-LoRA

    Alpaca模型是由坦福大学研发的LLM(Large Language Model大语言)开源模型,具有70亿的模型参数的Alpaca-LoRA,性能更优且推理能力更加强大,平民级别显卡也可以使用。

    2023-07-23
    001.4K
  • LLaMA|模型下载

    Meta(Facebook)开源语言模型LLaMA泄漏版国内网盘下载,该语言模型据说比openAI的ChatGPT能力更强。虽然是开源语言模型,但仅可做为科学研究使用,本站已为大家整理好国内网盘下载。

    2023-03-08
    065.5K
  • LLaMA|部署教程

    本文提供Meta(Facebook)的LLaMa泄漏版详细安装部署教程,包括Git和Conda的安装、环境搭建、依赖库安装、模型下载等步骤。此外,如果需要在CPU上运行LLaMa,也有相应的教程提供。

    LLaMA 2023-03-08
    0185.8K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

微信