- 博客(332)
- 收藏
- 关注
原创 Transform 和BERT、GPT 模型
本文介绍了Transformer模型及其衍生架构BERT和GPT的核心原理与应用。文章首先阐述了传统RNN模型的局限性,进而引出Transformer的关键创新——自注意力机制,该机制通过加权计算词间关系实现全局语义理解。详细解析了Transformer的编码器-解码器结构、多头注意力机制、位置编码等核心组件,并附有代码实现示例。随后重点对比了BERT和GPT两大主流方向:BERT通过掩码语言建模和下一句预测实现双向语义理解,适用于判别任务;GPT则采用单向建模方式,擅长文本生成。文章还探讨了分词器、位置编
2025-09-10 21:07:00
1093
原创 深度学习网络结构搭建
深度学习模型性能的关键在于网络结构设计和调参策略。网络结构决定模型能力与复杂度,需平衡特征提取与输出转换。调参面临非凸优化挑战,需采用动态学习率、正则化(Dropout/L1/L2)和批归一化等技术。迁移学习通过特征提取和微调解决数据不足问题。实践建议包括:ReLU激活函数、交叉熵损失、SGD+mini-batch、数据增强等。超参数优化可采用贝叶斯搜索或随机搜索。PyTorch实现需关注模型定义、优化器选择及训练/评估循环。核心是通过合理的结构设计和调参策略,在模型复杂度和泛化能力之间取得平衡。
2025-08-28 20:27:50
870
原创 深度学习进阶
本文系统梳理了语言模型的发展历程与技术演进。从早期的统计语言模型(N-gram、HMM)到神经网络语言模型(RNN、LSTM),再到Transformer架构的突破性进展,语言模型逐步解决了数据稀疏、长距离依赖等关键问题。重点介绍了Word2Vec、FastText等词向量技术,以及注意力机制如何优化Seq2Seq模型。文章详细分析了Transformer的自注意力机制、位置编码等创新设计,并探讨了大语言模型(如GPT、BERT)的三大技术路线及其在理解、生成任务中的差异化优势。最后展望了多模态融合、推理能
2025-08-28 20:17:16
1003
原创 深度学习基础
维度前馈神经网络反馈神经网络图网络信息流向单向流动循环流动基于图结构的多向流动记忆能力无有依赖图结构典型应用静态数据处理时间序列数据图结构数据训练方法BP算法Hebb规则等图卷积、图注意力等这些网络结构各有优势,在实际应用中,常根据数据特性和任务需求选择合适的网络架构,或结合多种结构形成更复杂的模型。
2025-08-25 20:53:29
1098
原创 检索模型与RAG
本文系统介绍了信息检索模型及其在RAG(检索增强生成)系统中的应用。首先阐述了三种经典检索模型:布尔模型(基于逻辑运算)、向量空间模型(基于向量相似度)和概率模型(基于概率分布)。然后对比了全文检索与布尔检索的区别,重点分析了稀疏检索(如TF-IDF/BM25)和稠密检索(如嵌入向量)的特点及混合使用策略。在RAG应用部分,详解了文本分块的核心目的、策略选择及大小优化,强调了语义保留与检索效率的平衡。最后介绍了提示词工程的设计要素,包括任务指令、上下文示例和输出格式规范,以及上下文学习的关键作用。全文贯穿检
2025-08-25 20:26:59
897
原创 AI 入门
本文介绍了人工智能的基本概念、研究方向和应用领域。主要内容包括:1)AI主要研究方向如语音识别、机器翻译、图像识别等;2)算法工作的两种类型(落地型和研究型)及开发流程;3)自然语言处理的发展现状和常用工具库;4)机器学习的三种范式(监督、无监督、半监督)及其应用;5)深度学习的基本原理、模型优化方法和核心概念。文章系统梳理了人工智能相关的基础知识框架,为初学者提供了全面的入门指南。
2025-08-16 11:46:36
840
原创 scikit-learn 包
摘要: scikit-learn(sklearn)是Python中广泛使用的机器学习库,适用于反洗钱(AML)项目中的风险识别和可疑交易检测。其核心功能包括数据预处理(如标准化、缺失值处理)、监督学习算法(如随机森林、SVM)以及模型评估工具(交叉验证、ROC曲线)。优势在于易用性、高效集成和丰富文档,但需结合Pandas进行数据清洗,并增强模型解释性以满足监管要求。示例代码展示了随机森林模型在标准化交易数据上的应用,包括训练、评估及处理类别不平衡问题(如stratify参数和class_weight设置)
2025-07-23 10:31:10
975
原创 Pandas 和 NumPy 使用文档整理
本文整理了Pandas和NumPy的核心使用文档。NumPy部分介绍了数组创建、属性、操作及数学运算方法,包括索引切片、形状变换、统计计算等功能。Pandas部分涵盖Series和DataFrame数据结构创建、数据查看与选择、缺失值处理、分组聚合等操作,以及时间序列处理和文件读写。最后提供了两者结合使用的示例和性能优化技巧,如向量化操作、eval()表达式求值等。这些内容为数据分析和科学计算提供了基础参考。
2025-07-15 18:01:37
399
原创 Ollama+DeepSeek-R1 部署
需要注意的是,ollama run 的服务,默认是127.0.0.1:11434, 如果用docker 启动open webui,需要更新ollama 启动配置, OLLAMA_HOST=“0.0.0.0:11434”**模型管理:**支持多种大型语言模型,如Llama、Mistral等,用户可从模型仓库下载或自行导入模型。**易于使用:**提供简洁的命令行界面和类似OpenAI的API,便于用户轻松管理和运行大型语言模型。**资源高效:**优化资源占用,支持GPU加速,提升模型运行效率。
2025-02-10 14:38:18
962
原创 java se 快速入门
Java是一种高级编程语言,由Sun Microsystems公司于1995年推出。Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点,被广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运行,只需编译一次,就可以在任何支持Java虚拟机(JVM)的平台上运行。Java还提供了丰富的库和框架,可以加快开发过程,提高开发效率。java 体系java se:java基础-- 如果做java web方向开发和 安卓开发,这个必学。
2024-09-19 18:35:55
2092
原创 App 抓包与反编译工具
系统证书(System Certificates):系统证书是由 Android 系统或设备制造商预装的证书。用户证书和系统证书在安全和身份验证方面扮演不同的角色。在 Android 系统中,有两种类型的证书:用户证书(User Certificates)和系统证书(System Certificates)。Wireshark:Wireshark 是一个开源的网络抓包工具,可以在多个平台上运行,支持多种协议的抓取和分析。安卓7以上的设备,安装完证书后,是用户证书,需要把用户证书移动到成系统证书,才能抓包。
2024-08-28 15:25:22
1678
原创 App 逆向环境准备
刷机根据不同的厂商的手机,有不同的方案,这里推荐使用的手机是google 的 Pixel 系列手机(google出品的手机,没那么多麻烦事)。或者小米的手机,小米手机root 起来会麻烦点,可以找人帮刷,就不一一介绍了。ADB 安装很简单,就是把压缩包解压后,配置环境变量即可。小米 https://xiaomirom.com/补充: 小米刷机完,需要打开root 权限管理,刷机去厂商手机官网下载刷机包。
2024-08-28 15:21:10
575
原创 App 逆向环境准备
刷机根据不同的厂商的手机,有不同的方案,这里推荐使用的手机是google 的 Pixel 系列手机(google出品的手机,没那么多麻烦事)。或者小米的手机,小米手机root 起来会麻烦点,可以找人帮刷,就不一一介绍了。ADB 安装很简单,就是把压缩包解压后,配置环境变量即可。小米 https://xiaomirom.com/补充: 小米刷机完,需要打开root 权限管理,刷机去厂商手机官网下载刷机包。
2024-08-27 10:40:54
625
原创 JS逆向高阶补充
eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。Hook函数在 JS 逆向中,我们通常把替换原函数的过程都称为 Hook。案例1: Hook eval案例2: Hook JSON.stringifyJSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串,在某些站点的加密过程中可能会遇
2024-08-16 16:21:06
1696
原创 基于 pymysql 和 DBUtils 实现mysql连接池
备个份,用在celery 定时任务中,未使用orm框架的情况下,使用原生sql去操作mysql 的方案。
2024-07-26 11:23:10
447
原创 摘要&加密算法
MD5是一个非常常见的摘要(hash)逻辑. 其特点就是小巧. 速度快. 极难被破解. 所以, md5依然是国内非常多的互联网公司选择的密码摘要算法.这玩意不可逆. 所以. 摘要算法就不是一个加密逻辑.相同的内容计算出来的摘要是一样的不同的内容(哪怕是一丢丢丢丢丢不一样) 计算出来的结果差别非常大在数学上. 摘要其实计算逻辑就是hash.hash(数据) => 数字1 . 密码 2 . 一致性检测。
2024-07-11 09:55:38
1073
原创 centos 7.9 离线环境安装GPU服务环境
直接 执行 localinstall 命令,可能会出现依赖问题报错,可以在本地搭建yum 仓库,把rpm 包都扔到仓库里面再执行 yum install 命令(缺基础环境时,可以吧centos 的iso 镜像挂载到服务器上作为yum仓库)我这里使用的 gcc9 的包,里面是携带好了依赖包的,可以通过解压后直接执行(上面的地址需要自己处理依赖包,缺啥下啥就行)更新内核需要先卸载内核,但是卸载完内核后,若未安装新的内核,重启服务器,那么就重装系统吧。安装完后,找一个gpu镜像,执行。
2024-06-30 23:36:04
2582
原创 Base64 编码详解
比如十进制ASCII码8对应的是后退符号(backspace), 如果被编码的数据中包含这个数值,那么编码出来的结果在很多编程语言里会导致前一个字符被删掉。设计的,当你使用其传输二进制流时(比如视频/图片),二进制流中的数据可能会被协议错误的识别为控制字符等等,因而出现错误。注意, b64处理后的字符串长度. 一定是4的倍数. 如果在网页上看到有些密文的b64长度不是4的倍数. 会报错。早年制定的一些协议都是只支持文本设定的。用Base64编码因为限定了用于编码的字符集,确保编码的结果可打印且无歧义。
2024-06-14 14:44:18
5517
原创 K8s Ingress 详解
在 Ingress 中引入 Secret 资源,然后告诉 Ingress 控制器使用 TLS 加密从客户端到负载均衡器的通道。上面基于URL实现路由方案中,就应用到了 ingress rewrite 方案,下面示例插入自定义的 Nginx 配置。Ingress 灰度发布就是通过两套ingress 配置同一个域名,来实现。注: 同一域名,不同的URL调度到不同的 Service。基于Request Header的流量切分。基于Cookie的流量切分。基于服务权重的流量切分。
2024-05-31 15:59:36
1369
1
原创 K8s service 底层逻辑
iptables中的四表五链1. 四个表具备某种功能的集合叫做表。filter: 负责做过滤功能呢nat: 网络地址转换mangle: 负责修改数据包内容raw: 负责数据包跟踪2. 五个链在什么位置执行,能把表放在某个地方执行1) PREROUTING: 主机外报文进入位置,允许的表mangle, nat(目标地址转换,把本机地址转换为真正的目标机地址,通常指响应报文)2) INPUT:报文进入本机用户空间位置,允许的表filter, mangle。
2024-05-29 14:11:37
1088
1
原创 K8s service 进阶
service通过selector和pod建立关联,K8s会根据service关联到的pOdIP信息组合成一个endpoint。若service定义中没有selector字段,service被创建时,endpoint controller不会自动创建endpoint。我们可以通过配置清单创建Service,而无需使用标签选择器,而后自行创建一个同名的endpoint对象,指定对应的IP。
2024-05-28 15:10:18
1849
原创 K8s deployment 进阶
默认情况下,deployment 的所有上线记录都保存在系统中,以便随时回滚。滚动更新 (RoILingupdate),一次仅更新一批Pod,当更新的Pod就绪后,在更新另一批,直到全部更新完成为止;重建 (Recreate),当更新策略设定为 Recreate,在更新镜像时,它会先杀死正在运行的Pod,等彻底杀死后,重新创建新的RS,然后启动对应的Pod,那么在这个更新过程中,会造成服务一段时问无法提供服务;使用灰度发布的模式,可以及时发现问题,调整问题,以减少影响的速度,保证整体系统的稳定运行。
2024-05-24 15:10:37
875
原创 K8s Pod 资源进阶
如果系统中没有BestEffort类别的容器,接下来就轮到BUrstable类别的容器,如果有多个Burstable类别的容器,就看谁的内存资源占用多,就优先干掉谁。DownwardAPI可以让容器获取Pod的相关元数据信息,比如Pod名称,Pod的IP,Pod的资源限制等,获取后通过env、volume的方式将相关的环境信息注入到容器中,从而让容器通 过这些信息,来设定容器的运行特性。k8s 不允许设置精度小于1m 的CPU 资源。容器的用量少,但与自身的Requests值相比,它的占比要大于B容器。
2024-05-23 20:04:59
1543
原创 K8s 部署prometheus
可以通过添加storageClass 配置来实现 prometheus-prometheus.yaml 文件中的配置来实现持久化。kube-prometheus 是 github 上开源的整合了 prometheus alertmanager granfana 等监控工具的项目,除此之外,还可以选择修改 prometheus、alertmanager、grafana 中的 spec.type 为 NodePort 方便测试访问。默认的镜像基本上都是国外的源,国内访问不到,需要替换一下镜像id。
2024-05-21 19:47:59
909
原创 Helm 包管理器
注: helm 客户端需要下载到安装了 kubectl 并且能执行能正常通过 kubectl 操作 kubernetes 的服务器上, 否则 helm 将不可用。helm 是 Kubernetes 包管理器(类似于yum apt-get brew 这些工具)Helm 管理名为 chart 的 Kubernetes 包的工具。提供执行所有 Helm 操作的逻辑。Helm 是查找、分享和使用软件构件 Kubernetes 的最优方式。独立的 Helm 库封装了 Helm 逻辑以便不同的客户端可以使用它。
2024-05-21 10:15:54
753
原创 K8s 身份认证和权限
服务账号与用户账号不同,用户账号是集群中通过了身份认证的人类用户。Service Account Controller 在 namespaces 里管理ServiceAccount,并确保每个有效的 namespaces 中都存在一个名为 “default” 的 ServiceAccount。普通账户是假定被外部或独立服务管理的,由管理员分配 keys,用户像使用 Keystone 或 google 账号一样,被存储在包含 usernames 和 passwords 的 list 的文件里。
2024-05-17 14:10:47
987
原创 K8s 高级调度
默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。但是在实际使用中,这并不满足的需求,我们想控制某些Pod到达某些节点上,就要求了解kubernetes对Pod的调度规则,kubernetes提供了四大类调度方式:**自动调度:**运行在哪个节点上完全由Scheduler经过一系列的算法计算得出**定向调度:**NodeName、NodeSelector。
2024-05-16 18:17:16
469
原创 k8s 存储管理
EmptyDir 主要用于一个 Pod 中不同的 Container 共享数据使用的,由于只是在 Pod 内部使用,因此与其他 volume 比较大的区别是,当 Pod 如果被删除了,那么 emptyDir 也会被删除。k8s 中提供了一套自动创建 PV 的机制,就是基于 StorageClass 进行的,通过 StorageClass 可以实现仅仅配置 PVC,然后交由 StorageClass 根据 PVC 的需求动态创建 PV。只有PV的存储空间完成回收,才能供新的PVC绑定和使用。
2024-05-15 17:20:01
1157
原创 k8s 配置管理
由于 configmap 我们创建通常都是基于文件创建,并不会编写 yaml 配置文件,因此修改时我们也是直接修改配置文件,而 replace 是没有 --from-file 参数的,因此无法实现基于源配置文件的替换,此时我们可以利用下方的命令实现。对于 subPath 的方式,我们可以取消 subPath 的使用,将配置文件挂载到一个不存在的目录,避免目录的覆盖,然后再利用软连接的形式,将该文件链接到目标位置。需要先创建 configmap 直接用上述命令创建或者通过yaml文件都行。
2024-05-13 15:52:50
630
原创 加密与CA证书
如此一来,解决了 动态对称秘钥 和 数据加密的问题,因为每个用户的对称秘钥都是随机生成且传输的过程中都使用公钥加密(公钥加密的数据只有私钥能解密),所有黑客无法截获对称秘钥。,这么干还是又bug:如果黑客在上图 【步骤2】劫持,黑客把自己的公钥返回给客客户端,那么客户端会使用黑客的公钥来加密对称秘钥,黑客在【步骤6】截获请求,使用自己的私钥获取对称秘钥,后面过程全都会完蛋…如此一来,就解决了黑客劫持的问题,因为即使黑客劫持后的给浏览器即使返回了证书也无法通过校验,同时浏览器也会提示错误信息。
2024-05-12 13:02:37
1157
原创 Playwright
Playwright 是一个用于自动化浏览器操作的开源工具,由 Microsoft 开发和维护。它支持多种浏览器(包括 Chromium、Firefox 和 WebKit)和多种编程语言(如 Python、JavaScript 和 C#),可以用于测试、爬虫、自动化任务等场景。多浏览器支持:支持所有主流浏览器。这使得开发人员可以根据需求选择最适合的浏览器进行自动化操作。(Playwright不支持旧版Microsoft Edge或IE11)
2024-05-08 20:10:26
2303
原创 Service 和 Ingress
Yaml 文件案例metadata:labels:app: nginx-svc # service 自己的标签spec:ports:- name: http # service 端口配置的名称protocol: TCP # 端口绑定的协议,支持 TCP、UDP、SCTP,默认为 TCPport: 1080 # service 自己的端口targetPort: 80 # 目标 pod 的端口type: NodePort # 默认是ClusterIP 类型,只能在集群内部使用。
2024-05-08 19:47:50
2600
原创 k8s-pod 控制器
如果实际 Pod 数量比指定的多那就结束掉多余的,如果实际数量比指定的少就新启动一些Pod,当 Pod 失败、被删除或者挂掉后,RC 都会去自动创建新的 Pod 来保证副本数量,所以即使只有一个 Pod,我们也应该使用 RC 来管理我们的 Pod。label 与 selector 配合,可以实现对象的“关联”,“Pod 控制器” 与 Pod 是相关联的 —— “Pod 控制器”依赖于 Pod,可以给 Pod 设置 label,然后给“控制器”设置对应的 selector,这就实现了对象的关联。
2024-04-24 14:02:06
1159
2
原创 k8s-Pod
但是需要注意,由于 k8s 默认给 pod 的停止宽限时间为 30s,如果我们停止操作会超过 30s 时,不要光设置 sleep 50,还要将 terminationGracePeriodSeconds: 30 也更新成更长的时间,否则 k8s 最多只会在这个时间的基础上再宽限几秒,不会真正等待 50s。探针是容器内应用的监测机制,根据不同的探针来判断容器应用当前的状态,根据生命周期图可以看出探针目前存在三种类型。可以在根容器上设置Ip地址,其它容器都此Ip(Pod IP),以实现Pod内部的网路通信。
2024-04-11 14:19:35
1226
原创 K8s 命令行工具
默认,是只能在master 节点上使用kubectl 工具,如果想要在 slave 节点上使用,在master 节点上执行下述命令即可。在搭建集群的时候,我们通过yum 下载了kubeadm kubelet kubectl 三个命令行工具,三个工具有着不同的分工。上述介绍,可以看出,三个工具不同的分工,而我们在日常中,需要接触到最多的就是 kubectl 工具。kubectl 工具能够操作资源细分如下, 这里只介绍常用命令,全部命令参考。
2024-04-10 15:30:20
1550
原创 Kubernetes 入门
等功能,相比于其他容器编排工具,如 swarm 、 mesos ,优势在于,能够基于 Google 庞大的生态圈及社区产生的产品。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。Master节点主要负责集群的管理和控制功能,如调度、API服务、存储集群状态等。kubelet:运行在每运行在每个节点上的主要的“节点代理”个节点上的主要的“节点代理”
2024-04-08 10:58:18
1145
原创 linux 一些命令[下]
若指定⽤户名称,便会以⾪属该⽤户的第⼀个程序当作基层,然后显示该⽤户的所有程序。ps命令是最基本同时也是⾮常强⼤的进程查看命令,使⽤该命令可以确定有哪些进程正在运⾏和运⾏的状态、进程是否结束、进程有没有僵死、哪些进程占⽤了过多的资源等等,总之⼤部分信息都是可以通过执⾏该命令得到的。init是Linux的进程初始化⼯具,是所有Linux进程的⽗进程,进程ID号是1。pkill命令可以通过进程名终⽌指定的进程,对⽐killall杀死进程可能要执⾏多次,pkill可以杀死进程以及⼦进程。
2024-04-02 14:40:56
551
原创 linux 一些命令[上]
raid 技术,能够提供硬盘的读写效率,已经数据的安全性,但当配置好后,容量的大小,都被限制住了,如果存储的业务非常多,磁盘容量不够用就会出问题,并且raid 的磁盘扩容非常麻烦,并且只能冷扩容。优点:lvm 的文件系统可以跨多个磁盘,分区大小不受磁盘容量限制 可以在系统运行中,直接动态扩容文件系统大小 可以直接增加新的硬盘,到lvm的vg卷组中。硬盘的多个分区,由lvm统一进行管理为卷组,可以弹性的调整卷组的大小,加入新硬盘,可以充分的利用磁盘容量。不同的磁盘分区,相对都是独立的。
2024-03-31 17:59:08
1460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅