模型简介
模型特点
模型能力
使用案例
base_model: inceptionai/jais-family-30b-16k language:
- ar
- en thumbnail: null tags:
- Arabic
- English
- LLM
- Decoder
- causal-lm
- jais-family license: apache-2.0 pipeline_tag: text-generation
Jais系列模型卡
Jais系列模型是一组全面的阿拉伯语-英语双语大语言模型(LLMs)。这些模型专为阿拉伯语优化,同时具备强大的英语能力。我们发布了两类基础模型变体:
- 从头预训练的模型(
jais-family-*
) - 基于Llama-2自适应预训练的模型(
jais-adapted-*
)
本次发布包含8种规模共20个模型,参数量从5.9亿到700亿不等,训练数据涵盖高达1.6万亿token的阿拉伯语、英语和代码数据。所有预训练模型都经过指令微调(*-chat
),使用精心筛选的阿拉伯语和英语指令数据优化对话能力。
我们希望通过这次大规模发布加速阿拉伯语NLP研究,并为阿拉伯语社区及双语用户开启丰富的下游应用场景。我们为阿拉伯语模型成功验证的训练与自适应技术,可扩展至其他低中资源语言。
Jais系列详情
- 开发机构: Inception, Cerebras Systems
- 支持语言: 阿拉伯语(现代标准阿拉伯语)和英语
- 输入类型: 纯文本数据
- 输出类型: 文本生成
- 模型规模: 5.9亿、13亿、27亿、67亿、70亿、130亿、300亿、700亿参数
- 演示平台: 访问实时演示
- 许可协议: Apache 2.0
预训练模型 | 微调模型 | 参数量 | 上下文长度(token) |
---|---|---|---|
jais-family-30b-16k | Jais-family-30b-16k-chat | 300亿 | 16,384 |
jais-family-30b-8k | Jais-family-30b-8k-chat | 300亿 | 8,192 |
jais-family-13b | Jais-family-13b-chat | 130亿 | 2,048 |
jais-family-6p7b | Jais-family-6p7b-chat | 67亿 | 2,048 |
jais-family-2p7b | Jais-family-2p7b-chat | 27亿 | 2,048 |
jais-family-1p3b | Jais-family-1p3b-chat | 13亿 | 2,048 |
jais-family-590m | Jais-family-590m-chat | 5.9亿 | 2,048 |
自适应预训练模型 | 微调模型 | 参数量 | 上下文长度(token) |
---|---|---|---|
jais-adapted-70b | Jais-adapted-70b-chat | 700亿 | 4,096 |
jais-adapted-13b | Jais-adapted-13b-chat | 130亿 | 4,096 |
jais-adapted-7b | Jais-adapted-7b-chat | 70亿 | 4,096 |
模型架构:
本系列所有模型均采用基于Transformer的解码器架构(GPT-3风格)的自回归语言模型。
Jais原生模型(jais-family-*
)采用从头训练策略,整合了SwiGLU非线性激活函数和ALiBi位置编码技术。这些架构增强使模型能够处理长序列,提升上下文理解与精确度。
Jais自适应模型(jais-adapted-*
)基于Llama-2架构构建,采用RoPE位置嵌入和分组查询注意力机制。我们通过添加阿拉伯语数据扩展了分词器,将Jais-30b词汇表中的32,000个新阿拉伯语token整合到Llama-2分词器中,使计算效率提升3倍以上。新阿拉伯语token的嵌入初始化分为两步:首先利用共享英语token学习从Jais-30b到Llama-2嵌入空间的线性投影,然后将该投影应用于转换现有的Jais-30b阿拉伯语嵌入。
快速开始
以下是使用模型的示例代码。注意该模型需要自定义模型类,加载时必须启用trust_remote_code=True
参数。
# -*- coding: utf-8 -*-
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path = "inceptionai/jais-family-30b-16k-chat"
prompt_eng = "### Instruction:Your name is 'Jais', and you are named after Jebel Jais, the highest mountain in UAE. You were made by 'Inception' in the UAE. You are a helpful, respectful, and honest assistant. Always answer as helpfully as possible, while being safe. Complete the conversation between [|Human|] and [|AI|]:\n### Input: [|Human|] {Question}\n[|AI|]\n### Response :"
prompt_ar = "### Instruction:اسمك \"جيس\" وسميت على اسم جبل جيس اعلى جبل في الامارات. تم بنائك بواسطة Inception في الإمارات. أنت مساعد مفيد ومحترم وصادق. أجب دائمًا بأكبر قدر ممكن من المساعدة، مع الحفاظ على البقاء أمناً. أكمل المحادثة بين [|Human|] و[|AI|] :\n### Input:[|Human|] {Question}\n[|AI|]\n### Response :"
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto", trust_remote_code=True)
def get_response(text, tokenizer=tokenizer, model=model):
input_ids = tokenizer(text, return_tensors="pt").input_ids
inputs = input_ids.to(device)
input_len = inputs.shape[-1]
generate_ids = model.generate(
inputs,
top_p=0.9,
temperature=0.3,
max_length=2048,
min_length=input_len + 4,
repetition_penalty=1.2,
do_sample=True,
)
response = tokenizer.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True
)[0]
response = response.split("### Response :")[-1]
return response
ques = "ما هي عاصمة الامارات؟"
text = prompt_ar.format_map({'Question': ques})
print(get_response(text))
ques = "What is the capital of UAE?"
text = prompt_eng.format_map({'Question': ques})
print(get_response(text))
训练详情
预训练数据
Jais系列模型训练使用了高达1.6万亿token的多样化英语、阿拉伯语和代码数据,数据来源包括:
- 网页数据: 公开网页、维基百科、新闻文章和社交媒体内容
- 代码数据: 多种编程语言代码以增强推理能力
- 书籍数据: 精选公开阿拉伯语和英语书籍,提升长程上下文建模
- 科学文献: ArXiv论文子集提升推理能力
- 合成数据: 通过内部机器翻译系统将高质量英语资源译为阿拉伯语
我们对训练数据进行了深度预处理和去重。阿拉伯语数据采用定制流程筛选高质量语言内容,详见Jais论文。
- Jais原生预训练(
jais-family-*
): 采用阿拉伯语:英语:代码=1:2:0.4的比例混合 - Jais自适应预训练(
jais-adapted-*
): 使用约3340亿阿拉伯语token与英语代码数据混合,不同规模模型采用不同混合比例
预训练模型 | 英语数据(token) | 阿拉伯语数据(token) | 代码数据(token) | 总数据量(token) |
---|---|---|---|---|
jais-family-30b-16k | 9800亿 | 4900亿 | 1960亿 | 1.666万亿 |
jais-family-30b-8k | 8820亿 | 4410亿 | 1770亿 | 1.500万亿 |
jais-family-13b | 2830亿 | 1410亿 | 560亿 | 4800亿 |
jais-family-6p7b | 2830亿 | 1410亿 | 560亿 | 4800亿 |
jais-family-2p7b | 2830亿 | 1410亿 | 560亿 | 4800亿 |
jais-family-1p3b | 2830亿 | 1410亿 | 560亿 | 4800亿 |
jais-family-590m | 2830亿 | 1410亿 | 560亿 | 4800亿 |
jais-adapted-70b | 330亿 | 3340亿 | 40亿 | 3710亿 |
jais-adapted-13b | 1270亿 | 1400亿 | 130亿 | 2800亿 |
jais-adapted-7b | 180亿 | 190亿 | 20亿 | 390亿 |
微调数据
所有聊天模型使用阿拉伯语和英语的提示-响应对进行微调,包含单轮和多轮对话场景。数据源包括开源微调数据集和内部人工标注数据,辅以机器翻译、蒸馏和模型自对话生成的合成内容。总计包含约1000万英语和400万阿拉伯语提示-响应对。
训练流程
原生预训练采用文档级序列打包,逐步扩展上下文长度(从2k到16k)。自适应预训练分两阶段:首阶段冻结主干仅训练嵌入,次阶段解冻主干进行全参数训练。指令微调采用示例打包技术提升训练效率。
训练超参数
Jais-family-30b-16k-chat
超参数 | 值 |
---|---|
精度 | fp32 |
优化器 | AdamW |
学习率 | 0至0.0016(≤192热身步) 0.0016至0.00016(>69且≤11342步) |
权重衰减 | 0.1 |
批大小 | 120 |
上下文长度 | 16384 |
训练步数 | 11342 |
计算基础设施
训练在Condor Galaxy(CG)超级计算平台完成,包含64个Cerebras CS-2晶圆级引擎(WSE-2),总计算能力达960 PetaFLOP/s。
评估
我们使用LM-harness在零样本设置下对Jais模型进行全面评估,涵盖知识性、推理能力和偏见等维度。
阿拉伯语评估结果
模型 | 平均 | ArabicMMLU* | MMLU | EXAMS* | LitQA* | agqa | agrc | Hellaswag | PIQA | BoolQA | Situated QA | ARC-C | OpenBookQA | TruthfulQA | CrowS-Pairs |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
jais-family-30b-16k | 49.2 | 44.0 | 33.4 | 40.9 | 60 | 47.8 | 49.3 | 60.9 | 68.6 | 70.3 | 41.6 | 38.7 | 31.8 | 45.2 | 57 |
jais-family-30b-8k | 49.7 | 46.0 | 34 | 42 | 60.6 | 47.6 | 50.4 | 60.4 | 69 | 67.7 | 42.2 | 39.2 | 33.8 | 45.1 | 57.3 |
jais-family-13b | 46.1 | 34.0 | 30.3 | 42.7 | 58.3 | 40.5 | 45.5 | 57.3 | 68.1 | 63.1 | 41.6 | 35.3 | 31.4 | 41 | 56.1 |
jais-family-6p7b | 44.6 | 32.2 | 29.9 | 39 | 50.3 | 39.2 | 44.1 | 54.3 | 66.8 | 66.5 | 40.9 | 33.5 | 30.4 | 41.2 | 55.4 |
jais-family-2p7b | 41.0 | 29.5 | 28.5 | 36.1 | 45.7 | 32.4 | 40.8 | 44.2 | 62.5 | 62.2 | 39.2 | 27.4 | 28.2 | 43.6 | 53.6 |
jais-family-1p3b | 40.8 | 28.9 | 28.5 | 34.2 | 45.7 | 32.4 | 40.8 | 44.2 | 62.5 | 62.2 | 39.2 | 27.4 | 28.2 | 43.6 | 53.6 |
jais-family-590m | 39.7 | 31.2 | 27 | 33.1 | 41.7 | 33.8 | 38.8 | 38.2 | 60.7 | 62.2 | 37.9 | 25.5 | 27.4 | 44.7 | 53.3 |
jais-family-30b-16k-chat | 51.6 | 59.9 | 34.6 | 40.2 | 58.9 | 46.8 | 54.7 | 56.2 | 64.4 | 76.7 | 55.9 | 40.8 | 30.8 | 49.5 | 52.9 |
jais-family-30b-8k-chat | 51.4 | 61.2 | 34.2 | 40.2 | 54.3 | 47.3 | 53.6 | 60 | 63.4 | 76.8 | 54.7 | 39.5 | 30 | 50.7 | 54.3 |
jais-family-13b-chat | 50.3 | 58.2 | 33.9 | 42.9 | 53.1 | 46.8 | 51.7 | 59.3 | 65.4 | 75.2 | 51.2 | 38.4 | 29.8 | 44.8 | 53.8 |
jais-family-6p7b-chat | 48.7 | 55.7 | 32.8 | 37.7 | 49.7 | 40.5 | 50.1 | 56.2 | 62.9 | 79.4 | 52 | 38 | 30.4 | 44.7 | 52 |
jais-family-2p7b-chat | 45.6 | 50.0 | 31.5 | 35.9 | 41.1 | 37.3 | 42.1 | 48.6 | 63.7 | 74.4 | 50.9 | 35.3 | 31.2 | 44.5 | 51.3 |
jais-family-1p3b-chat | 42.7 | 42.2 | 30.1 | 33.6 | 40.6 | 34.1 | 41.2 | 43 | 63.6 | 69.3 | 44.9 | 31.6 | 28 | 45.6 | 50.4 |
jais-family-590m-chat | 37.8 | 39.1 | 28 | 29.5 | 33.1 | 30.8 | 36.4 | 30.3 | 57.8 | 57.2 | 40.5 | 25.9 | 26.8 | 44.5 | 49.3 |


