适用于俄语的语言模型。顾名思义,该模型拥有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()