如何训练一个自己的GPT模型

一、概述

1、什么是GPT

GPT,全称“Generative Pre-training Transformer”,即生成式预训练可迁移注意力模型,简称“文本生成器”。本质上是NLP自然语言处理领域采用Transformer的attention注意力机制解决非精确的模糊化语义问题,从而带来了NLP领域的里程碑式改变。 阅读全文

C++编译优化之—likely/unlikely

一、概述

在一些明确的场景下,程序员比CPU和编译器更了解哪个分支条件更有可能被满足。我们是否可将这一先验知识告知编译器和CPU, 提高分支预测的准确率,从而减少CPU流水线分支预测错误带来的性能损失呢?答案是可以!它便是likely和unlikely。在Linux内核代码中,这两个宏的应用比比皆是。下面是他们的定义: 阅读全文

成长之路—《连接—多边平台经济学》读后感

一、什么是多边平台?

多边平台通常扮演中间人角色,为服务提供者和用户牵线搭桥,通过连接两类或两类以上的客户提供价值。例如电商平台把买家和卖家连接在一起,租房平台把租客和房主链接在一起,相亲平台把用户和潜在的相亲对象连接在一起,打车平台把乘客和司机连接在一起。 阅读全文

分布式实时通信—DDS概述

DDS最早应用在美国海军系统,目前已广泛应用于军工、机器人、自动驾驶等领域,国际主流军工厂商、ROS2操作系统等均将DDS作为其控制系统的核心中间件,为各类战舰、机器人等提供可靠、高实时的分布式通信功能。今天就带大家一起了解一下。 阅读全文

C++ lock_guard和unique_lock的区别

C++多线程编程需要对共享的数据进行写保护,以防止多线程在对共享数据成员进行并发写时造成资源争抢而导致出现崩溃或其他不符合预期的结果。通常的做法是在修改共享数据成员前先对互斥锁mutex进行lock加锁,在修改后再进行unlock操作,这个场景中经常会出现由于疏忽或异常导致lock之后未能unlock,最终导致死锁。 阅读全文

小猪学arduino—Wifi图传+遥控坦克

最近调研4G图传控制模组,发现一个不错的wifi图传模块,用起来很简单,但是只能基于模组自身的wifi信号传输而不能走4G。虽然没能满足4G的需求,但是依然可以在很多场景发挥作用,比如近场遥控汽艇、潜艇、无人机、坦克的视频监控,Wifi 2.4G的信号也还是可以传很远距离的,既然还有这么多应用场景,这里就记录下模组的设计和使用方法吧,方便做小玩意时用。 阅读全文

C++ std::static_pointer_cast详解

一、概述

static_pointer_cast从表面上看就是静态指针类型转换。细细看来,并不是那么简单,有一个隐形的限制条件。首先这个是c++11里的,更老的编译器不支持,其次指针是shared_ptr类型的,对于普通指针是无效的。还有一般只用在子类父类的继承关系中,当子类中要获取父类中的一些属性时,或工厂模式等需要通过父类参数接收不同子类实例的场景(当然了子类通过多态拥有自己的父类继承来的属性和行为,但是还想知道父类相应的属性和行为,这时,将父类的shared_ptr通过static_pointer_cast转化为子类的shared_ptr,这样就可以使得子类可以访问到父类的方法)。 阅读全文