- 博客(293)
- 收藏
- 关注
原创 并行计算 PCAM方法学
PCAM是并行计算的系统化设计方法,包含四个阶段:划分(Partitioning)将数据和计算分解为任务;通信(Communication)确定任务间的数据交换模式;组合(Agglomeration)合并细粒度任务以提高效率;映射(Mapping)将任务分配到处理器以优化负载平衡。每个阶段都有特定判据,如划分需考虑任务均衡性,通信需评估并行性,组合需权衡计算通信比,映射需解决调度问题。该方法通过逐步优化,在保持并行性的同时降低开销,最终实现高效并行计算。
2025-11-24 23:06:59
522
原创 MPI入门
MPI入门摘要 MPI(Message Passing Interface)是一种进程间消息传递接口标准,有多种实现版本(如OpenMPI、MPICH)。MPI采用SPMD(单程序多数据)模型,即所有进程执行相同代码但处理不同数据。 核心概念: 基本函数:MPI_Init初始化环境,MPI_Finalize释放资源 通信器(如MPI_COMM_WORLD)管理进程组 进程标识:MPI_Comm_rank获取进程ID,MPI_Comm_size获取进程总数 通信方式: 点对点通信:MPI_Send发送消息,M
2025-11-24 23:05:36
450
原创 Webase部署Webase-Web在合约IDE页面一直转圈
摘要 合约IDE页面转圈问题通常是由于网络原因导致get_solc_js.sh脚本从GitHub下载solc-bin文件失败,实际下载的是包含"access deny"的HTML文件而非正确的js文件。解决方法是从WeBankBlockchain的GitHub仓库直接下载对应版本的js文件(包括v0.4.25.js、v0.5.2.js、v0.6.10.js等),将其放入Webas-Web/dist/static/js目录中,然后刷新浏览器缓存即可解决。文中提供了各版本js文件的下载链接。
2025-11-22 22:39:46
182
原创 矩阵论 多项式矩阵及其史密斯smith标准型
本文介绍了多项式矩阵及其史密斯标准型。多项式矩阵是元素为λ多项式的矩阵,其秩定义与数字矩阵类似。多项式矩阵可逆的充要条件是行列式为非零常数。通过初等变换可将多项式矩阵化为史密斯标准型,即满足对角化、整除性和首一性的对角矩阵。文中通过具体示例展示了如何将多项式矩阵转换为史密斯标准型的过程。
2025-11-22 22:38:18
765
原创 Webase管理平台搭建多机手动搭建版
Webase管理平台搭建摘要 Webase管理平台由四个子系统组成:节点前置(WeBASE-Front)、签名服务(WeBASE-Sign)、节点管理(WeBASE-Node-Manager)和WeBASE管理平台(WeBASE-Web)。节点前置需与区块链节点同机部署,其他组件可分开部署。WeBASE-Web提供可视化界面,调用节点管理的API;节点管理维护区块链网络状态;签名服务管理用户私钥;节点前置则是节点代理服务。 搭建过程包括:1)安装Java和MySQL依赖;2)拉取代码并编译;3)数据库初始化
2025-11-18 19:44:27
1828
原创 WeBASE管理平台部署-WeBASE-Web
摘要: 本文详细介绍了WeBASE管理平台的部署流程,包括依赖环境配置(Nginx 1.6+)、源码拉取(WeBASE-Web及移动端)、配置文件修改(IP、端口、路径等)以及Nginx代理配置。部署过程中遇到验证码加载问题,通过调整Java和MySQL版本解决;后端数据库需重新初始化。最终成功启动平台,但合约IDE功能暂存bug待修复。关键步骤涵盖命令操作与配置调整,适用于区块链开发者快速搭建WeBASE可视化管理系统。
2025-11-18 19:19:53
1251
原创 Webase节点管理服务部署WeBASE-Node-Manager
本文介绍了Webase节点管理服务WeBASE-Node-Manager的部署过程。首先说明该服务是中心化部署,依赖FISCO-BCOS 2.0+、WeBASE-Front、MySQL5.6+和Java8+环境。接着详细描述了从克隆代码、编译到数据库初始化的步骤,包括使用sed命令修改数据库连接配置。随后指导配置服务端口和数据库信息,最终通过启动脚本运行服务。文章提供了完整的部署流程,包含服务启停和日志查看方法,适合快速搭建节点管理服务参考使用。
2025-11-18 15:18:17
776
原创 Webase签名服务部署WeBASE-Sign
本文摘要:详细介绍了WeBASE-Sign签名服务的部署流程,包括环境准备、代码拉取与编译、数据库初始化、配置文件修改以及服务启停操作。主要内容包括:1) 依赖安装(Java1.8+、MySQL5.6+);2) 通过Git克隆代码并使用gradle编译;3) 创建MySQL数据库;4) 配置application.yml修改数据库连接信息;5) 使用提供的shell脚本管理服务(启动/停止/状态检查)。最后还介绍了日志查看方法,为搭建完整的Webase管理平台提供关键服务支持。
2025-11-17 22:26:17
648
原创 矩阵论-相似矩阵和对角化
矩阵相似对角化是线性代数中的重要概念。两个矩阵相似意味着它们描述同一线性变换在不同基下的表示,数学定义为存在可逆矩阵P使B=P⁻¹AP。相似矩阵具有相同的特征值、行列式、迹和秩。对角化的本质是找到使线性变换简化为坐标轴方向伸缩的坐标系。矩阵A可对角化的充要条件是有n个线性无关特征向量,对角化步骤包括:求特征值和特征向量,构造变换矩阵P和对角矩阵D,并验证AP=PD。对角矩阵仅对各坐标分量进行独立缩放,体现了线性变换的最简形式。
2025-11-17 11:41:44
999
原创 Linux服务器配置ssh免密登陆多台服务器、服务器别名配置
摘要:本文介绍了在Linux服务器上配置SSH免密登陆多台服务器的完整流程。首先演示了在控制机生成RSA密钥对的方法,然后详细说明如何使用ssh-copy-id命令将公钥分发到多台目标服务器。成功配置后,可通过SSH直接登录而无需输入密码。最后讲解了通过编辑~/.ssh/config文件为多台服务器配置别名的方法,实现使用简短易记的别名代替复杂的IP地址和用户名进行SSH连接。整个过程包括密钥生成、密钥分发、连接测试和别名设置四个关键步骤,有效简化了多服务器管理的操作复杂度。
2025-11-16 20:12:50
896
原创 arm架构上搭建第一个区块链网络FISCO BCOS
这个问题解决之后有遇到了boost下载不下来的问题,这个问题可能是网络原因导致的,网络原因导致boost库总是下载一半就中断,然后sha256去用这个库hash得到的结果不对,这个问题通过手动下载然后放到。不行,开了太多进程,而我的设备内存又太小,只有4g,导致C++编译器直接把进程杀死了,进而导致编译失败了,这里把编译指令换乘。可以看到在更新完cmake后编译成功了,并也build file放在了我们执行编译命令的目录下。编译太慢放到晚上睡前编译,早上看到下面的错误,这说明之前的编译指令。
2025-11-15 19:26:30
1302
1
原创 unbuntu中cmake版本太低,升级。
本文介绍了在Linux系统上彻底删除并重新安装CMake的方法。首先使用sudo apt purge cmake删除原有版本,然后从官网下载tar.gz文件解压到/opt目录。删除旧链接后,为新版本创建符号链接到/usr/local/bin目录,最后刷新命令缓存即可完成安装。整个过程包括版本检查、旧版本清理、新版本配置等步骤,确保CMake正确安装并更新系统路径。
2025-11-14 19:12:38
228
原创 hf transformers库中generate函数解读
本文介绍了Hugging Face Transformers库(版本4.37.1)中generate函数的参数配置和返回值格式。该函数主要用于文本生成任务,支持多种自定义参数:包括输入张量、生成配置、logits处理器、停止条件、前缀约束函数、多GPU同步开关、辅助模型加速、流式处理以及负面提示等。返回值格式根据return_dict_in_generate参数决定,可返回包含生成序列、分数、注意力权重等信息的结构化ModelOutput对象(分为GenerateDecoderOnlyOutput和Gene
2025-11-10 11:41:56
451
原创 hf中transformers库中generate的greedy_search
本文介绍了greedy_search方法的参数、返回值及核心代码逻辑。该方法接收input_ids、logits_processor等参数,控制文本生成过程。返回值根据return_dict_in_generate决定返回格式。代码初始化处理参数后,在循环中进行模型推理,通过logits_processor处理得分,并记录生成状态。支持批处理不同序列的独立终止判断,以及多GPU同步生成场景的处理。整个过程实现了基于贪心算法的文本生成功能。
2025-11-10 11:37:05
960
原创 hf transformers KV cache
KV cache显存计算涉及公式:2×精度×层数×embed维度×最大序列长度×批次大小。在HuggingFace Transformers中,past_key_values存储KV缓存,其格式为多层(key, value)元组,每个key/value的维度为(batch_size, num_heads, seq_len, head_dim)。实验显示,使用缓存时,随着解码步数增加,past_key_values的序列长度会逐步扩展(如从6增至7),验证了KV缓存的动态增长特性。通过对比完整生成与逐步解码过
2025-11-04 13:11:36
338
原创 Linux服务器配置ssh免密登陆
本文介绍了Linux服务器配置SSH免密登录的方法及原理。通过非对称加密技术,客户端生成公私钥对(使用ssh-keygen命令),将公钥(如id_ed25519.pub)放入服务器的~/.ssh/authorized_keys文件中。验证时,服务器用公钥加密随机字符串,客户端用私钥解密后返回,完成身份认证。整个过程避免了每次登录输入密码的繁琐,实现了便捷的安全认证。
2025-10-30 23:55:12
446
原创 Mac os安装Easyconnect卡在正在验证软件包
本文记录了安装EasyConnect时卡在“验证软件包”阶段的解决过程。首先尝试了重启电脑和强制终止进程的方法,但安装依然失败。随后改用命令行安装方式仍不成功,最终发现问题根源是已安装旧版EasyConnect。在彻底卸载旧版软件后,新版安装顺利完成。整个过程展示了常见安装问题的排查思路,即:1)尝试常规重启方法;2)搜索类似案例解决方案;3)考虑软件版本冲突因素。
2025-10-29 09:55:33
441
原创 Transformers中不同的generation strategies生成策略
本文介绍了Transformer模型中的几种文本生成策略。基础解码方法包括贪心搜索(每次选概率最大的token)、随机采样(按概率分布采样)和束搜索(追踪多个候选序列)。高级方法如投机采样,通过小模型生成候选token再由主模型验证,可加速生成过程。文中提供了HuggingFace库的代码示例,展示了不同策略在Llama-2等模型上的实现方式。这些方法各具特点,适用于不同场景的文本生成任务。
2025-10-20 20:01:59
302
原创 Mit 6.s081 Lab5 Lazy allocation
本文介绍了MIT 6.S081 Lab5中关于Lazy Allocation的实现要点。主要内容包括:1)通过page fault处理程序实现延迟分配,仅在应用程序实际使用内存时才分配物理页;2)修改sbrk系统调用仅更新进程大小而不立即分配内存;3)处理uvmunmap中未映射页的情况;4)介绍了零填充需求(zero fill on demand)和写时复制(Copy-on-write fork)优化技术。这些技术可以减少内存分配开销,提高系统性能,同时需要处理相关异常情况如未映射页的访问和内存释放的引用
2025-10-14 19:59:31
908
原创 论文阅读:Reward-Guided Speculative Decoding for Efficient LLM Reasoning
摘要: 本文提出Reward-Guided Speculative Decoding (RSD)方法,以解决传统Speculative Decoding因严格无偏性要求导致的高效推理限制。RSD通过引入process reward model放宽draft model的接受条件,以reward而非概率匹配决定token是否被接受,从而减少target model调用次数并保证生成质量。理论分析表明,RSD的分布由draft和target模型共同决定,并通过动态权重函数平衡两者输出。实验验证了RSD在减少推理
2025-10-14 09:45:24
937
原创 Mit 6.s081 lab4 traps
本文介绍了RISC-V架构中trap(陷阱)机制的基本原理和处理流程。trap是CPU用于处理异常情况的中断机制,主要包括系统调用、异常和设备中断三种类型。RISC-V通过控制寄存器(如stvec、sepc等)实现硬件层面的trap处理,而软件则负责页表切换、寄存器保存等任务。重点分析了用户空间trap的处理过程,包括trampoline机制和trapframe数据结构的设计,解决了用户态到内核态切换时的页表和寄存器保存问题。文章还详细说明了RISC-V处理trap的硬件行为步骤,以及XV6操作系统如何通过
2025-10-12 14:02:51
644
原创 数学基础:变分推断
摘要: 贝叶斯推断通过贝叶斯公式将先验信息与样本信息结合,得到参数的后验分布。核心公式为$\pi(\theta|x_1,...,x_n) \propto p(x_1,...,x_n|\theta)\pi(\theta)$,但高维积分计算边缘似然困难。变分推断通过优化近似分布$q(z)$逼近真实后验,最大化证据下界(ELBO)替代直接计算。传统方法如CAVI手动推导,而深度生成模型中采用神经网络参数化$q_\phi(z|x)$,结合重参数化技巧优化ELBO。变分推断通过简化计算实现高效后验近似,但复杂模型仍需
2025-10-08 12:06:00
693
原创 Stanford CS336 assignment1 | Training a Transformer LM
本文介绍了训练Transformer语言模型的关键组件实现,主要包括交叉熵损失函数和优化器(SGD和AdamW)。交叉熵损失函数通过softmax计算概率分布并实现数值稳定技巧。SGD优化器使用学习率衰减策略,而AdamW优化器实现了自适应学习率调整和权重衰减功能。两种优化器都支持参数分组和状态跟踪,其中AdamW通过原地操作优化显存和计算效率。这些组件为Transformer语言模型的训练提供了基础支持。
2025-10-05 14:33:35
1015
原创 Deep Learning Optimizer | Adam、AdamW
本文介绍了Adam和AdamW优化算法及其相关概念。首先解释了指数加权平均(EMA)的原理,它是后续算法的基础。然后依次介绍了SGD、Momentum、RMSProp等优化方法的特点:SGD仅依赖当前梯度;Momentum引入梯度指数平均减少震荡;RMSProp通过梯度平方的指数平均自适应调整学习率。Adam结合了Momentum和RMSProp的优点,维护梯度和梯度的平方两个指数平均量。AdamW在此基础上增加了weight decay机制,防止参数过大提高泛化性。最后指出这些算法需要为每个参数维护两个额
2025-10-05 10:56:54
1115
原创 Weight decay 和 L2 Regularization
权重衰减和L2正则化在优化神经网络参数时具有相似效果。权重衰减直接对参数进行缩放衰减,而L2正则化通过添加惩罚项间接限制参数大小。在使用SGD优化器时,两者在数学形式上是等价的,因为L2正则化的梯度计算会得到与权重衰减相同的更新公式。然而,当使用Adam、RMSProp等自适应优化器时,由于学习率的缩放机制,这两种方法会产生不同的优化效果。
2025-10-05 10:50:34
339
原创 Stanford CS336 assignment1 | Transformer Language Model Architecture
摘要 本文介绍了Transformer语言模型架构中的基础模块实现方法。首先讲解了环境配置技巧,建议将虚拟环境激活命令写入.bashrc文件实现自动加载。接着详细说明了模型参数的初始化策略:线性层采用截断高斯分布N(0, 2/(din+dout)),嵌入层采用N(0,1)分布,均使用PyTorch的trunc_normal_函数实现。文章分别实现了Linear模块和Embedding模块的代码,包括初始化方法和前向传播逻辑,并提供了相应的测试方法。测试时使用pytest命令验证模块的正确性,测试通过后会有相
2025-10-03 19:15:10
1550
原创 Stanford CS336 Lecture3 | Architectures, hyperparameters
本文介绍了Transformer模型架构中的常见变种和关键超参数选择。在架构方面,对比了Pre-Norm和Post-Norm的归一化方式,指出Pre-Norm更稳定且适合深层模型;分析了LayerNorm与RMSNorm的区别,后者计算效率更高;讨论了ReLU、GeLU等激活函数及其门控变种,以及旋转位置编码(ROPE)的优势。在超参数方面,重点说明了前馈网络维度d_ff与模型维度d_model的典型4倍关系,并解释了采用GLU变体时的调整策略。这些技术细节对理解现代大语言模型的设计选择具有重要意义。
2025-10-01 13:09:06
984
原创 KV cache原理
文章摘要:本文介绍了decoder-only transformer的生成流程及KV cache优化技术。首先,输入prompt经过tokenizer和embedding层转换为词向量矩阵,再通过线性变换得到Q、K、V矩阵。在多头注意力机制中,通过mask保留注意力矩阵的下三角部分,与V矩阵相乘后得到上下文信息。KV cache通过缓存K和V矩阵,避免重复计算历史token的注意力分数,仅对新token进行增量计算。这种优化显著降低了计算复杂度,提升了推理效率。KV cache本质是一种增量算法,适用于自回
2025-09-29 21:57:51
873
原创 Jetson Xavier NX踩坑
本文介绍了在Jetson Xavier NX开发板上安装中文输入法、查看硬件配置、换源以及查看JetPack版本的全过程。主要内容包括:1) 通过apt安装fcitx拼音输入法框架并配置环境变量;2) 使用命令行工具查看系统信息、CPU、内存等硬件参数;3) 将apt源更换为华为云ARM64镜像以提升下载速度;4) 检查JetPack版本及CUDA环境配置,并安装jetson-stats监控工具。这些操作为后续开发环境搭建奠定了基础,特别针对ARM架构的Jetson平台进行了优化配置。
2025-09-27 22:14:57
762
原创 Linux命令top
本文介绍了Linux中top命令的使用和结果解析。top命令是实时进程监控工具,输出分为两部分:上半部分显示系统运行时间、负载、任务概况、CPU/内存/Swap使用情况;下半部分列出各进程的详细信息,包括PID、用户、优先级、内存占用、状态等关键指标。文章通过表格详细解释了每个字段含义,帮助用户理解系统资源使用状况和进程运行情况。
2025-08-04 15:41:30
790
原创 Stanford CS336 assignment1 | Byte-Pair Encoding (BPE) Tokenizer
本文介绍了BPE(Byte Pair Encoding)算法的实现过程。首先阐述了Unicode标准与编码方式(UTF-8/UTF-16/UTF-32)的区别,然后对比了词级分词和字节级分词的优缺点。BPE作为一种子词分词技术,通过统计高频字节对进行合并,既能解决未登录词问题,又能控制词表大小。文章详细描述了BPE训练的三个步骤:初始化256字节的基本词表;预分词处理文本并统计频率;迭代合并最高频的字节对。其中重点介绍了合并过程中的关键函数,如获取字节对频率、选择最优合并对等。代码实现展示了如何从文本中提取
2025-08-04 13:49:58
1230
原创 Python中yield和yield from
本文介绍了Python中yield和yield from的用法。yield用于创建生成器函数,实现暂停执行和返回值的功能,适用于惰性求值和大数据集处理。yield from则是yield的扩展语法,用于简化生成器的嵌套调用,可直接从其他可迭代对象或生成器中返回值。通过示例代码演示了二者的基本使用场景和区别,展示了如何利用这些特性实现更高效的迭代操作。
2025-08-04 11:31:23
385
原创 Agent基础之高级检索技术rerank模型
文章摘要:Rerank模型是RAG系统中的第二阶段文档过滤器,用于对初始检索结果重新排序,提升相关性文档优先级。由于embedding模型会损失信息且仅关注召回率,而LLM存在上下文长度限制,需要更精准的相关性排序。Bi-Encoder计算快但准确度较低,Cross-Encoder精度高但耗时。两者结合使用可平衡效率与准确性,先用Bi-Encoder初筛,再用Cross-Encoder重排,优化RAG系统效果。(149字)
2025-08-01 13:18:38
1123
原创 Python文件路径处理pathlib模块
摘要:Python的pathlib模块是3.4版本引入的标准库,提供面向对象的文件路径处理方式,旨在替代传统的os.path模块。核心功能包括:使用Path类进行路径拼接(支持/操作符)、获取路径各部分属性(parent/name等)、解析相对路径为绝对路径、检查路径状态(exists/is_file等)、目录遍历(iterdir/glob方法)、创建/删除目录和文件等操作。相比os.path,pathlib采用更直观的面向对象风格,支持链式调用,代码更简洁易读。特别适合与__file__变量配合使用获取当
2025-08-01 13:15:09
1528
原创 Python多进程并行multiprocess基础
Python多进程编程可以通过multiprocess模块实现,它能够绕过CPython的GIL限制,适合CPU密集型任务。核心组件包括: Process类:用于创建和管理子进程,通过target指定执行函数,args传递参数。子进程独立运行,需要进程间通信(IPC)共享数据。 Pool进程池:管理一组进程,避免频繁创建销毁的开销。主要方法: map():并行执行单参数函数 starmap():支持多参数 apply()/apply_async():同步/异步执行任务 map_async():异步版map
2025-07-30 18:40:33
1214
原创 Python中二进制文件操作
本文介绍了Python中二进制文件操作的基本方法。主要内容包括:1. 二进制文件的打开方式,必须使用"rb"、"wb"等带"b"的模式;2. 常用操作函数:read()读取数据、write()写入数据、seek()移动文件指针位置、tell()获取当前指针位置;3. 字节数据相关知识,包括bytes对象的不可变特性以及与字符串的相互转换方法。文章通过代码示例展示了各操作的具体用法,特别说明了seek()函数的参数含义和使用场景。
2025-07-29 18:14:16
534
原创 Python中assert的使用
Python中的assert是一种断言机制,用于在运行时验证条件是否为真。其语法为assert condition, error_message,当条件为假时会抛出AssertionError并显示错误信息。assert常用于函数参数检查(如验证输入类型和长度)和调试代码逻辑正确性,是一种有效的程序调试工具。通过断言可以在开发阶段快速发现并定位问题,但生产环境中应谨慎使用。
2025-07-29 17:19:21
540
原创 transformers基础Data Collator
本文介绍了HuggingFace Transformers库中的多种数据整理器(DataCollator),用于将数据预处理为模型可接受的batch格式。主要内容包括:基础数据整理器default_data_collator和DefaultDataCollator;动态padding的DataCollatorWithPadding;面向特定任务的DataCollatorForTokenClassification(序列标注)、DataCollatorForSeq2Seq(编码器-解码器任务)和DataCol
2025-07-16 17:16:03
927
1
原创 python基础知识pip配置pip.conf文件
摘要:pip.conf是pip的配置文件,采用INI格式编写,包含节、键值对和注释。配置文件分为三个级别:全局(/etc/pip.conf)、用户(~/.pip/pip.conf)和虚拟环境($VIRTUAL_ENV/pip.conf)。加载顺序为全局→用户→站点→PIP_CONFIG_FILE,后加载的配置会覆盖前者。常用配置示例是设置清华大学镜像源,包含[global]节中的index-url和[install]节中的trusted-host参数,用于加速包安装并跳过SSL验证。
2025-07-13 23:41:49
701
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅