NDLSLM_0.8B-base
介绍
NDLSLM_0.8B-base:此模型是基于约180亿tokens训练的语言模型,其框架依赖于transformer-decoder only,此模型的具体结构为: 预训练数据主要为天工数据集、百度百科、维基百科中文、维基百科英文以及github代码等。
此模型主要有以下特点:
- 训练语料:即使该版本模型训练的语料较少,但支持中文以及英文包括代码的训练。
- 自己训练分词模型:本次预训练并没有采用其他开原模型,而是从零开始训练的分词模型,词表规模不大,为60930,语料库基本上是采样的天工数据集以及维基百科中英文、github代码。
- 模型配有详细注释以及RMSNorm使用了flash-attention:本次代码模型参考了transformers库中的llama2开源代码以及通义千问开源代码,代码的细节基本上在文件中有标注,并且配置了flash-attention,目前解决了在RMSNorm归一化上使用了flash-attn,但在self-attention上并没有使用成功,希望在未来能够解决这个问题,以此能够提高训练效率。
- 支持增量预训练:目前本人已经在该模型的基础上进行了增量预训练,未来不就将会开源增量预训练的版本以及细节。
要求环境
- python 3.8及以上版本
- pytorch 2.0及以上版本
- 建议使用CUDA 11.4及以上(GPU用户、flash-attention用户等需考虑此选项)
pip安装
运行NDLSLM_0.8B-base,请确保满足上述要求,再执行以下pip命令安装依赖库
pip install transformers==4.39.3 accelerate flash-attn
推荐安装flash-attn的步骤:(如果没有安装此模型也可以运行,安装了推理会更快一些。)
git clone https://github.com/Dao-AILab/flash-attention
cd flash-attention && pip install .
# 下方安装可选,安装可能比较缓慢。
# pip install csrc/layer_norm
# pip install csrc/rotary
快速使用
您可以通过以下代码轻松调用:
from modelscope import AutoModelForCausalLM, AutoTokenizer
from modelscope import GenerationConfig
tokenizer = AutoTokenizer.from_pretrained("Ndlcwx/NDLSLM_0.8B-base", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Ndlcwx/NDLSLM_0.8B-base", device_map="auto", trust_remote_code=True).eval()
from transformers import GenerationConfig
gen_config = GenerationConfig(
temperature=0.9,
top_k=30,
top_p=0.5,
do_sample=True,
num_beams=1,
repetition_penalty=1.3,
max_new_tokens=400,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.pad_token_id,
)
prompt= '黑龙江 、吉林'
import torch
device = 'cuda'
tokend = tokenizer(prompt)
input_ids, attention_mask = torch.LongTensor([tokend.input_ids]).to(
device
), torch.LongTensor([tokend.attention_mask]).to(device)
outputs = model.generate(
inputs=input_ids, attention_mask=attention_mask, generation_config=gen_config
)
outs = tokenizer.decode(outputs[0].cpu().numpy())
# outs = outs.replace(prompt,'')
outs = outs.replace('[EOS]','')
print("当前SLM回答:",outs)
'''
黑龙江 、吉林东部、江苏北部等地部分地区降大雨或暴雨,四川成都和眉山、安徽阜阳、河南新乡、内蒙古呼伦贝尔等局地大暴雨(100~170毫米),盐城局地236毫米(最大小时降雨量108毫米)。 二、重点天气预报 1.江淮江汉等地有强降雨 8月27日至28日,江淮、江南东北部、西南地区东南部、重庆南部、湖北中部、苏皖中北部、内蒙古东北部、黑龙江东部和西北部等地的部分地区有大到暴雨(50~90毫米)。上述地区局地并伴有短时强降水、雷暴大风等强对流天气,最大小时降雨量20~40毫米。为此,中央气象台8月26日06时继续发布台风蓝色预警(图1)。 图1 全国强降雨落区预报图(8月27日08时-28日08时) 2.东北地区大部有降水过程 受高空槽和低涡切变的影响,未来三天,新疆南疆盆地和中西部偏南、西北地区中东部、甘肃陇东、陕西中部等地有中到大雨,其中,浙江西部、贵州西北部、云南西南部、湖南西北部、贵州北部、广西北部、广东北部以及海南岛等地的部分地区有大雨(25~35毫米)。青海西北部、西藏西双版纳中南部、辽宁中部等地有4~5级风(见图2)。 图2 全国降水量预报图(8月27日08时-29日08时) 3.主要气象要素与天气预测情况 (一)当前冷空气活动较为频繁,影响时间较长;
'''
NDLSLM_0.8B-base模型参数 (Model)
NDLSLM_0.8B-base模型参数基本情况如下所示:
Hyperparameter | Value |
---|---|
numhiddenlayers | 12 |
numattentionheads | 16 |
hidden_dim | 1600 |
vocab size | 60930 |
maxseqlen | 512 |
intermediate_size | 7800 |
use_cache | True |
rope_theta | 10000.0 |
本模型在位置编码、FFN激活函数和normalization的实现方式上采用了RoPE相对位置编码、SiLU激活函数、RMSNorm(可选安装flash-attention加速); 在自注意力机制计算中支持使用GQA(Group query attention),MQA(Multi-query-attention);支持使用NTK缩放。
评论