自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Harry的博客

把多年踩坑日记熬成技术甘露

  • 博客(379)
  • 问答 (2)
  • 收藏
  • 关注

原创 深度理解 CLIP:连接图像与语言的桥梁

CLIP,全称为Contrastive Language–Image Pre-training(对比语言-图像预训练),是一种跨模态模型。它的目标是学习一个可以同时理解图像和语言的通用视觉-语言表示空间。传统图像识别模型需要在每个任务上进行微调(fine-tuning),但 CLIP 只需简单的自然语言提示(prompt),就可以实现零样本图像分类(zero-shot classification),无需额外训练。CLIP 的提出,让图像“读懂”语言,也让语言“看见”图像。

2025-06-14 18:12:01 1113

原创 为什么大语言模型推理要分成 Prefill 和 Decode?深入理解这两个阶段的真正意义

Prefill 阶段是语言模型推理中的第一个步骤,它负责处理你输入的所有上下文内容(prompt),为后续生成打下基础。“请解释一下 Transformer 的原理。这句话会被 tokenizer 编码为一串 token,比如["请", "解释", "一下", "Trans", "##former", "的", "原理", "。"]。然后这些 token 会进入 Transformer 模型进行前向传播。重点来了 👇。

2025-04-05 17:13:06 6818

原创 Masked Attention 在 LLM 训练中的作用与原理

这篇文章将帮助你理解 Masked Attention 的作用、实现方式,以及为什么它能确保当前 token 只依赖于过去的 token,而不会泄露未来的信息。如果没有 Masked Attention,模型在训练时可以“偷看”未来的 token,导致它学到的规律无法泛化到推理阶段,从而影响文本生成的效果。虽然 Q, K, V 都计算了,但 Masking 让未来 token 的注意力分数变为 0,确保计算出的 Attention 结果不包含未来信息。,模型会学习到“作弊”策略,直接利用未来信息进行预测。

2025-03-29 11:41:23 2168

原创 KV Cache 详解:新手也能理解的 LLM 推理加速技巧

(Autoregressive)生成的,即每次生成一个 token,然后将其作为输入继续生成下一个 token。:如果序列太长,超过了 KV Cache 的存储限制,就需要丢弃最早的 tokens(类似滑动窗口)。时,每次只会生成一个新 token,然后再把这个 token 作为输入继续生成下一个 token。,只缓存计算过的 K,VK, V,每次只计算新 token 的 K,VK, V,从而提升推理效率。:如果输入的 prompt 发生变化,之前的 KV Cache 不能复用,必须重新计算。

2025-03-28 21:49:46 3847

原创 深入理解 DeepSeek MOE(Mixture of Experts)

DeepSeek MOE 是 DeepSeek 团队推出的基于 MOE 架构的模型,旨在通过稀疏专家选择提高大规模模型的计算效率,减少计算成本,同时提升推理和训练的灵活性。相比于传统 Transformer,MOE 框架的计算复杂度可以大幅下降,同时保持模型的高性能。DeepSeek MOE 通过稀疏激活、动态专家选择等策略,实现了高效的计算资源利用,适用于大规模语言模型、计算机视觉等任务。MOE 结构未来仍有很大的优化空间,将在 AI 领域发挥越来越重要的作用。

2025-02-07 22:09:20 6050

原创 理解知识蒸馏中的散度损失函数(KLDivergence/kldivloss )-以DeepSeek为例

知识蒸馏(Knowledge Distillation)是一种模型压缩技术,目标是让一个较小的模型(学生模型,Student Model)学习一个较大、性能更优的模型(教师模型,Teacher Model)的知识。这样,我们可以在保持较高准确率的同时,大幅减少计算和存储成本。

2025-02-02 12:57:42 3972

原创 DeepSeek 模型全览:探索不同类别的模型

DeepSeek 在 AI 领域的研究覆盖多个重要方向,包括 NLP、代码生成、多模态 AI、数学推理等。无论是开发者、研究人员还是 AI 爱好者,都可以从这些模型中找到适合自己需求的工具。未来,DeepSeek 可能会推出更多创新模型,让我们拭目以待!

2025-01-30 17:16:07 23182

原创 稀疏检索、密集检索与混合检索:概念、技术与应用

随着自然语言处理(NLP)技术的飞速发展,传统的稀疏检索方法逐渐面临着密集检索技术的挑战。本文将介绍稀疏检索、密集检索与混合检索的基本概念,比较它们的优缺点,并介绍实现这些检索方法时所需的技术。随着信息检索需求的不断发展,稀疏检索、密集检索和混合检索都在各自的应用领域中发挥着重要作用。混合检索是结合稀疏检索和密集检索的优点的一种检索方法。通常,混合检索会首先使用稀疏检索(如BM25)从大量文档中快速筛选出一部分候选文档,然后再使用密集检索(如BERT)对这些候选文档进行精确排序,确保获取到最相关的文档。

2025-01-19 22:11:35 1712

原创 lora 理论篇

在深度学习中,特别是自然语言处理(NLP)领域,预训练语言模型(如GPT、BERT等)已经取得了显著的成果。然而,这些模型通常具有数亿甚至数百亿的参数,在进行特定任务的微调时,所需的计算资源和存储需求非常庞大。LoRA 的提出正是为了解决这一问题。

2024-09-01 22:26:53 1367 1

原创 Huggingface 模型转换成gguf并且量化

Llama.cpp 是一种在 CPU 和 GPU 上高效运行大型语言模型(LLM)的好方法。不过,它的缺点是需要将模型转换为 Llama.cpp 支持的格式,目前这种格式是 GGUF 文件格式。在这篇博文中,你将学习如何将 HuggingFace 的模型(llama2 7b chat)转换为 GGUF 模型。

2024-08-10 23:21:52 2868

原创 llama2 , llama3, llama3.1 中提示(prompt)的模板

注意:换行符 (0x0A) 是提示格式的一部分,为了在示例中清晰起见,它们已表示为实际的新行。基本模型支持文本补全,因此任何未完成的用户提示(没有特殊标签)都会提示模型完成它。单个消息的具有可选的 system prompt。为了在示例中清晰起见,它们已表示为实际的新行。系统提示(prompt)是可选的。换行符 (0x0A) 是提示格式的一部分,该模型期望提示末尾的助手标题开始完成它。系统提示以及用户和助手之间的多轮对话。可在此处找到生成此提示格式的代码。可在此处找到生成此提示格式的代码。

2024-05-30 22:54:16 15581

原创 llama2, llama3, llama3.1, llama4比较

Llama 3 刚刚在4月18号推出,距 Llama 2 发布正好 9 个月。它已经可以在 Meta 网站上进行聊天,可以从 Huggingface 以 safetensors 或 GGUF 格式下载。

2024-04-21 22:26:57 7943

原创 边写代码边学习之TF Attention

注意力机制(Attention Mechanism)是机器学习和人工智能领域中的一个重要概念,用于模拟人类视觉或听觉等感知过程中的关注机制。注意力机制的目标是让模型能够在处理信息时,更加关注与任务相关的部分,忽略与任务无关的信息。这种机制最初是受到人类大脑对信息处理的启发而提出的。注意力机制的基本原理如下:输入信息:首先,注意力机制接收输入信息,这可以是序列数据、图像、语音等。查询、键和值:对于每个输入,注意力机制引入了三个部分:查询(query)、键(key)、值(value)。这些部分通常是通过神经网络

2023-09-02 22:20:59 718

原创 边写代码边学习之Bidirectional LSTM

参数layer:keras.layers.RNN实例,例如keras.layers.LSTM或keras.layers.GRU。它也可以是满足以下条件的 keras.layers.Layer 实例:成为序列处理层(接受 3D+ 输入)。有一个 go_backwards、return_sequences 和 return_state 属性(与 RNN 类具有相同的语义)。有一个 input_spec 属性。通过 get_config() 和 from_config() 实现序列化。

2023-08-24 23:07:54 1798

原创 边写代码边学习之LSTM

长短期记忆网络 LSTM(long short-term memory)是 RNN 的一种变体,其核心概念在于细胞状态以及“门”结构。细胞状态相当于信息传输的路径,让信息能在序列连中传递下去。你可以将其看作网络的“记忆”。理论上讲,细胞状态能够将序列处理过程中的相关信息一直传递下去。因此,即使是较早时间步长的信息也能携带到较后时间步长的细胞中来,这克服了短时记忆的影响。信息的添加和移除我们通过“门”结构来实现,“门”结构在训练过程中会去学习该保存或遗忘哪些信息。

2023-08-06 16:32:38 1108

原创 边写代码边学习之RNN

循环(Recurrent Neural Network,RNN)是一种以序列数据为输入来进行建模的深度学习模型,它是 NLP 中最常用的模型。其结构如下图:x是输入,h是隐层单元,o为输出,L为损失函数,y为训练集的标签.这些元素右上角带的t代表t时刻的状态,其中需要注意的是,因策单元h在t时刻的表现不仅由此刻的输入决定,还受t时刻之前时刻的影响。V、W、U是权值,同一类型的权连接权值相同。

2023-08-05 18:28:51 1000

原创 边写代码边学习之批归一化(BatchNormalization)

归一化(Normalization)是指将不同类型、不同取值范围等不同的数据按照一定的规则统一转化为相同的范围,使得数据在同一数值区间内比较、处理更加合理、有意义。归一化可以消除数据特征之间的量纲差异,使得每个特征在权重计算中起到相同的作用,同时还可以增加算法的收敛速度,提高模型的预测精度。使结果值映射到[0 ,1]之间。,这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1.,其中为均值,

2023-08-05 12:06:29 513

原创 InstructGPT怎么准备和标记数据集

(2) RM 数据集,带有用于训练的模型输出的标签器排名 我们的 RM, RM 数据集有 33k 个训练提示(来自 API 和 labeler-written),对于 RM,回想一下,对于每个提示,我们收集了 K 个输出(从 4 到 9)的排名,并在所有的 }K} 上训练模型,所以我们训练模型的排名对的数量是一个顺序2个数量级大于提示的数量。最后,我们还在表 11 中报告了用于我们的 SFT 模型的承包商编写的演示的长度,包括承包商编写的和标签商编写的提示。他们收集的数据涵盖广泛的类别和用例。

2023-05-01 18:40:03 1796

原创 [论文阅读]InstructGPT(Training language models to follow instructions with human feedback)

语言模型(language models)越大大并不意味着它能更好地理解用户的意图。例如,大型语言模型生成输出不真实、有毒或根本对用户没有帮助。换句话说,这些模型没有准确的理解用户想法。在此论文中,展示了一种有效的方法通过微调使语言模型与用户在各种任务上的意图保持一致与人类反馈。从一组的提示和提示开始通过 OpenAI API 提交,我们收集了已标记的范文数据集所需的模型行为,我们用它来使用有监督的方法来微调 GPT-3学习。

2023-03-31 11:55:40 1519 1

原创 GPT系列的总结以及GPT4

Generative Pre-trained Transformers (GPT) 是一种用于生成类人文本的深度学习模型。常见用途包括GPT 模型有无穷无尽的应用,您甚至可以根据特定数据对其进行微调,以创造更好的结果。通过使用转换器,您将节省计算、时间和其他资源的成本。

2023-03-27 22:16:04 1816

原创 文本总结的实现:从理论到实践

抽取式总结(Extractive Summarization)原理:从原文中抽取最重要的句子或片段,组成总结。优点:生成内容真实,不容易出现语义错误。缺点:总结可读性可能较差,缺少自然衔接。生成式总结(Abstractive Summarization)原理:使用模型生成新的文本,总结原文的主要意思。优点:可生成自然流畅、可读性高的摘要。缺点:生成结果可能存在事实错误(hallucination)。在现代 NLP 应用中,生成式总结尤其受到关注,尤其是结合大语言模型(LLM)的方法。

2025-09-19 18:10:10 298

原创 用 pymupdf4llm 打造 PDF → Markdown 的高效 LLM 数据管道(附实战对比)

如果你在做文档处理 + LLM 应用,推荐直接用,它的优势在于:输出 Markdown,结构保留度高支持分页、分块,非常适合 RAG图片、表格、列表、样式都能提取与 LlamaIndex 等生态无缝对接一句话总结:👉它是目前最实用的 PDF → LLM 数据转换工具之一。

2025-09-18 18:21:48 827

原创 [RAG] 使用pypandoc 做文档转换

pypandoc是Pandoc的 Python 封装库,提供了一个非常简洁的 API,可以在多种文档格式之间进行转换。ODT → RTFPDF → TXT…等等把复杂格式的文件快速转成干净的 Markdown 或纯文本,方便后续切分、向量化和检索。pypandoc在 RAG 场景下,起到格式转换器的作用:把 PDF、Word、HTML 等文件统一成 Markdown/纯文本保持语义结构,减少格式干扰让后续的向量化和检索更高效有了 pypandoc,RAG 的数据预处理更轻松!

2025-09-18 12:10:14 777

原创 检索融合方法- Distribution-Based Score Fusion (DBSF)

DBSF 是一种基于统计分布的分数融合方法通过 μ±3σ 截断 + 标准化 + 相加,实现多检索器结果的稳健融合适合分布差异大没有明确权重先验的场景实现简单,可用 Python 自定义,也可以使用如LlamaIndexQdrantUpstash等系统内置功能。

2025-09-15 23:17:20 990

原创 利用大语言模型在 Bitbucket 上实现自动代码 Review

比如 GPT-5-mini 或专门的代码 LLM,可以显著优化这一流程。注意:LLM 并不能完全替代人工审核。:LLM 能理解代码逻辑和意图,而不仅仅是语法,能发现潜在的逻辑错误或边界问题。:小型 PR 可在几秒钟内得到初步 review,帮助开发者快速迭代。,而 LLM 负责重复性、指导性任务,显著提升开发效率和代码质量。:相比人工,LLM 可以提供一致、可重复的 review 反馈。:将 diff 发送给 LLM,生成结构化 review 建议。:仅发送修改部分给 LLM,减少成本,提高反馈相关性。

2025-09-14 16:27:19 661

原创 大模型中的位置编码详解

绝对位置编码简单,但无法处理长序列和相对位置信息。相对位置编码更强大,但实现复杂。RoPE 通过旋转实现位置感知,兼具直观性和高效性,已成为当前大模型的事实标准。随着 LLM 的发展,位置信息的建模方式也在不断演进,而 RoPE 可能会在相当长的一段时间里继续主导大模型的设计。

2025-09-10 18:23:58 687

原创 ONNX:跨框架、跨平台的深度学习模型标准

ONNX 是一个开放的深度学习模型交换格式,由微软和 Facebook 在 2017 年提出。跨框架:PyTorch、TensorFlow、MXNet 等训练的模型,都可以导出为 ONNX 格式。跨平台:ONNX Runtime 支持 CPU、GPU、移动端、嵌入式设备。高效推理:支持图优化、算子融合、量化等加速技术。可以把 ONNX 想象成AI 模型的 PDF:不管你用什么框架训练,ONNX 文件都能在不同平台和硬件上运行。# 简单的全连接模型。

2025-09-10 15:28:37 830

原创 为什么 LangChain 要重写 __or__:一窥 LCEL 的设计哲学

这行看似简单的语句,其实背后隐藏了的设计巧思。本文就带你拆解其中的奥秘:为什么 LangChain 要重写__or__,它解决了什么问题?

2025-09-09 22:19:47 431

原创 在知识问答系统中处理图片:从存储到理解的完整方案

统一格式:把文档转成 Markdown,文字和图片共存。增强图片语义:OCR + 图像描述,保证可检索。混合存储:文本进向量库,图片进对象存储。智能回显:回答中返回 Markdown,前端渲染。这样,知识问答系统不仅能“说清楚”,还能“展示出来”,让用户获得更直观的体验。写在最后让机器看懂(OCR/Caption)让用户看见(Markdown 回显)随着多模态大模型的发展,未来我们甚至可以直接把图片作为输入,让模型原生理解和检索。但在当下,以上方案已经能很好地支持知识问答和智能体应用。

2025-09-09 12:27:01 539

原创 用 LangGraph 构建一个可执行 Python 代码的智能 Agent

我们先定义一个工具,接收 Python 代码字符串并返回执行结果。@tool""""""try:r}")r}"LangGraph 是一个状态机,每个节点执行后都会更新状态。这里我们定义了一个Statecode: str通过,我们把一个复杂的 Agent 流程拆解成了节点(生成代码 / 调用工具)与边(是否继续 / 结束)。这种方式非常适合构建可控、可扩展的多步推理 Agent。完整的代码@tool""""""try:r}")r}"""""""""""""

2025-09-07 23:13:24 412

原创 初探 Autogen:用多智能体实现协作对话

Autogen是一个用于构建多智能体系统的框架。它的核心理念是:将不同角色的智能体定义清楚(如助手、用户代理、批评者等);通过团队(Team)的机制协调这些智能体;利用终止条件(Termination Condition)控制对话的结束时机。这样一来,我们不仅能模拟单一助手的对话,还能让多个智能体在对话中互相交流、评审甚至决策。"primary","critic",:主要负责写作;:负责给出改进意见,并在满意时回复 “APPROVE”。通过这个例子,你应该对AutogenAgent。

2025-09-07 17:20:34 676

原创 Redis 在互联网高并发场景下的应用--个人总结

缓存热点数据→ 缓解数据库压力,提升响应速度。限流→ 防止突发流量冲击系统。分布式队列→ 实现削峰填谷,支撑异步处理。分布式锁→ 保证数据一致性,防止并发冲突。实时统计与排行榜→ 提供快速的聚合计算能力。Redis 不仅仅是一个缓存,更是一个高并发场景下的基础设施。合理利用其数据结构与特性,可以极大提升系统的可扩展性与稳定性。

2025-09-06 16:29:23 723

原创 让语言模型自我进化:探索 Self-Refine 的迭代反馈机制

特性说明通用性强只要是支持语言生成的 LLM,都可立即使用,无需再训练无需额外数据纯粹测试时操作,不依赖额外标签或训练样本简单有效通过反馈—修正的闭环流程,提升模型输出质量可扩展性好理论上适用于各种任务类型,比如生成、理解、推理等。

2025-09-05 18:29:37 944

原创 论文理解:Reflexion: Language Agents with Verbal Reinforcement Learning

你是否也和我一样好奇,,而不是一遍遍地?在传统强化学习中,我们常常依赖大量样本和昂贵的微调。而这篇论文提出的,则展示了一种不依赖参数更新的巧妙方法:让模型“口头反思”——用一句话总结失败,在下一轮尝试中吸取经验,这样的大脑仿佛能写作业时自我点评一样高效、可解释。

2025-09-03 22:36:59 870

原创 LangGraph Checkpoint:让图计算具备记忆与恢复能力

LangGraph 的 checkpoint 机制为图工作流带来了强大的记忆、容错、控制与“时间回溯”能力,让构建智能 LLM 应用更加灵活且可靠。配合 Memory Store 可进一步扩展长期记忆能力,而 v0.2 发布的多种 checkpointer 后端,更推动了从实验到生产的平滑过渡。在构建智能图计算(Graph Workflow)应用时,尤其是在与大型语言模型(LLM)协作的场景中,状态管理至关重要。此过程会自动生成多个 checkpoint:初始空状态、中间执行状态、最终状态等。

2025-09-02 18:31:26 749

原创 为什么要用 MarkItDown?以及如何使用它

MarkItDown 是一个轻量级的 Python 工具,旨在将多种文件格式转换为 Markdown 格式,特别适用于 LLM 和相关的文本分析管道。与 Pandoc 等工具相比,MarkItDown 更加专注于保留文档的结构和内容,如标题、列表、表格、链接等,输出的 Markdown 格式既适合人类阅读,也适合机器处理。

2025-08-30 22:51:02 1894 4

原创 本地运行 Ollama 与 DeepSeek R1 1.5B,并结合 Open WebUI 测试

通过以上步骤,你就可以在本地:安装并运行 Ollama拉取并启动 DeepSeek R1 1.5B 模型部署 Open WebUI 提供可视化界面这样,你可以轻松在本地环境中测试与使用大模型,无需依赖远程服务器,既安全又高效。

2025-08-30 19:22:04 399

原创 Python 异步编程:await、asyncio.gather 和 asyncio.create_task 的区别与最佳实践

await:运行并等待一个任务,默认是顺序执行。:并发执行多个任务,等待所有完成。:任务一创建就执行,可以灵活等待结果,适合流式或后台任务。如果你只是想并发几个请求,用gather就够了。如果你要调度复杂任务,会更好。

2025-08-29 16:42:03 533

原创 用 Streamlit 构建一个简易对话机器人 UI

前后端解耦:UI 与 LLM 调用分离,可单独测试对话记忆管理:使用 SQLite 保存会话状态可扩展性:后端可替换不同 LLM 或添加多轮对话逻辑。

2025-08-27 11:38:47 328

原创 用 mem0 构建一个简单的 AI Healthcare 助手

我们希望 AI 只提取与健康相关的信息,因此自定义了一个事实提取 prompt"""这样,每次用户输入时,mem0会自动从对话中提取健康信息并存入记忆库。通过以上代码,我们构建了一个具备以下能力的AI Healthcare 助手能提取用户输入中的健康信息并保存;能在后续对话中利用记忆,提供个性化建议;支持医疗预约、健康建议、病史追踪等扩展场景。未来你可以继续扩展:加入Neo4j 图数据库,存储患者关系网;加入医疗知识库检索,回答更复杂的问题;接入医院预约系统 API,实现自动挂号。

2025-08-26 12:26:35 344

空空如也

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

TA关注的人

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