
深度学习
文章平均质量分 61
蛐蛐蛐
个人主页:https://quyu.github.io/
展开
-
大模型量化框架GPTQModel的基本使用方法
简单来说,当data_dir这个参数指定的时候,第一个参数path可以用来指定数据类型,如json,csv,text,xml等。相信大家看一下我给的例子就能明白。最简单的方法就是直接通过微调数据集构造校准数据集,然后再参考一下GPTQModel的主页例子。原创 2025-03-23 19:59:21 · 481 阅读 · 0 评论 -
AutoGPTQ报torch._C._LinAlgError: linalg.cholesky: The factorization could not be completed的解决办法
我试了一下,确实能解决问题。但是发现量化之后的模型开始输出乱码了。确实挺让人无奈的,建议大家量化的时候直接试试GPTQModel,可能就没有这个bug了。我试了一下,发现直接用AutoGPTQ也会出现类似的问题,例如这里直接使用其主页(原创 2025-03-15 12:16:44 · 301 阅读 · 0 评论 -
Llama factory微调后的模型怎么通过ollama发布
这样的命令就能生成ollama中的模型,但是经过我测试发现,如果modelfile里只有一行,生成的模型可能会出现答非所问的情况。顾名思义,就是把huggingface类的文件转成gguf。把Lora模块和其基模型merge到一起之后,就可以通过ollama之类的框架提供服务了。就可以生成一个名为qwen2.5:7bwhole的微调之后qwen2.5 7B的模型了。原创 2025-03-09 22:04:55 · 965 阅读 · 0 评论 -
在Dify中实现联网检索功能(模拟DeepSeek)
然后再运行第一个命令重新启动就行了,这时候再搜索的话就会快很多。但是还是发现有一个问题,按道理来说是访问bing的API,可为啥很多情况下返回的都是zhihu的页面,知乎充值了?DeepSeek发布之后,感觉联网检索功能变成标配了。这个是没错的,但是第一篇博客把启动docker的命令行写错了,应该是在Dify根目录下运行。把肯定用不到的engine禁掉,只留下Bing。剩下的内容大家参考之前列出的网页就可以基本实现了,先简单总结这么多。(我的本机地址是1.80),因为上面这个命令已经做过端口映射了!原创 2025-02-23 16:15:36 · 5829 阅读 · 5 评论 -
运行CARLA: Self-supervised Contrastive Representation Learning for Time Series Anomaly Detection的一点经验
这个嘛,能通过这种方式装pytorch?由于PyTorch版本是1.13.0,那么CUDA还是先装11.7吧(参考我之前的博客。也就是说环境的问题基本上解决了。感觉发论文的这些学生脑子都是浆糊,就这还发表在顶刊上,只能说学术界太辣鸡了。就把下面几个装完了。然后试着运行一下pip install -r requirements.txt。类似,不得不说这些发论文的人都太不细心了,让人怎么相信你们的研究结论呢?我就想问候一下作者的家人,这是个什么鬼?不应该是下面这个吗?还是没有说python的版本。原创 2024-12-15 15:21:26 · 355 阅读 · 1 评论 -
persistent_homology_cpu.cpython-37m-x86_64-linux-gnu.so: No such file or directory类似问题的解决思路
仔细看一下作者的文件夹,有torch_persistent_homology和repo/torch_persistent_homology两个文件夹,但是这两个文件夹作者完全没有解释啊。关于第一个问题,虽然上面这个repo没有setup.py,但是TopoGDN的作者实际上是加上了setup.py的(虽然自己一句也没提起什么作用)。就简单记录这么多,想着有朋友可能会遇到类似的问题(不一定是一样的过程,但是解决思路是相似的),就简单记录一下。不得不说,这个repo的质量也太差了,呵呵呵。原创 2024-11-05 15:37:26 · 774 阅读 · 0 评论 -
多个nvidia GPU怎么限制功率
这也是个很简单的问题,我简单总结一下,目前在家里有一台双3090涡轮版的PC,声音真的很大,可是很多时候我们其实并不需要其功率很好,只要显存够用就可以。看有些人说Ubuntu上现在不能设置,可是我在24.04上测试是可以设置的。另外,上面的文章往往只提到用一个GPU时的情况,我总忘记怎么指定两个卡。重启后需要重新运行。原创 2024-09-22 21:37:14 · 1364 阅读 · 0 评论 -
Windows 11上pip报‘TLS/SSL connection has been closed (EOF) (_ssl.c:1135)‘的解决方法
然后再运行pip就可以正常安装了。感觉在国内装环境,百分之50的时间都是在处理和网络相关的问题,呵呵呵。原创 2024-09-11 11:17:41 · 2591 阅读 · 1 评论 -
Windows 11怎样在不同Anaconda环境中安装不同版本的CUDA
感觉当时的解决方法还比较复杂。最新有一台新的Windows 11系统想安装低版本的CUDA,感觉肯定不能使用上面这个博客的方法了(要改什么软连接和修改环境变量),所以搜了些博客,但是发现有些并不好用。可以看到这两次的CUDA版本确实是不一样的。感觉这个方法比我几年前总计的简单多了,不知道在Linux上适用不,感觉也应该适用,感兴趣的朋友可以自己测试一下。发现CUDA的版本并没有变化,呵呵呵,这个方法不靠谱啊。原创 2024-09-09 17:19:19 · 846 阅读 · 0 评论 -
调用Ollama API的时候怎么指定输入长度(上下文长度)
这样就指定了上下文长度为8192。原创 2024-08-15 21:42:06 · 3850 阅读 · 0 评论 -
Ubuntu 24.04上报:Error: could not connect to ollama app, is it running?的解决方法
其实User,Group之类的都不需要修改,主要是要加上端口号才能正常运行。原本42GB的qwen2:72b变成49GB了,interesting,虽然大小只变化了一点,但在CPU上之后速度慢了很多。可以看到服务是active的。说起来这个问题真实让人无语。原创 2024-08-10 22:36:06 · 10659 阅读 · 3 评论 -
使用LangChain+Ollama的时候怎么使用其他的embedding模型
其中有两个是Deprecated的,而我们平时用到的HuggingFace的embedding model都基本以SentenceTransformer形式提供,我测试了一下,embeddings.huggingface.HuggingFaceBgeEmbeddings这个类是可以使用的,embeddings.huggingface.HuggingFaceInstructEmbeddings这个会报错,也没有仔细检查原因。经过测试,发现比Ollama自己的embedding模型的中文效果好多了。原创 2024-06-25 09:23:55 · 4375 阅读 · 3 评论 -
用LangChain调用Ollama的时候一个小问题
来测试其是否正常,通常会出来“Ollama is running”,然后我习惯性地从Chrome把地址拷贝到VS Code,真是太奇怪了,试了几次才发现,原来不能带那个反斜杠!这个问题真是让人无语。说来让人无语,简单记录一下。安装好Ollama后,我们通常通过访问。原创 2024-06-21 16:53:50 · 2276 阅读 · 0 评论 -
在Windows上用Llama Factory微调Llama 3的基本操作
我们构造数据集的时候,最简单的方法就是只构造instruction和output。当然,如果训练数据集比较小的话,测试的效果也不会太好。如果大家只是想对微调效果和特定问题进行展示,可以训练模型到过拟合,呵呵呵。训练完成后切换到Export,然后在上面的“微调方法”——“检查点路径”中选择刚才存储的目录Train_2024_xxxx之类,然后指定导出文件的目录,然后就可以导出了。不过这时候还没有模型参数文件,对于国内用户而言,可以在这里。选择自己的私有数据集,可以预览一下,然后就可以开始训练了。原创 2024-06-07 17:18:08 · 4027 阅读 · 1 评论 -
怎么通过OpenAI API调用其多模态大模型(GPT-4o)
现在只要有额度,大家都可以调用OpenAI的多模态大模型了,例如GPT-4o和GPT-4 Turbo,我一年多前总结过一些OpenAI API的用法,发现现在稍微更新了一下。其实也是比较简单的,就是本地图片需要用base 64先编码,然后再上传。当然,大家用的时候还是要注意花费,现在感觉还是有点贵的。原创 2024-05-19 20:57:32 · 8514 阅读 · 0 评论 -
设置Ollama在局域网中访问的方法(Ubuntu)
趁着Llama3的热度试了一下Ollama,果然部署推理大模型很有用。一个现实的需求是,如果我们要在局域网中访问Ollama上大模型的服务,应该怎么办呢?参考了一下其他博客的方法。就可以通过局域网或者另一台机子上的LangChain调用了。其次配置防火墙,打开端口。首先打开Ollama的配置文件。原创 2024-04-22 23:24:02 · 18226 阅读 · 7 评论 -
Python改变图大小并按照短边居中剪裁的方法
发现Stable Diffusion Webui,Lora-scripts之类的还是不够智能,预处理阶段有这样的需求。目标很简单,把一个超大的图缩小成正方向(如1024*1024),并保留短的一边,长的一边剪裁,并且剪裁过程居中。这段代码应该一看就懂。原创 2024-04-21 23:21:32 · 271 阅读 · 0 评论 -
stable-diffusion-webui报OSError: Can‘t load tokenizer for ‘openai/clip-vit-large-patch14‘的正确解决方法
把repo clone到openai文件夹就行了。何必要用硬编码呢,完全违反软件工程实践。则需要在标红的目录下新建openai文件夹。不知道这么简单的问题为什么大家讲不清除。但是我发现很多朋友是改代码中的绝对路径的,这非常不科学,为啥要用硬编码绝对路径呢?原创 2024-04-16 22:16:28 · 3537 阅读 · 0 评论 -
Python调用ChatGPT(gpt-3.5-turbo)的最简单例子
不知道细节的朋友可以看看我之前的几篇博客。原创 2023-04-23 06:09:32 · 2696 阅读 · 1 评论 -
使用OpenAI API(或ChatGPTAPI)的时候应该选择哪个model
因为GPT-4并不是人人可用的,所以目前gpt-3.5-turbo是最应该尝试使用的。原创 2023-04-21 16:25:04 · 2426 阅读 · 0 评论 -
如何在Ubuntu上方便使用OpenAI API key
其实已经说得很清楚了,在生产环境中,务必通过环境变量加载API key。这样做也能使自己的代码更安全,更方便地和别人共享。即可以设置API key了,而且也不怕key通过代码泄密,只有能访问你操作系统的人(也就是你自己)才能看到。就可以看到你的API key了。原创 2023-03-26 08:28:53 · 3833 阅读 · 2 评论 -
怎么样使用OpenAI的Python API
其次,如果在刚才第一个页面中点Sign up,然后登录,在右上角自己用户名的图标点一下,可以看到有“View API keys”,然后就可以创建或者使用自己已有的API key了。有趣的是,生成了的API key,第二次在网站上也看不到字符串了。可以在嵌入之前先计算一下序列的长度,但文档里并没有说超长了怎么处理,是截断还是直接不处理了呢。这样就会列出所有的model名字,不过大家应该注意,每一次API调用都是要收钱的,我也不知道打印个list需要收钱不,保险起见,不运行也可以。原创 2023-03-26 07:41:18 · 1536 阅读 · 0 评论 -
unsupported GNU version! gcc versions later than 10 are not supported! 的解决方法
然后按序号选择一个老的版本,再看version,果然已经变成低版本了。再重新安装torch-scatter,果然就好了。今天尝试使用别人一个项目(原创 2023-03-20 16:53:18 · 1437 阅读 · 0 评论 -
NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver的一种简单解决方法
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver的一种简单解决方法原创 2023-03-19 09:48:24 · 711 阅读 · 0 评论 -
使用Python Seaborn绘制热力图(heatmap)的时候怎么改变配色
【代码】使用Python Seaborn绘制热力图(heatmap)的时候怎么改变配色。原创 2023-02-03 17:11:24 · 7296 阅读 · 3 评论 -
基于Conda的PyTorch Geometric报“段错误 (核心已转储)”的解决方法
来看,目前(2022年11月),PyTorch稳定版本是1.13.0,而从第二个网页来看,PyG最多支持的PyTorch版本是1.12.*,所以应该安装更老一点的PyTorch。另外,从上面两个网页来看,最好是全都使用conda安装。也会报“段错误 (核心已转储)”。捜了一下,发现主要是因为PyTorch和PyG的版本不对应所致。大家都提到要注意PyTorch和PyG的版本的对应。发现都通过Conda安装后,是可以解决上面的“段错误 (核心已转储)”的报错的。怎么感觉PyG的开发有点滞后了呢?原创 2022-11-13 17:10:57 · 2040 阅读 · 0 评论 -
在Ubuntu 22.04上安装CUDA和cuDNN的经验记录(2022年11月)
会直接提示:Failed to verify gcc version. 安装gcc后,不用做降级,就可以直接运行了。安装方式也变多了很多。我之前的博客也已经写得很清楚了。原创 2022-11-13 11:55:01 · 2596 阅读 · 0 评论 -
Transformers的RoBERTa model怎么使用word level的tokenizer
不得不说,和上面相比,差别有点大啊(例如:tokenizer = Tokenizer(WordLevel()),以及必需要加tokenizer.pre_tokenizer = Whitespace()这一行)。其实这个问题应该是很好解决的,想不到竟然花了3个多小时。我去,这个原因我也是醉了,所以最后手动建立一个空白的merges.txt文件,然后就可以正常保存和使用这个tokenizer了。从之前说的RoBERTa的示例代码可以知道, 需要再重新加载的tokenizer需要在一个文件夹下,所以这个也不行。原创 2022-08-24 12:32:20 · 1982 阅读 · 4 评论 -
将transformers的tokenizer处理之后(如BPE)的序列映射回输入序列
从上面的输出中可以看到,encoded['input_ids']对应的就是输入到transformer encoder的tensor输入,.tokens()返回的是tokenize以后的token,.word_ids()返回的是tokenize以后的token的编码(而并不是输入sequence的)。为了展示方便,省略了之前很长的那些print,可以看到,最后生成的这个word_2_token_mapping是完全正确的。,这个和API文档里说的完全不一样啊。,这个表明的是在原输入序列中的位置。原创 2022-08-20 12:36:30 · 1438 阅读 · 1 评论 -
在Ubuntu上安装并运行DeepProbLog的简单过程
可以通过binary形式安装,照着输入命令就可以了,然后再运行pythonaddition.py,发现就可以正常开始训练了。,原来是个Prolog的engine,想不通,我只想运行一下这个model,为啥还要装Prolog呢,这个model不是基于Problog的吗?就是论文里说的图像数字相加的例子。这篇博客只是简单记录一下,没什么技术含量。...原创 2022-07-26 14:47:20 · 383 阅读 · 0 评论 -
PyTorch使用index_add_报:one of the variables needed for gradient computation has been modified
简单记录一下这个问题的解决。我需要使用tensor A的一些行来替换tensor B的一些行(通过一个表示索引的tensor来指定位置),发现可以使用:torch.index_select和torch.index_add来实现。具体等会来介绍一下,先说说怎么解决这个报错。发现PyTorch的文档主要介绍的是:torch.Tensor.index_add_:torch.Tensor.index_add_ — PyTorch 1.11.0 documentationtorch.index_add — P原创 2022-04-30 14:16:52 · 716 阅读 · 0 评论 -
使用DGL实现RGCN时报Assertion srcIndex < srcSelectDimSize failed.的解决办法
这个问题在不同的framework上碰到过很多次了。我之前没有用过DGL实现过RGCN,简单看了一下网上的例子,按照这里:dgl.nn.pytorch.conv.relgraphconv — DGL 0.8.1 documentation和GCN的区别就是forward中要输入一个表示edge类型的tensor,我就是因为这里的输入有点问题,所以才报错了。具体来说,看这里注释中的例子:dgl/relgraphconv.py at master · dmlc/dgl · GitHub输入的te原创 2022-04-23 07:17:04 · 5219 阅读 · 0 评论 -
怎么实现GCN Siamese network?
这篇博客只是简单谈一下思路:GCN+Siamese Network可以实现对graph相似度检测,其思路和其他Siamese network的思路是相同的,如果我们在GitHub上搜索“gcn siamese”,可以看到如下的结果:简单看一下这些Repo是怎么组织数据的:https://github.com/flychen321/siamese_gcn/blob/master/datasets.py感觉大体思路都和基于CNN的Siamese network差不多:PyTorch之—S原创 2022-04-13 16:48:05 · 1330 阅读 · 0 评论 -
PyTorch Dataloader报CUDA error: initialization error的解决方法
这里也就简单记录一下,和这篇博客说的类似:RuntimeError: CUDA error: initialization error_IMU_YY的博客-优快云博客除了上面这个报错,还报了:During handling of the above exception, another exception occurred:除了这篇博客的解决方法,还可以直接把num_workers这个参数删掉即可。例如我从train_dataloader = DataLoader(dataset=t原创 2022-04-13 05:45:33 · 2021 阅读 · 0 评论 -
XGBoost 1.5.0的sklearn接口怎么使用GPU
虽然很早就听说XGBoost:Chen, Tianqi, and Carlos Guestrin. "Xgboost: A scalable tree boosting system." In Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining, pp. 785-794. 2016.已经引用一万多次了。但是我没怎么用过,如果是传统机器学习方法,还是用R原创 2021-11-19 14:18:29 · 4397 阅读 · 1 评论 -
记录一个Ubuntu中python深度学习程序的内存泄漏情况及其处理
不得不说,很多看似很成熟的程序,也会有很多内存泄露的问题:由于实验需要,我需要在硬盘上生成很多的小文件,然后调用srcML处理(我也试过直接在内存中读写,但会有其他问题),然后根据处理结果生成embedding。最终生成几个list,每个list大概有十几万个图。本来很简单的过程,但是跑实验的时候遇到了好几个内存泄漏问题:1. 我希望看到生成小文件的过程,因为可以判断程序运行的速度,就一直开着文件夹看,结果看到nautilus逐渐把内存占满了,我以为是因为频繁读写硬盘造成的:Ubuntu 中的原创 2021-10-01 13:39:42 · 871 阅读 · 0 评论 -
Gensim的doc2vec如何使用新的数据update model
先吐槽一下,我觉得Gensim的种种设计都特别反人类,开发这个库的人脑子都是浆糊。下面给出示例代码:import gensimimport datetimedef Doc2VecModelBuilding(): sentence='0 INT_EQUAL ARG3 CONST'.split(' ') print('Start reading the corpus') sentences=gensim.models.doc2vec.TaggedLineDocument(原创 2021-09-17 05:06:01 · 305 阅读 · 0 评论 -
PyTorch二分类时BCELoss,CrossEntropyLoss,Sigmoid等的选择和使用
这两天我们有一篇顶会的论文需要Minor Revision,reviewer说让我们在网络图中把fully connected layer画出来。对到底应该画图、画到多详细有点疑问,所以简单总结一下。我们在论文中解决的是一个二分类的问题,我们说hidden state送入fully connected layer+sigmoid做分类,但没有在网络图中画出来,有reviewer就让我们改图了。不过画了fully connected layer,还需要画sigmoid吗?这里就总结一下使用PyTorch做原创 2021-09-08 01:52:03 · 8997 阅读 · 2 评论 -
关于Gensim的word2vec要不要train的疑问
我一直有这方面的疑问,看网上大部分的例子,大家都是直接创建了model即可,例如这里:https://www.jianshu.com/p/5f04e97d1b27给出的例子:from gensim.models import word2vec import timestart = time.clock()model=word2vec.Word2Vec(train_content, size=200)end = time.clock()print('Running time: %s Sec原创 2021-08-19 02:31:41 · 778 阅读 · 5 评论 -
PyTorch的NLLLoss和CrossEntropyLoss区别和联系
这个问题其他网友已经总结得很好,例如:https://blog.youkuaiyun.com/qq_22210253/article/details/85229988为了方便大家更进一步理解,我把上面博客中的例子总结到了一个文件中,方便大家以此为例学习:import torchimport torch.nn as nninput=torch.randn(3,3)print(input)sm=nn.Softmax(dim=1)print(sm(input))log_result=torch.l原创 2021-08-16 15:43:45 · 186 阅读 · 0 评论