- 博客(114)
- 收藏
- 关注
原创 【AI】LoRA技术深度解析:大模型高效微调的革命性突破
LoRA(Low-Rank Adaptation)是一种通过实现大模型参数高效优化的技术。其核心原理是将预训练模型的权重矩阵分解为两个低秩矩阵的乘积(W′WBA),仅训练新增的秩为r的低维参数(通常r=8-64)。以LLaMA-7B模型为例,LoRA可将训练参数量从70亿压缩至百万级,显存消耗降低3倍。通过参数更新量ΔW的,将原本d×k维的参数矩阵分解为B∈d×r和A∈r×k,使总参数量从d×k降至r×dk。
2025-04-10 20:54:53
1368
原创 redis 延迟双删
延迟双删是一种折中方案,在保证数据一致性和系统性能之间取得平衡。实际应用中需结合业务需求选择策略,并通过监控和测试验证效果。当更新数据库时,如果未及时删除或更新缓存,可能导致后续读请求仍从缓存中读取旧数据,造成数据不一致。Redis延迟双删是一种用于解决。
2025-04-10 20:52:28
698
原创 【AI】MCP+cline 实现github官网项目查询
MCP(Model Context Protocol)是 Anthropic 提出并开源的一种协议,旨在让 基于 LLM 的 AI 系统具备使用工具和访问资源的能力。简单来说,MCP 为大型语言模型和外部资源之间提供了一个统一的“插头”或接口。以前每当需要让 AI 连接新的数据库、文件系统或服务时,开发者都必须为每种资源写专门的对接代码;有了 MCP,基于LLM 的 AI 系统可以通过标准协议“即插即用”地访问各种数据源,再也不必困在“信息孤岛”中。暂时无法在飞书文档外展示此内容。
2025-04-09 20:50:15
1205
原创 【AI】MCP概念
MCP(Model Context Protocol,模型上下文协议)是由公司提出的,旨在标准化大语言模型(LLM)与之间的交互方式,解决传统AI模型在等方面的瓶颈。
2025-04-09 20:48:43
857
原创 【AI】Ragflow构建本地知识库
看似合理,但实际上与客观事实不符或与用户指令、上下文不一致的现象。已有的预训练模型基础上,再结合特定任务的数据集进一步对其进行训练。通过信息检索从外部知识库中查找与问题相关的知识。大模型幻觉问题是指大模型生成的内容**而提升生成的质量和准确性(考试带小抄)就是Deepseek);检索增强生成(RAG。
2025-04-08 23:06:40
956
原创 【AI】prompt engineering
Prompt 工程(Prompt Engineering)是指在使用语言模型(如 ChatGPT、文心一言等)等人工智能工具时,设计和优化输入提示(prompts)的过程。这些输入提示是用户向模型提出的文本指令,用于引导模型生成满足特定需求的高质量输出,比如回答问题、生成文本内容(故事、诗歌、代码等)。
2025-04-08 23:04:40
986
原创 【AI】DeepSeek R1本地化部署 Ollama + Chatbox 打造最强AI工具
本文介绍如何通过本地化部署Ollama和Chatbox,利用DeepSeek R1模型打造强大的AI工具,涵盖Ollama和Chatbox的使用方法及相关操作步骤。
2025-02-05 22:09:01
1640
原创 【计算机网络】公有和私有 IP 地址
私有 IP 地址是专门为内部网络保留的 IP 地址范围,这些地址在互联网上不会被直接路由,仅用于内部网络中的设备之间的通信。私有 IP 地址范围如下:Class A:10.0.0.0 至 10.255.255.255Class B:172.16.0.0 至 172.31.255.255Class C:192.168.0.0 至 192.168.255.255公有 IP 地址是由互联网服务提供商(ISP)分配的 IP 地址,可在互联网上被唯一标识和路由,可用于全球范围内的设备间的通信。
2025-01-26 00:41:23
1488
原创 【计算机网络】NAT应用
NAT(Network Address Translation)的定义:NAT(Network Address Translation)的定义:NAT 的主要功能和作用:解释:目的地址转换****(DNAT):解释:安全性NAT 可以隐藏内部网络的真实 IP 地址,外部网络无法直接看到内部设备的私有 IP 地址,提供了一定的安全防护,使外部攻击者难以直接攻击内部设备。同时,通过控制 NAT 规则,可以限制外部对内部网络的访问,只允许特定的外部访问请求进入内部网络,防止未经授权的访问。
2025-01-22 23:16:11
1264
2
原创 java中的单元测试的使用以及原理
注解的核心原理是利用**Spring 框架和 Spring Boot 的自动配置机制,在测试类执行前启动一个 Spring 应用程序上下文,然后根据等注解将上下文中的 Bean 注入到测试类中。**这样做可以让你的测试代码方便地使用 Spring 管理的资源和服务,确保测试环境与实际应用环境的一致性,同时充分利用 Spring 的依赖注入功能,使测试更加方便和可靠。此外,你可以通过该注解的各种属性来进一步定制测试环境,以满足不同的测试需求,如测试不同的配置场景、不同的 Web 环境等。
2025-01-22 23:14:48
1613
原创 日志系统实践
Logback是一个功能强大且广泛使用的Java日志框架,用于控制Java应用中日志的输出格式、级别以及输出目标等方面。,说明在每条日志记录后面会添加换行符,使每条日志在控制台输出时各占一行,便于查看和区分不同的日志记录。及以上级别的日志输出到控制台,并且对日志的时间戳、JSON格式的具体样式等做了相应的规范设置。,也就是按照年-月-日 时:分:秒.毫秒这样精确到毫秒的格式来记录日志产生的时间。,则输出的JSON会有缩进等美化排版,方便查看,但会占用更多空间)。标签定义了时间戳的格式,设置为。
2025-01-14 23:02:02
835
原创 环境变量的使用
环境变量是系统和程序配置的重要组成部分,它提供了一种灵活且强大的方式,让程序可以根据不同的环境进行配置,同时提高了程序的可移植性和可维护性。之前接触得比较多的是系统环境变量,比如在配置jdk的时候设置jdk路径,其实在程序的执行过程中也可以设置环境变量,比如现在在ci任务中,每次构建的id,参数信息就可以作为环境变量,在程序中可以取得这些环境变量。总之,环境变量是操作系统和程序开发中一个基础且重要的概念,熟练掌握和运用环境变量对于开发和管理系统和程序是非常有帮助的。了方便系统和程序的配置和管理。
2025-01-14 22:59:11
939
原创 【A I应用】1.原理入门以及应用方式
公司内部问题回答的任务,训练数据就是公司内部的任务单子数据。特定的任务或领域(建设公司内部的知识问答平台)搭建黑箱(也就是预训练的模型)目前要做的工作主要就是模型微调。
2025-01-06 21:20:46
880
原创 数据分析工作流
分区则是为了实现数据的并行处理和存储,提高系统的吞吐量和可用性。Kafka消息队列可以作为一个缓冲区域。)和分区策略将数据存储起来。ClickHouse处理数据。
2025-01-06 21:14:03
1551
原创 CI/CD,Devops,平台工程 概述与应用
* CI/CD(Continuous Integration/Continuous Delivery 或 Continuous Deployment)**是现代软件开发和交付流程中的核心概念,旨在加速代码变更的交付,同时保证代码的质量和稳定性。它结合了开发、测试、部署等过程,实现了软件的自动化和持续迭代。CI/CD是实现敏捷开发和Devops理念的一种方法,具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试,到交付和部署)。
2025-01-04 22:09:53
1036
原创 一文理解ssh,ssl协议以及应用
在使用基于密钥的认证方式的时候,私钥的位置一定要符合远程服务器规定的位置,否则找不到私钥的位置会导致建立ssh连接失败SSH 全称是,即安全外壳协议。它是一种网络协议,用于在不安全的网络中安全地进行远程登录和其他网络服务。SSH 通过加密机制和认证机制,能够防止网络通信中的信息泄露、中间人攻击等安全威胁。密钥。
2025-01-04 22:04:23
1747
原创 Typescript入门
TypeScript 包含了 JavaScript 的所有特性,并且还增加了一些额外的功能,如静态类型检查等。TypeScript 是 JavaScript 的。
2025-01-04 22:00:48
943
原创 ES搜索原理
搜索引擎的检索过程是通过倒排索引来实现的,这个过程可以分为几个关键步骤,让我们逐步解析搜索引擎如何利用倒排索引进行检索,并强调倒排索引在快速定位相关文档方面的高效性。遍历每个文档,对于文档中的每个关键词,将其映射到文档的唯一标识符(文档ID)。遍历每个文档,对于文档中的每个关键词,将其映射到文档的唯一标识符(文档ID)。如果查询包含多个关键词,搜索引擎会对这些关键词的倒排列表进行交集操作,得到包含所有关键词的文档ID列表。将词语还原为其词干形式,去除词尾,以便将相关的词汇映射到同一词根,减少索引的大小。
2024-12-21 11:11:36
1221
原创 【java】全文索引,普通索引,以及ES搜索引擎组件的关系
MySQL 中的全文索引是一种特殊的索引类型,用于对文本列进行高效的全文搜索。基于相似度的查询倒排索引charvarchartextMATCHAGAINSTkeyword,会根据相关性对结果进行排序,相关性由多个因素决定,如关键词在文档中出现的次数、在索引列中的数量、多少个文档包含该关键词等。keyword1keyword2idCHARVARCHARTEXT=、<、>、INageLIKELIKEcontent普通索引的数据结构通常是B - 树(B - Tree)或者B + 树(B+ Tree全文索引。
2024-12-21 11:08:44
922
原创 【java】使用AOP做功能增强的实践
在 Spring AOP 中,切入点表达式不是一定要写的,具体取决于使用的方式。如果使用注解的方式,在某些情况下仍然可能需要写切入点表达式,或者至少需要理解其背后的原理。仅使用注解的情况当使用@Before@Around等通知注解,并结合自定义的注解(如前面提到的)来标记需要应用通知的方法时,可以不直接写切入点表达式。例如,,这里通过引用自定义注解作为切入点,而没有直接使用传统的切入点表达式语法。@Before:在目标方法执行之前执行通知逻辑。表示在。
2024-12-19 20:44:03
799
原创 【java】规则引擎
通过 Easy Rules 引入规则引擎的主要优点是解耦业务规则和代码逻辑无需修改代码,只需更新数据库中的规则即可。提供灵活、可扩展和可维护的方式处理复杂业务逻辑。Easy Rules 支持多种形式定义规则,这里以为例,使用 YAML 文件定义规则。
2024-12-19 20:36:31
333
原创 【java】spring中事件机制以及与MQ对比
Spring 事件机制是观察者模式的一种实现,支持事件的发布和订阅,解耦组件之间的逻辑。Spring 事件机制简单易用,适合单体应用内部的轻量级事件处理。更适合解耦应用内部的模块之间的业务逻辑。消息队列(MQ)功能强大,适合分布式、高并发和高可靠性场景。更适合跨系统通信、大规模消息传递以及严格的事务需求。选择使用哪种机制,应根据实际的业务场景需求进行权衡。
2024-12-19 20:30:52
1344
原创 【java】BIO,NIO,多路IO复用,AIO
BIO:适合连接数较少的场景。NIO:适用于中等并发的场景,提高了资源利用率。IO多路复用:适合大量并发连接的场景,特别是在服务器端。AIO:适用于高并发场景,真正实现了异步操作。选择哪种模型取决于具体的应用场景和需求。例如,对于需要处理大量并发连接的服务器,IO多路复用和异步I/O可能是更佳的选择。而对于简单的、单线程的应用,阻塞I/O可能就已经足够。
2024-07-24 23:06:12
1299
1
原创 【java技术】定时任务的实现原理 优先级队列,时间轮算法
优先队列更适合任务数量相对较少的场景,插入和删除操作的效率较高。适用于需要频繁插入和删除任务的情况。时间轮算法更适合大规模并发任务的调度,特别是任务数量巨大且需要低延迟调度的情况。特别适用于需要定期执行的任务,例如每分钟、每小时等周期性任务。在实际应用中,可以根据具体的需求和场景选择合适的算法来实现定时任务的调度。例如,在 Xxl-Job 中,虽然没有明确提到使用优先队列或时间轮算法,但其调度机制可能采用了类似的技术来实现高效的任务调度。
2024-07-24 22:58:33
760
原创 【java技术】xxl-job的实现
Xxl-Job 通过调度中心和执行器的配合,实现了分布式任务的调度和执行。调度中心负责任务的管理和调度,执行器负责具体的任务执行逻辑。这种设计使得 Xxl-Job 能够高效地管理大量的任务,并且具备高可用性和扩展性。通过使用 HTTP 协议进行通信,Xxl-Job 提供了一个灵活且易于集成的解决方案。
2024-07-24 22:50:34
584
原创 【java基础】spring中使用到的设计模式
通过这些设计模式的运用,Spring框架不仅提供了强大的功能,还保持了良好的可扩展性和可维护性。这些模式的选择和应用体现了Spring的设计哲学,即关注分离(Separation of Concerns)、松耦合(Loose Coupling)、依赖注入(Dependency Injection)和面向切面编程(AOP)。Spring框架在其设计和实现中使用了多种设计模式,这些模式帮助Spring框架保持灵活性、可扩展性和易于集成的特点。
2024-07-24 00:01:14
681
原创 【java基础】spring springMVC springboot 的区别
是一个全面的框架,提供了许多模块,涵盖了从数据访问到Web应用的各种功能。Spring MVC是 Spring Framework 的一部分,专注于Web应用的MVC模式实现。则是在 Spring Framework 上的一个进一步封装,提供了简化配置和快速启动的能力,特别适合于构建微服务。在实际开发中,Spring Boot 内部已经包含了 Spring Framework 和 Spring MVC 的功能,因此使用 Spring Boot 时,你几乎不需要单独配置或引入这两个框架。
2024-07-23 23:58:56
590
原创 【java基础】进程和线程的区别
线程(Thread)和进程(Process)是操作系统中管理和调度的基本单位,它们在概念上有显著的区别,但又紧密相关。
2024-07-23 23:57:03
258
原创 【java基础】线程状态转化
在Java中,线程有六种基本状态,这些状态反映了线程在其生命周期中的不同阶段。线程的状态转换是由操作系统和JVM(Java虚拟机)调度机制共同控制的。值得注意的是,Java线程的状态转换是高度依赖于JVM和操作系统调度器的,因此,除了通过调用。等方法外,开发者通常无法直接控制状态转换的具体时机。
2024-07-23 23:54:53
269
原创 【java基础】创建线程的主要方式
这种方式的好处是可以避免由于Java的单继承限制带来的问题,因为你可以同时实现多个接口。每种方法都有其适用场景,选择合适的方式取决于你的具体需求,如是否需要返回结果、是否需要避免类的单继承限制等。,它们允许你创建线程池来管理线程的生命周期,这对于处理大量并发任务非常有用。此外,现代Java开发中,创建线程的另一种常见方式是使用。方法可以返回一个结果,并且它可以抛出异常。这是最传统的创建线程的方式。如果你想从线程中返回一个结果,可以使用。方法中定义线程的行为。类的构造函数,创建并启动线程。
2024-07-23 23:53:25
963
原创 【算法】二叉树-迭代法实现前后中序遍历
递归的实现就是:每一次递归调用都会把函数的局部变量,参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,这就是递归为什么可以返回上一层位置的原因可以用栈实现二叉树的前中后序遍历。
2024-07-12 01:14:00
535
原创 【算法】二叉树- 递归方法论
的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。的,那么就在递归函数里加上这个参数, 并且还要明确。: 写完了递归算法, 运行的时候,经常会遇到。进而确定递归函数的返回类型。
2024-07-10 23:42:44
226
原创 【算法】数组-基础知识与应用
数组是存放在连续内存空间上的相同类型数据的集合。数组可以方便的通过下标索引的方式获取到下标对应的数据。因为数组在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。
2024-06-24 23:37:02
382
原创 【算法】单调队列 - 基础与应用-滑动窗口最大值
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。需要一个队列,在这个队列中放进窗口里的元素,然后随着窗口的移动,队列也一进一出,每次移动后,队列告诉我们里面的最大值是什么。保存队列中的元素单调递增或者单调递减,需要自己去实现这个单调队列。始终维护了一个单调的队列,从而每次很容易得取出当前窗口中得最大值。暴力:遍历一遍的过程中每次从窗口找到最大的数组,O(n * k)使用Deque自定义一个单调队列插入,弹出,获取一个元素。单调队列,即单调递减或单调递增的队列。
2024-06-23 23:58:59
350
原创 【算法】优先级队列-基础与应用
/ 创建一个优先级队列,使用自定义比较器 PriorityQueue < String > priorityQueue = new PriorityQueue < >(new Comparator < String >() {// 反向排序 } });// 插入元素 priorityQueue . add("Z");// 查看并移除优先级最高的元素 while(!} } }
2024-06-23 22:56:43
541
空空如也
AIGC写作生成的格式和插图提问
2023-12-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人