- 博客(509)
- 资源 (12)
- 收藏
- 关注

原创 Python之元祖(tuple)基础知识点
tuple是一个的序列,它的元素可以是任何类型,并且可以重复。tuple使用括起来,例如:(1, 2, ‘a’, ‘b’)。相比于list,tuple的操作比较受限,但它更加轻巧,因此可以提高代码的效率。
2023-11-28 11:21:45
2053

原创 Python之字典(dict)基础知识点
字典是python当中的一种数据类型,其结果跟之前学过的列表、元组有很大区别,字典内部是一个一对一映射的数据关系。
2023-07-10 17:18:03
829

原创 Python之字符串(str)基础知识点
split()函数将字符串分割成几部分,返回结果是一个列表。当token为空时,默认删除空白符(含’\n’,‘\r’,‘\t’,’ '),当非空时,根据指定的token进行删除。:删除string字符串中结尾处(right)的含有token字符串(该字符串可以与token的顺序不一致):删除string字符串中开头处(left)的含有token字符串(该字符串可以与token的顺序不一致):删除string字符串中开头(left)、结尾处(right)的token字符串。
2023-05-30 09:57:46
864

原创 Python之列表(list)基础知识点
del 是 Python 中的关键字,专门用来执行删除操作,它不仅可以删除整个列表,还可以删除列表中的某些元素。obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等,但不能是单个的数字。需要注意的是,remove() 方法只会删除第一个和指定值相同的元素,而且必须保证该元素是存在的,否则会引发 ValueError 错误。使用+运算符可以将多个序列连接起来;当插入列表或者元祖时,insert() 也会将它们视为一个整体,作为一个元素插入到列表中,这一点和 append() 是一样的。
2023-02-07 16:03:17
3413

原创 Python中Numpy的基本操作
np.unique()用法一 :a = np.unique(A)对于一维数组或者列表,unique函数去除其中重复的元素,并按元素由大到小返回一个新的无元素重复的元组或者列表。样例 :unique_elements = np.unique([4, 1, 1, 2, 2, 3])print(unique_elements)# [1 2 3 4]用法二 :c,s=np.unique(b,return_index=True) return_index=True表示返回新列表元素在旧列表中
2022-01-05 09:57:49
1379

原创 python之txt文件基本操作
如下所示, 我们想删除右括号 ] 左边的内容, 得到 Today is Wednesdayline_data = '2021-09-01 [] Today is Wednesday'head, sep, tail = line_data.partition('] ')print(tail)输出结果如下所示:Today is Wednesday
2021-09-16 18:54:57
17921
1

原创 Python之DataFrame基础知识点
字典嵌套字典# 字典嵌套字典stu_dict = { 'student_1' : {'name': 'Jack', 'gender': 'M', 'score': 80}, 'student_2' : {'name': 'Mary', 'gender': 'F', 'score': 85}}{'student_1': {'name': 'Jack', 'gender': 'M', 'score': 80}, 'student_2': {'name': 'Mary', 'gender
2021-07-20 15:40:21
20945
2

原创 一些神奇好用的网站
1. ilovepdf网址: https://www.ilovepdf.com/功能: PDF文件合并, PDF文件分割, PDF文件转化等2. Connected Papers网址: https://www.connectedpapers.com/功能: 文引用关系图, 快速查找相关论文3.Overleaf网址:https://www.overleaf.com/功能: latex在线编辑...
2021-05-06 15:29:14
770

原创 Linux常用命令记录
记录自己经常会用到的一些Linux命令,以备不时之需~安装软件(来自源服务器)sudo apt-get install xxx下载的软件的存放位置:/var/cache/apt/archives安装后软件的默认位置:/usr/share可执行文件位置:/usr/bin配置文件位置:/etclib文件位置:/usr/lib安装.deb软件(来自本地.deb文件)sudo dpkg...
2020-03-17 11:54:51
324

原创 screen / nohup 实现后台运行程序
利用screen会话模式运行程序,会话终端页面关闭时,程序也不会被停止运行。ubuntu下安装screensudo apt install screen 创建会话创建名为 scr_nam 的会话screen -S scr_name 会话创建成功后即可在该会话下登录服务器,运行程序。打开会话关闭会话后,想要再打开 scr_name 会话,只需输入screen -r scr_...
2020-03-11 18:19:42
704
原创 【大模型】为什么现在的LLM都是Decoder only的架构?
泛化能力更强(1)Next Token Prediction的预训练目标任务难度更高:Decoder-only模型通过自回归(AR)逐词预测下一个token,每个位置仅能依赖历史信息(无法“偷看”未来),迫使模型学习更强的上下文建模能力。Zero-shot/Few-shot表现更好:论文通过实验证明,在相同参数量和数据规模下,Decoder-only架构在零样本(zero-shot)任务上的泛化性能显著优于Encoder-Decoder(如T5)或纯Encoder架构(如BERT)。
2025-03-31 22:20:38
707
原创 【大模型】微调一个大模型需要多少 GPU 显存?
模型微调所需的 GPU 显存取决于多个因素,包括模型大小、微调方法和优化策略。全量微调需要较大显存,而高效微调方法如 LoRA 和 QLoRA 可以显著减少显存需求。在实际项目中,还需考虑硬件配置和训练策略等因素来更精确地估算 GPU 显存需求。
2025-03-31 21:30:57
927
原创 【大模型】归一化方法之Batch Norm, Layer Norm, RMS Norm
Normalization在统计学中一般翻译为归一化,现在已经成了神经网络中不可缺少的一个重要模块了。还有类似的是Standardization,一般翻译成标准化。这两个概念有什么区别呢?归一化是将数据缩放到0-1之间标准化是将数据缩放到均值为0,方差为1的正态分布。有时候Normalization和Standardization会混淆,注意看清楚即可,不纠结细节。注意:我们下面讲到的Normalization归一化严格讲应该称为Standardization 标准化。
2025-03-29 10:57:46
700
原创 【大模型】激活函数之SwiGLU详解
Swish是由Google Brain提出的一种激活函数,它的数学表达式如下:其中σx\sigma(x)σx是sigmoid函数,β是一个可学习的参数。当β趋近于0时,Swish函数趋近于线性函数yx2y = x^2yx2当β取值为1时,Swish函数是光滑且非单调的,等价于SiLU激活函数当β趋近于无穷大时,Swish函数趋近于ReLU函数。
2025-03-28 22:23:30
659
原创 主流大模型采用的架构、注意力机制、位置编码等汇总表
表中的一些模型已经是很久之前的了,比如DeepSeek V3中使用了MLA的注意力机制。先占个位,后续如果有更新的汇总表再来更新吧。
2025-03-28 21:43:46
303
原创 【大模型】大模型评价指标汇总解析
(1)基于重叠的度量BLEU:BLEU评分是一种基于精度的衡量标准,范围从0到1。值越接近1,预测越好。ROUGE:ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一套用于评估自然语言处理中自动摘要和机器翻译软件的度量标准和附带的软件包。ROUGE-N:测量候选文本和参考文本之间的n-gram(n个单词的连续序列)的重叠。它根据n-gram重叠计算精度,召回率和F1分数。
2025-03-27 16:37:58
958
转载 大模型训练框架DeepSpeed原理解析及应用实战
大模型训练框架 DeepSpeed 详解DeepSpeed 是一个由微软研究院开发的深度学习优化库,它主要针对大规模分布式训练进行了优化,尤其是在使用大量 GPU 进行训练时可以显著提高效率。DeepSpeed 旨在降低模型并行和数据并行的通信开销,同时提供了一系列工具来帮助研究人员和开发者更容易地训练大型模型。:这是一种减少内存使用的优化器,通过将模型状态分布在多个 GPU 上来减少内存占用。混合精度训练:支持 FP16 和 BF16 训练以减少内存使用并加速计算。流水线并行性。
2025-03-27 10:20:47
134
原创 【Agent】LangSmith的配置及使用
LangChain 使得原型设计大型语言模型(LLM)应用程序和代理变得容易。然而,将 LLM 应用程序交付到生产环境可能会异常困难。可能需要大量定制和迭代prompt、chain和其他组件,以创建高质量的产品。为了帮助这个过程,推出了LangSmith,一个统一的平台,用于调试、测试和监控LLM 应用程序。
2025-03-21 10:55:49
852
转载 深入理解束搜索(Beam Search)
束搜索是一种在序列生成任务中用于平衡搜索效率和准确性的算法,它通过同时保留多个候选序列,能够避免局部最优解问题。其束宽决定了搜索范围和计算复杂度,广泛应用于机器翻译、文本生成和语音识别等任务。
2025-03-20 15:43:08
55
原创 【LangChain】理论及应用实战(7):LCEL
LangChain 表达式语言(LangChain Expression Language,简称 LCEL)是 LangChain 框架中的一个核心组件,旨在提供一种简洁、灵活的方式来定义和操作语言模型的工作流。LCEL 允许开发者以声明式的方式构建复杂的语言模型应用,而无需编写大量的样板代码。异步、批处理和流支持:采用LCEL构建的任何链都将自动、完全的支持同步、异步、批处理和流等能力。这使得可以在Jupyter中使用同步接口创建链变得很容易,然后将其作为异步流接口进行公开。Fallbacks。
2025-03-17 21:09:19
621
原创 【LangChain】理论及应用实战(5):Agent
大模型跟人脑一样存储了大量的知识,我们不仅希望用这些知识来做一些简单的问答,我们更希望它也可以像人一样做一些自主决策,这就意味着要求它能够在没有人参与的情况下独立完成一些具有一定复杂度的任务。这个完成任务的过程就包括将任务切分成一些具体的小任务,以及每一步完成后接下来要做什么等这样的推理过程。langchain中的agent就是基于这种目标的一项功能。Memory(记忆)智能体用来存储和检索历史信息的组件。它允许智能体在多次交互中保持上下文,从而做出更连贯和相关的响应。
2025-03-17 21:08:35
770
原创 【LangChain】理论及应用实战(6):Tool
在构建 Agent 时,需要提供一个它可以使用的 Tool 列表。除了被调用的实际函数外,Tool 由几个组件组成:函数;LangChain 运行接口;通过从 BaseTool 子类化 – 这是最灵活的方法,它提供了最大的控制程度,但需要更多的努力和代码。从函数创建工具可能足以满足大多数用例,可以通过简单的 @tool 装饰器 来完成。如果需要更多配置,例如同时指定同步和异步实现,也可以使用 StructuredTool.from_function 类方法。
2025-03-17 15:22:03
1003
原创 Pycharm连接远程服务器运行报错:can‘t open file ‘/tmp/
远程服务器上确实存在 /tmp/yu7PtS0Uqb/ 这个目录。但是我在 Deployment 明明配置了对应的远程项目目录啊,为什么又映射到了 /tmp/yu7PtS0Uqb/ 目录下呢?虽然我们在 Deployment 中配置了远程服务器的映射目录,但是之前创建的 Python Interpreter 会有个默认的映射路径(远程服务器的 /tmp/下的临时目录)。配置好本地项目和远程项目的映射目录后,再次运行python文件,已经不会出现上述报错了。本解决方案适用于Pycharm 2023版本。
2025-03-13 11:29:57
428
原创 【大模型】知识蒸馏(knowledge distillation)算法详解
虽然基于特征的知识转移为学生模型的学习提供了更多信息,但由于学生模型和教师模型的结构不一定相同,如何从教师模型中选择哪一层特征激活(提示层),从学生模型中选择哪一层(引导层)模仿教师模型的特征激活,是一个需要探究的问题。作者提出了一种称为知识蒸馏的策略,它学习的是教师模型(结构较为复杂的模型)的输出分布(logits),这种分布信息比原始的(0-1)label具有更加丰富的信息,能够让学生模型(架构较为简单的模型)取得更好的效果。上面一种方法学习目标非常直接,学生模型直接学习教师模型的最后预测结果。
2025-03-12 09:09:00
1167
1
原创 【LangChain】理论及应用实战(3):Chain
当 langchain-hub 中的prompt 及 chain 不满足我们的需求时,我们也可以构建自己的chain。下面我们看一个具体示例,通过自定义链实现维基百科形式的文章。(1)自定义链"""开发一个wiki文章生成器"""@property"""链的类型"""@property"""将返回prompt所需要的所有键"""@property"""将始终返回text键"""def _call(self,"""复写call方法,运行链的入口函数"""(2)调用链。
2025-03-11 22:44:01
909
原创 【LangChain】理论及应用实战(2):Loader, Document, Embedding
import os# 加载文档# (1) 总结文档# (2) 翻译文档# (3) 精炼文档,仅保留与主题相关的内容。
2025-03-09 21:21:19
625
原创 【LangChain】理论及应用实战(1):Prompt, LLM, Output Parsers
你是一个非常有经验的程序员,现在给你函数名称,你会按照如下格式输出这段代码的名称、源代码、中文解释。函数名称:{function_name}源代码:代码解释:"""# 自定义模版class,继承StringPromptTemplatesource_code = get_source_code(kwargs["function_name"]) # 获取源代码print(pm)text = '你是一个非常有经验的程序员,现在给你函数名称,你会按照如下格式输出这段代码的名称、源代码、中文解释。
2025-03-09 19:31:18
726
转载 【大模型】图解混合专家模型 (Mixed Expert Models, MoEs)
混合专家(Mixture of Experts,简称 MoE)模型,是一种利用多个不同的子模型(或“专家”)来提升大语言模型(LLM)质量的技术。专家(Experts): 模型中的每个专家都是一个独立的神经网络,专门处理输入数据的特定子集或特定任务。例如,在自然语言处理任务中,一个专家可能专注于处理与语言语法相关的内容,而另一个专家可能专注于语义理解。路由或者门控网络(Gating Network): 门控网络的作用是决定每个输入样本应该由哪个专家或哪些专家来处理。
2025-03-04 16:02:01
81
转载 【大模型】大模型推理部署工具之vLLM的核心技术-PagedAttention(2)
如果不这样做的话,各个请求间相互争夺gpu资源,最终将导致没有任何一个请求能完成推理任务。等到先来的请求做完了推理,vLLM调度器认为gpu上有足够的空间了,就能恢复那些被中断的请求的执行了。
2025-03-02 17:53:52
139
原创 【大模型】大模型推理部署工具之vLLM的使用(1)
首先介绍一下vLLM是什么?vLLM 是一个快速且易用的用于 LLM 推理和服务的库。vLLM最初由UC Berkeley的Sky Computing Lab 开发,现已发展成为一个由学术界和工业界共同贡献的社区驱动项目。最先进的服务吞吐量使用对注意力键和值内存进行高效管理对传入请求进行连续批处理使用 CUDA/HIP 图进行快速模型执行量化:GPTQ、AWQ、INT4、INT8 和 FP8优化的 CUDA 内核,包括与 FlashAttention 和 FlashInfer 的集成。
2025-03-02 17:53:10
1441
转载 浮点数格式:FP16, BF16, FP32之间的区别与LLM显存占用
浮点数是一种用二进制表示的实数,它由三个部分组成:sign(符号位)、exponent(指数位)和fraction(小数位)。不同的浮点数格式有不同的位数分配给这三个部分,从而影响了它们能表示的数值范围和精度。
2025-03-01 17:32:02
1738
1
原创 【大模型】DeepSeek核心技术之MLA (Multi-head Latent Attention)
在讲解MLA之前,需要大家对几个基础的概念(KV Cache, Grouped-Query Attention (GQA), Multi-Query Attention (MQA),RoPE)有所了解,这些有助于理解MLA是怎么工作的,为什么需要这么做。
2025-03-01 15:50:19
887
原创 【大模型】MHA,MQA,GQA及KV Cache详解
在自回归模型中(Autoregressive Models),模型会逐个生成文本的每个token,这个过程可能比较慢,因为模型一次只能生成一个token,而且每次新的预测都依赖于之前的上下文。这意味着,要预测第1000个token,你需要用到前999个token的信息,这通常涉及到对这些token的表示进行一系列矩阵乘法运算。而要预测第1001个token,你不仅需要前999个token的信息,还要加上第1000个token的信息。
2025-03-01 11:07:29
885
原创 【大模型】基于llama.cpp实现大模型格式转换、量化、推理
llama.cpp是一个开源项目,专门为在本地CPU上部署量化模型而设计。它提供了一种简单而高效的方法,将训练好的量化模型转换为可在CPU上运行的低配推理版本。
2025-02-28 16:02:24
1172
转载 【大模型】旋转位置编码(Rotary Position Embedding,RoPE)
旋转位置编码(Rotary Position Embedding,RoPE)是论文 Roformer: Enhanced Transformer With Rotray Position Embedding 提出的一种能够将相对位置信息依赖集成到 self-attention 中并提升 transformer 架构性能的位置编码方式。而目前很火的 LLaMA、GLM 模型也是采用该位置编码方式。备注:什么是大模型外推性?外推性是指大模型在训练时和预测时的输入长度不一致,导致模型的泛化能力下降的问题。
2025-02-27 16:10:28
212
原创 【大模型】Transformers基础组件 - Tokenizer
Hugging Face 的 Transformers 库是目前最流行和功能最强大的自然语言处理(NLP)库之一,提供了对大量预训练模型的访问和支持。这些模型涵盖了文本生成、文本分类、命名实体识别、机器翻译等多种任务。Hugging Face 的 Transformers 库提供了 Tokenizer(分词器)、Model(模型)、Pipeline(流水线)等模块,便于灵活使用。本篇博客我们主要介绍基于Hugging Face 的 Transformers 库进行及。
2025-02-18 21:26:42
1312
原创 【大模型】DeepSeek-V3 Technical Report 关键技术解读
首先给出Report的摘要部分:我们提出了DeepSeek-V3,这是一个强大的混合专家(MoE)语言模型,模型总参数为671B,每个令牌激活37B。为了实现高效的推理和经济高效的训练,DeepSeek-V3采用了多头潜在注意力(MLA)和DeepSeekMoE架构,这些架构在DeepSeek-V2中得到了充分的验证。此外,DeepSeek-V3开创了一种用于负载平衡的辅助无损耗策略 (auxiliary-loss-free strategy for load balancing)
2025-02-16 18:28:07
1203
中国各省会城市的距离表
2023-03-27
ACM国际大学生程序设计竞赛题解 2 [赵端阳][程序源代码]
2014-07-13
ACM国际大学生程序设计竞赛题解 1 [赵端阳][程序源代码]
2014-07-13
基于MFC的模拟时钟程序
2014-02-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人