电商SKU选择优化维度-倒排索引(搜索引擎原理)

两种常见电商sku的设计 在电商系统中,商品sku和sku模型至关重要,是整个电商系统的重要组成部分之一,下面通过一些简单的知识整理和分析,讲解一下sku属性管理和常见的建模方式。 一、sku的定义及概念的统一 1、什么是sku? sku = Stock Keeping Unit (库存量单位)   ; 即库存进出计量的单位,可以是以件,盒,托盘等为单位。    sku是对于大型连锁超市(电商)DC(配送中心) 阅读详情

SKU属性假定为 5维

数量  SKUID 颜色    容量      保修期限        屏幕大小    电池容量
2       1       红色  4G      1 month     3.7         1500mAh
3       2       白色  8G      3 month     4           1900mAh
0       3       白色  8G      3 month     4.3         1900mAh
5       4       黑色  16G     6 month     4.3         2100mAh

当选择 屏幕尺寸 4.3寸时
能选择的颜色 (白色,黑色)
能选择的容量 (8G,16G)
电池容量 (1900mAh,2100mAh)
…
计算维度维5维 复杂度维 N的五次方。

如何将计算维度降维成了关键。

这里应用 搜索引擎技术(倒排索引 )来处理复杂的多层次搜索问题。

倒排索引 的关键在于索引的建立.

这里写图片描述

按图所示将所有的Key属性作为关键字,将包含这些属性的SKU做为文档存储在对应的List中。

1、单SKU选择情况

当搜索 白色 出现白色的SDK 为 2和3
这样可以得到 以下属性
白色 8G 3 month 4 1900mAh
白色 8G 3 month 4.3 1900mAh

但是因为数量为0不可以选所以最终得到的属性为SKUID = 2
白色 8G 3 month 4 1900mAh
其他的属性应该全部不可操作。

2、出现多SKU选择时的情况

例如 搜索 白色 和4.3寸,
得到的文档为 (2,3),(3,4) 取交集 为 (4)。
得到最终能选择的属性

3、根据两种情况分析

1、使用倒排索引后复杂度降级为一维,大大降低了难度。
2、当出现多选择的情况时,利用索引文档交集结果可以排除大量的无用条件,降低复杂度

总结: 使用次设计方案 可以大大降低开发的难度和UI的数据交互操作。

并大大的节约CPU运行维度。

别再死记硬背了!用大白话+图解,带你彻底搞懂ES倒排索引的‘压缩’艺术 本文通过生活化场景和图示,深入浅出地解析了ES倒排索引的压缩技术,包括FST算法、FOR和RBM压缩等底层原理。文章以图书馆和超市小票为例,生动展示了如何通过差值存储和分桶策略优化存储空间,同时保持高效查询性能,帮助开发者深入理解搜索引擎的核心机制。 阅读详情

相关推荐

淘宝拍立淘API实战:图像搜索与电商应用开发指南

图像搜索技术通过计算机视觉提取图片特征向量,结合近似最近邻搜索算法实现高效匹配,是电商领域商品检索的核心技术。淘宝拍立淘API基于改进的ResNet-50模型和HNSW算法,能在亿级商品库中实现毫秒级响应。该技术特别适用于跨境电商比价、智能推荐系统等场景,通过商品图像识别提升用户购物体验。本文以拍立淘API为例,详解从接口原理到工程实践的完整解决方案,包括图片预处理、签名算法优化等关键技术点,帮助开发者快速构建基于图像搜索的电商应用。

chouxuyi9789的博客 422

如何设计电商SPU与SKU表以及相关的表?

SPU (Standard Product Unit)即标准化产品单位,是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。SKU(stock keeping unit)即库存量单位,是物理上不可分割的最小存货单元。正因为它在物理上是不可分割的最小存货单元,所以也就可以通过SKU来确定具体的货物存量。

lovoo的博客 1万+

SQL与NoSQL查询选型:按场景匹配数据访问模式

数据库查询本质是数据组织哲学的体现——SQL强调强一致性与关系代数约束,适合事务敏感、结果确定性要求高的场景;NoSQL则以数据服务为导向,通过预聚合、倒排索引、宽列存储或原生图结构,换取亚秒级响应与水平扩展能力。技术价值不在语法优劣,而在于是否匹配真实业务的数据规模、读写特征与一致性容忍度。典型应用场景包括高并发点查(Cassandra/Redis)、多条件组合筛选(Elasticsearch)、海量日志分析(ClickHouse)及实时图谱遍历(Neo4j)。本文聚焦SQL查询逻辑与NoSQL查询模式在

weixin_33491377的博客 294

电商项目数据库设计 | 第五篇:参考京东商城详细讲解商品数据库设计

围绕商品设计表 之前也写过类似的数据库设计方案,这一篇是为大家详细讲解参考京东商城围绕商品怎么来设计数据库,需要关注的细节很多,对字段进行详解,结合功能实现分析每一个字段设计的意义 大家看完这篇文章后可以看看前面四篇文章电商项目数据库设计方案,跟这一篇有点不同,之前是大多是参照苏宁易购来设计的 我们在设计数据库的时候,大多都是按照我们自己的实际需求来设计,提供这几篇仅为大家参考学习,能够举一反三参与到项目实战中,希望大家可以学到东西,同时,文章内容如果有错误的位置希望大家可以指正,共同学习。 接下来我们就言

weixin_42437102的博客 1万+

C#开发者必修课:从.NET底层到硬件原理的工程化基础

在现代软件开发中,'基础'并非过时知识,而是支撑高性能、高可靠系统的核心思维模型。理解算法与数据结构,本质是掌握问题建模语言——如B+树如何适配消息时序检索,倒排索引怎样优化多条件筛选;深入.NET运行时机制(如String.Concat内存分配、Dictionary扩容与HashCode设计),才能预判GC压力与锁竞争风险;而计算机体系结构认知(缓存局部性、内存访问模式)则直接决定代码在生产环境的真实性能。这些基础能力共同构成技术决策的‘预判雷达’,让开发者从被动救火转向主动设计。本文聚焦C#/.NET生

dejz8829的专栏 402

京东到家搜索系统架构演进

随着到家业务发展,到家的用户量级也在持续增加,为了满足用户购物需求,给用户一个便捷的购物体验,搜索系统一直在持续地进行架构迭代和策略升级。本文将对到家搜索系统架构演进历程进行详细介绍。...

架构师日记 2253

【数据库设计】电商系统中,SPU和SKU是如何设计的

SPU是一个商品的抽象单位,用来表示商品类别及其通用属性。SKU是商品的具体变种,代表了一个独立可销售的单元,用来进行库存管理、销售和价格控制。在电商系统中,设计时SPU与SKU是两层不同的抽象,SPU用来组织和分类商品,SKU则具体化为每个商品的实际销售单元,负责库存和销售数据的管理。

qq_41413652的博客 2460

向量数据库实战选型指南:从原理到生产踩坑

向量数据库本质是支撑语义相似性搜索的专用系统,其核心在于近似最近邻(ANN)算法对高维空间距离计算的工程优化。它不替代关系型数据库,而是补足传统索引在模糊匹配、多模态检索和嵌入召回等场景的能力短板。技术价值体现在将O(n)暴力搜索压缩至O(log n)级响应,依赖嵌入模型、索引结构(如HNSW/IVF)、存储引擎与查询执行器四大支柱协同。典型应用场景包括RAG增强、以图搜图、用户行为相似推荐及工业知识库语义检索。本文聚焦真实生产环境中的性能瓶颈、运维陷阱与选型决策逻辑,覆盖Qdrant、Milvus、Pin

weixin_30838873的博客 372

电商平台spu和sku的完整设计

上面说的苹果手机,可能是【黄色-128GB-大陆版】,【白色-256GB-港版】这样的叫。3、在什么时候调用上面这个方法呢?,直接监听销售属性的变化就可以。上面说的颜色,可能是红色、黄色、绿色,尺码可能是S、M、L。表比如我们说的苹果手机、华为手机、戴尔笔记本这样的叫。比如一个衣服有颜色、尺码、款式这个叫属性表。2、上面的数据提前手动插入到数据库中的。2、由销售属性来生成下面的表格的方法。表,或者直接叫商品表也可以的。4、点击按钮提交数据给后端。

水痕 3703

DSA训练系统:从刷题到算法工程化的认知压缩路径

数据结构与算法(DSA)本质是解决工程问题的建模语言,而非数学竞赛解题工具。其核心原理在于将业务需求映射为可计算的问题定义,并通过时间、内存、可维护性与扩展性构成的成本函数进行算法选型决策。技术价值体现在降低系统延迟抖动、控制GC频率、提升高并发吞吐等真实生产指标;典型应用场景包括实时库存预警、风控评分优化、消息重试调度等。本文聚焦DSA训练系统、算法工程化两大热词,揭示如何构建反馈闭环驱动的认知压缩路径,弥合面试与生产之间的根本断层。

weixin_30835649的博客 474

JasperReport制作行内容合并的表格

效果图: 实现思路一: 交叉表 另一个思路: 普通表格 缺点:无法实现内容 垂直居中显示 准备工作 一、数据准备 DROP TABLE IF EXISTS `address_item_sex_value`; CREATE TABLE `address_item_sex_value` ( `id` int(11) NOT NULL AUTO_INCREM...

weixin_34148456的博客 2465

ElasticSearch核心原理与实战调优:从倒排索引到集群部署

在当今大数据时代,高效的数据检索与分析能力是技术架构的核心需求。搜索引擎技术通过构建倒排索引这一核心数据结构,实现了从海量非结构化数据中快速定位信息的能力。其原理是将文档内容分词,建立词项到文档的映射表,使得关键词查询变为高效的集合运算,从而支撑起毫秒级的搜索响应。这项技术的核心价值在于解决了数据“存得快”但“找得慢”的普遍矛盾,广泛应用于日志分析、商品搜索、实时监控等场景。本文聚焦于该领域的代表性工具ElasticSearch,深入剖析其分布式架构与倒排索引的实现机制,并结合分片、节点角色等关键概念,提供

weixin_34235457的博客 438

AP发票批量付款程序(WEB ADI)

CREATE OR REPLACE PACKAGE MEW_AP_BATCH_PAYMENTS_PKG IS   PROCEDURE MAIN(P_BATCH_ID          NUMBER                 ,P_ORG_ID            NUMBER                 ,P_BANK_ACCOUNT_NAME VARCHAR2

储藏室 5050

电商搜索架构演进:从MySQL模糊查询到Elasticsearch的万亿级商品检索实践

本文将完整复盘我们从MySQL模糊查询 → Elasticsearch基础版 → ES深度优化的搜索架构演进之路,重点分享索引设计、相关性优化以及性能调优的实战经验。

Weisanyun_DG的博客 434

给STM32 LWIP做一次‘性能体检’:手把手教你用Wireshark和iperf诊断网络瓶颈

本文详细介绍了如何使用Wireshark和iperf工具对STM32 LWIP网络性能进行全面诊断,帮助开发者精准定位网络瓶颈问题。通过搭建测试环境、集成iperf测试框架、深度报文分析和LWIP配置优化,实现从9KB/s到80MB/s的性能飞跃,特别适用于解决TCP发送速率和卡死问题。

weixin_29631169的博客 288

Mem0 vs LangMem vs Letta:三大AI记忆框架实战对比(附代码示例)

本文深入对比了Mem0、LangMem和Letta三大AI记忆框架的核心特性与适用场景。Mem0提供开箱即用的记忆管理服务,适合快速集成;LangMem深度融入LangGraph生态,适合复杂工作流;Letta则采用虚拟内存系统,旨在突破上下文窗口限制。文章通过实战代码示例,为开发者选择适合其业务需求的AI记忆解决方案提供了清晰指南。

g9h0i1的博客 679

GTE-Pro语义引擎实测:电商商品搜索准确率提升300%

本文介绍了如何在星图GPU平台自动化部署🧠 GTE-Pro: Enterprise Semantic Intelligence Engine镜像,实现电商商品语义搜索功能。该语义引擎通过深度理解用户搜索意图,显著提升商品匹配准确率,可广泛应用于电商平台的智能搜索和推荐场景,优化用户体验并提高转化率。

weixin_42612405的博客 392

ESP32驱动TFT屏幕实战:LVGL与TFT_eSPI完美结合

本文详细介绍了如何在ESP32上结合TFT_eSPI驱动库与LVGL图形库,实现高效、流畅的嵌入式GUI开发。内容涵盖硬件连接、软件环境搭建、库配置、LVGL移植、界面创建及性能优化等全流程实战指南,帮助开发者快速构建低成本、高性能的交互式显示应用。

weixin_29206669的博客 200

阿里云ES AI多模态搜索架构解析:从向量化到混合检索的工程实践

向量检索技术是当前搜索引擎和推荐系统的核心基础,它通过将文本、图像、音频等高维数据映射为稠密向量,在统一的语义空间内度量相似性。其原理基于深度学习模型(如BERT、CLIP)的特征提取与表示学习,将不同模态的信息编码为可比对的数学形式。这项技术的核心价值在于突破了传统关键词匹配的局限,实现了深层次的语义理解与关联,极大地提升了信息检索的精度与智能化水平。在应用层面,它广泛应用于电商以图搜物、内容平台跨模态推荐、工业视觉质检等场景。本文以阿里云Elasticsearch的AI多模态搜索(百炼)为例,深入剖析其

weixin_30680385的博客 348

软件需求规格说明书(SRS)深入解析

摘要: SRS(软件需求规格说明书)是定义系统功能、性能与接口的核心文档,为开发、测试、项目管理提供依据。标准结构包括引言、总体描述、功能/非功能需求、接口等模块。撰写需确保清晰、可验证、无歧义,避免模糊术语。示例展示学生注册模块的需求写法,强调性能与安全性要求。推荐使用Confluence、StarUML等工具辅助编写,交付时需包含主文档、原型图及需求跟踪矩阵。SRS应兼具技术性与管理性,作为沟通桥梁和验收标准。

moton2017的博客 2910

Token 费用爆炸?教你用 Semantic Cache(语义缓存)把 API 成本降低 80%

本文介绍了语义缓存(Semantic Cache)技术在大模型应用中的关键作用。传统Redis缓存基于精确匹配,无法处理用户提问的语义相似性,导致重复调用昂贵的LLM API。语义缓存通过将问题向量化并在向量空间中进行相似度匹配,可识别30%-50%的重复提问,直接返回历史答案。文章详细解析了技术原理(Embedding+向量搜索)、架构设计,并提供了基于Python和ChromaDB的50行核心实现代码。同时指出了生产环境中的三大挑战:阈值设定、隐私保护和多轮对话处理,并给出相应解决方案。该技术能以极低成

BUG猿的博客 1055

LangChain 混合检索实战:六大场景调参指南,带你找到关键词与向量的黄金配比,构建完美 RAG!

本文探讨了RAG系统中混合检索的必要性与实现方法。文章指出单一检索方式存在局限性:向量检索无法处理领域外数据(如产品编号),而关键词检索难以捕捉语义关联。两者在表示空间上存在本质差异,但具有互补性。作者提出混合检索架构,详细分析了BM25和向量检索的原理,并比较了三种融合策略(RRF、加权线性融合、DBSF)。研究显示三路混合(BM25+SPLADE+稠密向量)结合ColBERT重排效果最佳,较纯向量检索提升51%。文章最后通过LangChain实战示例展示了不同场景下的调参方法,如法律文档场景建议向量0.

m0_59162248的博客 488

RK3568平台开发系列讲解(NPU篇)什么是RKNPU

📢本篇章将介绍RKNPU。

内核笔记 4354

Python模糊字符串匹配实战:从编辑距离到生产级部署

模糊字符串匹配是处理拼写错误、缩写不一致、大小写混用等非结构化文本问题的基础技术,其核心在于量化两个不完全相等字符串之间的语义相似性。原理上涵盖编辑距离(Levenshtein)、Jaro-Winkler前缀加权、TF-IDF+余弦相似度等多类算法,各自适用于姓名匹配、短标识符校验或语义近似场景。技术价值体现在显著提升数据清洗准确率、支撑OCR纠错与反洗钱线索挖掘等关键业务。典型应用场景包括电商SKU归一化、政务人口库姓名消歧、医疗药品同义词对齐等。本文聚焦Python生态中rapidfuzz、fuzzyw

weixin_30835649的博客 647

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

3步掌握RUM索引:让PostgreSQL全文搜索性能提升8倍的秘密武器

你是否曾为PostgreSQL全文搜索的缓慢响应而烦恼?当你的新闻网站需要实时返回搜索结果,当你的电商平台需要同时按相关性和时间排序,当你的文档系统需要高效短语匹配时,传统GIN索引是否让你感到力不从心?今天,我将为你揭秘PostgreSQL RUM索引——这个能让全文搜索性能提升8倍的秘密武器。 ## 从痛点出发:为什么传统全文搜索不够用? 想象一下这个场景:你的新闻聚合平台有100万篇文章

gitblog_00184的博客 335

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

收藏 | LangChain 混合检索调参指南:从原理到六大场景实战,小白也能掌握大模型核心技巧

本文深入探讨了 RAG 系统中混合检索的架构设计与场景调参,对比了向量检索和关键词检索的优缺点,详细解析了 BM25 和向量检索的原理,并介绍了三种融合策略(RRF、加权融合、DBSF)。文章还提供了 LangChain 工程实战中的六大场景调参指南,包括法律/合规文档、电商产品/SKU、企业知识库/FAQ、代码/技术文档、学术/科研资料和客服/对话历史检索,并强调了动态路由和自动寻优的重要性。最后,文章提出了分阶段落地路线图,帮助开发者构建稳健的 RAG 系统。

m0_71746299的博客 653

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: java中Keytool的使用总结
下一篇: Javaweb 好用的第三方Lib
doubleping
博客等级 码龄17年 23粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值