- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 Python多进程
Python多进程编程摘要:multiprocessing模块突破GIL限制,实现真正并行处理CPU密集型任务。主要方法包括Process类创建进程、类继承方式实现进程,支持进程队列(Queue)、管道(Pipe)和共享内存(Value/Array)三种进程通信机制。守护进程设置需在start()前完成,主进程结束即终止。进程资源独立分配,启动开销较大,需合理使用。该模块实现方式与多线程类似,但解决了线程间数据隔离问题,为Python高性能计算提供了有效方案。
2025-07-11 16:51:55
626
转载 什么是Python全局锁(GIL),如何避开GIL限制
Python全局解释器锁(GIL)是一种互斥锁,它限制同一时间只能有一个线程执行Python字节码,导致多线程程序在CPU密集型任务中性能受限。GIL最初是为解决内存管理和C扩展兼容性问题而设计的,虽然影响了多线程性能,但保证了单线程效率。要规避GIL限制,可采用三种方案:1) 使用multiprocessing模块实现多进程并行;2) 通过Cython的nogil特性绕过GIL;3) 选用Jython等非CPython解释器。对于I/O密集型任务,GIL影响较小,开发者应根据任务类型选择合适的并发方案。
2025-07-09 10:15:24
95
原创 如何训练一个大模型:LoRA
LoRA(低秩适应)是一种高效的大模型微调技术,通过低秩矩阵分解仅训练少量参数,解决了全参数微调的两个核心问题:破坏原模型能力和高昂计算成本。其核心思想是在模型线性层旁添加低秩旁路(如秩为8的两个小矩阵),通过调整缩放系数控制影响程度。该方法显著减少训练参数量(如从5000万降至13万),同时保持模型性能。在Stable Diffusion等应用中,LoRA可实现风格/IP定制化,模型文件仅3MB左右。使用时可选择合并参数以避免推理延迟。LoRA适用于多种任务类型,但需注意其能力提升有限,无法根本性改变模型
2025-07-08 11:07:49
723
原创 设计模式 - 抽象工厂
为了满足不同用户对产品的多样化需求,工厂不会只局限于生产一类产品,但是系统如果按工厂方法那样为每种产品都增加一个工厂又会造成工厂泛滥。所以,为了调和这种矛盾,抽象工厂模式提供了另一种思路,将各种产品分门别类,基于此来规划各种工厂的制造接口,最终确立产品制造的顶级规范。
2025-06-23 16:41:17
813
原创 设计模式 - 工厂方法
工厂方法是一种设计模式,对工厂制造方法进行接口规范化,允许子类工厂决定具体知道哪类产品的实例,最终降低系统耦合,使系统的可维护性、可扩展性等得到提升。
2025-06-23 12:50:31
595
原创 设计模式 - 原型模式
原型模式(Prototype),在制造业种通常是指大批量生产开始之前研发出的概念模型,并基于各种参数指标对其进行检验,效果达到了质量要求,即可参照这个原型进行批量生产。即,原型模式可以用对象创建对象,而不是用类创建对象,以此达到效率的提升。
2025-06-19 14:03:44
701
原创 设计模式 - 单例模式
单例模式是设计模式中的一种,确保一个类只有一个实例,并且提供一个全局访问点。在软件开发中,单例模式的应用场景和重要性取决于具体的需求和上下文
2025-06-19 09:33:24
761
原创 玩转Docker
容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。容器与虚拟机谈到容器,就不得不将它与虚拟机进行对比,因为两者都是为应用提供封装和隔离。容器由两部分构成:应用程序本身、及其依赖(比如应用程序需要的库或者其他软件容器在Host操作系统的用户空间中运行,与操作系统的气压进程隔离,这一点显著区别于虚拟机)。传统的虚拟化技术:目标是创建完整的虚拟机。为了运行应用,除了部署应用本及其依赖,还得安装整个操作系统。
2025-05-02 23:56:11
1468
2
原创 RAG:知识库参数设置
工作过程中,使用工作流过程中,由于嵌入知识库。需要对知识库进行配置,下文将对工作过程中的知识库配置进行介绍、并对相关经验进行总结。
2025-02-07 22:16:57
2162
原创 Java线程配置经验
进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。(可以查看任务管理器)线程是比进程更小的执行单位。一个进程在其执行过程中可以产生多个线程。与进程不同的是同类的多个线程共享堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈。顺便简单总结一下用户线程和内核线程的区别和特点:用户线程创建和切换成本低,但不可以利用多核。内核态线程,创建和切换成本高,可以利用多核。现在的 Java 线程的本质其实就是操作系统的线程。线程模型是
2025-01-27 15:43:30
979
原创 Python Flask教程
Flask是一个用Python编写的轻量级的Web应用框架。Flask基于WSGI(Web Server Gateway Interface)和 Jinja2 模板引擎,旨在帮助开发者快速、简便地创建 Web 应用。Flask 被称为"微框架",因为它使用简单的核心,用扩展增加其他功能。
2025-01-26 16:12:54
2435
原创 Python基本概念与实践
Python语言,总给我一种“嗯?还能这么玩儿?”的感觉Python像一个二三十岁的年轻人,自由、年轻、又灵活欢迎一起进入Python的世界~本人工作中经常使用Python,针对一些常用的语法概念进行持续记录。
2025-01-17 18:06:58
930
原创 Python爬虫指南
1. 爬虫通过HTTP协议与目标网站服务器通信2. 发送请求时可以指定URL、请求方法(GET或POST)、请求头等。3. 服务器根据请求返回HTML页面,JSON数据或其他格式的响应。HTML是网页的主要结构。爬虫通过解析HTML提取有用信息,如标题、图片、表格等。抓取的数据可以存储到文件(如CSV、JSON)、数据库(如MySQL、MongoDB)等介质中,便于后续分析。1. User-Agent检测:服务器检查请求来源是否合法。2. 频率检测:高频访问可能触发封禁。3. 验证码阻拦:部分网站通过验证码
2025-01-15 17:58:32
2130
1
原创 Python图像处理基础概念
图像处理中,选择合适的图像格式和进行相应的转换需要根据具体的应用场景和需求来决定:可以作为不同形式的文件、可以作为对象进行处理、可以作为流进行传输、图像识别和分类任务中作为特征向量、图像处理过程中为图像金字塔。理解图像的各种存在形式、并在不同的应用场景选择其合适的形式进行处理,是图像处理中的重要一步!
2025-01-15 00:24:57
480
原创 Pillow库(PIL)使用入门教程
Pillow 提供了非常强大的图像处理功能,它能够很轻松地完成一些图像处理任务。与 Python 的其他图像处理库相比(OpenCV、Scikit-image 等),Pillow 库简单易用,非常适合初学者学习。
2025-01-09 23:38:32
2102
1
原创 【Java】QueryWrapper方法解释
Java中的是MyBatis-Plus框架提供的一个查询构造器,用于构建查询条件。使用方法大全。
2024-12-16 10:55:35
1690
1
原创 LocalDateTime、LocalDate、LocalTime时间处理
本文介绍LocalDateTime、LocalDate、LocalTime等时间处理的区别 & 联系。以及,包含一些通用的时间处理函数、通用的时间格式化方式。
2024-12-16 10:41:40
993
原创 从Paxos到Zookeeper:分布性一致性原理与实践(Paxos算法应用场景)
Chubby主要用于分布式锁管理和协调服务,使用 Paxos 实现元数据一致性和领导者选举,提供细粒度的锁管理和通知机制。Hypertable作为分布式数据库,使用 Paxos 确保数据副本一致性和元数据管理,注重高效的数据存储和访问,并具备良好的扩展性。两者在具体实现和应用场景上有所不同,但都利用 Paxos 算法实现了系统的高可用性和一致性。
2024-07-03 00:20:35
898
原创 从Paxos到Zookeeper:分布性一致性原理与实践(Zookeeper典型应用场景)
在上一章中,已经讲解了如何通过Zookeeper客户端来使用Zookeeper。本章开始,将从实际的分布式应用场景出发,讲解如何使用Zookeeper去解决一些常见的分布式问题。
2024-07-03 00:20:04
906
原创 从Paxos到Zookeeper:分布性一致性原理与实践(实践Zookeeper)
本文着重介绍如何部署一个Zookeeper以及如何顺利运行起来。以及可能遇到的问题和解决方法、客户端脚本的使用、Java客户端API使用。最后,介绍了ZkClient和Curator这两种开源客户端。
2024-07-02 22:14:29
734
1
原创 从Paxos到Zookeeper:分布性一致性原理与实践(基础理论前提)
分布式系统设计过程中需要考虑CAP理论CAP定理一致性 - Consistency :所有节点在同一时间具有相同的数据视图,一次读操作要么返回最新的写操作结果,要么返回一个错误可用性 - Availability:每次请求都能收到非错误的相应,即使请求需要访问的节点有部分是故障的分区容忍性 - Partion Tolerance:系统在遭遇任意数量的信息丢失或者延迟的情况下仍能继续运行由于分布式系统中分区容忍性必须满足,所以系统需要在一致性和可用性之间权衡。常见策略有CP和AP。
2024-07-01 10:27:48
693
原创 Google MapReduce 大数据处理系统
在过去的5年中,本文作者和许多Google的程序员已经实现了数百个特定用途的计算程序,处理了海量的原始数据,包括抓取到的文档、网页请求日志等,计算各种衍生出来的数据,如反向索引、网页文档的图形结构的各种表示、每个host下抓取到的页面数量的总计、一个给定日期内的最频繁查询的集合等。大多数这种计算概念明确。然而,输入数据通常都很大,并且计算必须分布到数百或数千台机器上以确保在一个合理的时间内完成。如何并行计算、分布数据、处理错误等问题使这个起初很简单的计算,由于增加了处理这些问题的很多代码而变得十分复杂。
2024-05-24 16:31:34
759
原创 程序员必备git操作
上面命令表示,取回origin/next分支,再与当前分支合并。git branch -v 查看自己的分支,以及自己的分支与远程分支落后多少个文件,如果落后了就git pull,解决冲突。回到自己的浏览器中的仓库主页,在总的项目里面找到申请合并(创建合并请求),之后申请合并点击确认确认确认就请求合并成功了。如果rebase没有完成,git branch不会在开发分支,会在rebase新开的一个临时的分支里面。比如,要取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。
2023-12-11 20:41:32
718
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人