《大语言模型开发:用开源模型开发本地系统》-开源大语言模型的架构、训练和推理过程
<div class='showpostmsg'><p> 首先感谢EEWorld和清华大学出版社提供此次书籍阅读和分享的机会,对本书作者的辛勤付出也表示感谢。</p><p > 本文分享书中对“理解开源大语言模型的架构、训练和推理过程”的阅读理解。</p>
<p >一、引言</p>
<p> 本书共分十二章,书中主要讲解了LLM的一些关键技术,本书以开源模型Llama2为主要研究对象就关键技术进行了阐述和介绍。该书并不是一本开发LLM的专著,而是将注意力放在了LLM开发的关键技术和细节上,以开源模型的代表之一Llama2为着手点,就PyTorch库在Llama2的应用进行了解析,书中有代码讲解。</p>
<div style="text-align: center;"></div>
<div style="text-align: center;">
<p style="text-align: left;"> 通览此书,感觉书中内容详实,对LLM的发展脉络进行了整理,介绍了AI深度学习的一些基本知识,对一些基础内容进行了概述,如PyTorch应用等,对NLP的主要内容,通过一章的幅度进行了讲解,不失为一本学习NLP技术的比较难得的参考书。</p>
<p style="text-align: left;">二、模型架构</p>
<p style="text-align: left;"> 书中讲到,LLM模型架构,比较成熟的,是基于transformers的架构,无论闭源的GPT,还是开源的Llama。</p>
<p style="text-align: left;"> transformer架构以自注意力机制技术得到广泛推广和应用,分为编码器、解码器和混合编解码器,它们因应用而有不同。</p>
<div style="text-align: center;"></div>
<p style="text-align: left;">三、模型训练</p>
<p style="text-align: left;"> 在LLM的模型训练中,主要是大模型的预训练和模型微调相结合。</p>
<div style="text-align: center;"></div>
<p style="text-align: left;"> 对于大模型的预训练,首先对数据集进行划分,分为训练集、验证集和预测集。由于模型的预训练,采用DNN的形式进行,通过训练得到的NN的权重参数和偏差参数的数量非常大,因此将这类模型称为大模型。</p>
<p style="text-align: left;"> LLM的训练是无监督学习模式,基于transformer架构,通过模型训练来提取模型的特征,这与CNN和RNN的架构有所不同。</p>
<p style="text-align: left;">四、模型推理过程</p>
<p style="text-align: left;"> 模型推理过程,按书中的描述,主要分为两类:一类是逻辑自回归,按照之前的语料预测下一词元,典型代表是GPT;一类是自编码模型,这类模型通过上下文关系,来推理得到预测词元,典型的代表是BERT。</p>
</div>
<div style="text-align: center;"></div>
<div style="text-align: center;">
<p style="text-align: left;">五、小结与讨论</p>
<p style="text-align: left;"> 总体来说,对于入门级别的读者来说,书中提供的内容和资料还是比较详实和充分的,虽然在成书的当年Meta又推出了Llama3,但对于Llama2的解析,个人认为并不过时,毕竟架构和开源的大方向是不变的,有了这个基础,对于我们了解和应用Llama3也是有帮助的。</p>
<p style="text-align: left;"> </p>
<p style="text-align: left;">推荐阅读和参考资料:1、transformer架构。</p>
<p style="text-align: left;">2、Llama3技术论文。</p>
</div>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p></p>
<p>预训练后的大模型往往作为二次开发的基础模型,通过模型微调后得到进一步应用,如GPT是基础大模型,微调后的chatGPT应用广泛;Llama模型也有相应的微调模型,供大家进一步使用。</p>
<p></p>
<p>LoRA作为增量模型出现,需要结合基础大模型一同使用,可以与基础大模型合并,也可以不合并,增量模型不能单独使用。</p>
<p></p>
<p>大模型的泛化,是大模型提高其应用能力的一种手段,它可以通过对训练数据集的干预(数据清洗),以避免和减轻私有数据集对模型训练的影响。</p>
页:
[1]