HuggingFace镜像/ruGPT-3.5-13B
模型介绍文件和版本分析
下载使用量0

🗿 ruGPT-3.5 13B

适用于俄语的语言模型。顾名思义,该模型拥有130亿参数。这是我们目前最大的模型,曾用于训练GigaChat(更多相关内容可阅读文章)。

数据集

模型在300GB的多领域数据上进行预训练,随后又在100GB的代码和法律文档上进行了额外训练。以下是数据集结构:

训练数据经过去重处理,文本去重包括对语料库中的每个文本进行64位哈希处理,以保留具有唯一哈希值的文本。我们还使用zlib4根据文本压缩率对文档进行过滤。过滤掉去重后压缩最强和最弱的文本。

技术细节

模型使用Deepspeed和Megatron库进行训练,在3000亿 tokens 的数据集上训练了3个 epoch,在512张V100显卡上耗时约45天。之后,模型在额外数据(见上文)上以2048的序列长度微调了1个 epoch,在200张A100显卡上耗时约20天。

最终训练完成后,该模型在俄语上的困惑度(perplexity)约为8.8。

使用示例

尝试不同的生成策略以获得更好的结果。

from openmind import AutoTokenizer, AutoModelForCausalLM, is_torch_npu_available
from openmind_hub import snapshot_download
import torch.nn.functional as F
from torch import Tensor
import openmind
import torch
import argparse
import sys
import time

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--model_name_or_path",
        type=str,
        help="Path to model",
        default="zhouhui/ruGPT-3.5-13B",
    )
    args = parser.parse_args()
    return args

def main():
    args = parse_args()
    model_path = args.model_name_or_path

    if is_torch_npu_available():
        device = "npu"
    else:
        device = "cpu"
    start_time = time.time()      
    model = AutoModelForCausalLM.from_pretrained(model_path).to(device)
    tokenizer = AutoTokenizer.from_pretrained(model_path)
    model.eval()

    prompt = "Hello, who are you?"
    input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)
    outputs = model.generate(input_ids=input_ids, max_length=100)
    response = tokenizer.decode(outputs[0], skip_special_tokens=True)
    print(response)
    end_time = time.time()
    print(f"硬件环境:{device},推理执行时间:{end_time - start_time}秒")
    
if __name__ == "__main__":
    main()