自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 问答 (1)
  • 收藏
  • 关注

原创 基于embedding进行语义相似度检索全流程实践

本次测试目标为跑通基于embedding的文本语义匹配的基本流程,测试流程主要分为:=> 1)通过预训练模型生成embedding=> 2)保存embedding到文件=> 3)基于embedding文件构建faiss索引并持久化保存=> 4)加载faiss索引进行语义化检索匹配。

2025-04-03 19:05:34 780

原创 基于Qwen2.5-7B-Instruct进行LoRA微调推理全流程探索

ms-swift是一个针对大模型微调的高层封装框架,旨在简化训练流程、统一接口并集成多种微调技术,如 LoRA、QLoRA、Prefix Tuning等。通过ms-swift实现LoRA微调,仅需配置参数,无需关心底层实现。使用ms-swift,通过lora方式微调下载的基座模型,产出微调的权重文件。使用下载的基座模型,先测试一下推理效果作为合并LoRA后推理效果的对照,参考。本次测试目的为跑通模型部署,微调及推理全流程,首先下载模型到本地,参考。圈起来的就是最终的微调结果,在推理时加载改结果就可以了。

2025-03-27 20:50:06 956

原创 【hadoop】hadoop streaming

hadoop streaming可以将任何可执行的文件,如sh脚本,py脚本,嵌入到分布式环境当中执行MR的逻辑,而不必局限于java语言。hadoop会在每个启动的任务进程中初始化指定的map或reduce脚本并执行,map或reduce任务通过标准输入流读取数据,标准输出流写出数据。,是key+一个value构成的迭代器。而streaming任务中,map输出的相同key的数据只会被依次相邻的送到同一个reduce这样。

2025-03-26 20:30:41 922

原创 LCS算法(文本相似度计算)

LCS,Longest Common Subsequenc,最长公共子序列,子序列在原序列中可以不连续,但必须先后顺序保持一致。例如ABCD中,BD是一个子序列,DB不是。LCS常被用来计算文本相似度,其中的一种相似度计算方式:这种计算方式的优点是可以平衡两文本长度差异,更公平。

2025-03-19 17:55:16 272

原创 正则表达式梳理(基于python)

正则表达式(regular expression)是一种针对字符串匹配查找所定义的规则模式,独立于语言,但不同语言在实现上也会存在一些细微差别,下面基于python对常用的相关内容进行梳理。

2025-03-05 19:52:59 1193 1

原创 【决策树】分类属性的选择

实现决策树算法最关键的一点就是如何从所有的特征属性中选择一个最优的属性对样本进行分类,。

2025-03-03 17:27:04 903

原创 【python】协程(coroutine)

coroutine/task/future都是可await获取执行结果的,但await coroutine并不会创建task,会挂起同步等待await的协程执行完再回到当前协程继续执行,而await task/future时,会异步等待task完成。注意这里的执行指的是占用CPU计算,不包括等待阻塞等场景。1)直接await coroutine时,阻塞执行,两个协程各自sleep 1s,共用时2s+2)await task时,非阻塞执行,两个task各自sleep 1s,共用时1s+

2025-02-21 16:57:07 980

原创 基于阿里云调用deepseek大模型

每个模型的详细信息中会有API示例(),需要做的就是申请自己的API key就行了,过程中可能需要。。

2025-02-18 18:12:15 1025

原创 【leetcode】关于循环数组的深入分析

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

2025-02-13 13:27:14 698

原创 【python】参数解析

python中实现参数解析主要有两种方式,argparsesys.argv,前者适合复杂场景,后者适合简单场景。

2025-02-12 13:22:36 291

原创 【python】http.server内置库构建临时文件服务

需要从linux开发机上下载一个文件到本地,约700M比较大,通过sz命令下载较慢且传输过程不稳定连续失败,后采用下面方式解决。cd到一个目录下执行,port为服务的端口号:启动后浏览器中访问服务地址,从这里可以直接查看目录下所有的文件&下载。下面是服务的参数源码:-b绑定服务监听的ip地址,默认值0.0.0.0公网所有ip都可以访问,127.0.0.1只能本机访问,该参数不用调整。-d设置哪个目录作为根目录,默认值执行命令时的当前所在目录。port。

2025-02-11 19:57:09 435

原创 【shell】索引数组&关联数组

关联数组的增删改查操作都和上面索引数组类似,同名索引也会相互覆盖,不多余说明了,唯一需要注意的是,参数表示声明后面的变量为数组类型),也可以不声明直接对一个变量应用数组相关的操作变为数组,比如。和2类似,不加:无论数组中的元素在赋值时是何种形式,在读取时默认都按照空格拆分为多个独立元素。获取数组长度时无区别,且无论加不加引号,获取的都是数组的实际长度,但推荐后者,更符合习惯。带引号赋值,可以将引号中的内容识别为一个整体,即使引号中的元素包含空格。,删除后该位置索引等同于跳过了,不会参与数组长度的统计。

2025-02-10 12:47:44 765

原创 【线性代数】通俗理解特征向量与特征值

这一块在线性代数中属于重点且较难理解的内容,下面仅个人学习过程中的体会,错误之处欢迎指出,有更简洁易懂的理解方式也欢迎留言学习。

2025-01-07 20:00:25 1365

原创 【leetcode】摩尔投票算法

摩尔投票算法的思想是,将每一个元素视为一个潜在的候选元素,开始选择第一个元素为候选元素并计票。往后每出现一个和候选元素相同的元素票数+1,不相同的元素票数-1。当第一个选定的候选元素票数为0时表明截止此时存在相同数量个不同于候选元素的其他元素,所以它们之间可以“抵消”(因为题意中的多数元素是指过半的元素),抵消之后重新选择下一个元素为候选元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。输入:nums = [2,2,1,1,1,2,2]的元素,n为输入元素长度。

2025-01-07 12:25:57 409

原创 【python】unittest单元测试

如果指定模块,会测试模块中所有测试类的全部方法。(命令执行目录下需要能搜索到指定模块,注意模块名不包含.py)所以这种方式启动的话,建议脚本中只写一个测试类,且类中只写一个测试方法,所有的测试逻辑都放在该方法里。下面是根据文档写的一个demo,主要的内容基本都包含了,使用时导入自己的业务类测试类中的方法就行。(如果一个脚本中有多个测试类、一个测试类中有多个测试方法的话)。这种方式可以直接指定模块、具体的测试类及测试方法等。

2024-12-31 16:55:09 539

原创 【python】is、== 两种比较方式的区别

比较的是对象的值时,这里的对象其实仅指的是python中自带的一些可变容器类型,比如列表。因为这些容器类型源码中已经预实现了。这种理解也没错,但是需要注意一个前提,当说。如果对象的类或父类中没有实现这个魔术方法,比较运算符时,其实调用的就是这个方法。相同,比较的还是对象的内存地址。方法,当在python中使用。

2024-12-20 20:17:42 223

原创 【线性代数】理解矩阵乘法的意义(点乘)

大学刚接触线性代数时,很不理解矩阵乘法的计算规则,为什么规则定义的看起来那么有规律却又莫名其妙,现在参考了一些资料,回过头重新总结下个人对矩阵乘法的理解(严格来说是点乘)。理解矩阵和矩阵的乘法,可以先理解矩阵和向量的乘法,因为矩阵可以看成是不同列向量的集合。下面从基变换视角理解矩阵的乘法原理,基变换视角是将矩阵的每个列向量看成是新基坐标系中的一个基坐标。先考虑一个规则的 2x2 的矩阵和一个 2x1 的向量之间的乘法,例如:[1−212][11]=[−13]\begin{bmatrix} 1

2024-12-17 17:24:01 2162 2

原创 理解梯度下降

开始可以随机化一个点x=10,该点处导数=20,表示x=10这个点处函数值的趋势是增加的,且这种趋势的增长速率是20,因此需要调小x的值才更可能找到较小的函数值。导数本身的值可以满足这种需求,但是直接以导数本身来调也不合适,比如在x=10的点处,按照导数值本身来调的话新的x值=10-2x10=-10,此时x位置跑到对称的另一边了,该点x=-10处导数值为-20,表示函数在这个地方是减少的,需要调大x的值,继续迭代下一个新的x值又回到了x=10处,一直会来回震荡,永远找不到最低点。

2024-11-22 19:26:48 1111

原创 【python】一个python代码执行分析工具(viztracer)

一个轻量级python执行和性能分析工具,可以跟踪程序的执行过程,记录函数调用、线程信息、函数执行时间等数据。

2024-11-18 16:38:59 446

原创 【python】os.fork进程创建

在类unix系统中,fork系统调用一般采用了写时复制(Copy on Write)技术,fork出来的子进程会复制一份父进程的内存页表作为自己的内存页表,因为页表项中虚拟内存页指向的实际物理内存页还是原来的,所以进程间内存也是共享的。fork,叉子、分叉的意思。注意这个返回的值跟os.getpid()返回的pid含义不同,os.getpid()返回的是当前进程的进程号,而fork调用返回的值更像是一个进程内部的标识变量,只不过这个变量的值在父进程中定义为子进程的进程号(便于控制子进程)。

2024-10-30 20:23:26 1021

原创 【python】logging日志模块使用快速入门

1-5日志级别由低到高,日志级别的设定是一个阈值,设定为某个级别后,这个级别及以上级别的日志才会被记录。比如设定为INFO,那么INFO、WARNING、ERROR、CRITICAL的日志会被记录,DEBUG级别的日志不会被记录。NOSET特殊一些,不属于日志级别的定义,表示不设置级别,继承父记录器的日志级别。logging模块默认将日志输出到标准错误流(sys.stderr),与日志级别设置无关。日志属于程序调试信息,与正常输出理应隔离,不影响正常输出,所以也可以理解为什么这样设计。

2024-10-28 16:44:08 874 1

转载 【转载】16张图解带你掌握一致性哈希算法

不同的负载均衡算法适用的业务场景也不同的。轮训这类的策略只能适用与每个节点的数据都是相同的场景,访问任意节点都能请求到数据。但是不适用分布式系统,因为分布式系统意味着数据水平切分到了不同的节点上,访问数据的时候,一定要寻址存储该数据的节点。哈希算法虽然能建立数据和节点的映射关系,但是每次在节点数量发生变化的时候,最坏情况下所有数据都需要迁移,这样太麻烦了,所以不适用节点数量变化的场景。为了减少迁移的数据量,就出现了一致性哈希算法。

2024-09-24 15:22:08 109

原创 【Linux&Python】linux中通过源码方式安装python环境

python环境安装仅看第二部分即可。

2024-08-12 13:39:24 1209

原创 【hive】HiveSQL中两个json解析函数的使用&json路径定位小工具

虽然逻辑上理解并不矛盾,尽管该UDTF返回的是个表,但一行输入只会对应一行输出,只是输出的字段可能是多个,并不像explode那样返回的是多行。和get_json_object不同的是,get_json_object是一个普通的UDF函数,返回的是一个值。,该函数适用于对传入的json对象一次性解析多个key的场景,如果用get_json_object需要解析多次,该函数只需要解析一次。(通配符个人认为适用的场景为取同一层级所有对象的某个属性时,如果是取所有对象本身,那么直接不加。

2024-08-04 03:57:17 1814

原创 【pandas】read_csv时数据行数减少或报错

字符,其中83261行和119979行中都只包含一个,所以导致83261行和119979行中的引号匹配。read_csv方法在解析文件时,默认会将双引号内的内容当作一个整体,因此83261行引号之后到119979整行数据,都会被解析成83261行的一个字段,这中间的数据行也就都丢失了。,该参数的含义是忽略文本字段中的所有引号,但是也可能会带来一个问题,就是引号中如果包含特殊字符比如分隔符,就会导致解析的字段变多引发异常。匹配时把其它的行误当作引号中的内容,解析成了一个字段。两者都可能是文件中包含特殊字符。

2024-07-22 16:39:56 1018

原创 【Linux】常用命令总结(updating)

shell命令可以使用man查看命令文档说明,说明界面中可通过b(backward)向上翻页,f(forward)向下翻页,g(go to)跳到说明首页,G跳到说明尾页。

2024-07-11 13:35:27 614

原创 【Linux】shell基础&知识点(updating)

从输出结果也可以看到:管道操作并非后面的进程在前面的进程执行完后启动,而是同时启动,只有当前面进程的标准输出是后面进程的标准输入时,前面进程才会一定先于后面进程执行完。1)bash与sh的区别:可以简单理解为,bash在sh的基础上,增加了更多的拓展特性,适合编写更复杂的脚本,兼容sh。bash、sh、以及相对路径或绝对路径的方式执行,相当于在当前进程中新开了一个子进程用来执行脚本,脚本执行完子进程销毁,子进程中定义的变量&环境不会回传给父进程。≠0)时,后面命令才会执行。=0)时,后面的命令才会执行。

2024-07-09 18:25:02 1299

原创 【hive】数据采样

参考,可以直接查看原文,下面只是对原文进行概括和实际性能测试。

2024-07-05 19:22:30 1358

原创 位运算符计算规则及使用场景

位运算符包括按位与、按位异或、按位或、按位取反、左移<<、右移>>

2024-06-25 19:27:31 2125

原创 【HiveSQL】join关联on和where的区别及效率对比

假设数据库系统支持谓词下推的前提下,内连接:内连接的两个执行计划中,对t2表都使用了,对t1表都使用了,因此可以说,内连接中where和on在执行效率上没区别。外连接:还是拿左外连接来说,右表相关的条件会使用谓词下推,而左表是否会提前过滤数据,取决于where还是on以及筛选条件是否与左表相关,1)当为on时,左表的数据必须全量读取,此时效率的差别主要取决于左表的数据量。2)当为where时,如果筛选条件涉及到左表,则会进行数据的提前过滤,否则左表仍然全量读取。

2024-06-17 19:27:08 2715

原创 【python】循环&异常处理中else的用法

看代码时发现的一种写法,学习一下。

2024-06-13 11:01:08 486

原创 【hive】transform脚本

和udf差不多的作用,支持用python实现。通过标准输入流从hive读取数据,内部处理完再通过标准输出流将处理结果返回给hive。实现流程上比udf要更简单灵活一些,只需要上传脚本=>add file加载到分布式缓存=>使用。

2024-05-05 20:10:38 1336

原创 【Linux】awk命令学习

awk是一个文本编辑器,按照指定的记录分隔符和字段分割符将文件分行分字段,然后一行一行的流式处理数据。

2024-05-04 05:01:38 1958

原创 【hive】lateral view侧视图

lateral view也叫侧视图,属于hive sql所特有的语法。用来实现类似标准sql中join的操作。join参与运算的往往是两个表,根据指定的关联字段进行横向连接。lateral view参与运算的是一张表,这张表里往往存在某个多值的字段,通过侧视图结合UDTF函数可以将这个多值字段拆分为粒度更小的值,每一个拆分出来的值都会作为新的字段和一条原记录进行拼接。类似于列转行操作,虽然严格意义上不算列转行,因为只是增加了行数,但并未减少列数,只是减少了列中所包含的字段个数。

2024-04-14 01:50:08 3958

原创 解决mac本git安装后找不到命令的问题

不熟悉mac配置,折腾了半天,记录一下。

2024-04-12 18:35:16 903

原创 MySQL开窗函数

开窗函数是mysql8.0中的新特性,用于实现和group by分组函数类似的分组聚合功能。分组函数:对一个集合输出一个标量结果,改变了数据的粒度,且丢失了非分组字段及非聚合字段的信息。开窗函数:分别以每一行为当前行,与当前行相关的所有行为窗口,对同一个窗口内的数据进行聚合等类似操作,结果附加到当前行的后面,不改变原始数据粒度,不丢失原始数据信息。这部分可以直接查看文档,个人觉得这部分算是开窗函数里最重要的了,弄明白了各种情况下窗口的大小,其他的就没啥容易混淆的点了。rows和range。

2024-03-30 03:20:19 5147

原创 分类模型评估:混淆矩阵与ROC曲线

理解混淆矩阵和ROC曲线之前,先明确几个概念。对于分类问题,不论是多分类还是二分类,对于某个关注类来说,都可以看成是二分类问题,当前的这个关注类为正类,所有其他非关注类为负类。从上面几个定义可以知道:1)样本总数 = TP+FP+TN+FN2)所有真实值为正类的样本总数 = TP+FN3)所有真实值为负类的样本总数 = TN+FP。

2024-03-25 01:31:08 2431

原创 Hive优化

工作中涉及到优化部分不多,下面的一些方案可能会缺少实际项目支撑,这里主要是为了完备一下知识体系。

2024-03-18 04:30:26 1064

原创 面试复盘记录(数据开发)

这题一开始我想用SQL实现,但是因为两个表里都可以有重复数据,比如说对于数据A,t1表有两个A,t2表有一个A,那么关联的时候t1的两个A都能和t2的一个A关联上,而根据题意,t1两个A减去t2一个A,还应剩下一个A,当时的卡点在这。导致SQL的实现没有完成,后被提示开窗函数,才想起来可以通过row_number为相同的A打上序号标签,关联的时候加上序号限制就可以了。这题当时没写出来,一直想基于矩阵的下标使用循环完成,因为对于顺时针循环,横纵坐标x, y的变化特点是x, y先分别自增,然后分别自减。

2024-03-14 02:32:20 596

原创 MySQL索引

测试环境:mysql8.0.18(InnoDB)

2024-03-04 02:58:29 1086

typora免费正版安装包

typora免费正版安装包

2024-12-22

iterm2-zmodem脚本

解决mac中lrzsz命令不能上传下载文件的问题

2024-04-17

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

TA关注的人

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