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

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

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

原创 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
852

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

原创 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
1371

原创 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
17868
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
20929
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
765

原创 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
697
原创 Pycharm连接远程服务器运行报错:can‘t open file ‘/tmp/yu7PtS0Uqb/temp
远程服务器上确实存在 /tmp/yu7PtS0Uqb/ 这个目录。但是我在 Deployment 明明配置了对应的远程项目目录啊,为什么又映射到了 /tmp/yu7PtS0Uqb/ 目录下呢?虽然我们在 Deployment 中配置了远程服务器的映射目录,但是之前创建的 Python Interpreter 会有个默认的映射路径(远程服务器的 /tmp/下的临时目录)。配置好本地项目和远程项目的映射目录后,再次运行python文件,已经不会出现上述报错了。本解决方案适用于Pycharm 2023版本。
2025-03-13 11:29:57
333
原创 【大模型】知识蒸馏(knowledge distillation)算法详解
虽然基于特征的知识转移为学生模型的学习提供了更多信息,但由于学生模型和教师模型的结构不一定相同,如何从教师模型中选择哪一层特征激活(提示层),从学生模型中选择哪一层(引导层)模仿教师模型的特征激活,是一个需要探究的问题。作者提出了一种称为知识蒸馏的策略,它学习的是教师模型(结构较为复杂的模型)的输出分布(logits),这种分布信息比原始的(0-1)label具有更加丰富的信息,能够让学生模型(架构较为简单的模型)取得更好的效果。上面一种方法学习目标非常直接,学生模型直接学习教师模型的最后预测结果。
2025-03-12 09:09:00
856
原创 【LangChain】理论及应用实战(3)
当 langchain-hub 中的prompt 及 chain 不满足我们的需求时,我们也可以构建自己的chain。下面我们看一个具体示例,通过自定义链实现维基百科形式的文章。(1)自定义链"""开发一个wiki文章生成器"""@property"""链的类型"""@property"""将返回prompt所需要的所有键"""@property"""将始终返回text键"""def _call(self,"""复写call方法,运行链的入口函数"""(2)调用链。
2025-03-11 22:44:01
842
原创 【LangChain】理论及应用实战(2)
import os# 加载文档# (1) 总结文档# (2) 翻译文档# (3) 精炼文档,仅保留与主题相关的内容。
2025-03-09 21:21:19
597
原创 【LangChain】理论及应用实战(1)
你是一个非常有经验的程序员,现在给你函数名称,你会按照如下格式输出这段代码的名称、源代码、中文解释。函数名称:{function_name}源代码:代码解释:"""# 自定义模版class,继承StringPromptTemplatesource_code = get_source_code(kwargs["function_name"]) # 获取源代码print(pm)text = '你是一个非常有经验的程序员,现在给你函数名称,你会按照如下格式输出这段代码的名称、源代码、中文解释。
2025-03-09 19:31:18
675
转载 【大模型】图解混合专家模型 (Mixed Expert Models, MoEs)
混合专家(Mixture of Experts,简称 MoE)模型,是一种利用多个不同的子模型(或“专家”)来提升大语言模型(LLM)质量的技术。专家(Experts): 模型中的每个专家都是一个独立的神经网络,专门处理输入数据的特定子集或特定任务。例如,在自然语言处理任务中,一个专家可能专注于处理与语言语法相关的内容,而另一个专家可能专注于语义理解。路由或者门控网络(Gating Network): 门控网络的作用是决定每个输入样本应该由哪个专家或哪些专家来处理。
2025-03-04 16:02:01
54
转载 【大模型】大模型推理部署工具之vLLM的核心技术-PagedAttention(2)
如果不这样做的话,各个请求间相互争夺gpu资源,最终将导致没有任何一个请求能完成推理任务。等到先来的请求做完了推理,vLLM调度器认为gpu上有足够的空间了,就能恢复那些被中断的请求的执行了。
2025-03-02 17:53:52
86
原创 【大模型】大模型推理部署工具之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
1148
转载 浮点数格式:FP16, BF16, FP32之间的区别与LLM显存占用
浮点数是一种用二进制表示的实数,它由三个部分组成:sign(符号位)、exponent(指数位)和fraction(小数位)。不同的浮点数格式有不同的位数分配给这三个部分,从而影响了它们能表示的数值范围和精度。
2025-03-01 17:32:02
644
原创 【大模型】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
776
原创 【大模型】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
765
原创 【大模型】基于llama.cpp实现大模型格式转换、量化、推理
llama.cpp是一个开源项目,专门为在本地CPU上部署量化模型而设计。它提供了一种简单而高效的方法,将训练好的量化模型转换为可在CPU上运行的低配推理版本。
2025-02-28 16:02:24
1026
转载 【大模型】旋转位置编码(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
125
原创 【大模型】Transformers基础组件 - Tokenizer
Hugging Face 的 Transformers 库是目前最流行和功能最强大的自然语言处理(NLP)库之一,提供了对大量预训练模型的访问和支持。这些模型涵盖了文本生成、文本分类、命名实体识别、机器翻译等多种任务。Hugging Face 的 Transformers 库提供了 Tokenizer(分词器)、Model(模型)、Pipeline(流水线)等模块,便于灵活使用。本篇博客我们主要介绍基于Hugging Face 的 Transformers 库进行及。
2025-02-18 21:26:42
1081
原创 【大模型】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
1135
原创 【大模型】基于LlamaIndex实现大模型RAG
LlamaIndex是一个LLM文本增强的框架,其中包含完整的RAG解决方案。项目在2023年1月29日发布了第一个版本,当时叫做“GPT Index v0.2.17” ,项目作者Jerry Liu。
2025-02-07 20:53:49
1339
转载 【Python】Streamlit库:快速构建机器学习数据分析web可视化界面
Streamlit是一个用于机器学习、数据可视化的 Python 框架。基于Streamlit我们可以快速部署自己的机器学习应用,或者构建机器学习数据分析的web可视化界面。
2025-02-06 21:12:55
73
原创 【大模型】Ollama+AnythingLLM搭建RAG大模型私有知识库
AnythingLLM是由Mintplex Labs Inc.开发的一个全栈应用程序,是一款高效、可定制、开源的企业级文档聊天机器人解决方案。AnythingLLM能够将任何文档、资源或内容片段转化为大语言模型在聊天中可以利用的相关上下文。AnythingLLM支持几乎所有的主流大模型和多种文档类型,可定制化,而且安装和设置简单。目前适用于MacOS、Linux和Windows操作系统,也可以使用Docker安装。官方已经做好了各个版本的应用,直接下载对应版本,像正常软件一样安装启动即可。1.核心特性。
2025-01-23 15:26:50
3343
原创 【大模型】检索增强生成:从RAG、GraphRAG到LightGAG
自 ChatGPT 发布以来,大型语言模型(Large Language Model,LLM,大模型)得到了飞速发展,它在处理复杂任务、增强自然语言理解和生成类人文本等方面的能力让人惊叹,几乎各行各业均可从中获益。为了解决以上通用大模型问题,方案就应运而生。
2025-01-23 11:21:42
898
原创 【大模型】基于LLaMA-Factory的模型高效微调(2)
我们通过量化技术将高精度表示的预训练模型转换为低精度的模型,从而在避免过多损失模型性能的情况下减少显存占用并加速推理,我们希望低精度数据类型在有限的表示范围内尽可能地接近高精度数据类型的表示,因此我们需要指定量化位数。当我们基于预训练模型训练好 LoRA 适配器后,我们不希望在每次推理的时候分别加载预训练模型和 LoRA 适配器,因此我们需要将预训练模型和 LoRA 适配器合并导出成一个模型,并根据需要选择是否量化。此外,您还可以通过如下命令来获得模型的 BLEU 和 ROUGE 分数以评价模型生成质量。
2025-01-21 14:42:58
1446
3
原创 【大模型】基于Ollama+GraphRAG本地部署大模型,构建知识图谱,实现RAG查询
1、修改settings.yaml文件中实体类别如下位置:2、手动调整prompt自定义实体【LLM大模型】GraphRAG手调Prompt提取自定义实体。
2025-01-17 15:54:39
2624
6
原创 【NLP】语言模型的发展历程 (1)
N-gram模型是一种基于统计语言模型的文本分析算法,它用于预测文本中下一个词出现的概率,基于前面出现的n-1个词的序列。这里的n代表序列中元素的数量,因此称为N-gram。Unigram:N=1,每个单词的出现概率独立计算,不考虑上下文。Bigram:N=2,基于前一个单词预测当前单词的联合概率模型。Trigram:N=3,考虑前两个单词来预测当前单词的联合概率模型,更复杂但可能更准确。
2025-01-12 17:24:50
1223
原创 【NLP】ELMO、GPT、BERT、BART模型解读及对比分析
GPT(Generative Pre-trained Transformer)是由 OpenAI 开发的一类生成式预训练语言模型。基于 Transformer 架构,GPT 模型具备强大的自然语言处理能力,能够通过自回归方式生成文本。自首次推出以来,GPT 系列模型在多个领域的文本生成任务中表现出色,并在语言建模、文本生成、对话系统等任务中取得了显著的成果。GPT 系列模型的核心优势在于其预训练-微调(Pre-training & Fine-tuning)的训练策略。
2025-01-12 17:19:27
1234
原创 NLP中常见的分词算法(BPE、WordPiece、Unigram、SentencePiece)
从上面的公式,很容易发现,似然值的变化就是两个子词之间的互信息。简而言之,WordPiece每次选择合并的两个子词,他们具有最大的互信息值,也就是两子词在语言模型上具有较强的关联性,它们经常在语料中以相邻方式同时出现。在训练任务中,如果能对不同的 Subword 进行训练的话,将增加模型的健壮性,能够容忍更多的噪声,而 BPE 的贪心算法无法对随机分布进行学习。我们将一个个的 token(可以理解为小片段)表示向量,我们分词的目的就是尽可能的让这些向量蕴含更多有用的信息,然后把这些向量输入到算法模型中。
2025-01-09 11:02:17
2453
1
原创 基于submitit实现Python函数的集群计算
Submitit是一款轻量级工具,旨在简化Python函数在Slurm集群上的提交过程。它不仅提供了对作业结果、日志文件等的无缝访问,更让开发者能够在本地执行与Slurm集群间切换自如,极大地提高了代码的可移植性和灵活性。Slurm作为一种广泛使用的集群管理与作业调度软件,支持从大型到小型的Linux集群。而Submitit作为衔接本地与集群操作的桥梁,确保了高效且稳定的任务处理。
2024-12-27 16:10:11
550
原创 PyTorch中apex的安装方式
apex是NVIDIA开发的基于PyTorch的混合精度训练加速神器,能够增加运算速度,并且减少显存的占用。
2024-12-17 10:38:53
2166
原创 【NLP】序列到序列(seq2seq)建模工具fairseq使用详解
fairseq 是 Facebook AI Research Sequence-to-Sequence Toolkit 的缩写,是一款开源的神经机器翻译框架。它基于PyTorch开发,用于训练和评估各种序列到序列(seq2seq)模型,广泛应用于自然语言处理(NLP)任务,如机器翻译、文本生成、语音识别等。它支持多种模型架构,包括但不限于 Transformer、LSTM 和 Convolutional models,并且具有高效的多GPU训练和分布式训练功能。
2024-12-16 17:45:33
1028
中国各省会城市的距离表
2023-03-27
ACM国际大学生程序设计竞赛题解 2 [赵端阳][程序源代码]
2014-07-13
ACM国际大学生程序设计竞赛题解 1 [赵端阳][程序源代码]
2014-07-13
基于MFC的模拟时钟程序
2014-02-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人