自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 从代码上深入学习GraphRag

最终生成实体-摘要-社区-社区摘要。使用语言模型(LLM)来提取和总结实体图中的实体描述。自下而上地生成每个社区层级及其组成部分的摘要。如果社区 A 是最高层级的社区,我们将获得有关整个知识图谱的报告。如果社区是较低级别的,则我们将获得有关局部集群的报告。生成社区报告使用 LLM 生成每个社区的摘要。这将使我们能够了解每个社区中包含的不同信息,并从高层次或低层次的角度提供对知识图谱的范围性理解。这些报告包含管理概述,并引用社区子结构中的关键实体、关系。总结社区报告。

2025-04-04 14:32:17 663

原创 python算法和数据结构刷题[6]:二叉树、堆、BFS\DFS

两个数的和:和自己父节点的和。3个数的和,和自己父节点的和再加上父节点的父节点或者兄弟的和。如果删除的节点有左右子树,找到这个节点的左子树中最大的节点,代替这个节点,然后删除这个最大的节点,或者找右子树中最小的去替代这个节点去代替他。如果删除的是只有左子树或者右子树的节点,先找到节点的位置,让这个子树替代这个节点然后删除这个子树的节点。根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆,堆总是一棵完全二叉树。2)若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;

2025-02-02 17:41:28 1166

原创 python算法和数据结构刷题[5]:动态规划

动态规划(Dynamic Programming, DP)是一种算法思想,用于解决具有最优子结构的问题。它通过将大问题分解为小问题,并找到这些小问题的最优解,从而得到整个问题的最优解。动态规划与分治法相似,但区别在于动态规划的子问题通常不是相互独立的。动态规划的核心是解决重复子问题。例如,斐波那契数列问题,可以通过递归实现,但效率低下,因为会有重复计算。动态规划通过存储已解决的子问题的答案,避免重复计算,从而提高效率。这种方法需要额外的存储空间,是一种空间换时间的策略。

2025-02-02 05:41:24 838

原创 python算法和数据结构刷题[3]:哈希表、滑动窗口、双指针、回溯算法、贪心算法

所有可能的结果」,而不是「结果的个数」,一般情况下,我们就知道需要暴力搜索所有的可行解了,可以用「回溯法」。回溯算法关键在于:不合适就退回上一步。在回溯算法中,递归用于深入到所有可能的分支,而迭代(通常在递归函数内部的循环中体现)用于探索当前层级的所有可能选项。

2025-02-01 03:52:15 1010

原创 python算法和数据结构刷题[4]:查找算法和排序算法

归并排序的优点之一是它不受输入数据分布的影响,始终保持O(n log n)的时间复杂度,但其空间复杂度较高,需要额外的存储空间来保存临时数组。第一步,我们先使用一次二分查找来找到对应的 target 值所在的一维数组里面,一旦锁定一维数组,就可以使用我们平时最熟悉的一维数组的二分查找了。归并排序是一种稳定的分治法排序算法,它通过将数组分为两个子数组,递归对两个子数组进行排序,然后将两个有序子数组归并为一个有序数组来将元素按照从小到大(或从大到小)的顺序排列。来将元素按照从小到大(或从大到小)的顺序排列。

2025-02-01 03:06:25 873

原创 python算法和数据结构刷题[2]:链表、队列、栈

注意:链表长度有奇数和偶数两种情况,对于奇数,如1->2->3->2->1,此时快指针fast会停在最后的1处,满指针slow停在中间的3处,这时需要对slow.next的链表进行翻转。后序遍历链表,可以使链表隐式的倒序访问节点,访问过程中,维护一个正序的指针即可。先利用快慢指针,找到链表的后半段,将链表的后半段翻转,再按顺序对比前半段和后半段的值是否一致,最终恢复原链表(后半段再翻转一次)即可。这几种方法的时间复杂度都是O(N),前三种方法的空间复杂度是O(N),第四种方法的空间复杂度是O(1)

2025-01-30 04:05:37 940

原创 python算法和数据结构刷题[1]:数组、矩阵、字符串

一画图二伪代码三写代码时间复杂度和空间复杂度时间复杂度空间复杂度​。

2025-01-29 14:04:57 1742

原创 python学习笔记--python知识汇总

‌。)的类方法:在创建对象时,我们不直接使用。

2025-01-07 17:50:21 862

原创 [python学习笔记]--异常、with、assert

Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

2024-12-27 04:06:13 339

原创 [python学习笔记]对象、引用、浅复制、深复制、内存管理机制

学了这么多年编程,发现在学校都是浑水摸鱼,从来没有精通过一门语言,一个月熟悉python和算法。不积硅步,无以至千里。本文笔记来自以下博客,请参考原文。

2024-12-27 01:21:48 1157

原创 git学习笔记

参考这个博客讲的非常好:集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式版本控制系统最大的毛病就是必须联网才能工作。

2024-12-13 02:56:11 737

原创 RAG基础学习

在自然语言处理领域,大型语言模型(LLM)如GPT-3、BERT等已经取得了显著的进展,它们能够生成连贯、自然的文本,回答问题,并执行其他复杂的语言任务。文本的长度是另一个关键因素,影响了文本编码的结果。这种方法基于一个存储在图数据库中的知识库,通常以三元组的形式表示为,其中每个三元组都附带相关的属性信息。TFIDF的最终值是将词项在文档中的频率和在整个文档集合中的逆文档频率相乘,这样可以得到一个更全面的评估,既考虑了在文档中的重要性,也考虑了在整个文档集合中的稀有性。

2024-12-11 03:31:20 768

原创 Flash Attention

因为SRAM利用晶体管存储数据,而HBM则是通过堆叠DRAM芯片实现高带宽和容量。然而,在实际应用中,由于HBM的堆叠设计和高速串行接口,其整体性能仍然非常出色。:HBM通过堆叠多个DRAM芯片实现了更高的容量和带宽,而SRAM的。因此,在需要处理大规模数据集和复杂计算任务的应用中,HBM更具优势。

2024-11-26 15:53:13 504

原创 DeepSpeed-chat RLHF实战

​。

2024-11-23 17:16:10 1009

原创 高效微调 fine tuning代码实战

参数高效微调、有监督微调(指令微调)、强化学习微调、上下文学习。

2024-11-21 20:03:10 419

原创 基于Acclerate的transformers模型分布式训练解决方案

数据并行、流水并行、张量(权重)并行:安装必要的库:transformers==4.36.2 accelerate==0.26.1 evaluate datasets - 阿里源。

2024-11-20 17:01:41 1078

原创 基于LLaMA Factory对LLama 3指令微调的操作学习笔记

在vscode中用连接云服务器,打开文件目录。

2024-10-28 19:05:35 713

原创 python算法学习笔记之查找算法

删除操作:如果删除叶子节点删除就可以,如果删除的是只有左子树或者右子树的节点,先找到节点的位置,让这个子树替代这个节点然后删除这个子树的节点,如果删除的节点有左右子树,找到这个节点的左子树中最大的节点,代替这个节点,然后删除这个最大的节点,或者找右子树中最小的去替代这个节点去代替他。此外,有些资料还会提到第五条规则,即每个叶子节点(最后一个节点)都是黑色的,这其实是第四条规则的一个推论,因为在红黑树中,叶子节点通常被视为指向NULL的节点,而所有这样的节点都被视为黑色。节点内的数据操作是在内存中进行的。

2024-10-25 18:10:59 1307

原创 LLM----BERT+HuggingFace理论及基础入门实战

在BERT的输入序列的最开始,会添加一个特殊的标记[CLS]。这个标记的作用是作为整个输入序列的代表,用于后续的分类任务。例如,在情感分析任务中,模型会基于这个标记的输出向量来判断整个句子的情感倾向。这在处理成对的句子或段落时特别有用,比如问答任务中的问题和答案,或者句子关系判断任务中的两个句子。运用到的是transformer的编码器结构,可以用于文本的相似度计算、序列标注、文本分类。BERT模型考虑了所有的上下文,GPT只考虑了之前的n-1刻的前文。BERT 采取的是「分字」,即每一个汉字都切开。

2024-10-22 16:36:48 1111

原创 LangChain

LangChain 的提供了以下 6 种标准化、可扩展的接口并且可以外部集成的核心模块:模型输 入/输出(Model I/O)与语言模型交互的接口;数据连接(Data connection)与特定应用程序的数 据进行交互的接口;链(Chains)用于复杂的应用的调用序列;智能体(Agents)语言模型作为推 理器决定要执行的动作序列;记忆(Memory)用于链的多次运行之间持久化应用程序状态;回调(Callbacks)记录和流式传输任何链式组装的中间步骤。

2024-10-10 17:57:03 930

原创 《大规模语言模型从理论到实践》--大模型推理压缩

低秩分解是指通过合并维数和施加低秩约束的方式稀疏化卷积核矩阵,由于权值向量大多分布在低秩子空间,所以可以用少数的基向量来重构卷积核矩阵,达到缩小存储空间的目的。请复习线性代数LoRA是一种低秩分解的参数微调方法五、推理 VllmFlashAttention图解(如何加速Attention) - 知乎 (zhihu.com)六、总结A:压缩参数 B:压缩结构一轮复习完成,二轮复习我将从实践出发完善理论知识的学习。1.掌握清晰经典大模型的原理。2.跟着项目熟悉每一步的实现。3.跟着面试题库查漏补缺。

2024-10-10 16:30:05 912

原创 《大规模语言模型从理论到实践》--强化学习(RLHF、PPO、DPO)

RLHF(Reinforcement Learning from Human Feedback):强化学习(Reinforcement Learning)结合人类反馈(Human Feedback)来微调大语言模型。大语言模型的训练步骤包括:预训练、指令微调(SFT)、对齐。对齐(alignment)的含义是让 LLM 与人类的价值观保持一致。这就是 RLHF 的用武之地。智能体在环境中获取某个状态后,会根据该状态输出一个动作,也称为决策。

2024-10-08 16:42:22 1527

原创 《大规模语言模型从理论到实践》--Fine-tuning微调

提示学习(Prompt-based Learning)以下图为例包括三个步骤:提示添加、答案搜索、答案映射。Prompt-based Learning是一种更广泛的概念,它涵盖了利用预训练语言模型处理各种下游任务的方法,而Prompt Tuning和Prompt Engineering则是这种方法的两种具体实现。Prompt Tuning侧重于通过修改输入提示来引导模型生成符合特定任务或情境的输出,而无需对模型的全量参数进行微调。它更关注于提示的修改和模型输出的引导。

2024-10-08 11:23:59 1329

原创 《大规模语言模型从理论到实践》--分布式训练

定义:显存是显卡上的专用高速缓存,用于存储图形处理器(GPU)在处理图像和视频数据时所需的临时数据。功能:显存的主要作用是提供GPU快速访问的数据存储,支持图形渲染和并行计算任务。定义:内存(RAM)是计算机系统中的一种易失性存储器,用于存储CPU执行程序时所需的临时数据。功能:内存为CPU提供快速访问的数据存储,支持程序的运行和数据的处理。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行。

2024-10-06 21:42:54 1394

原创 《大规模语言模型从理论到实践》---大模型原理及GPT LLAMA原理

尽管n 元语言模型能缓解句子概率为 0 的问题,但语言是由人和时代创造的,具备无尽的可能性,再庞大的训练语料也无法覆盖所有的 n-gram,而训练语料中的零频率并不代表零概率。强化学习(Reinforcement Learning)阶段根据数十万用户给出的提示词,利用在前一阶段训练的 RM 模型,给出 SFT 模型对用户提示词补全结果的质量评估,并与语言模型建模目标综合得到更好的效果。然而,在不加约束的情况下,模型有可能学到一些平凡解(如恒等映射),这对于下游的任务显然是没有用的。

2024-10-05 19:07:10 1749

原创 graphrag+openwebui+fastapi 完成前端提问

在本地完成到graphrag的局部查询和全局查询后,接下来实现openwebui来实现graphrag的前端查询。3.删除所有与协变量相关的代码。(这个是这个视频作者自己新增的图信息代码,我全删了保持官方的)1.放入graphrag的输出结果。首先需要安装所有的依赖项。2. 修改模型api信息。

2024-08-02 09:08:15 1380

原创 GraphRAG+ollama+Lmstudio实操完整详细流程

中,我完成到了初始化GraphRAG这里,之后的大模型Api没有调用,本文记录了整个GraphRAG+ollama+Lmstudio实操完整详细流程。包括完整的GraphRAG的操作,ollama的端口获取、Lmstudio完整的模型瞎子和Api获取。小白学习,可供大家参考。

2024-07-26 16:52:19 5058 11

原创 Qwen2模型微调展示+模型部署

4.运行 一个终端一个web端,需要指定预训练模型的路径。2.在魔塔社区下载预训练语言模型。5.微调llama微调框架适用。3.glm4的环境可以通用。1.github下载项目。同样可以查看占用的显存。

2024-07-23 16:43:05 467

原创 GLM4模型环境配置+模型微调+模型部署学习笔记

本篇文章的目的在于记录视频学习如何对大预言模型的实操。

2024-07-23 16:24:31 1955

原创 python学习笔记--数据结构

python数据结构知识学习

2024-07-11 14:59:13 171

原创 jupyter报错stacklevel

init(self)运行以下命令解决问题:

2024-06-01 20:51:55 424 1

原创 SQL学习笔记-数据汇总(avg、max、min、count)

如果列的数据类型不是数字类型,还需要使用cast进行类型转换。count()与where的混用。统计所有列的行数:会统计空值。统计某一列的行数:会忽略空值。

2024-05-27 22:40:50 265

原创 SQL-学习笔记

同样是先随机排序,再选一个,这个函数效率高一些。先随机排序,再选一个,这个函数效率低。

2024-05-26 21:02:15 248

原创 SQL学习笔记-和日期、时间相关的操作

datapart具有多种可选参数。SQL SERVER中可以。

2024-05-26 13:08:01 332

原创 SQL学习笔记-范围查找(BETWEEN)

结合order by排序某范围内的数据注意:order by需要是最后的语句not between 查询不在某范围内的数据。

2024-05-25 22:25:55 504 1

原创 SQL学习笔记-多条件查询(in)和模糊查询(like)

商%表示商开头的模糊查询,%商表示商结尾的,%商%表示任何位置的。%表示由零个或多个字符组成的任意字符串。

2024-05-23 04:02:55 2113

原创 SQL学习笔记-数据排序

1.order by 语句升序和降序时的属性需要是数值型,char型是不会排序的,升序是ASC,降序是DESC2.order by语句需要是select中的最后一条语句。3.order by语句不加ASC和DESC时,默认升序。4.可以使用列别名进行排序。5.因为比较运算符不能操作null,所以对null值不进行排序。

2024-05-23 02:16:10 664

原创 SQL学习笔记-数据过滤及运算符

二、第三章 数据过滤的深入探讨。

2024-05-22 18:31:58 376 1

原创 SQL学习笔记-第二章数据的基本查询

处理逻辑:先where查询符合条件的记录,然后再选取指定的列。可以看到结果中并没有实现将company列显示为唯一值的操作。goods AS `商品`;注意需要将distnct放到第一列前。name AS `名字`,在SQL中空格会被忽略。

2024-05-19 16:53:57 359 1

空空如也

空空如也

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

TA关注的人

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