自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LLM推理采样的原理探索和过程示例

LLM为生成多样化文本,通常会在输出分布上进行采样操作。对给定的模型输出 logits 向量 Z = [z0, z1, .., zn], n为词表的大小,第i个词的概率分布计算如下。各种采用方法,其作用就是在softmax计算分布的基础上,重新调整或截断分布,从新的分布中选取下一个token。常见采样策略有温度采样、top-k采样、top-p采样。这里通过参考网络资料,尝试理解其原理,并用python程序示例其运行过程。

2025-11-24 16:20:28 592

原创 从模型训练和推理角度探索温度采样的特性

常见采样策略有温度采样、top-k采样、top-p采样。对给定的模型输出 logits 向量 Z = [z0, z1, .., zn], n为词表的大小,第i个词的概率分布计算如下。对于各种采用方法,其作用就是在softmax计算分布的基础上,重新调整或截断分布,从新的分布中选取下一个token。

2025-11-24 10:42:03 648

原创 langchain llm如何支持工具类应用的自定义结构化抽取

这里示例通过自定义parser的方式,解决上述的抽取失败的问题。针对2.2小节抽取失败案例,通过PydanticOutputParser自定义parser方式,实现结构化信息抽取。核心逻辑如下所示:1) 通过PydanticOutputParser自定义parser,识别GuardrailsOutput中需要抽取的内容。2)system_prompt中增加如下明确提示目的是提示llm在输出内容时,遵循给定指令。

2025-11-22 16:37:48 780

原创 大模型自定义结构化输出示例

不是所有模型都实现了with_structured_output函数,不一定都支持工具调用或json方式。这里尝试采用自定义的方式,实现这些模型的结构化输出。

2025-11-21 23:42:17 559

原创 langgraph基于ReACT集成langchain定义的功能

首先定义知识图谱、大模型,以及action状态数据结构,后者用于粘合langchain定义各功能模块。大模型应用deepseek-r1,具备强大的处理能力。import os基于之前探索内容,这里罗列langchain定义的generate_cypher、validate_cypher、correct_cypher、execute_cypher、generate_final_answer等多个模块,涵盖问题判断、cypher生成、检查、重写、执行和结果生成等多个环节。细节内容参考。

2025-11-21 16:18:43 680

原创 langchain如何检查llm生成cypher的正确性并修正错误

之前介绍了langchain如何依赖prompt判断neo4j图谱能否回答用户问题。这里通过多种手段分析llm生成cypher的正确性,并尝试基于llm修正错误和重写cypher。

2025-11-21 11:31:52 863

原创 langchain如何判断neo4j知识图谱是否能回答问题

由于neo4j图谱局限性,图谱不能回答所有问题,如电影图谱,可能回答不了天气、经济类问题。另外图谱自身并不能判断否则回答问题,这里尝试基于langchain判断图谱能否回答问题。实验所用代码参考和修改自网络资料。

2025-11-20 23:15:00 989

原创 从蒙特卡洛的角度探索和示例重要性采样

重要性采样是RL强化学习,特别是调优LLM的PPO等的理论基础。这里从蒙特卡洛的角度,尝试分析和探索重要性采样,重要分布,以及重要权重的核心要素。所用到的图标、数据参考和修改自网络资料。

2025-11-19 18:18:09 883

原创 如何基于sklearn余弦相似度匹配相关文档

向量检索是目前 RAG匹配文档最重要的实现方式之一,其有效性和性能关系到RAG的可用性。这是常识通过sklearn余弦相似度,示例使用向量相似度的方法匹配文档的过程。除ollama进行向量计算外,示例过程仅使用numpy、sklearn,最基础展示文档相似匹配过程。

2025-11-18 19:42:08 697

原创 EnsembleRetriever中的倒数融合排序算法

langchain目前最常见的检索器retriever是BM25、密集检索器,然而两者优势各异。稀疏检索器擅长基于关键词查找相关文档,而密集检索器擅长基于语义相似性查找相关文档。最常见的模式是将稀疏检索器(如BM25)与密集检索器(如嵌入相似度)结合起来,实现优势互补,也被称为“混合搜索”。这里首先介绍多种检索结果混合常用的倒数融合排序算法RRF,然后进一步介绍langchain EnsembleRetriever中的RRF的实现,所用到的代码示例参考和修改自网络资料。

2025-11-15 20:57:07 947

原创 如何基于DSL脚本进行elasticsearch向量检索示例

向量检索是目前RAG库主要依赖的功能,这里示例如何在elasticsearch环境中构建向量库,并示例基于DSL脚本的向量相似度检索过程。

2025-11-14 19:31:53 704

原创 如何理解Gibbs解决多维分布采样的效率问题

这里采样一个二维正态分布,示例Gibbs采样过程。其中。

2025-11-14 14:24:19 641

原创 如何理解MCMC的延续 M-H采样

之前从接收率的角度尝试理解MCMC,发现MCMC存在接收率过低的问题。这里尝试学习M-H采样,探索M-H解决MCMC采样接收率过低的原理和机制。所用到的代码和示例,修改在网络资料。M-H采样全称是Metropolis-Hastings,由Metropolis提出,被Hastings改进,被称为Metropolis-Hastings采样或M-H采样。依据MCMC采样,有如下等式两边进行扩大,此时细致平稳条件也是满足的。将等式扩大C倍,使得C*α(i, j) = 1。

2025-11-13 09:16:45 887

原创 sql中left join和inner join的区别

join时mysql数据库中非常关键的连表查询手段,包括left join和inner join。这里尝试说明left join和inner join的区别,并通过具体场景示例。sql代码和例子,参考自网络资料。

2025-11-12 18:35:21 361

原创 如何用约束方式解决或缓解LLM回答发散的问题

目前,Deepseek、qwen等LLM已经具备解决实际问题的能力,然而对于一些容易发散的问题,由于回答问题的角度不同,有可能导致完全不同的回答,比如,对企业业务性质打分。这里以业务耗能水平大份为例,示例LLM发散问题,并尝试通过prompt的方式约束LLM。

2025-11-12 17:15:02 591

原创 如何从接收率角度理解MCMC(马尔科夫-蒙特卡洛方法)

之前学习了马尔科夫链和蒙特卡洛方法。这里进一步学习如何使用蒙特卡洛方法,解决马尔科夫链中状态转移矩阵未知的问题,即MCMC学习过程中用到的公式、图示例来自网络参考资料。

2025-11-12 15:53:06 827

原创 如何从状态转移的角度理解马尔可夫链

马尔科夫链假设某一时刻状态转移的概率只依赖于它的前一个状态,表示如下由于某一时刻状态转移只依赖于它的前一个状态,只要能求出系统中任意两个状态之间的转换概率,最终可得到状态转移概率矩阵。数学语言总结下马尔科夫链的收敛性质,过程如下:如果一个非周期的马尔科夫有状态转移矩阵P,并且他的任何两个状态连通,那么与i无关。所以,马尔可夫链的性质,可以从以下角度进行归纳。1)也就是说,n次迭代后,P_{i, j}对应的最终值为π(j)2)对于P中的每个元素P_{i,j},n次迭代后,最终分布状态如下所示。

2025-11-10 19:00:05 917

原创 elasticsearch创建和查询索引结构示例

创建和查询索引结构,是使用elasticsearch最常用的操作。这里尝试分别通过命令行和python程序,示例这些操作的基础用法。

2025-11-10 11:38:18 856

原创 latex特殊符号公式记录

这里收集和整理latex多种特殊符号公式的组合记录。相关资料收集和整理自网络资料。

2025-11-09 22:37:36 148

原创 如何理解蒙特卡洛方法并用python进行模拟

MC,即蒙特卡洛方法,是用来在概率空间,通过随机采样估算兴趣参数的后验分布。这里先从为什么需要MC开始,然后尝试介绍MC的一般形式和接收-拒绝采样,并通过python对采样过程进行模拟和示例。这里用到的示例图和演示代码整理和修改自网络资料。

2025-11-07 19:47:18 698

原创 linux 文件操作常用命令组合

整理Linux文件操作常用的命令组合。

2025-11-07 09:53:16 215

原创 基于LLM+SearxNG的实时网络搜索agent

LLM时代大量的信息来源于网络,并且具有明显的实时特征,比如股价、新闻。这里尝试结合开源版本的聚合搜索工具SearxNG,构建实时网络搜索agent。所用到的示例代码参考和修改自网络资料。

2025-11-06 15:02:39 760

原创 如何用faiss强化基于mysql的文本检索

faiss是Facebook研究院开发的一种高效的相似搜索和聚类库,能够快速处理大规模数据,支持在高维空间进行相似性搜索。faiss建立vector库过程,即把候选向量集封装成一个index数据库,不需要开发即可实现topk的相似检索过程。

2025-11-06 09:27:56 849

原创 如何用抽象语法树工具ast解析str格式的文本数据

LLM时代很多时候需要处理的数据不是结构化数据,而是文本数据。比如虽然我们知道这是一个list数据,但实际上它是str,它不能被python按list的方式处理。这里先了解抽象语法书工具ast,然后尝试用ast解析python函数、文本print形式的list串。

2025-11-05 18:42:22 612

原创 如何利用约束提示优化LLM在问题转sql的一致性

LLM将用户问题转化为sql时,会面临多次运行生成sql不一致的问题。LLM将问题转化为sql需要在精确性和有效性间做权衡,LLM每次运行都有可能做出不同的选择。这里借鉴one-shot learning思路,尝试采用约束提示的方式,尝试解决sql生成不一致的问题。

2025-11-05 16:50:48 875

原创 如何使用elasticdump进行elasticsearch数据还原

测试elasticsearch,http_ca.crt是es的证书文件,docker创建的elasticsearch自带ca证书。这里假设使用conda环境,先安装npm工具nodejs,然后安装elasticdump。【ElasticSearch】elasticdump 导入/导出数据及常见报错。Mac本地docker安装Kibana+ElasticSearch。python访问基于docker搭建的elasticsearch。假设采用docker创建的elasticsearch,过程参考。

2025-11-04 16:40:24 425

原创 如何基于llm+mysql构建轻量级全文搜索

mysql全文检索,通常采用like类似字符串匹配实现。比较麻烦地方在于从原始问题中提取关键信息,并进行有效分词,以提取用于like检索的关键词。当问题关键词与mysql存储语义相似目标文本串不匹配时,就会检索不到有效信息。这里参考网络资料,尝试基于LLM,优化基于mysql的全文检索。

2025-11-03 23:23:48 744

原创 如何在python环境设置home工作目录

如果不指定正确的home工作目录,在bash终端运行python程序,可能会报模块加载失败异常。这是因为python依赖home工作目录来定位需要加载的python模块。这里参考网络资料,整理出3种设置python home工作目录的方法。

2025-11-03 17:32:09 208

原创 LLM大模型Token用量统计计算

token 是模型用来表示自然语言文本的基本单位,可以直观的理解为“字”或“词”。通常 1 个中文词语、1 个英文单词、1 个数字或 1 个符号计为 1 个 token。一般情况下模型中 token 和字数的换算比例大致如下:1 个英文字符 ≈ 0.3 个 token。1 个中文字符 ≈ 0.6 个 token。不同模型的分词不同,换算比例也存在差异。这里示例集中token计算方式。

2025-11-01 16:51:13 525

原创 评估agent能力benchmark收集汇总

这些 benchmark对比不同方法、不同模型之间的相对优劣,也能测出Agent在特定技能上的表现,比如工具调用、信息检索、代码生成等。benchmark 环境通常是简化、净化过的,而真实世界充满了噪声、歧义、不确定性、动态变化,API 可能不稳定、文档可能过时、用户需求可能反复无常。benchmark也会不断进化,适应越来越复杂的真实世界场景。

2025-10-30 23:50:17 1089

原创 python获取sql查询语句指定的列名

python借助于pymysql运行sql查询,能返回数据库数据,但一般都没有标志数据的列名。这里参考网络资料,尝试从一个从复杂的sql select语句中提取列名。

2025-10-30 12:29:13 346

原创 langchain中chain和agent的区别和联系

langchain中,chain和agent是两种常用工具,都可以通过LLM与外部进行交互。chain链相对固定,开发chain类似于编写面向过程的程序,agent则更智能,自动选择执行工具。这里从sql生成和执行的角度分析langchain和agent的作用。

2025-10-28 11:58:45 497

原创 langchain agent将用户问题转sql并运行sql查询

之前探索了基于chain将用户问题转化为sql查询并运行。这里尝试基于agent,采用更智能的方式决定是否将用户问题转化为sql、并进行sql查询。

2025-10-28 10:21:57 983

原创 langchain将用户问题转sql查询探索

langchain直接介入mysql,将用户问题转化为对mysql的查询,然后依据查询结果回答用户问题。

2025-10-27 18:53:57 923

原创 关系型数据库数据集 - northwind & chinook

在大模型时代,关系型数据库依然是很多统计检索类应用的首选,并在langchain类工具的支持下支持基于llm的统计检索和查询。这里引入数据集northwind、chinook,并示例导入mysql过程,并基于langchain进行统计查询。

2025-10-24 15:30:02 834

原创 如何结合langchain、neo4j实现关联检索问答-续

InputState和OutputState定义输入和输出,所以仅包含question、answer等基本信息。OverallState定义总体状态,需要关注当前状态和下一步的action,cypher报错、数据库记录、steps等信息。""""system",),"human",),""""""return {LLM直接将问题转化为cypher查询难度较大,为提高LLM转cypher的能力,这里引入少样本提示的方式,即few-shot prompting,辅助LLM生成cypher。

2025-10-24 09:28:32 667

原创 如何结合langchain、neo4j实现关联检索问答

langchain时llm应用最流行的开发工具之一,neo4j时应用最广泛的图数据库管理工具。这里尝试结合langchain和neo4j,示例关联检索的实现过程。以下内容中的测试例和代码,整理和修改自网络资料。

2025-10-23 09:10:46 1099

原创 使用docker搭建minio文件存储服务

minio是知名的高性能、轻量级的对象存储开源解决方案,支持多种本地部署方式,比如docker。这里参考网络资料,基于docker搭建类似于阿里云oss的minio文件存储服务。

2025-10-23 09:09:15 476

原创 如何为docker版本的neo4j安装apoc

APOC是neo4j经常使用的功能扩展包,langchain等LLM工具连接neo4j依赖apoc。这里尝试为docker 版本的neo4j安装apoc。

2025-10-22 09:20:47 713

原创 如何基于docker安装neo4j并基于py2neo访问neo4j

neo4j是使用最广泛的中小型图数据库,提供了图形操作界面和cypher查询语言。这里尝试基于docker构建neo4j环境,并使用python进行图数据库的基本操作。示例代码参考和修改自网络资料。

2025-10-22 09:18:43 632

空空如也

空空如也

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

TA关注的人

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