NLP杂记

来京一周余,初病将愈,终跑通llama及ViT,记于此——

之前都是做的图像,大模型迁移基本上都是NLP相关的知识,很多东西和CV差距还是有点,再加上大模型对算力要求较高,基于云的操作对我一个习惯在本地操作的拖拽工程师还是有一点不适应,遂恶补了NLP、大模型、云计算、国产框架、Linux、Docker和硬件的一些知识:

MindFormers是华为云推出的一个自然语言处理工具库,提供了丰富的预训练模型和下游任务应用,涵盖了大模型训练、微调、评估、推理、部署的全流程开发套件。基于MindSpore Transformers套件,提供业内主流Transformer类预训练模型和SOTA下游任务应用,涵盖丰富的并行特性

CausalLanguageModelDataset类是MindFormer库中用于构建因果语言模型数据集的类。

在自然语言处理任务中,因果语言模型(Causal Language Model)是一种常见模型类型,主要学习文本序列中的因果关系,即一个单词或短语对后续单词或短语的影响(常用于生成、摘要和分类等任务)

CausalLanguageModelDataset类提供一种方便的方式来创建和处理因果语言模型的数据集。可以自动从指定的数据集目录或文件中读取数据,并根据需要进行预处理、批处理和随机化等操作。此外,该类还支持将数据集划分为训练集、验证集和测试集,以便在训练过程中使用不同的数据子集进行评估和调整;
通过使用CausalLanguageModelDataset类,可以更轻松地构建和训练因果语言模型,获得更好的性能和效果。

除了因果语言模型,还有其他类型的自然语言模型:

  • 统计语言模型(Statistical Language Model):这种类型的语言模型基于概率分布来预测下一个单词或字符。它们通常使用n元语法或n-gram来表示文本序列,并使用最大似然估计或其他方法来计算概率

  • 神经网络语言模型(Neural Network Language Model):这种类型的语言模型使用神经网络来学习文本序列的概率分布。它们通常由编码器和解码器组成,其中编码器将输入序列转换为隐藏状态,解码器则根据隐藏状态生成输出序列

  • Transformer语言模型(Transformer Language Model):这种类型的语言模型是一种基于自注意力机制的神经网络架构,被广泛应用于自然语言处理任务中,如机器翻译、文本摘要等

Dump数据采集Profiling数据采集都是性能分析工具,但是应用场景不同:

  • Dump数据采集主要用于诊断程序崩溃、内存泄漏等问题
  • Profiling数据采集则主要用于分析程序的性能瓶颈,如哪些函数调用次数较多、哪些代码行数较长

ModelArts notebook跑LLama:

 	1  git clone -b dev https://gitee.com/mindspore/mindformers.git
    2  cd mindformers
    3  bash build.sh

	cp /user/config/nbstart_hccl.json ./
	bash run_distribute.sh /home/ma-user/work/mindformers/nbstart_hccl.json /home/ma-user/work/mindformers/configs/llama/run_llama_7b.yaml [0,8] train
    tail -f ../output/log/rank_0/info.log

ModelArts notebook跑ViT:

git clone -b dev https://gitee.com/mindspore/mindformers.git
cd mindformers
bash build.sh
wget https://bj-aicc.obs.cn-north-309.mtgascendic.cn/dataset
ll
mv dataset imageNet2012.tar
ll
tar -xvf imageNet2012.tar 
ls
top  	# 进程的资源占用情况
bash run_distribute.sh /home/ma-user/work/mindformers/scripts/nbstart_hccl.json /home/ma-user/work/mindformers/configs/vit/run_vit_base_p16_224_100ep.ymal [0,8] train

你可能感兴趣的:(自然语言处理,人工智能,大模型,LLaMA)