首页 > 编程语言 >LLM大模型: DPO原理和源码解析

LLM大模型: DPO原理和源码解析

时间:2024-06-17 23:31:54浏览次数:14  
标签:MiniCPM 模型 LLM 源码 https DPO com

   1、前段时间国外某大学反向抄袭国内某团队的大模型闹得沸沸扬扬,国内被抄袭的大模型是MiniCPM,详细资料:https://github.com/OpenBMB/MiniCPM ; 能被国外同行抄袭,必定有过人之处,粗略看了一下https://github.com/OpenBMB/MiniCPM/blob/main/model/modeling_minicpm.py 模型文件,发现整个结构和llama类似,没啥特别的,如下:

         

    既然模型整体的结构和llama接近,没啥特别的,效果好就看整个训练策略了!作者详细介绍了训练策略:https://shengdinghu.notion.site/MiniCPM-c805a17c5c8046398914e47f0542095a  主要是从这5个方面优化的:

  • Hyper-parameters
  • Batch size
  • Learning Rate
  • Learning Rate Scheduler
  • Data Strategy

  所以要想大模型效果好,有个大的改进方向:

  • 改模型细节:比如llama用旋转位置编码代替绝对位置编码、采用flashAttention等
  • 改训练策略:比如MiniCPM

    MiniCPM训练策略介绍的文章中指出:采用DPO对齐后,MiniCPM的得分甚至超过了llama2-70b-chat,效果很好啊!这个DPO又是啥了?

   

   2、目前市面上主流LLM,界面上都有反馈功能:觉得好的点赞,绝不不好的点倒赞!背后用的就是强化学习!现成已经实现的库在这里:https://github.com/huggingface/trl

     

 

 

 

参考:

1、https://www.bilibili.com/video/BV1vy4y1P7GT/?spm_id_from=333.788&vd_source=241a5bcb1c13e6828e519dd1f78f35b2   强化学习TRL包源码解读S2——PPO

2、https://shengdinghu.notion.site/MiniCPM-c805a17c5c8046398914e47f0542095a    MiniCPM:揭示端侧大语言模型的无限潜力

3、https://zhuanlan.zhihu.com/p/686664720  如何从零开始训练大模型(minicpm分享&讨论)

4、https://www.bilibili.com/video/BV1Lt421V7K6/?spm_id_from=333.337.search-card.all.click&vd_source=241a5bcb1c13e6828e519dd1f78f35b2    MiniCPM-2B-dpo-bf16MiniCPM-2B-dpo-fp32gradio webdemo演示系统及GPU占用情况

标签:MiniCPM,模型,LLM,源码,https,DPO,com
From: https://www.cnblogs.com/theseventhson/p/18252727

相关文章

  • 2024-06-17-Spring 源码阅读(三)Bean 的生命周期
    由于Spring源码非常多,博客中贴源码会占用大量篇幅,阅读困难。详细分析部分会以commit提交形式关联源码提交,画图例来说明源码整体逻辑。Bean生命周期主体逻辑相关代码:Bean的基本创建流程、lazyInit、循环依赖Bean对象创建基本流程通过最开始的关键时机点分析,我们知道Bean......
  • 如何高效使用大型语言模型 LLMs 初学者版本 简单易上手
    第一条也是最重要的一条规则是永远不要要求LLM提供你无法自己验证的信息,或让它完成你无法验证其正确性的任务。唯一例外的情况是那些无关紧要的任务,例如,让大型语言模型提供公寓装修灵感之类的是可以的。首先请看两个范例不佳示范:“使用文献综述最佳实践,总结过去十......
  • llm-universe - 2
    Smiling&Weeping----我嘛慢热且固执又总说随缘Prompt基本概念1.PromptPrompt最初是NLP(自然语言处理)研究者为下游任务设计出来的一种任务专属的输入模板,类似于一种任务(例如:分类,聚类等)会对应一种Prompt。在ChatGPT推出并获得大量应......
  • 微信小程序毕业设计- 展柜设计公司平面布置系统项目开发实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......
  • 微信小程序毕业设计-社区超市管理系统项目开发实战(附源码+论文)
    大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。......
  • SingletonKit单例源码阅读学习
    阅读学习QFramwork中的SingletonKit源码。Singleton普通类的单例作为最常用的单例模块,通过继承单例泛型类来实现,需要私有构造;//使用第一种接口单例方式internalclassClass2Singleton:Singleton<Class2Singleton>{//记录被初始化的次数privat......
  • GPT-4并非世界模型,LeCun双手赞同!ACL力证LLM无法模拟真实世界
    一直以来,支持LLM的观点之一是模型可以集成海量事实知识,作为通往「世界模拟器」的基础。虽然也有不少反对意见,但缺乏实证依据。那么,LLM能否作为世界模拟器?最近,亚利桑那大学、微软、霍普金斯大学等机构联合发布了一篇论文,从实证角度否定了这一观点。最新研究已被ACL2024顶会......
  • AOP切面的实现原理【底层源码】
    AOP是基于IOC的Bean加载来实现的,将切面类的所有切面方法根据使用的注解生成对应的Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor,为后续交给代理增强实现做准备这里我们可以很明确的知道,AOP也是在Bean容器中被Spring管理的,根据初始化过程打断点定位......
  • AOP代理的创建【底层源码】
    代理的创建(源码)创建代理的方法是postProcessAfterInitialization:如果Bean被子类标识为代理,则使用配置的拦截器创建一个代理源码参考:AOP切面底层原理【底层源码】-postProcessAfterInitialization源码部分wrapIfNecessary方法主要用于判断是否需要创建代理,如果bean能......
  • 基于springboot的南门桥社区疫情防疫系统-48138(免费领源码+数据库)可做计算机毕业设计J
    Springboot南门桥社区疫情防疫系统的设计与实现摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对南门桥社区疫情防疫系统等问题,对南门桥社区......