
本仓库提供了一个参数量为38亿的英日双语GPT-NeoX模型。
库
该模型使用基于[EleutherAI/gpt-neox]的代码进行训练。
模型架构
一个拥有36层、2816隐藏维度的基于Transformer的语言模型。
预训练
该模型在约5240亿个tokens上进行训练,训练数据来自以下语料库的混合:
模型系列
| 变体 | 链接 |
|---|---|
| 双语4B MiniGPT4 | |
| 双语4B PPO | https://modelers.cn/models/FuJianAscend/bilingual-gpt-neox-4b-instruction-ppo |
| 双语4B SFT | https://modelers.cn/models/FuJianAscend/bilingual-gpt-neox-4b-instruction-sft |
| 双语4B 8K | |
| 双语4B | https://modelers.cn/models/FuJianAscend/bilingual-gpt-neox-4b |
| 日语3.6B PPO | |
| 日语3.6B SFT-v2 | |
| 日语3.6B SFT | |
| 日语3.6B |
贡献者
日语基准测试
我们的评估实验表明,bilingual-gpt-neox-4b模型在日语任务上的表现略优于之前的[Japanese GPT-NeoX 3.6B]。
| 模型 | 4任务平均准确率 | 6任务平均准确率 |
|---|---|---|
| bilingual-gpt-neox-4b-instruction-ppo | 61.01 | 61.16 |
| bilingual-gpt-neox-4b-instruction-sft | 61.02 | 61.69 |
| bilingual-gpt-neox-4b | 56.12 | 51.83 |
| japanese-gpt-neox-3.6b-instruction-ppo | 59.86 | 60.07 |
| japanese-gpt-neox-3.6b | 55.07 | 50.32 |
英语基准测试
使用[EleutherAI Language Model Evaluation Harness],我们发现bilingual-gpt-neox-4b的性能与相似规模的英语/多语言模型相当。
| 模型 | 平均准确率 |
|---|---|
| mpt-7b | 59.30 |
| llama-7b | 57.35 |
| bloom-7b | 51.51 |
| xglm-7.5b | 50.96 |
| xglm-4.5b | 50.15 |
| bilingual-gpt-neox-4b | 49.49 |
| bloom-3b | 48.56 |
| xglm-2.9b | 47.44 |
| bloom-1.7b | 46.54 |
import argparse
from openmind import AutoModel, AutoTokenizer
from openmind import is_torch_npu_available
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("--model_name_or_path",type=str,help="Path to model",default=None,)
args = parser.parse_args()
return args
if __name__ == '__main__':
if is_torch_npu_available():
device = "npu:0"
else:
device = "cpu"
args = parse_args()
model_path = args.model_name_or_path
# Note: CodeSage requires adding eos token at the end of
# each tokenized sequence to ensure good performance
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True, add_eos_token=True)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True).to(device)
inputs = tokenizer.encode("def print_hello_world():\tprint('Hello World!')", return_tensors="pt").to(device)
embedding = model(inputs)[0]
print(f'Dimension of the embedding: {embedding[0].size()}')
print(embedding)
该模型使用基于 [sentencepiece] 的分词器。
<UNK> 标记。_Hello)。
use_fast=False,以确保上述功能正确运行。