自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 问答 (2)
  • 收藏
  • 关注

原创 Tree of Thoughts: Deliberate Problem Solving with Large Language Models

通过思维链(ToT) 允许 LM 通过考虑多个不同的推理路径和自我评估选择来决定下一个动作过程来执行深思熟虑的决策,以及在做出全局选择时展望未来或回溯在24点游戏中,而具有思维链提示的 GPT-4 仅解决了4% 的任务,我们的方法的成功率为 74%。此外,ToT 等搜索方法比采样方法需要更多的资源(例如 GPT-4 API 成本),以提高任务性能,但 ToT 的模块化灵活性允许用户自定义此类性能成本权衡,并且正在进行的开源努力 在不久的将来应该很容易降低此类成本。

2023-06-12 16:40:29 1804

原创 TensorRT综述

TensorRT是NVIDIA提供的用于深度学习推理的高性能推理引擎,它可以优化深度学习模型的推理速度和性能,以满足实时应用的需求。TensorRT采用了多种优化技术,包括网络剪枝、量化、层融合等,可以自动优化网络结构以减少运行时间和内存占用。与常规的深度学习框架相比,TensorRT可以将模型的推理速度提高数倍,同时减少了计算和内存的开销。TensorRT支持多种类型的神经网络,包括卷积神经网络、循环神经网络、生成对抗网络等,可以在多种平台上运行,包括GPU、CPU、嵌入式设备等。

2023-03-24 10:52:11 457

原创 YOLOV7详细解读(四)训练自己的数据集

继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。YOLOV7主要的贡献在于:1.模型重参数化YOLOV7将模型重参数化引入到网络架构中,重参数化这一思想最早出现于REPVGG中。2.标签分配策略YOLOV7的标签分配策略采用的是YOLOV5的跨网格搜索,以及YOLOX的匹配策略。3.ELAN高效网络架构YOLOV7中提出的一个新的网络架构,以高效为主。4.带辅助头的训练。

2022-09-29 17:00:58 3589 2

原创 YOLOV7详细解读(三)技术要点归纳

继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。YOLOV7主要的贡献在于:1.模型重参数化YOLOV7将模型重参数化引入到网络架构中,重参数化这一思想最早出现于REPVGG中。2.标签分配策略YOLOV7的标签分配策略采用的是YOLOV5的跨网格搜索,以及YOLOX的匹配策略。3.ELAN高效网络架构YOLOV7中提出的一个新的网络架构,以高效为主。4.带辅助头的训练。

2022-09-17 10:06:58 9567

原创 YOLOV7详细解读(二)论文解读

继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。YOLOV7主要的贡献在于:1.模型重参数化YOLOV7将模型重参数化引入到网络架构中,重参数化这一思想最早出现于REPVGG中。2.标签分配策略YOLOV7的标签分配策略采用的是YOLOV5的跨网格搜索,以及YOLOX的匹配策略。3.ELAN高效网络架构YOLOV7中提出的一个新的网络架构,以高效为主。4.带辅助头的训练。

2022-09-06 00:00:47 22270 5

原创 YOLOV7详细解读(一)网络架构解读

继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。YOLOV7主要的贡献在于:1.模型重参数化YOLOV7将模型重参数化引入到网络架构中,重参数化这一思想最早出现于REPVGG中。2.标签分配策略YOLOV7的标签分配策略采用的是YOLOV5的跨网格搜索,以及YOLOX的匹配策略。3.ELAN高效网络架构YOLOV7中提出的一个新的网络架构,以高效为主。4.带辅助头的训练。

2022-09-03 10:28:02 111531 59

原创 人证比对+图片相似度+MTCNN+FACENET+CNN

人证比对+图片相似度理论算法代码理论所谓人证比对,就是人脸识别的一个分支应用。而对于人脸识别,需要满足两个充要条件:1.类内差距小。2.类间差距大。传统CNN模型使用的softmax损失,尽管可以区分每个人,但是无法满足上诉条件。所以,人证比对需要满足以下几个流程。1.获取图片中的人脸。2.CNN进行特征提取。3.三元组损失或者中心损失。算法MTCNN进行人脸裁剪和对齐。然后就是普通的训练啦,resnet,vgg,densenet啥的都行,但是损失必须要用三元组损失或者中心损失。输入两张

2020-09-02 22:06:42 1700

原创 MobileNetV2详细总结以及代码讲解

MobileNetV2模型介绍模型网络代码实现+图片预测模型介绍特点:1.相比于MobileNetV1,先进行了1x1的卷积进行升维,目的在于获得更多特征,然后用3x3的空间卷积,最后再用1x1降维。核心思想是升维再降维,参数量更少。2.为了避免Relu对特征的破坏,在在3x3网络结构前利用1x1卷积升维,在3x3网络结构后,再利用1x1卷积降维后,不再进行Relu6层,直接进行残差网络的加...

2020-05-02 10:46:13 12894

原创 Nature:使用语义熵检测大语言模型中的幻觉

大语言模型(LLM)如ChatGPT和Gemini在推理和问答方面表现出色,但经常产生错误输出或未经证实的答案,被称为“幻觉”。这些幻觉在法律、新闻和医学等领域带来了可靠性问题,导致错误信息传播和潜在的严重后果。本文提出了一种基于熵的统计方法,用于检测大型语言模型(LLM)中的“虚构内容”(confabulations),即生成的任意且错误的信息。通过计算生成内容的语义熵,该方法能够在不同任务和数据集中检测虚构内容,不需要任务特定的数据,具有良好的泛化能力。图 1 语义熵和虚构检测概述a.

2024-06-27 20:05:45 881

原创 Drain: An Online Log Parsing Approach with Fixed Depth Tree

论文提出了一种名为 Drain 的在线日志解析方法,旨在解决由于日志量快速增长而导致的离线日志解析方法的效率问题。Drain 通过使用固定深度的解析树,并在树节点中编码特殊设计的规则,实现了日志的流式解析,并大大提高了解析效率和准确性。现代云计算和服务导向架构(SOA)的普及使得日志分析在服务管理中变得至关重要。日志通常是唯一记录系统运行时信息的数据资源,然而,原始日志信息是非结构化的,需要解析成结构化事件以便进一步分析。现有大多数日志解析方法集中于离线批处理,而随着日志量的增加,这种方法变得越来越耗时。

2024-06-25 10:57:45 634

原创 大模型上下文实验之大海捞针和数星星

大海捞针测试通过在长文本中随机插入关键信息,形成大型语言模型(LLM)的Prompt。该测试旨在检测大型模型能否从长文本中提取出这些关键信息,从而评估模型处理长文本信息提取的能力数星星测试通过两个任务评估LLMs的长上下文能力:多证据获取和多证据推理。实验使用了多种长文本数据,中文版本使用《红楼梦》,英文版本使用Paul Graham的文章作为长文本。

2024-06-19 17:48:36 936

原创 streamlit和grado的使用

Gradio 和 Streamlit 是两个流行的 Python 库,用于快速创建和部署交互式 Web 应用。它们都有各自的特点和适用场景。streamlit的界面更加的好看,gradio使用起来更加的简单。

2024-06-12 17:22:22 745 1

原创 大模型推理优化技术概述

KV cache其实就是通过空间换取时间的方式,通过缓存Attention中的K和V来实现推理优化。注意力机制公式Q 表示查询(Query)矩阵K 表示键(Key)矩阵V 表示值(Value)矩阵dk 是键向量的维度,用于缩放因子,防止内积后的数值过大导致梯度消失问题softmax函数是用来归一化权重的计算过程矩阵乘法(QKT):首先,计算查询矩阵Q和键矩阵K的转置的点积。这一步是为了计算每个查询和所有键之间的相似度。缩放(除以 dk):将上述点积的结果除以dk的值。

2024-06-12 16:08:32 727

原创 python使用elasticserch进行混合搜索构建知识库

在搜索时,Elasticsearch 会根据查询词的词频和文档中各个词语的词频来计算文档的相关性得分,从而排序返回搜索结果。在 Elasticsearch 中,KNN 搜索通常用于基于向量的相似性搜索,例如基于词嵌入向量或其他类型的向量来查找最相似的文档或项。在混合搜索中,可以在不同方式的搜索加入权重,进行去权重的相加,从而得到一个更好的结果,这个权重参数更多的需要结合实际场景进行设置。待写入数据存储在json文件中,里面是query和answer的对子。

2024-05-11 17:17:44 600 2

原创 MHD、MQA、GQA注意力机制详解

自回归解码器推理是 Transformer 模型的 一个严重瓶颈,因为在每个解码步骤中加 载解码器权重以及所有注意键和值会产生 内存带宽开销下图为三种注意力机制的结构图和实验结果。

2024-05-11 10:33:36 937

原创 docker 安装elasticsearch8.X

docker 安装elasticserch8系列,用于充当向量数据库。由于需要安装elasticsearch、IK分词插件、kibana。所以需要保持这三者的版本一致性。

2024-05-09 13:38:32 531

原创 YOLOV9论文概述

今天的深度学习方法侧重于如何设计最合适的目标函数,以便模型的预测结果可以最接近基本事实。同时,必须设计能够促进获取足够信息进行预测的适当架构。现有方法忽略了输入数据经过逐层特征提取和空间变换时的事实,会丢失大量信息。当数据通过深度网络传输时,本文将深入研究数据丢失的重要问题,即信息瓶颈和可逆函数。我们提出了可编程梯度信息 (PGI) 的概念来应对深度网络实现多个目标所需的各种变化。PGI可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息来更新网络权重。

2024-02-22 15:20:53 1780

原创 stable diffusion微调总结

SDXL 潜在一致性模型 (LCM) 如“潜在一致性模型:使用几步推理合成高分辨率图像”中提出的那样,通过减少所需的步骤数彻底改变了图像生成过程。它将原始 SDXL 模型提炼成一个需要更少步骤(4 到 8 个而不是 25 到 50 个步骤)来生成图像的版本。该模型对于需要在不影响质量的情况下快速生成图像的应用特别有利。值得一提的是,它比原来的 SDXL 小 50%,快 60%。SDXL Distilled 是指为特定目的而“蒸馏”的 SDXL 模型版本。例如,Segmind 稳定扩散模型 (SSD-1B)

2024-02-02 17:51:50 2742 3

原创 PEFT微调方式总结

PEFT 是 Huggingface 开源的一个参数高效微调库,它提供了最新的参数高效微调技术,并且可以与 Transformers 和 Accelerate 进行无缝集成。它为每个任务定义了独特的提示(Prompt),并将这些提示与数据拼接以作为输入,但仅在输入层添加提示标记。该方法将 Prompt 转换为可以学习的 Embedding 层,并用MLP+LSTM的方式来对Prompt Embedding进行一层处理。在输入token之前构造一段任务相关的virtual tokens作为Prefix;

2024-01-19 15:38:22 1414

原创 大模型LORA微调总结

使用lora,给internlm7B模型做训练

2024-01-16 14:27:46 677

原创 milvus安装及langchain调用

Milvus 是一款全球领先的开源向量数据库,赋能 AI 应用和向量相似度搜索,加速非结构化数据检索。Milvus专注于存储、索引及管理由深度神经网络和其他机器学习(ML)模型生成的海量嵌入向量,能够轻松应对万亿级别的向量索引任务。

2024-01-12 09:20:10 1832

原创 Mistral MOE架构全面解析

Mixtral-8x7B 大型语言模型 (LLM) 是一种预训练的生成式稀疏专家混合模型。在大多数基准测试中,Mistral-8x7B 的性能优于 Llama 2 70B。Mixtral 8x7B 是 Mistral AI 全新发布的 MoE 模型,MoE 是 Mixture-of-Experts 的简称,具体的实现就是将 Transformer 中的 FFN 层换成 MoE FFN 层,其他部分保持不变。

2023-12-17 16:38:46 2852 2

原创 Llama 架构分析

Meta 开发并公开发布了 Llama系列大型语言模型 (LLM),这是一组经过预训练和微调的生成文本模型,参数规模从 70 亿到 700 亿不等。在大多数任务中,LLaMA-13B要比GPT-3(175B)的性能要好,LLaMA-65B和组好的模型Chinchilla-70B以及PaLM-540B的实力相当。

2023-12-16 23:52:57 1889

原创 大模型训练数据集汇总

当前大多数以上词级别的NLU模型都是针对特定任务设计的,而针对各种任务都能执行的通用模型尚未实现。为了解决这个问题,作者提出了GLUE,希望通过这个评测平台促进通用NLU系统的发展。斯坦福问答数据集(SQuAD),这是一个由众包工作者在维基百科文章上提出的10万多个问题的阅读理解数据集,每个问题的答案都是相应阅读段落的一部分文本。SQuAD数据集的构建分为三个阶段:1. 筛选文章;2. 通过众包的方式在这些文章上收集问题-答案对;3. 收集额外的答案。

2023-12-09 23:44:58 2329

原创 QLoRA论文概述

微调需要大量显存资源。之前工作的量化大都是在推理而非训练。实验中发现数据的质量比数量重要。评估采用人类和GPT-4相结合。提出了三个技术方案实现单个GPU微调65B模型,达到和16位微调任务相同的性能4-bit NormalFloat(NF4)量化:QLORA使用一种新的数据类型NF4,它在信息理论上最适合正态分布的权重,并在实践中优于4-bit整数和4-bit浮点数。双量化:QLORA采用双量化方法,对量化常数进行第二次量化,从而减少每个参数的内存占用。分页优化器。

2023-12-08 17:52:27 1246

原创 AdaLoRA论文概述

预训练语言模型(PLMs)在各种自然语言处理任务中表现出了优越的性能。为了适应下游任务,最常见的方法是对预训练模型的所有参数进行微调(全微调)。然而,预训练模型通常需要大量内存。例如,BERT模型包含多达3亿参数,T5模型包含多达110亿参数,GPT-3模型包含多达1750亿参数。在构建基于这些预训练模型的NLP系统时,通常需要同时处理多个任务。在有大量下游任务的情况下,全微调需要每个任务维护一个大型模型的单独副本,这导致了禁止性的内存消耗。

2023-12-06 23:42:08 1516

原创 Cython编译python项目

cythonize是 Cython 编译器的一个命令行工具,用于简化 Cython 扩展模块的构建过程。Cython 是一个用于编写 Python 扩展模块的工具,它允许在 Python 中使用 C 的语法和性能,同时保持 Python 的灵活性和易用性。具体来说,cythonize用于将 Cython 源文件(.pyx)编译成 C 代码,并最终构建为共享库或扩展模块,以供 Python 使用。这个工具的目标是提高性能,同时保持 Python 编码的简洁性和可读性。

2023-12-06 17:49:24 1130

原创 P-tuning论文概述

近年来,预训练语言模型取得了巨大成功,不仅能够学习上下文表示,还能够掌握语法、句法等知识。根据训练目标,语言模型主要分为三类:单向语言模型(如GPT)常用于自然语言生成,双向语言模型(如Bert)则广泛应用于自然语言理解,而混合语言模型(如XLNet)则综合了两者。传统观念认为,像GPT这样的单向语言模型不适用于自然语言理解任务,但是GPT-3在手工prompt的情况下展现出惊人的性能,特别是在少样本和零样本情境下。这证明了在适当的prompt下,超大规模的单向语言模型在自然语言理解任务上同样表现出色。

2023-12-05 09:27:12 976

原创 Prefix-Tuning 论文概述

大规模预训练语言模型(PLM)在下游自然语言生成任务中广泛采用fine-tuning的方法进行adaptation。但是fine-tuning需要更新模型所有的参数,对于每个任务都需要保存一份完整的模型拷贝,存储成本很高。文章提出prefix-tuning方法,其只优化一个小的连续任务特定向量(称为prefix),KEEP 语言模型参数固定。该方法受prompting的启发,允许后续token参考这个prefix,就像参考一系列“虚拟token”。

2023-12-03 23:01:06 1104

原创 P-Tuning v2论文概述

微调(fine-tuning)是一种在预训练模型基础上进行目标任务调整的方法,它会更新整个模型参数集。虽然微调能获得良好的性能,但由于训练过程中需要存储所有参数的梯度和优化器状态,因此耗费内存。此外,由于预训练模型通常较大,在推理过程中为每个任务保留一份模型参数副本非常不方便。提示调优仅使用冻结的语言模型调整连续提示,大大减少了训练时每个任务的存储和内存使用。然而,在 NLU 的背景下,先前的工作表明,对于正常大小的预训练模型,提示调优表现不佳。

2023-12-03 20:27:23 1363

原创 LORA概述: 大语言模型的低阶适应

LoRA的核心思想在于优化预训练语言模型的微调过程,通过有效地处理权重矩阵的变化(即梯度更新的累积),使其具有“低秩”结构。简而言之,这意味着可以通过低秩分解有效地表示变化矩阵。具体来说,对于预训练权重矩阵W₀,其更新量可以表示为∆W = BA,其中B和A都是低秩矩阵(例如,秩为r,r明显小于矩阵维度d)。在训练期间,W₀被冻结,而B和A中的参数是可训练的。这明显减少了适应的可训练参数数量。如下图所示,在原始预训练语言模型旁边添加一个旁路,执行降维再升维的操作,以模拟内在秩。

2023-12-01 16:47:39 1832

原创 fastReID论文总结

根据平均查准率(Average Precision, AP),第一个匹配列表的AP为0.77,第二个匹配列表的AP为0.7,按照的AP的评价标准,AP值越大的性能越好,因此第二个匹配的性能要优于第一个。这个公式的含义就是截止到最后一个正确的结果时,已经查出的样本中错误的样本所占的比例,因此NP的值越小,性能应该越好。但是,第一个列表中虽然在最靠前的两个结果均正确,但是直到第十个才找到了第三个结果,第二个列表在排序第五的位置就找到了全部的正确结果,因此直观来讲,第二个匹配的性能应该要优于第一个。

2023-11-29 22:30:15 1138

原创 YOLOV8解读及推理代码

YOLOv8并非一个全新的目标检测网络,而是在YOLOv5的基础上进行了升级。新的骨干网络创新的Ancher-Free检测头新的损失函数。

2023-11-29 15:14:30 2606

原创 ChatGLM3简介

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:**更强大的基础模型:**ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能。

2023-11-28 18:00:52 1277

原创 Make Pixels Dance: High-Dynamic Video Generation论文解析

动态视频生成一直是人工智能领域的一个重要且富有挑战性的目标。尤其是生成复杂场景和丰富动作的高质量视频,更是难上加难。很多现有的视频生成模型,主要集中在从文本描述生成视频,往往只能输出运动幅度非常小的视频,这也是行业的一个难点。最近,字节跳动的研究人员提出了一个非常有创意的方法——PixelDance,利用图像的先验知识指导视频生成过程,从而大幅提升了视频的动态性。具体来说,该方法除了使用文本描述,还同时使用视频的第一帧图像和最后一帧图像作为条件,来生成中间的动态视频内容。

2023-11-28 11:20:03 3184

原创 大模型之Prompt研究和技巧

Prompt是是给AI**模型的指令,**一个简短的文本输入,用于引导AI模型生成特定的回答或执行特定任务。Prompt是你与语言模型沟通的方式。一个好的Prompt可以让AI更准确地理解你的需求,从而给出更有用的回答。

2023-10-11 17:58:54 5295

原创 langchain主要模块(五):Agent以及Wandb

Agent:这是一个类,负责决定下一步要采取什么行动。它由语言模型和提示驱动。提示可以包括agent的性格、背景上下文以及用于引发更好推理的提示策略等。Tools:这些是agent调用的函数。这里有两个重要的考虑因素:给agent提供正确的工具,以及以最有帮助的方式描述这些工具。Toolkits:这是一组工具,用于完成特定的目标。LangChain提供了一系列的toolkits。AgentExecutor:这是agent的运行时环境。它实际上调用agent并执行其选择的动作。

2023-09-14 10:14:35 1690

原创 langchain主要模块(四):Memory

默认情况下,链式模型和代理模型都是无状态的,这意味着它们将每个传入的查询独立处理(就像底层的 LLMs 和聊天模型本身一样)。在某些应用程序中,比如聊天机器人,记住先前的交互是至关重要的。无论是短期还是长期,都要记住先前的交互。**Memory** 类正是做到了这一点。 LangChain 提供了两种形式的记忆组件。首先,LangChain 提供了用于管理和操作以前的聊天消息的辅助工具。这些工具被设计成模块化的,无论如何使用都很有用。其次,LangChain 提供了将这些工具轻松整合到链式模型中的方法。

2023-09-13 10:34:45 541

原创 langchain主要模块(三):Chain

链允许我们将多个组件组合在一起,创建一个单一而连贯的应用程序。例如,我们可以创建一个链,接受用户输入,使用 PromptTemplate 进行格式化,然后将格式化的响应传递给 LLM。我们可以通过将多个链组合在一起或将链与其他组件组合来构建更复杂的链。

2023-09-13 10:26:08 960

原创 langchain主要模块(二):数据连接

LangChain产生源于Harrison与领域内的一些人交谈,这些人正在构建复杂的LLM应用,他在开发方式上看到了一些可以抽象的部分。一个应用可能需要多次提示LLM并解析其输出,因此需要编写大量的复制粘贴。LangChain使这个开发过程更加简单。一经推出后,在社区被广泛采纳,不仅有众多用户,还有许多贡献者参与开源工作。还有大模型本身的问题,无法感知实时数据,无法和当前世界进行交互。LangChain是一个用于开发大语言模型的框架。

2023-09-12 14:31:39 1035

空空如也

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

TA关注的人

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