HuggingFace镜像/Falcon2-5.5B-multilingual
模型介绍文件和版本分析
下载使用量0

为何进行剪枝?

尽管 Falcon-11B 已在 5T tokens 上完成训练,但从图表中可以看出,它仍处于欠拟合状态。 因此,我们决定对 50% 的层进行剪枝。 需要注意的是,仍需进行约 1B tokens 的持续预训练(约 1M 行 1k tokens 的数据),以恢复该模型在目标语言上的困惑度。 我计划在 fineweb-edu-{specific_language} 可用时,针对特定语言开展此项工作,具体取决于可用的计算资源情况。

sliced

这是一个使用 mergekit 创建的预训练语言模型合并版本。

合并详情

合并方法

本模型采用 passthrough 合并方法进行剪枝。

配置

生成此模型时使用了以下 YAML 配置:

slices:
  - sources:
      - model: tiiuae/falcon-11B
        layer_range: [0, 24]
  - sources:
      - model: tiiuae/falcon-11B
        layer_range: [55, 59]
merge_method: passthrough
dtype: bfloat16

PruneMe 已通过研究 11 种语言的 wikimedia/wikipedia 子集(每种语言 2000 个样本)的层相似性得到应用。剪枝的层范围是根据每种语言分析的平均值确定的,目的是在减小模型大小的同时保持性能。

from openmind import AutoTokenizer, AutoModelForCausalLM
import openmind
import torch
import argparse

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--model_name_or_path",
        type=str,
        help="model_path",
        default="Jinan_AICC/Falcon2-5.5B-multilingual",
    )
    args = parser.parse_args()
    return args

args = parse_args()
model = args.model_name_or_path 

tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = openmind.pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    torch_dtype=torch.bfloat16,
)
sequences = pipeline(
   "Can you explain the concepts of Quantum Computing?",
    max_length=200,
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
)
for seq in sequences:
    print(f"Result: {seq['generated_text']}")

💥 使用 openmind 时,Falcon LLM 需要 PyTorch 2.0 版本!

直接用途

大型语言模型研究;作为进一步专业化和针对特定用例(例如摘要、文本生成、聊天机器人等)进行微调的基础。

超出范围的用途

未经充分风险评估和缓解措施的生产使用;任何可能被视为不负责任或有害的用例。

偏差、风险和局限性

Falcon2-5.5B 主要在英语语料上训练,同时也包含德语、西班牙语、法语、意大利语、葡萄牙语、波兰语、荷兰语、罗马尼亚语、捷克语和瑞典语。它可能无法很好地适用于其他语言。此外,由于其训练数据来自代表网络内容的大规模语料库,因此会包含网络上常见的刻板印象和偏差。

建议

我们建议 Falcon2-5.5B 的用户考虑针对特定感兴趣的任务集对其进行微调,并在任何生产使用中采取防护措施和适当的预防手段。