- 博客(278)
- 收藏
- 关注
原创 关闭Ollama开机启动项
Ollama在本地普通算力机器上部署DeepSeek等大模型,有一定的生态优势。但是由于软件本身的一些策略问题,Windows平台的Ollama总是会随系统开机自动启动,还没有设置界面可以关闭。这里提供一种方法,可以在Windows平台永久关闭Ollama的开机自动启动功能。
2025-08-12 09:16:00
397
原创 关于nan的大小判定规则
本文通过几个简单的代码示例,展示了一下NAN在PyTorch框架下形成的原因。通过了解这个原因和规则,有助于解决在深度学习开发和训练过程中出现的NAN的问题。
2025-07-21 17:46:00
180
原创 PyTorch中的take_along_dim
接前面一篇take_along_axis的文章,本文主要介绍在PyTorch框架下,功能基本一样的函数take_along_dim。二者除了命名和一些关键词参数不一致之外,用法是一样的。需要注意的是,两者都要求输入的数组和索引数组维度数量一致。在特定场景下,需要手动进行扩维。
2025-07-17 10:18:00
420
原创 PyTorch中的张量逆序问题
本文简单的介绍了一个在Pytorch中对张量进行逆序操作的方法相比于其他的框架,例如numpy和mindspore等的区别。在其他框架中我们可以直接使用slice的方法对一个张量做逆序,但是在Pytorch中,可能需要使用到一个flip函数。
2025-07-10 10:16:00
333
原创 PyTorch中实现开立方
本文介绍了在PyTorch中直接使用幂次函数计算有可能导致的计算结果异常的问题。由于PyTorch中并未像Numpy和MindSpore一样直接支持cbrt开立方函数,因此这里也提供了一个在PyTorch中计算开立方的函数。
2025-06-25 17:56:00
362
原创 tensor_scatter_add算子异同点
本文介绍了MindSpore中的tensor_scatter_add算子的用法,可以对一个多维的tensor在指定的index上面进行加和操作。在PyTorch中虽然也有一个叫scatter_add的算子,但是本质上来说两者是完全不一样的操作。
2025-06-20 15:49:00
841
原创 gather算子大不同
本文通过2个实际的案例,演示了一下gather算子在MindSpore框架下PyTorch框架下的异同点。两者的输入都是tensor-axis-index,一个是输入顺序上略有区别,另一个是对于输入的张量索引维度的要求。在PyTorch中,如果我们要实现类似于MindSpore中的gather功能,需要手动对输入索引的维度操作一下。
2025-06-18 15:06:00
225
原创 MindSpore中的ReduceMax和max操作的区别
本文介绍了在pytorch和mindspore中两种计算张量最大值的算子,如果直接使用max算子,两者的输出都是最大值元素和最大值索引。但是mindspore中额外的支持了ReduceMax算子,可以允许我们只输出最大值而不输出最大值索引。
2025-06-16 14:52:00
279
原创 PyTorch中的求余
本文通过几个示例,介绍了在Python、Numpy和PyTorch三个不同的框架下,对于求余数函数的定义。比较特殊的是pytorch中的fmod函数,并不符合数学上的求余数方法,而是需要使用remainder函数。
2025-06-11 15:50:00
277
原创 Python中的cls变量
本文介绍了在Python的classmethod装饰的类方法的cls变量的意义,通过几个不同的示例对比,凸显cls变量在Python编程中的应用场景。对于大多数的场景来说,使用普通的Python类和函数定义即可。如果需要在类的外部使用类的内部函数,但是可能有多个不同初始化的类输入,那么可以使用staticmethod进行装饰。如果只有一个类,而有多种不同的输入场景下,可以使用classmethod进行装饰。
2025-06-03 17:50:00
705
原创 QUBO建模
这篇文章算是对Fred Glover的一篇综述的解读,添加了一些方便直观理解的示例具体的建模过程。对于不同的场景,可以使用不同的惩罚项进行QUBO建模,从而可以使用求解器或者Ising机进行求解。
2025-04-22 15:17:00
800
原创 KTransformers实战DeepSeek-R1-1.58bit量化模型
技术背景在上一篇文章中,我们介绍过KTransformers大模型高性能加载工具的安装和使用方法。但是当时因为是在一个比较老旧的硬件上面进行测试,其实并没有真正的运行起来。现在补一个在KTransformers下运行DeepSeek-R1的1.58bit量化模型的实战测试。软硬件设施显卡:NVIDIA GeForce RTX 4080(只需1张)CPU:Intel(R) Xeon(R)...
2025-03-12 15:34:00
820
原创 Ollama+DeepSeek+SlackBot
技术背景想必最近有在部署DeepSeek大模型的人,看标题就知道这篇文章在做什么事情了。由于Ollama对于IP的监听缺乏安全防护,并且内网部署的Ollama模型对于外网来说也是不可见的,而如果使用一些公网API,又存在隐私数据泄露的风险。这里提供一个方案:使用端到端加密的通讯软件,将消息内容转为token传输给Ollama本地部署的模型,然后接收token作为消息,通过加密通讯返回给用户。但...
2025-03-10 10:33:00
916
原创 Cython与CUDA之Add
技术背景在前一篇文章中,我们介绍过使用Cython结合CUDA实现了一个Gather算子以及一个BatchGather算子。这里我们继续使用这一套方案,实现一个简单的求和函数,通过CUDA来计算数组求和。由于数组求和对于不同的维度来说都是元素对元素进行求和,因此高维数组跟低维数组没有差别,这里我们全都当做是一维的数组输入来处理,不做Batch处理。头文件首先我们需要一个CUDA头文件cud...
2025-03-05 09:59:00
668
原创 Cython与CUDA之BatchGather
技术背景在前面一篇文章中,我们介绍过Cython+CUDA框架下实现一个简单的Gather算子的方法。这里演示Gather算子的升级版本实现——BatchGather算子。不过这里只是加了一个Batch维度,并没有添加其他的维度,例如Dimension维度,在这里暂不考虑。CUDA头文件这里我们保留了原本的Gather部分,只添加一个BatchGather的运算,以下为cuda_index...
2025-03-03 15:54:00
908
原创 DeepSeek满血版测试
技术背景很多厂商以次充好,用蒸馏版DeepSeek冒充满血版。本文提供一些收集的问题集,可以用于测试是否满血DeepSeek。经过实际测试,国内厂商中只有满血版DeepSeek可以全对。但是各厂商后续有可能经过联网更新,所以本集合有一定的时效性。问题一在平面四边形ABCD中,\(AB = AC = CD = 1\), \(\angle ADC = 30^{\circ}\), \(\angl...
2025-02-28 16:34:00
1015
原创 CUDA时长统计
技术背景前面的一篇文章中介绍了在CUDA中使用宏来监测CUDA C函数或者Kernel函数的运行报错问题。同样的思路,我们可用写一个用于统计函数运行时长的宏,这样不需要使用额外的工具来对函数体的性能进行测试。文件准备因为这里的宏改动,主要涉及CUDA头文件和CUDA文件的修改,所以Cython文件和Python文件还有异常捕获宏我们还是复用这篇文章里面用到的。测试内容是,定义一个原始数组和...
2025-02-28 09:45:00
381
原创 Cython与CUDA之Gather
技术背景Cython是Python的一个超集,可以使用Pythonic的语法写出接近于C语言的性能,可以用于将Python编程过程中遇到的Bottleneck模块改写成Cython以达到加速的效果。前面写过一些关于Cython加速计算的文章。又因为Cython编译过程中会先转为C语言代码,然后再编译为动态链接库或者可执行文件,所以很自然的可以在Cython中调用C语言函数。用这种方法,还可以直...
2025-02-27 10:20:00
709
原创 CUDA异常捕获
技术背景在CUDA编程中有可能会遇到一些相对比较隐蔽的报错,但是直接编译运行cu文件是不显现的。那么可以通过添加一个用于检查的宏,来监测CUDA程序运行过程中可能出现的报错。error.cuh我们在CUDA头文件中实现这个宏:#pragma once#include <stdio.h>#define CHECK(call) do{const cudaError_t er...
2025-02-25 15:55:00
461
原创 bin格式转safetensors
技术背景本文主要介绍在Hugging Face上把bin格式的模型文件转为safetensors格式的模型文件,并下载到本地的方法。bin转safetensors首先安装safetensors:$ python3 -m pip install safetensors --upgrade然后把Github的safetensors仓库克隆下来:$ git clone https://gi...
2025-02-24 15:40:00
493
原创 DeepSeek本地性能调优
技术背景大模型性能调优是一个很复杂的工程,涉及到很多细节,如果真要对模型动刀子,还需要对模型和数据集本身有非常好的理解。这里我们仅仅考虑模型加载过程中,可以优化的一些参数配置。关于DeepSeek在本地的部署,以及PageAssist插件的使用,可以参考DeepSeek合集。调优思路一句话总结一下调优思路,如果你已经尝试过了,那么可以略过本文:GPU内存 > 多GPU内存 >...
2025-02-21 10:53:00
1555
原创 Ollama模型迁移
技术背景在前面的一些文章中,我们介绍过使用Ollama在Linux平台加载DeepSeek蒸馏模型,使用Ollama在Windows平台部署DeepSeek本地模型。除了使用Ollama与模型文件交互,还可以使用llama.cpp和KTransformer这样的。也有一些ChatBox、AnythingLLM和PageAssist这样的客户端工具推荐。这里我们考虑到这样的一个使用场景,在我们...
2025-02-20 16:34:00
1144
原创 DeepSeek智能编程
技术背景DeepSeek开源之后,让大家意识到了即时是在自己硬件性能一般的本地环境,也能够部署和使用大语言模型,真正实现了大模型的“私有化”。而私有化大模型之后,自然是考虑生产力的私有化。例如,如何使用大模型作为一个工具来进行编程?本文将要介绍两种不同的人工智能编程方法。Cursor的安装与使用第一种方法,是使用Cursor来进行编程,是一个跟VSCode很像的IDE,优点是支持了很多模型...
2025-02-19 17:45:00
1076
原创 大模型工具KTransformer的安装
技术背景前面写过几篇关于DeepSeek的文章,里面包含了通过Ollama来加载模型,以及通过llama.cpp来量化模型(实际上Llama.cpp也可以用来加载模型,功能类似于Ollama)。这里再介绍一个国产的高性能大模型加载工具:KTransformer。但是本文仅介绍KTransformer的安装方法,由于本地的GPU太老,导致无法正常的运行KTransformer,但是编译安装的过程...
2025-02-19 10:28:00
1080
原创 DeepSeek模型量化
技术背景大语言模型(Large Language Model,LLM),可以通过量化(Quantization)操作来节约内存/显存的使用,并且降低了通讯开销,进而达到加速模型推理的效果。常见的就是把Float16的浮点数,转换成低精度的整数,例如Int4整数。最极限的情况下,可以把参数转化成二值Bool变量,也就是只有0和1,但是这种大幅度的量化有可能导致模型的推理效果不佳。常用的是,在70...
2025-02-17 14:11:00
1317
原创 DeepSeek+PageAssist实现本地大模型联网
技术背景在前面的几篇博客中,我们分别介绍过在Ubuntu上部署DeepSeek、在Windows上部署DeepSeek、使用AnythingLLM构建本地知识库的方法,其中还包含了ChatBox的基本安装和使用。这里我们要介绍的是PageAssist,一个包含了大模型Chat、网络检索和知识库搭建的浏览器插件,不依赖于操作系统,而且功能配置非常丰富,可玩性很高,推荐使用。安装PageAssi...
2025-02-14 17:02:00
1418
原创 DeepSeek+Zotero
技术背景在DeepSeek系列文章中,我们已经分别介绍过关于DeepSeek在Ubuntu Linux平台和Windows平台上的本地部署方案,以及Ollama、ChatBox和AnythingLLM等辅助工具的使用。即使不使用DeepSeek-R1的全量模型,在DeepSeek的本地部署的蒸馏模型,结合AnythingLLM已经可以构建本地化的知识库。但是如果在科研过程中要专注于使用PDFC...
2025-02-11 14:19:00
780
原创 DeepSeek部署本地知识库
技术背景在前面的两篇文章中,分别介绍过Ubuntu上关于DeepSeek的部署以及Windows平台关于DeepSeek的部署。其中内容包含了Ollama的下载安装和基本使用、DeepSeek模型文件的下载,以及使用ChatBox导入Ollama本地模型进行本地对话的方法。这里再介绍一个使用AnythingLLM构建本地知识库的方法,本地知识库跟ChatBox两种对话模式的主要不同点在于,Ch...
2025-02-08 15:16:00
1868
原创 Windows11本地部署DeepSeek加速
技术背景在上一篇文章中我们介绍了在Ubuntu Linux操作系统上部署了一个DeepSeek-R1:14B,再通过其他电脑远程调用模型进行生成的方法。这里我们介绍一下Windows11安装Ollama+DeepSeek-R1模型的加速方法,因为这几天DeepSeek实在太火了,导致官方模型下载渠道网络不是很稳定,但其实有其他的方法可以加速这个下载过程。安装Ollama跟Ubuntu Li...
2025-02-07 15:12:00
1046
原创 Ubuntu Linux部署DeepSeek
技术背景DeepSeek是这段时间最热门的话题之一,其蒸馏模型可以实现低成本而高质量的推理,使得我们现在可以在本地小型化的硬件上也用上大模型这一AI利器。本文主要介绍通过Ollama来部署DeepSeek R1模型的方法,由于网络环境的问题,过程相比于普通的安装方案可能略有改动。安装Ollama以下是DeepSeek生成的关于Ollama的介绍的一个片段:Ollama 是一个开源工具,...
2025-02-06 10:16:00
1263
原创 使用SpongeExt快捷完成CudaSPONGE结合PySAGES的增强采样
技术背景在前面的一些文章中,我们介绍过关于CudaSPONGE的安装和基础使用方法,CudaSPONGE提供的Python接口,PySAGES增强采样软件的基本使用方法,还有一篇关于CudaSPONGE和PySAGES相结合的文章,并且做了一些简单的CudaSPONGE结合PySAGES的性能测试。其中因为CudaSPONGE与PySAGES的接口实际上是可以多场景共用的,因此考虑把这部分的接...
2025-01-23 10:20:00
748
原创 Markdown转Beamer进阶
技术背景在前面的一篇文章中,我们介绍过Markdown转Beamer的基本方法。通过这个方案,我们可以只写普通的Markdown文档,甚至可以用Github或者Gitee进行保存和协同编辑。然后在本地环境中通过pandoc进行编译构建,最终可以生成一个Beamer风格的pdf文件。这里我们不讨论到底是用PPT写比较好,还是Beamer比较好,抑或者是Markdown,我们只探讨Markdown...
2025-01-20 17:27:00
950
原创 CudaSPONGE与PySAGES初步性能测试
技术背景在前面的一篇博客中,我们介绍过CudaSPONGE的基础使用方法、CudaSPONGE调用Python接口函数以及CudaSPONGE结合增强采样软件PySAGES的使用方法。在这篇文章中,我们将介绍CudaSPONGE和PySAGES相结合的初步性能测试结果。 测试案例我们沿用这一篇文章中的测试案例,对一个简单的多肽体系的两个二面角参数空间执行MetaDynamics增强采...
2025-01-20 16:04:00
672
原创 Markdown转Beamer
技术背景在早期我写过一些文章介绍用RMarkdown写Beamer,还有相应的TinyTex配置。后来Xie Yihui大神发文离开了RMarkdown核心团队,想来中文社区的支持力度和活跃度可能会有所降低。于是干脆直接用pandoc,把普通的markdown文件编译成Latex Beamer PDF格式。pandoc的安装这里给的是Ubuntu Linux操作系统的pandoc安装方案:...
2024-12-25 16:54:00
873
原创 PySAGES结合CUDA SPONGE增强采样
技术背景在前面的一篇博客中,我们介绍过PySAGES这个增强采样软件的基本安装和使用方法。该软件类似于Plumed是一个外挂增强采样软件,但是PySAGES是基于Python语言和Jax框架来实现的,在性能上有一定的优势。这里我们结合PySAGES的易开发特性,和CUDA SPONGE的高性能特性,做一个简单的扩展将二者联合起来进行分子动力学模拟与增强采样。耦合框架在前面的文章中我们介绍过...
2024-12-23 09:38:00
946
原创 PCA主成分分析的Python实现
技术背景PCA主成分分析在数据处理和降维中经常被使用到,是一个非常经典的降维算法,本文提供一个PCA降维的流程分解,和对应的Python代码实现。二维数据生成如果没有自己的测试数据,我们可以生成一些特殊的随机数据点。例如我们使用Numpy的均匀随机数生成一系列二维的数据点\(\mathbf{r}=\left(x,y\right)\),其中数据点分布在一个椭圆内:\[x^2+4y^2\le...
2024-12-06 11:12:00
798
原创 Numpy本征值求解
技术背景Numpy是一个Python库中最经常被用于执行计算任务的一个包,得益于其相比默认列表的高性能表现,以及易用性和可靠性,深受广大Python开发者的喜爱。这里介绍的是使用Numpy计算矩阵本征值和本征矩阵的方法。求解问题本征问题是求解形如:\(\mathbf{A}\mathbf{v}=\lambda\mathbf{v}\)的方程,其中\(\mathbf{A}\)为已知矩阵,\(\m...
2024-12-04 10:51:00
378
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人