## 几个概念总参数量 = 词嵌入层参数 + 解码器层参数小模型 就是在参数量上显著小于LLM的模型所有参数 都放在 safttensors 模型文件 中预训练 就是为了 生成合理的 参数值后训练 也是为了 生成合理的 参数值蒸馏、微调、强化学习,都是后训练大模型变成小模型采用"蒸馏+量化+剪枝"的组合策略 一、大模型 GPT-3 参数量详解大模型的参数量是指神经网络中所有可训练权重和偏置的总数,这些参数决定了模型的学习能力和表达能力 三、大模型、小模型参数差距的本质大模型的参数量,本质上是用 dmodel2d_{model}^2dmodel2 的代价,换取高维语义空间的表达能力。 四、为什么对小模型感兴趣以前,我们用Java+DB开发应用,用C+RTOS开发嵌入式软件。 所以,本篇理解小模型,下篇学习小模型建模或小模型训练。
今天, Google发布了开源的小模型Gemma. Gemma使用的是与Google的商业Gemini大模型相同的技术, 但专注于小模型. Gemma 2B与Gemma 7B Gemma 2B与Gemma 7B都属于小模型行列, 小模型的优势在于普通个人只要有显卡, 你就能在本地把它跑起来并使用它, 而不需要太多的资源需求. 2B就是20 Gemma 2B的评分虽然最差, 但考虑到它的模型大小, 也算值得称道的 可以看出, 对于小模型, 微软的PHI-2表现最为优秀. 关于小模型, 就不得不提及到微软的PHI-2了, 从上面的性能表现上也可以看出, PHI-2参数为27亿, 但表现却非常优秀. 如果要关注小模型, PHI-2是个不能错过的模型. } } 体验下来, 虽然是2B, 但效果确实还可以. 也支持中文. 最后 随着AI的发展, 不仅是开源AI越来越成熟. 开源的小模型也越来越多, 效果越来越优秀.
根据王小川的规划,百川智能将在四季度发布对标ChatGPT3.5的大模型,在2024年一季度发布大模型的超级应用。 据王小川介绍,Baichuan2-7B-Base、Baichuan2-13B-Base两款开源大模型基于2.6万亿高质量多语言数据训练而成,是文理兼备的大模型,数学能力、代码能力、安全能力、逻辑、语义理解都得到明显的提升 Baichuan2-7B实现“以小博大”,小模型相当于大模型,在同尺寸大模型比较时,Baichuan2系列大模型的性能有望全面超越LLaMA2的性能。 开放训练过程,下载量超过500万次 王小川说,LLaMA2的开源协议对中文用户不够友好,Baichuan2发布之后可实现对LLaMA2的平替。 据王小川介绍,Baichuan-7B、Baicuan-13B两款大模型开源之后,在多个权威榜单名列前茅,下载量超过500万次。
现在,谷歌发布了另一种模型,这次是一个更小的 20 亿参数模型。 他们声称它击败了 Mixtral 8X7B、 GPT-3.5 Turbo、Llama 2 和 Gemma 1.1,但我不明白这一点。 最近 GPT-40 Mini 发布了,而该模型声称比 GPT-3.5 Turbo 更强,这个模型应该是类似于 70B 或 100B 的模型,但现在这个 2B 参数的模型声称击败了它,这对我来说似乎非常不真实 他们只是想通过展示这个小模型比 100 倍大模型更好来获得多条推文,但实际上并不是这样,让人们认为它很棒,这样他们就可以告诉大家他们对开源做出了贡献之类的东西。 我真的很沮丧 Gemma 2 的下载量远远超过了 Quen 2 或 Llama 3.1。我在想这些下载它的人是谁。 不过,如果你在找一个小模型,试试 Qwen 2 1.5B 或 53 Mini,你可以在几乎所有类型的设备上运行这些模型,这显然非常酷。 总的来说,Gemma 2 2B 模型并不是很好。
我们加入Chinese-LLaMA-2-7B进行评估,其为在LLaMA-2-7B基础上进行中文领域适应的模型。 领域应用 为了展示小模型在具体领域应用的效果,我们采用了在金融和法律两个公开数据集来做出验证。从结果中可以观察到,模型的参数大小对领域性能有一定影响,但表现并不明显。 MindLLM的性能在领域应用内超越了其它同等规模的模型,并且与更大的模型有可比性。进一步证明了小模型在领域应用落地有极大潜力。 金融领域 在该领域,对金融数据进行情绪感知分类任务。 但是,MindLLM相较于 Baichuan2-7B-Chat、微调后的 Open-LLaMA-7B 和其他同规模模型来讲,整体优势非常明显。 同时,与更大规模的模型相比,它们能够以更快的训练速度和更少的训练资源取得相当的成绩。基于以上分析,我们认为小模型仍然具有极大的潜力。
与大模型相比,SLM是一种简化的、高效的语言模型,参数数量减少,总体规模较小。SLM中的“小”表示与大型语言模型相比,参数数量和模型的总体大小都减少了。 虽然大模型可能有数十亿甚至数万亿个参数,但 SLM 通常只有几百万到几亿个参数。 然而,什么是“小”可以根据场景和语言建模的当前技术状态而变化。 随着近年来模型规模呈指数级增长,曾经被认为是大模型的东西现在可能被认为是小模型。GPT-2就是一个很好的例子。 2. 为什么参数的数量很重要? Google Gemma 2B: Google Gemma 2B 是 Gemma 系列的一部分,是一系列为各种文本生成任务设计的轻量级开放模型。 Databricks Dolly 3B: Databricks 的 Dolly-v2-3B 是在 Databricks 平台上训练的商业级指令跟踪语言模型。
选择模型 fd_set结构可以把多个套接字连在一起,形成一个套接字集合 typedef struct fd_set{ u_int fd_count;//下面数组的大小 SOCKET fd_array[FD_SETSIZE struct timeval{ long tv_sec;//指示等待多少秒 long tv_usec;//指示等待多少毫秒 }timeval; 应用举例 1 初始化fdSocket集合,添加监听套接字句柄 2 当有事件发生的时候,select函数移除fRead中没有未决IO操作的句柄,然后返回 3 比较原来的fdSocket集合,与select处理过的fdRead集合,确定哪些套接字有未决IO并处理这些IO 4 回到2进行选择 1 CInitSock theSock;//初始化winsock库 2 int main() 3 { 4 USHORT nPort=4567;//此服务器监听的端口号 5 / ); 15 return 0; 16 } 17 //进入监听模式 18 ::listen(sListen,5); 19 20 //select模型处理过程
Hugging Face 地址 2:https://huggingface.co/microsoft/Orca-2-7b 训练小型语言模型的研究通常依赖于模仿学习,以复现更强大模型的输出。 Orca 2 模型的表现不逊于或超越包括 5-10 倍更大的模型在内的所有其他模型。这里所有模型都使用相同尺寸的 LLaMA 2 基础模型。 图 2:演示 Orca 2、其基础模型 LLaMA 2、LLaMA 2-Chat 和 ChatGPT(GPT-3.5-Turbo)对一个推理问题的响应的示例。 通过比较 Orca 2 与其它模型,研究者有以下发现: 超越相同规模的模型。Orca-2-13B 在 zero-shot 推理任务上显著优于相同规模的模型。 值得注意的是,这三个模型 Orca-2-13B、LLaMA-2-Chat-13B 和 WizardLM-13B 都基于相同的基础模型,这也凸显了 Orca 2 采用的训练过程的有效性。
与传统方案的核心差异对比维度传统多阶段TTSVoxCPM2表示方式离散Token连续Latent空间信息损失量化不可逆FSQ正则化,可控约束架构耦合多模型独立训练端到端扩散目标语义-声学两阶段割裂TSLM ——朱熹洞见一:模型参数量不是能力的天花板,架构才是VoxCPM2用2B参数干到商业级水准,核心不是数据量堆砌,而是架构分工的精准性。 VoxCPM2的"音色设计模式"恰好是这个范式在语音领域的完美体现——用一句话描述音色,模型直接生成,无需中间表示。 洞见三:开源小模型的真正价值,在于把能力边界下沉到团队大模型API依赖的本质问题不是贵,而是失控——数据出境、延迟不可控、能力版本不可固定。 VoxCPM2这样的模型告诉我们:2B参数、一张消费级显卡、Apache2.0协议,足够支撑一个中型团队的全部语音业务需求。不要再等商业方案帮你定义语音能力的边界了。
在这样的背景下,小模型(Small Language Models, SLMs)的研究就显得非常重要。小模型以其相对较小的规模和较低的计算算力需求,为资源有限的端侧设备环境提供了一种可行的解决方案。 Phi-2 Phi-2 的参数数量有 2.7 亿,模型通过创新的知识转移技术,在 Phi-1.5 的基础之上,通过从 Phi-1.5 中嵌入知识,加速了训练过程并提升了性能。 这种知识转移方法不仅加速了训练过程的收敛,而且在基准测试中显著提高了 Phi-2 的得分。在 Phi2 提出的时间节点,在多个复杂基准测试中,Phi-2 能够匹配或超越比其规模大25倍的模型。 此外,Phi-2 在安全性和偏见方面也有所改进。尽管它没有经过人类反馈的强化学习对齐(RLHF)或指令微调,但与经过对齐的现有开源模型相比,Phi-2 在毒性和偏见方面的行为表现得更好。 PC 上用 Phi-3-visio 进行轿车司机是否系安全带的图像问答测试 Phi-3.5 系列 Phi-3.5 系列小模型是最新一代的 Phi 系列小模型,该系列包括了 Phi-3.5-mini、Phi
程序的生命周期 进入小程序----------微信客户端加载时候,就会给Page 实例 触发 onLoad 事件,它就会被调用, onLoad 在页面销毁之前只会触发1次,在onLoad 回调中,可以获取当前页面的打开参数 2.由于setData是需要两个线程的一些通信消耗,为了提高性能,每次设置的数据不应超过1024kB。 #2.value是一个字符串,需要在对应的页面Page构造器中定义同名的函数,否则触发事件时在控制台会有报错信息。
小程序的数据绑定 xx.js 文件中放置页面的逻辑和变量内容。 小程序数据绑定使用的是 {{ }} 双大括号语法,标准叫法为 Mustache 语法。 页面的初始数据 */ data: { name:'张三' } } 然后在 xx.wxml 页面中通过 {{}} 引用: <text>{{name}}</text> 此时,小程序的预览界面就会显示 --表示引用在 js 中定义的变量 age ,并将其值 + 10 --> <text>我的年龄:{{age + 10 }}</text> 2. Page({ /** * 页面的初始数据 */ data: { students:[ {id:1,name:'张三',age:13}, {id:2,
小语言模型与 LLM 的比较 这些问题可能是近期兴起的小语言模型或 SLM 的诸多原因之一。 小语言模型本质上是 LLM 的更精简版本,就神经网络的大小和更简单的架构而言。 根据微软的说法,基于 transformer 的 Phi-2 的效率使其成为研究人员理想的选择,这些研究人员希望提高AI模型的安全性、可解释性和伦理发展。 Orca 2: 微软通过使用从统计模型生成的合成数据(而不是现实生活的数据)来微调Meta的LLaMA 2开发的。 随着语言模型发展得更加通用和强大,选择“小”似乎是最好的方式。
代码静态分析 在提交代码时为了提高代码质量,保持团队的代码风格一致,需要进行代码静态分析,一般通过下面2种方法来进行 flutter analyze 使用flutter analyze进行代码静态分析, json_serializable 在线json转dart model工具 Built value 在线json转build value 模板工具 https://charafau.github.io/json2builtvalue var user1 = new User((b) => b ..name = 'John Smith' ..nickname = 'Joe'); // update var user2
引言 上一节我们详细讲解了模型的访问器功能,可以轻易扩展模型的属性访问,灵活又标准地增强了模型的读取数据的能力。 [img] 本文我们接着往下讲,说说模型的修改器,以及模型的职责。 我们仍然在 tinker 内进行演示: $user = new User; $user->password = 'blah'; echo $user->password; // 输出 $2y$10$e3ufaNvBFWM @endif 其中 $event 是模型 Event 对象的一个实例,start_at 方法是模型的一个属性,也是数据库表的一个字段。 但是在模型层面进行类库方法的调用,有些单独,且零散。假如有些API接口要使用此方法格式化,或者别的页面也要重用这个方法,显然放在模型内更为合适。 写在最后 本文描述了laravel模型内很常用的两个小技巧。
1、如何快速找到多个字典的公共键 方法一 dl = [d1, d2, d3] # d1, d2, d3为字典,目标找到所有字典的公共键 [k for k in dl[0] if all(map(lambda 例如,reduce(lambda x, y: x+y,[1, 2, 3, 4, 5]),则计算((((1 + 2) +(3) + 4) + 5)。 ,其结果是[5, 4, 6, 3, 7, 2, 8, 1, 9]。 ('abcasd') >>> c Counter({'a': 2, 'c': 1, 'b': 1, 's': 1, 'd': 1}) >>> c2 = Counter(c) >>> c2 Counter ) >>> c & d # 交集: 取两者都有的key,value取小的那一个 Counter({'a': 1, 'b': 1}) >>> c | d # 并集: 汇聚所有的key, key相同的情况下
rect.Height()/2); //设置客户区中心为坐标系原点 rect.OffsetRect(-rect.Width()/2,-rect.Height()/2); //客户区矩形校正 rect.Height()/2); //设置客户区中心为坐标系原点 rect.OffsetRect(-rect.Width()/2,-rect.Height()/2); //客户区矩形校正 rect.Height()/2); //设置客户区中心为坐标系原点 rect.OffsetRect(-rect.Width()/2,-rect.Height()/2); //客户区矩形校正 (50,-50); double k=(p[3].y-p[2].y)/(p[3].x-p[2].x); double x=90,y=k*(x-p[3].x)+p[3].y; p[ rect.Height()/2); //设置客户区中心为坐标系原点 rect.OffsetRect(-rect.Width()/2,-rect.Height()/2); //客户区矩形校正
近邻点个数50 sor.setStddevMulThresh(1); sor.filter(*cloud_filtered); pcl::visualization::PCLVisualizerviewer2( "After before filtering"); viewer2.setBackgroundColor(0,0, 0);//黑色背景 pcl::visualization::PointCloudColorHandlerCustom <pcl::PointXYZ> after_color(cloud_filtered, 255, 0, 0); viewer2.addPointCloud viewer2.wasStopped()) { viewer1.spinOnce(1); viewer2.spinOnce(1);
只需要一个前端就可以操作数据库小程序云开发就是这个概念的尝鲜者。云开发也是小程序近年最大的改变之一。 新建一个基于云开发的小程序项目。 发现目录结构变了,原来的小程序结构放到了miniprogram文件夹: ? 增加了一个cloudfunctions文件夹。 openid 返回给小程序端 * * event 参数包含小程序端调用传入的 data * 暴露云函数的入口 */ exports.main = (event, context) => { wx.cloud.callFunction({ // 云函数名称 name: 'login', // 传给云函数的参数 data: data: { a: 1, b: 2, (err) { console.error(err) } }); } }) 好了,现在进入到me页面,打印出来的就是1+2的结果
在S上进行训练模型,在T上进行测试和评估误差,作为对泛化误差的估计。注意点: 训练/测试集合的划分应该尽量保持数据分布的一致性,避免因为数据划分过程而引入额外的偏差。 比如S中350个正例,350个反例;T中150个正例,150个反例 即使确定了划分比例之后,不同的划分方法仍然对模型的评估造成缺别。 交叉验证法 现将数据集合D划分成k个大小相似的互斥子集D_1,D_2,…,D_k。每个子集尽量保持数据分布的一致性,即从D中分层采样得到。