- 博客(77)
- 资源 (57)
- 问答 (1)
- 收藏
- 关注
原创 大模型微调技术---LoRA
就这样,你成功地为AI模型训练了一件海尔品牌的“LoRA马甲”,让它成为了一个专业的海尔助手!整个过程的核心在于高质量的数据准备和简单的LoRA配置。方面传统全量微调LoRA微调是什么重塑整个模型给模型穿上一件轻量的“技能马甲”怎么用难,需要大量资源易,配置参数后即可快速训练原理直接更新所有参数冻结原参数,用低秩分解模拟参数更新存储每个任务存整个模型(GB级)只存“马甲”(MB级)硬件需要多张高端GPU单张消费级GPU即可希望这个解释能让你彻底明白LoRA是什么!
2025-09-02 16:10:03
1156
原创 Redis面试题--数据分片(Sharding)
Redis数据分片技术摘要 Redis数据分片通过将数据拆分到多个节点,解决单机内存和性能瓶颈。核心问题是如何将键(key)路由到正确的节点,主要有三种方案: 客户端分片:逻辑在客户端实现,简单但扩展性差; 代理分片(如Twemproxy):通过中间层转发请求,但对性能有损耗; Redis Cluster(推荐):官方方案,采用哈希槽(16384个槽)分配数据,支持高性能、高可用和动态扩缩容。 最佳实践:新项目优先选择Redis Cluster,但需注意跨节点操作(如事务)可能受限。分片技术实现了水平扩展,
2025-09-02 10:30:58
860
原创 Redis面试题--介绍下Redis几种集群模式
Redis集群模式演进:从主从复制到Cluster模式 Redis集群模式经历了三个发展阶段:主从复制实现数据备份和读写分离;哨兵模式加入高可用性,自动故障转移;Cluster模式综合解决高可用和水平扩展问题。主从复制适合读多写少场景,但缺乏自动故障恢复;哨兵模式通过独立监控系统实现自动切换;Cluster模式采用数据分片和gossip协议,支持水平扩展。Raft算法作为分布式一致性算法,通过领导人选举和日志复制机制,为哨兵和Cluster模式提供底层支持。生产环境中,大数据量高并发场景推荐Cluster模
2025-08-29 16:19:58
883
1
原创 大模型应用--上下文工程
《上下文工程:精准引导AI输出的艺术》摘要 上下文工程是通过精心设计输入文本来优化大语言模型输出的系统性技术。与单次提问的Prompt不同,它规划多轮对话策略,像导演指导演员般分步达成复杂目标。核心技巧包括:提供清晰指令(定义任务与格式)、示范样例(引导风格)、补充背景(如商务邮件场景)、角色设定(如小学教师)及思维链推理(分步解答)。其原理基于模型的概率预测机制——优质上下文能精准引导AI的注意力分布。实践时建议从明确指令入手,以"新手指导"思维设计问题,善用角色扮演,并通过迭代优化对
2025-08-29 15:16:11
1151
原创 Kafka经典面试题--Kafka的其他问题汇总
Kafka核心概念解析:Topic与Partition是逻辑与物理的分离,Topic用于分类消息,Partition实现并行处理与扩展。ISR机制通过动态维护同步副本集,在可靠性与性能间取得平衡。Kafka支持生产者事务,确保多条消息的原子性写入。分区数量与消费者数量可以不同,但需注意负载均衡。消息丢失可能发生在生产者、消费者或Broker端,需合理配置acks参数和处理异常。Kafka4.0后不再依赖Zookeeper,改用KRaft模型管理元数据。根据业务场景选择Kafka或MQ,Kafka适合高吞吐量
2025-08-27 15:25:42
756
原创 Kafa面试经典题--Kafka为什么吞吐量大,速度快
摘要:Kafka的高性能源于其架构设计的多个优化策略协同作用。核心原理包括:1)顺序I/O利用磁盘高速顺序读写;2)页缓存直接利用操作系统缓存,减少JVM开销;3)零拷贝技术通过sendfile系统调用大幅降低CPU开销;4)批量处理提升网络和磁盘IO效率;5)高效数据压缩减少传输量;6)稀疏索引实现快速消息定位。相比RocketMQ,Kafka在吞吐量、可扩展性和流处理生态方面更具优势,适合大数据实时处理场景;而RocketMQ则在事务消息、延时消息等传统MQ功能上更突出。两者设计哲学不同,Kafka专注
2025-08-26 16:18:29
587
原创 Kafka系列--Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发送重平衡(reblanace)
Kafka消息可靠性保障机制主要包括: 消息不丢失:生产者端通过同步发送、回调重试和acks=-1配置;Broker端通过ISR副本机制和持久化配置;消费者端手动提交offset。 消息顺序性:通过单分区或指定分区发送消息,消费端单线程处理保证顺序。 防重复消费:采用幂等机制,为消息生成唯一标识并存储校验,同时优化消费性能避免触发Rebalance。 Rebalance触发条件包括消费者变动、分区变更等,过程会暂停消费、重新分配分区后恢复。
2025-08-26 13:49:00
1004
原创 大模型知识--MCP
如果说让大模型学会了“用手”(调用一个函数),那么MCP则是为它建造了一个“全球武器库和后勤网络”,让它能随心所欲地使用全世界最专业的“工具手”。对于你个人日常使用,可以先从体验MCP Client(如Claude Desktop)开始,感受它“即插即用”的强大能力。当你需要开发自己的AI应用时,再根据功能的复杂度和扩展性需求,在Function Calling和MCP之间做出选择。简单玩一玩就Function Calls,企业级别的应用,直接搞MCP吧。
2025-08-25 20:57:05
1138
原创 大模型知识--Function Calls
摘要: Function Calls 是大模型与外部API交互的核心机制,使其从"纯聊天"升级为能执行具体任务(如查天气、操作数据库)。工作流程分为五步:1)开发者预定义工具(JSON格式);2)模型分析用户意图;3)生成结构化调用请求;4)后端执行函数;5)模型总结结果返回用户。其技术核心在于语义理解、约束生成(确保JSON合规)和安全执行(模型仅提议,代码实际执行)。该机制实现了大模型作为"规划者"与外部系统的协同,是构建AI智能体(Agent)的基础,代表了一种
2025-08-24 21:51:36
949
原创 文本如何做分块
本文介绍了RAG系统中文本切块的6种方法:1.固定长度切分(简单快速但易断句);2.滑动窗口切分(减少断句但成本高);3.按句子切分(语义完整但需处理长短句);4.递归字符切分(兼顾完整性与长度);5.按主题切分(准确但耗时);6.按文档结构切分(清晰但依赖格式)。文章还对比了BGE不同版本的特点,强调应根据实际场景选择合适方法,如短文本用句子切分,长文档用递归字符切分等,最终需结合业务需求进行定制化处理。
2025-08-19 16:42:28
1068
原创 LangChain在AI中应用
LangChain是一个用于构建AI应用的开发框架,它通过模块化设计将大模型与外部工具(如数据库、计算器等)连接起来,实现功能串联。其核心包含三大模块:Model I/O(模型交互)、Retrieval(信息检索)和Chains/Agents(流程控制)。通过组合这些模块,开发者可以快速构建能查询资料、执行任务的智能应用。例如,开发一个PDF问答机器人只需几行代码即可完成PDF加载、文本切分、向量存储和问答链搭建。LangChain通过封装底层逻辑(如向量转换、历史记录管理)简化开发流程,支持定制化扩展。该
2025-08-18 19:30:26
1070
原创 AI 应用中的几个唬人的“黑话”
大白话:能够按照设定的流程图,去完成任务的AI助手,流程图是Agent创作者自己设计的,你可以理解成代码里面的if-else ,print等操作命令,input一个信息,就会根据流程图的判断一步一步往下走最后output一个结果。大白话:你问AI的问题和要求,就是你想让AI扮演什么角色,给你什么样的回答,回答是否要求不能出现什么敏感词,字数要求限制,逻辑清晰等等。根据你的问题产出不同的素材结果给你,全能的AI。大白话:AI去理解内容文字的最小的单位,就好比我们说的拼音,a,b,c,d,汉子的一笔一划。
2025-08-18 10:39:54
304
原创 FAISS向量数据库
本文介绍了Faiss这一高性能向量搜索库的核心概念与应用。Faiss针对传统数据库无法高效处理向量相似检索的问题,提供了两种索引类型:扁平索引(精确但计算成本高)和量化索引(高效但牺牲部分精度)。文章详细说明了Faiss的安装方法(CPU/GPU版本)、核心数据结构,并提供了Python代码示例,展示如何创建索引、添加向量数据及执行相似搜索。特别强调了不同索引类型的适用场景(如IVF适合百万级数据,HNSW适合在线服务),以及使用时的注意事项(维度限制、归一化处理等)。最后指出,掌握基本操作即可应对90%的
2025-08-14 11:09:23
999
原创 BGE向量算法
BGE向量算法是由北京智源研究院开源的通用语义向量模型,能够将中英文句子转换为512维或1024维的数字向量,使语义相近的句子在向量空间中距离更近。它适用于RAG(检索增强生成)场景,尤其擅长中文文本处理,在C-MTEB榜单上表现优异。BGE具有免费开源、商用友好、多尺寸可选等优点,但也存在长文本处理受限、英文/代码场景非最优等局限。其核心原理基于Transformer架构和对比学习,通过预训练和微调优化语义表示。该模型特别适合中文知识库、企业FAQ等应用场景,是当前中文语义嵌入的优选方案之一。
2025-08-13 21:31:44
1080
原创 Java字符串报错:constant string too long 问题
今天无意发现了一个关于字符串的问题,之前总说字符串能够放多少字符。一直认为堆内存分配了多大就能够放多大,Java8以后来了一个元空间,直接用系统内存。更大了。然而今天为了省事将一对内容放到了string中进行处理。结果编译的时候报错了:constant string too long 。于是发现自己疏忽了一些问题。工程从编写到运行,要经历 编译和运行阶段。 string在运行期放很多字符没问题,这个因为之前程序从文件里读取了很多东西输出来过,这点验证过。但是编译的时候,一直没有关注过。后来发现编译期
2022-05-11 15:23:54
4230
原创 Kafka实践中遇到的问题思考
在实际工作中,kafka实践的时候难免遇到一些问题。下面记录下本人在实际中遇到的一些error。如果有问题可以留言指正,不过要给出经过验证的结论。一、Producer发送消息时报错 :Topic {{topic_name}} not present in metadata after 60000 ms在利用KafkaTemplate发送数据时代码如下:ListenableFuture<SendResult<String, String>> future = kafk
2022-01-24 15:09:54
6060
原创 线程池动态配置实践
最近在测试的时候由于业务需要,需要对系统的并发进行控制,因为之前是线程池的方式,多线程处理任务。但是需要每次调整后都要发版,很麻烦。所以采用动态的线程池进行动态修改线程数量,从而达到控制并发处理的目的。参考美团的技术文章,介绍主要的技术点。1、线程池基础知识...
2021-11-06 21:40:26
947
原创 并发编程---9、锁
面试的时候,一般大型互联网或者数据公司都对并发很重视,但是为了保证线程安全,就需要锁来控制同一时刻一个线程访问资源。锁的知识也就是面试必问的知识了。这一章可能比较长,因为咱们着重介绍下各种锁。其实吧Synchronized和Volatile称作锁也没关系因为很多面试官都把他们也当成锁去提问。我们说的锁现在就只在jdk1.8的基础上面来说了。从代码层级来说。锁总体可以分为2类:1、Synchronized JVM内部实现(cpp)通过操作系统指令实现,属于内核态。2、Lock 在JUC包下面,基于
2020-06-25 21:52:07
441
1
原创 并发编程----8、CAS与AQS
目录一、并发编程之CAS1.1、什么是CAS1.3、CAS底层原理1.4、CAS原理分析1.5、CAS应用场景二、并发编程之AQS2.1、概念2.2、基本思想2.3、CLH同步队列三、AQS源码分析一、并发编程之CAS在介绍CAS的时候先说下悲观锁和乐观锁,要不面提到这2个概念,大家会觉得陌生。悲观锁:写多,读少。所以悲观乐观锁:读多,写少,有版本控制。这一章偏理论,因为CAS主要就是一个算法。1.1、什么是CASCAS (compa.
2020-06-25 21:00:30
462
1
原创 并发编程----7、单例模式
模式是脱离语言而存在的,设计模式中的单例模式在并发中非常重要,大家不要沉迷于语言和架构,需要从设计角度去思考问题。技术是最容易被替代的,只有形成了自己的方法论和产品思维才能走得更远。 ------ 写在开篇前单例模式怎么产生的呢?多线程操作对象是要操作不同对象还是操作同一个对象呢?如果要操作同一个对象的话,需要保证对象的唯一性。单例模式要解决的问题就是:实例化过程中只实例化一次。大致的方法就是: 1)提供一个实例化的过程,也就是new方法; 2)提供返回实例对...
2020-06-25 18:22:44
267
原创 并发编程----6、Volatile关键字
目录一、简介二、JMM与CPU三、Volatile的语句分析四、Volatile使用场景五、volatile与synchronized的区别一、简介synchronized是阻塞式同步,在线程竞争激烈的情况下会升级为重量级锁。而volatile就可以说是java虚拟机提供的最轻量级的同步机制。但它同时不容易被正确理解,也至于在并发编程中很多程序员遇到线程安全的问题就会使用synchronized。被volatile修饰的变量能够保证每个线程能够获取该变量的最新值,从而避.
2020-06-25 17:58:30
217
原创 并发编程----5、锁膨胀
锁膨胀就是所谓的 锁从 无锁-> 偏向锁 -> 轻量锁 -> 重量锁 的过程。锁膨胀没什么太多细节需要讲,主要说下上一讲中的一些疑问。再讲一下批量冲偏向和批量撤销的原理。目录一、前情回顾二、批量重偏向三、批量撤销一、前情回顾我们看下面代码package com.hubin.lock;import org.openjdk.jol.info.ClassLayout;import static java.lang.System.out;public cl.
2020-06-22 14:55:13
395
原创 并发编程----4、对象头详解
这一节非常重要,是整个并发锁的关键,因为重视提到无所、偏向锁、轻量锁、重量锁这些概念,很多人不知道这些东西是什么,为什么这样称呼,这一节好好看。目录一、概念二、用代码探究原理2.1、初探java对象头布局2.2、对象头详解一、概念对象头到底是什么东西呢?我们从hotspot的源码中贴上一段描述。// 32 bits:// --------// hash:25 ------------>| age:4 biased_lock
2020-06-22 10:04:10
439
原创 并发编程---3、Synchronized原理分析
一、概念Synchronized是利用锁的机制来实现同步的。锁的机制有如下两种特性:1、互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块进行访问。互斥性我们也往往成为操作的原子性。2、可见性:必须确保锁在释放之前,对共享变量所做的修改对于随后获取锁的另一个线程是可见的(即在获取锁时应获取最新共享变量的值),否则另一个线程可能是在本地缓存的某个副本上继续操作从而引起不一致。二、用法2.1 同步方法sync
2020-06-21 19:39:08
340
原创 并发编程系列---2、线程和线程池
线程池在并发编程中使用很普遍,而且线程池的原理很比较容易懂,但是这个不管是面试还是工作中都还是很重要的。下面我们主要来具体讲一下线程池、线程这些知识,汇总下,大家看这一篇文章我认为就够用了。里面有各种面试会问的,看懂了,线程池这块就拿捏的死死的了。目录一、多线程二、线程池2.1、线程池目的2.2、线程池基本框架2.3、线程池状态2.4、线程池 excute 分析2.5、自定义线程池2.6、线程池核心线程数怎么设置三、线程间通信方式3.1、进程间通信方式3.2、
2020-06-21 19:07:02
305
原创 并发编程---1、JMM
目录一、基本概念二、JMM介绍2.1 JMM结构1、方法区:2、堆(Heap):3、虚拟机栈(Stack) :4、本地方法栈(Native Method Stack):5、程序计数器:2.2 对象定位方式2.3 JMM内存模型2.4 硬件内存架构与JMM三、并发编程一、基本概念当你看到java内存模型的时候千万不要跟JVM弄混了,JVM包括JMM,JVM是java虚拟机,这个范畴会更大些。我们这一章节主要介绍下Java的内存模型。首先介绍几个概念.
2020-06-21 17:49:44
547
原创 Tomcat 架构设计原理分析,一步一步了解tomcat设计初衷
Tomcat的源码其实不必要细致的看,大概看看就可以了。了解运行原理即可。下面是Tomcat的一个大体设计类图1、Server:接受请求并解析,完成相关任务,返回处理结果。通常情况下使用Socket监听服务器指定端口来实现该功能1)Start():启动服务器,打开socket连接,监听服务端口,接受客户端请求、处理、返回响应2)Stop():关闭服务器,释放资源一个Ser...
2020-03-13 15:46:02
723
原创 热更新原理及实践注意
首先要说明几个概念,不要混用,热部署,热加载;热部署:就是已经运行了项目,更改之后,不需要重新tomcat,但是会清空内存,重新打包,重新解压war包运行,可能好处是一个tomcat多个项目,不必因为tomcat停止而停止其他的项目。直接重新加载整个应用;热加载:是基于字节码进行更改的,不释放内存,热加载也可以叫热更新。在运行时重新加载class;一、Arthas热更新步骤arth...
2020-01-09 18:55:37
4887
原创 Spring中自己写的bean没有被注入
相信大家遇到过这种问题:写jar包或者自己写的bean。在启动得时候没有被spring管理。导致这个方法中得逻辑无法执行。查了半天发现没有问题啊。如果你发现自己没有配置错,找不到任何错误,那么只有一种情况了:你得bean得名字跟被管理得bean重名了。所以大家在命名得时候不要用:confiure,start,comm等 作为bean得名字,很容易跟spring其他jar包中得bean重名。...
2020-01-02 14:51:53
1097
原创 Springboot + mybatis+sqlserver+druid 的项目的配置
springboot项目如果想在配置文件里用加密的密码直接配置而没有解密的一些配置,是支持度不太好的。需要自己实现DataSource的一些配置。使用密文的连接,网上一堆我就不阐述了。这里说的用明文来连接。spring.datasource.url=jdbc:jtds:sqlserver://xxxxxspring.datasource.username=xxspring.datasou...
2019-11-26 19:34:02
4394
2
原创 ANT 编译遇到:java.lang.ClassNotFoundException: org.apache.tools.ant.taskdefs.optional.TraXLiaison
在服务器上面用ant进行编译的时候,美化testng时,用到了一些jar包。但是window运行没事,linux服务器就不行。后来发现是因为ant的版本太低了。window本地用的是1.9.X 。而服务器用的是1.7.X。所以卸载服务器的antyum remove ant ---centos运行这个命令。然后在按照一个高版本的就行了。直接1.10.X。问题解决。...
2019-05-05 17:58:20
1322
原创 带你走进JAVA世界系列 之 JVM
今天突然想整理总结下JAVA基础的东西,因为各个大厂面试都需要对基础很了解。我开启一个带你走进JAVA世界系列。好,闲话少说,开始讲下JVM的原理。说到JVM需要了解其运行时的数据区,看下图 程序计数器:当前线程执行的字节码的行号指示器,用C语言就是指针。每条线程都有一个独立的程序计数器,各条线程之间相互 不影响。如果执行java方法,PC就是执行虚拟机字节码指令的地址。如果执行...
2018-12-16 19:25:11
442
原创 Double-Check 锁不推荐使用的原因分析
今天整理sonar的bugs规则发现一条Double-check锁不推荐使用。不明白原因,查了很多资料,整理如下:我们先看一般的双重检查public static Singleton instance;public static Singleton getInstance(){ if (instance == null) //1 { ...
2018-08-14 09:46:24
1598
原创 Java 知识点总结汇总
最近想系统总结总结Java的一些知识点,以前有很多莫能两可的东西,只知道怎么用,但是原理的东西大多没有深入研究,这次就花时间总结一下。1)int 和 Integer 的区别不只是一个是类,一个是基本类型。看如下代码:首先,17行和18行输出结果都为true,因为Integer和int比都会自动拆箱(jdk1.5以上)。22行的结果为true,而25行则为fa
2017-09-04 10:25:46
670
原创 学习笔记-------spring 事务控制
Spring Java 事务原理与应用事务控制有两种,一种是配置相应的方法,一种是通过注解@Transaction,可以在配置文件中都配置也可以有选择的配置。数据表需要时InnoDB 一、什么是Java事务 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性 (isolation)和持久...
2017-08-31 11:39:17
583
原创 Redis 在redis-cli 里输入问题
今天安装了一个Redis ,但是在客户端 redis-cli 中使用的时候,每打一个字符就会跟着一个127.0.0.1:6379>跳出来。如下图所示:不影响命令的返回结果。但是很让人头大,经过查询时中断工具 SecureCRT的原因。只用改动一个配置就行了。设置当前的Session Options-->Terminal-->Emulation-->Terminal为
2017-06-22 17:11:19
2112
原创 log4j 学习资料整理
log4j 学习资料整理一、log4j配置步骤Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。具体配置步骤如下:1)加入
2017-06-07 15:41:49
445
原创 mybatis 学习 汇总整理
mybatis 学习 汇总整理 一、 基础原理 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数
2017-06-05 16:50:13
1006
原创 AOP切面知识学习笔记
Spring 中配置AOP,以及AOP的实际使用1、AOP相关概念 AOP核心概念1、横切关注点对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点2、切面(aspect)类是对物体特征的抽象,切面就是对横切关注点的抽象3、连接点(joinpoint)被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法...
2017-05-23 16:32:23
568
GPRS模块实现的接打电话和收发短信
2012-05-09
c++写的学生管理系统
2013-09-17
c#编写的播放器
2012-05-09
qt4开发实践中的程序代码
2013-01-11
毕业设计-播放器开发设计
2012-08-12
Http编写程序需要的jar包如:httpclient、log、codec
2015-09-14
libsvm.jar和wlsvm.jar
2014-05-27
SecureCRT7.0安装包
2015-01-19
UtilSnoop一个调试soap消息的工具很好用
2014-11-12
如何用nutch爬取网页评论
2015-03-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅