尽管 Falcon-11B 已在 5T tokens 上完成训练,但从图表中可以看出,它仍处于欠拟合状态: 因此,我们决定对 50% 的层进行剪枝。 需要注意的是,仍需进行约 1B tokens 的持续预训练(约 1M 行 1k tokens 数据),以恢复该模型在目标语言上的困惑度。 我计划针对特定语言开展此项工作,具体取决于可用的计算资源情况。
这是一个使用 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: bfloat16from openmind import AutoTokenizer, AutoModelForCausalLM
import openmind
import torch
import torch_npu
import argparse
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"--model_name_or_path",
type=str,
help="Jinan_AICC/Falcon2-5.5B-Polish",
default="Jinan_AICC/Falcon2-5.5B-Polish",
)
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,
device_map="auto",
)
sequences = pipeline(
"<|im_start|>user\nDoes P=NP?<|im_end|>\n<|im_start|>assistant\n",
max_length=256,
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 需要 torch 和 torch_npu 2.0 版本!
大型语言模型研究;作为进一步专门化和针对特定用例(例如,文本摘要、文本生成、聊天机器人等)进行微调的基础。
未经充分风险评估和缓解措施的生产环境使用;任何可能被视为不负责任或有害的用例。
Falcon2-5.5B 主要在英语语料上训练,同时也包含德语、西班牙语、法语、意大利语、葡萄牙语、波兰语、荷兰语、罗马尼亚语、捷克语和瑞典语。它无法很好地泛化到其他语言。此外,由于其训练数据来自代表网络内容的大规模语料库,模型会带有网络上常见的刻板印象和偏见。
我们建议 Falcon2-5.5B 的用户考虑针对特定感兴趣的任务集对其进行微调,并在任何生产环境使用中采取防护措施和适当的预防手段。