自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 DeepSeek-R1 论文阅读总结

通过构建冷启动数据(数千条长CoT数据)微调基础模型,结合多阶段训练流程(RL训练、拒绝采样生成SFT数据),并优化输出格式(如特殊标记分隔),显著提升可读性。相比仅用RL的Zero版本,改进后的R1保持了推理能力且输出更易读。-R1-Zero:纯RL训练,无监督数据,输出存在语言混杂、可读性差-R1:引入监督学习阶段冷启动阶段用高质量CoT数据微调拒绝采样生成600K过滤数据(移除混合语言/冗余内容)二阶段RL(推理任务用规则奖励,通用任务用人类偏好奖励)

2025-03-11 22:21:52 731 1

原创 LightRAG基础原理解析

LightRAG-GIT地址LightRAG是个精炼的RAG框架,使用Python来实现,专门用于通过检索关键知识片段来构建响应,并且整合了知识图谱和嵌入技术。与那些将文档简单拆分成独立片段的传统RAG系统不同,LightRAG进一步深化了这一过程——创建了实体与实体之间的关系对,将文本中的概念紧密联系起来。它与微软的GraphRAG有相似之处,但LightRAG在速度和成本上更具优势,并且支持对图谱进行增量更新,无需每次都重新生成整个图谱。介绍完LightRag的关键技术,就来总体的介绍一下。

2025-01-25 23:27:08 960

原创 并发编程源码解析(十一)CompletableFuture源码解析

CompletableFuture 是 Java 8 中的一个类,它实现了 Future 接口,并提供了一些额外的方法来处理异步编程。它常常被用在并发编程当中,和 CountDownLatch 类似,但是会返回结果。

2024-01-21 01:02:02 1195

原创 并发编程源码解析(十)ThreadPoolExecutor源码解析

workQueue 是用于存放任务的阻塞队列,通常使用 ArrayBlockingQueue & LinkedBlockingQueue ,特殊的线程池会采用 PriorityBlockingQueue(优先级阻塞队列) 或者 DelayQueue(延迟阻塞队列)。当线程池核心线程已经无法再领取任务时会将任务放入到工作队列当中。2.2。

2024-01-20 20:17:12 1431

原创 并发编程源码解析(九)CyclicBarrier源码解析

CyclicBarrier一般被称作栅栏,这是一个很形象的称呼,它的作用很神奇,它是等待n个线程到达之后在一起执行。影响一点解释就是如果用羊形容线程的话,它就像是一个栅栏,我们给这个栅栏最大容量设置为3,那么当栅栏进入第一只和第二只羊的时候一定要三只羊全进入时才可以同时执行。使用的场景比较少,我的理解是需要等待前三个线程都跑出结果的情况才会使用到,也许在算法的一些场景会有这个情况。CyclicBarrier不同于我们之前学到的很多类是继承AQS,它的内部是直接使用ReentrantLock来实现。

2023-12-09 23:33:41 931

原创 并发编程源码解析(八)Semphore源码解析

Semaphore通常是一个计数器,用于跟踪共享资源的使用情况。当进程想要使用共享资源时,它会尝试获取Semaphore,如果Semaphore的计数器为零,表示资源正在使用中,那么进程将被阻塞,直到Semaphore可用。它与的作用区别主要在,的计数是不可回收的,而Semaphore是可回收的;正是因为这一特性他也被广泛的应用于限流的场景当中。

2023-12-02 23:08:42 1516

原创 并发编程源码解析(七)CountDownLatch 源码解析

CountDownLatch一般来说我们会称为计数器,是Java并发编程中的一个工具类,它可以帮助控制多个线程间的同步,使得某个线程在等待另外一组线程完成某些操作后再继续执行。具体来说,CountDownLatch中包含一个初始值,其它线程可以通过调用这个对象的countDown()方法来减小这个值,而某个线程可以通过调用这个对象的await()方法来等待这个值减小到0。当这个值减小到0时,await()方法将返回,表示其它线程已经完成了某些操作,可以继续执行。但是 CountDownLatch 只

2023-11-30 00:39:41 833

原创 并发编程源码解析(六)ConcurrentHashMap源码解析之三并发扩容

首先,我们先来复习一下sizeCtl的状态,-1 正常初始化< -1 是正在扩容0 没有初始化> 0 数组扩容阈值/ 没有初始化是代表初始化长度接着我们来介绍一下关于并发扩容的基本概念,的第一个线程进入线程之后会将sizeCtl设置为 -2,然后将新的数组创建好,并将扩容任务拆分成若干个子任务,当其他线程进行put时,如果检测到了正在扩容就会将 sizeCtl +1 (会变成-3) 以表示新的线程参与并发扩容;

2023-11-25 23:39:28 2013 1

原创 并发编程源码解析(五)ConcurrentHashMap源码解析之二读与写源码分析

ConcurrentHashMap 读与写的源码分析

2023-11-24 23:50:17 597

原创 并发编程源码解析(四)ConcurrentHashMap源码解析之一基础概念介绍以及散列算法讲解

是Java中的一个线程安全的哈希表实现,位于包下。它实现了接口,是的线程安全实现之一。与相比,允许多个线程同时读取和写入,而不需要显式的同步措施。

2023-11-23 00:57:27 316

原创 并发编程源码解析(三)ReentrantReadWriteLock源码解析之一写锁

阅读本篇前最好先阅读。

2023-11-20 00:03:41 597

原创 EasyExcel 踩坑日记

这两天研发需求遇到比较有意思的问题,起因是因为我用Ai软件自动生成了代码,AI自动把类的一些字段识别成了然后本来该是 String 类型的字段变成了Integer 类型。

2023-11-19 21:38:32 492

原创 并发编程源码解析(二)ReentrantReadWriteLock源码解析之一写锁

因为要用高16位表示读锁,低十六位表示写锁所以需要先介绍一些关键的属性以防后续了解源码的时候出现混乱。//共享锁的长度//共享锁的为1的状态//读写锁可重入的最大值//为一个蒙板主要是遮挡住读锁(与state做 & 运算 可以让高16位都为0,这样就可以只看到写锁数据)//右移16位得到读锁//与蒙板 & 只剩下写锁。

2023-11-14 00:15:01 185

原创 并发编程源码解析(一)ReentrantLock源码解析(超详细)

是中的一个互斥锁,它允许线程重入锁定的代码段,而不会产生死锁。它实现了Lock 接口,内部继承了(AbstractQueuedSynchronizer) 并提供了比更多的灵活性和功能,例如可中断锁、超时锁、公平锁和多条件变量。的主要作用是实现线程间的同步和互斥访问共享资源,保证数据的一致性和完整性。在锁竞争的比较激烈的情况,优先推荐使用,具体原因以后解析的时候再来详细说明。

2023-11-11 23:49:26 671 1

原创 IDEA JREBEL 插件安装

JRebel 是国外团队开发的一款收费工具,JRebel 允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品,JRebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率。JRebel 是一款 JAVA 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。简单来说它的主要作用就是给你的代码实现热加载的插件。安装方法。

2023-11-11 20:43:11 270

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除