自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从线性回归到神经网络到自注意力机制 —— 激活函数与参数的演进

人工智能模型从线性回归到神经网络的演进过程揭示了现代大模型的核心原理。线性回归通过权重映射输入输出,但只能处理线性关系。引入激活函数后,神经网络获得了非线性表达能力,通过多层神经元堆叠可学习复杂规律。而Transformer架构的Self-Attention机制使大模型能理解上下文:通过计算词向量间的相关性权重(Q/K/V),模型能捕捉长程依赖和语言模式,从而记住知识并进行推理。这种机制让模型能动态关注关键信息,结合海量数据训练,最终实现上下文理解和预测能力。

2025-08-19 17:01:42 482

原创 嵌入模型 vs 大语言模型:语义理解能力的本质区别与应用场景

嵌入模型像“语义雷达”——发现相近内容;大语言模型像“语言专家”——理解需求、整合信息、生成答案。两者不是对立,而是互补。结合使用,才能让你的 AI 系统又快又准又聪明。

2025-06-27 17:39:55 598

原创 ToB推荐系统中--嵌入模型的相似度获取后是否直接作为候选推荐

仅靠相似度排序不能直接决定是否选 top1,是否“可信”,还需要结合多种判断逻辑。👉 “先召回 topN,再结合规则判断 / LLM 推理 / 多因素打分来选最优因子”请判断该因子是否适用于该材料,请返回:“匹配”或“不匹配”,并简要说明理由。嵌入模型是根据语义相似度(例如:排放源名称与因子名称、描述)做的向量匹配。自动化流程(少人工干预) 嵌入 → 筛选 → LLM 判断(匹配等级)候选因子 名称相似度 工艺是否匹配 描述是否含有关键词 总分。但它无法判断:这个因子是否真适用于该排放源。

2025-06-27 16:38:08 430

原创 嵌入模型语义理解是怎么来的?工程实践中只需要关注相似度吗?

在语义检索、RAG、智能问答、推荐系统等场景中,正在成为主流组件之一。但许多工程开发者常有如下疑问:“嵌入模型真的理解语义了吗?“我是不是只要拿来算余弦相似度就行?“它说这两句话语义相近,是怎么判断的?本篇文章将以开发者视角,拆解,以及你在应用中。

2025-06-27 15:40:53 528

原创 向量库中向量和原始文本是如何绑定的?FAISS 检索返回的为什么是段落

在使用 FAISS、Milvus 等向量数据库进行语义搜索时,你是否也有这样的疑问:❓“我明明是用嵌入模型把问题转成向量进行检索,那为什么 FAISS 最终返回的结果是段落文本,而不是向量呢?这是一个的问题,理解这个问题的本质,有助于你更好地构建 RAG 系统、语义搜索引擎、知识库问答等功能。

2025-06-27 14:54:15 168

原创 RAG 多段检索 + 多段拼接 + Encoder 与 Decoder 原理详解

RAG 的本质是:“用嵌入模型找相关内容用大语言模型生成答案RAG 系统的关键不只是检索,更在于:如何判断段落是否真正有用如何处理多个段落组合答案如何设计 Prompt 和模型搭配,使大模型生成更准确的回复如果你想深入实践,我可以提供完整 Python 示例,包括:向量化FAISS 检索reranker 重排序Prompt 构建与 GPT 接入生成欢迎评论或联系我获取项目模板!

2025-06-27 13:55:26 1149

原创 嵌入模型与大语言模型的区别:从结构到应用的深度解析

对比维度嵌入模型(Embedding Model)大语言模型(LLM)功能定位把文本编码为向量,便于比较和检索理解上下文并生成自然语言输入形式通常为短文本(词/句/段)支持更长的上下文输出形式稠密向量(如 768维)自然语言文本(完整句子)模型结构多为 Encoder-only(如 BERT)多为 Decoder-only(如 GPT)或 Encoder-Decoder(如 T5)应用方向向量搜索、语义匹配、聚类文本生成、问答、翻译、总结等。

2025-06-27 12:15:17 1460

原创 Uvicorn 入门详解

前言在 Python Web 领域,异步服务器网关接口(ASGI) 已成为现代 Web 框架(如 FastAPI、Starlette、Sanic 等)的主流标准。作为 ASGI 生态的明星服务器,Uvicorn 以其高性能、易用性和极简风格,成为 FastAPI 官方推荐的生产级部署方式。本文将带你快速了解 Uvicorn 的工作原理、常用用法、开发热重载、日志管理和部署技巧,并总结开发者常见的踩坑经验。你可以把 Uvicorn 理解为 WSGI 时代的 gunicorn,但为异步而生!

2025-06-23 18:02:05 648

原创 FastAPI + PyMySQL 报错:“dict can not be used as parameter”的原因及解决方案

❌ FastAPI + PyMySQL 报错 “dict can not be used as parameter” 问题及解决方案最近在开发一个基于 FastAPI 的碳足迹因子智能匹配系统时,后端保存接口数据到 MySQL 时遇到了如下错误:❌ 解析失败: dict can not be used as parameter一、问题背景复现原始代码如下:python复制编辑answer=result_list, # 🚨 错误点:是 list 类型。

2025-06-23 17:52:33 446

原创 Jupyter Lab 无法启动 Kernel 问题排查与解决总结

使用 curl,telnet,或 Python websocket-client 库可以本地模拟 WebSocket 握手行为,帮助分析服务端响应状态。避免使用 http:// + ws:// 组合方式部署 Jupyter Lab,特别是在远程或跨域访问场景。建议统一采用 https:// + wss:// 方式部署,确保浏览器信任并兼容。确认 WebSocket 已升级为 wss://,内核可正常启动。但在远程访问时,浏览器出于安全策略,默认拒绝 ws:// 协议。

2025-04-09 16:22:09 1157

原创 mybatis-plus 对于属性为null字段不更新

MyBatis-Plus 默认情况下会根据字段的值是否为 null 来决定是否生成对应的 UPDATE 语句。这是由 更新策略 决定的,默认的行为是 忽略 null 值,即如果字段值为 null,该字段将不会出现在 UPDATE 语句中。默认情况下,MyBatis-Plus 会忽略值为 null 的字段,不生成 UPDATE 语句。忽略字段值是否为 null,即使为 null 也会生成对应的 UPDATE 语句。当字段值为 null 时,UPDATE 语句中会忽略该字段。实体字段为 null 的更新效果。

2024-11-29 17:04:13 2150

原创 ubantu系统分辨率设置为1920

2添加模式到xrandr: 首先,使用输出的Modeline信息创建一个新的模式。NVIDIA服务器在Ubuntu系统上每次重启后分辨率变成1024x768。以上需要在图形化界面里面操作,不要在xshell中操作。

2024-11-13 09:43:00 583

原创 AI大模型之旅-最强开源文生图工具Stable Diffusion WebUI 教程

clone时默认会下载基础模型 v1-5-pruned-emaonly.safetensors ,这个是sd 1.5基础模型。clone时默认会下载基础模型 v1-5-pruned-emaonly.safetensors ,这个是sd 1.5基础模型。模型存储的位置: 记住这个目录下只放safetensors(安全模型)文件或者ckk (旧模型的后缀)等全量模型。1.下载lora 模型,这里一定要注意lora模型是基于哪个模型生成的。lora模型 ,这个代表是lora微调的模型。

2024-09-29 13:28:55 1097

原创 AI大模型之旅--milvus向量库安装

milvus-向量索引库milvus的官方文档中看到最新版本的部署方式 :https://milvus.io/docs/install_standalone-docker.md。

2024-09-20 19:53:43 650

原创 AI大模型之旅-langchain结合glm4,faiss构建本地知识库

问题1:(ckglm4) ck@insight:~/PycharmProjects/ckpractice$ pip install faiss-gpu。答案:使用conda安装。

2024-09-20 19:47:42 725 1

原创 AI大模型之旅-大模型中的input_ids,自注意力机制,灾难性遗忘

自注意力机制(Self-Attention) 是 Transformer 模型中最关键的部分,它让模型在处理输入序列中的每个词(或 token)时,可以“关注”序列中其他所有词,从而理解上下文的整体含义。通俗来说,自注意力机制帮助模型决定每个词与其他词的关系,以及哪个词在特定情况下更重要。核心问题:传统的语言模型一般是根据最后一个词来预测下一个词,但这样做可能无法捕捉到全局的上下文信息。举个例子:句子:“我今天去看了电影《盗梦空间》,这部电影非常精彩。

2024-09-19 19:03:40 1216

原创 AI大模型之旅-大模型为的微调参数详解

在自然语言处理(NLP)中,Token 指的是模型处理的文本片段。它可以是一个单词、单词的一部分,甚至是标点符号。比如在句子 “I am learning” 中,每个词可以被视为一个 Token:“I” → 1 个 Token“am” → 1 个 Token“learning” → 1 个 Token具体到某些分词器,像 “learning” 这样的词可能会被进一步拆分为多个子词 Token(例如 “learn” 和 “ing”)。max_length 定义:生成的文本的最大长度。

2024-09-19 18:54:12 1905

原创 AttributeError: ‘DistributedDataParallel‘ object has no attribute ‘prepare_inputs_for_generation‘

当你使用 DistributedDataParallel (DDP) 时,模型被包装在 DDP 中,所有模型的方法都会被封装在 model.module 中。因此,如果你要调用模型的自定义方法(如 prepare_inputs_for_generation),需要通过 model.module 来访问。

2024-09-11 20:13:23 618

原创 多卡微调智谱glm-4-9b-chat

微调(Fine-tuning): 微调是通过在预训练模型的基础上,使用特定领域的训练数据进一步训练模型,使其在该领域或任务中表现得更好。这个过程会修改模型的内部参数,优化模型在特定任务上的表现。微调后的模型已经具备了特定领域的知识,在推理时可以直接依赖这些内部知识。工作原理:通过额外的训练数据,逐步调整预训练模型的参数,使其能够更好地理解和生成与特定任务或领域相关的内容。训练完成后,微调后的模型不需要访问外部资源或知识库,就可以直接生成符合特定领域的结果。

2024-09-11 20:02:08 1398

原创 chatglm4部署以及集成langchain

这通常意味着你传递给 HuggingFacePipeline 的自定义 pipeline 对象没有正确设置 task 属性。HuggingFace 的 pipeline 对象通常应该有 task 属性来标识它的类型,例如 “text-generation”, “translation”, “summarization” 等。代码在调用 HuggingFacePipeline 的 _generate 方法时遇到了 AttributeError,其中 self.pipeline 的对象没有 task 属性。

2024-09-09 14:24:17 946

原创 AI大模型之旅-Ollama+AnythingLLM 搭建本地知识库,并落地生产

以上都是在anythingllm中提问或者回答,但是如何结合自己的生产系统呢,anythingllm提供的api接入,先生成一个api秘钥,然后点击api文档。然后再本地postman测试,以下就测试成功了,紧接着就可以连接自己的生产环境,喂自己的数据,构建自己的知识库了。每个工作区点击设置,可以修改工作区的配置,包括通用设置,聊天,向量库和大模型代理,自己设置就好了。文档上传完成,可以测试以下(顺便说的我的文档是java面试宝典),测试效果还可以。点击上传按钮,就可以上传本地文档,甚至有网页。

2024-09-04 17:33:11 1755 4

原创 python元组和java的区别

当一个函数返回多个值时,Python 会自动将它们打包成一个元组,并且可以在调用函数时将这些值解包到单独的变量中。虽然这并不常见,但在某些情况下,你可以使用一个对象数组或列表来存储不同类型的值,然后通过类型转换访问它们。对于多于两个值的情况,你可能需要自己定义一个三元组(Triple)类,或者使用支持三元组的第三方库。自定义类:这是最灵活和常见的方式,尤其适合在返回多个值的场景中保持代码的清晰性和可维护性。使用 Pair/Triple:适用于简单的场景,尤其当你只需要返回两个或三个值时。

2024-09-02 20:26:49 547

原创 AI大模型之旅-本地安装llm工具dify 和 fastgpt

官网地址: https://dify.ai/进入 Dify 源代码的 docker 目录,执行一键启动命令:进入 dify 源代码的 docker 目录,按顺序执行以下命令:本地地址:http://xx.xx.xx.xx/用户名密码需要邀请 个人邮箱:[email protected] 密码:********

2024-09-02 13:49:41 844

原创 Python 和 Java 中 null 值、集合、空字符串、空格字符串的判断详解

在布尔上下文中,空字符串被视为 False,因此使用 not value 可以简洁地判断字符串是否为空。isEmpty() 方法检查字符串长度是否为零,equals(“”) 比较字符串内容是否为空字符串。在编程中,判断变量是否为 null、集合是否为空,以及字符串是否为空或仅包含空格是非常常见的操作。trim() 方法移除字符串两端的空白字符,如果结果为空字符串,则说明原字符串为空或仅包含空格。strip() 方法移除字符串两端的空白字符,如果结果为空字符串,则说明原字符串仅包含空格。

2024-09-02 10:22:01 1000

原创 AI大模型之旅--Vanna的安装与部署

根据前章,我们部署了ollama,此章刚好用来测试text2sql -----vanna安装部署。

2024-08-28 17:40:17 3746 1

原创 AI大模型之旅--本地Ollama部署

Ollama 是一个本地推理框架,允许开发人员轻松地在本地部署和运行 LLM例如 Llama 3、Mistral 和 GemmaOllama 提供了一种简单的方法来部署 LLM 到本地环境。您可以使用 Ollama 的命令行界面或图形界面来完成此操作。

2024-08-28 16:41:42 1556

原创 深入了解 NumPy:Python 科学计算的基础与 Java 的对比分析

什么是 NumPy?NumPy,全称 Numerical Python,是一个开源的 Python 库,专门用于高效处理大型多维数组和矩阵。它提供了丰富的数学函数,简化了复杂的数组运算。NumPy 是许多高级数据科学库(如 Pandas、SciPy、TensorFlow 等)的基础,是数据科学和工程领域的核心工具。为什么选择 NumPy?NumPy 的优势主要体现在以下几个方面:高效的多维数组对象:ndarray 是 NumPy 的核心,能够存储同类型的数据,支持各种维度的数组操作。

2024-08-27 16:18:24 814

原创 python-Flask 全方位指南:从入门到模块化开发与代码保护

而结合 PyInstaller、Cython 和 PyArmor 等工具,你可以将应用打包成可执行文件,增强代码的保护,从而更好地分发和部署你的应用。随着项目需求的增加,合理运用这些技术,可以帮助你应对更复杂的挑战,同时保证代码的安全和高效。这会生成一个 .pyd 文件(Windows)或 .so 文件(Linux/macOS),可以在应用中代替原来的 .py 文件使用。你可以先使用 PyArmor 对代码进行混淆,然后使用 PyInstaller 将其打包成可执行文件,从而增强代码的保护力度。

2024-08-27 11:02:31 1229

原创 Matplotlib 简介:Python 数据可视化的强大工具

在数据科学、数据分析和机器学习的工作流程中,数据可视化是不可或缺的一部分。可视化不仅能够帮助我们理解数据中的模式和趋势,还能够通过直观的图表来呈现分析结果。而在 Python 生态系统中,Matplotlib 是最为流行和基础的可视化库之一,它为我们提供了创建各种类型图表的能力。什么是 Matplotlib?Matplotlib 是 Python 的一个 2D 绘图库,最初由 John D. Hunter 开发,用于创建高质量的图表和图形。

2024-08-20 09:25:13 1687

原创 Pandas DataFrame:数据处理利器及其在 Excel 和 SQL 数据处理中的便利性

在数据分析和数据科学的世界里,Python 的 pandas 库无疑是最受欢迎的工具之一。而其中的 DataFrame 是一个功能强大、灵活且广泛应用的数据结构。对于那些经常处理 Excel 数据或 SQL 数据库数据的人来说,pandas.DataFrame 提供了无与伦比的便利性和效率。本文将介绍 pandas.DataFrame 的基本概念,并探讨它在处理 Excel 数据和 SQL 数据时所带来的诸多便利之处。什么是 Pandas DataFrame?

2024-08-19 17:49:21 1253

原创 深入对比:Python pandas 与 Java Map 在数据处理中的应用

在软件开发和数据处理的世界中,Python 和 Java 是两种广泛使用的编程语言,各自有其强大的数据结构来处理和分析数据。pandas.Series: Series 的一个强大之处在于,它在操作时会自动对齐数据的索引。如果两个 Series 的索引不同,pandas 会自动对齐它们,并在缺失的地方填充 NaN,从而保证操作的一致性。pandas 是基于 numpy 构建的,因此它与 numpy 有深度的集成,这使得 pandas 可以直接使用 numpy 的许多强大功能。

2024-08-19 17:03:36 941

原创 AI大模型之旅-ubantu环境下 jupyter lab 环境配置

启动成功如下,在浏览器端输入如下地址,ip替换为主机ip http://127.0.0.1:8888/lab?虚拟环境可以帮助你管理项目依赖,并保持系统的整洁。//进入目录(管理员用户进入非授权目录,成员用户进入自己目录忽略) sudo -i。后台执行命令:nohup jupyter lab --ip=0.0.0.0 &启动 :jupyter lab --ip=0.0.0.0。//安装 python3-venv。若pip需要升级,可以先升级。

2024-08-09 10:32:01 411

原创 AI大模型之旅--安装向量库milvus

milvus的官方文档中看到最新版本的部署方式Install Milvus Standalone with Docker Compose。(如果下载不下来,则需要魔法)milvus,向量索引库。2.下载web-ui界面。启动后会拉取镜像,启动。1.milvus部署。

2024-08-08 16:05:30 483

原创 如何理解和实现二分查找:一篇完整的解析

如果使用 left < right,当 left 和 right 同时指向最后一个元素(也就是目标值)时,循环会结束,因为条件 left < right 不成立,从而导致无法检查最后一个元素。使用 left

2024-04-30 18:46:55 208 1

原创 有向图的邻接表和邻接矩阵

具体来说,有向图的邻接表由一个由节点和它们的邻居节点列表组成的集合构成。这种表示方法可以用一个哈希表或数组来实现,其中哈希表或数组的键或索引表示节点,对应的值是一个列表,存储了该节点的所有邻居节点。具体来说,可以使用 Map,其中键是节点的名称(如字符串表示),值是一个列表,存储了该节点指向的所有邻居节点的名称。有向图的邻接表是一种常用的表示方法,用于表示图中各个节点之间的关系。在有向图中,每条边都有一个方向,因此邻接表中的每个节点记录了该节点指向的其他节点。

2024-02-21 13:45:48 1750

原创 Java中的序列化方法探索

这些方法允许您将对象的状态转换成一种可以存储或传输的格式,而不依赖于 Java 内置的序列化机制。但是,当基本数据类型被用作类的字段时,在该类实现了 Serializable 接口的情况下,这些基本数据类型的字段会自动包含在序列化过程中。在 Java 中,序列化是将对象的状态信息转换为可以存储或传输的形式(例如,转换为字节流)的过程。这意味着,如果您创建了一个实现了 Serializable 接口的类,并且这个类包含基本数据类型的字段,那么当您序列化这个类的对象时,这些基本数据类型的字段也会被序列。

2024-01-03 11:31:38 1179

原创 如何有效使用 .gitignore 文件

在任何使用 Git 的软件项目中,.gitignore 文件都是一个必不可少的工具。它帮助开发者定义哪些文件和目录应该被 Git 忽略,从而保持代码库的整洁和管理的简便性。什么是 .gitignore?.gitignore 文件是一个文本文件,您可以在其中指定 Git 应该忽略的文件和目录模式。这通常包括编译生成的文件、本地配置文件和其他不需要或不应该包含在源代码管理中的文件。基本用法创建 .gitignore 文件很简单。您只需在项目的。

2023-12-29 17:35:53 921

原创 rabbitmq界面主要参数分析

本篇主要分析rabbitmq broker界面参数。

2023-12-18 19:28:01 865

原创 实现高效消息处理:在 Spring Boot 中使用 Redis Stream

如果用redis发布订阅机制来写的话,若消费者服务多节点,又会发生重复消费的问题,而redis发布订阅机制事实上并没有消费者组的概率,无法避免这个问题。这个过程非常适合使用 Redis Stream 来实现,stream中有消费者组的概念,和rocketmq一样,我们可以创建一个流来保存新应用的信息,并设置消费者来处理这些信息。通过利用 Redis Stream 的高级特性,如消费者组和消息确认,我们可以构建一个强大的事件驱动架构,为微服务和分布式系统提供强有力的支持。Spring Boot 中的实现。

2023-12-07 20:03:55 1873

原创 如何在Spring Boot中集成RabbitMQ

在Spring Boot集成的RabbitMQ应用中,通常会在消费者处理消息时发生异常的情况下,明确地将消息发送到死信队列。如果点进来,没有显示这个绑定队列,就说明配置的不对,后续也无法消费,点进队列后,就会显示队列中的消息了。避免消息丢失:死信队列确保无法处理的消息不会被丢失,而是存储在一个特定的地方,供进一步的检查和处理。队列达到最大长度:如果队列设置了最大长度并达到这个限制,最老的消息可能会被移动到死信队列。在这个例子中,如果在处理消息的过程中发生异常,消息会被明确地拒绝,并发送到配置的死信队列。

2023-12-07 19:40:29 1376 2

空空如也

空空如也

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

TA关注的人

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