LLM在电商推荐系统的探索与实践

news2024/11/24 2:41:41

20c4f72cba3237777bf35b0120386b07.gif

本文对LLM+推荐的结合范式进行了梳理和讨论,并尝试将LLM涌现的能力迁移应用在推荐系统之中,利用LLM的通用知识来辅助推荐,改善推荐效果和用户体验。

09ca6a703c206ce4dc4edb3052728189.png

背景

电商推荐系统(Recommend System,RecSys)是一种基于用户历史行为和兴趣偏好的个性化系统,能够为用户提供精准、个性化的商品推荐,促进用户的购物体验和消费满意度。一个成熟的RecSys通常采用pipeline的级连结构,包括召回、粗排、精排、重排等各个模块,具有高度的专业领域特性。随着ChatGpt的爆火,大语言模型(LLM)开始在越来越多的领域崭露头角。LLM是一种基于深度学习的自然语言处理技术,能够从大规模的语料库中学习语言的规律和模式。当模型参数突破某个规模时,性能显著提升,LLM开始展现出涌现能力和泛化能力,庞大的参数中存储了大量通用的世界知识,同时具有语言理解和表达能力。

对比RecSys和LLM,前者是一个数据驱动的系统,依赖电商ID体系来建模用户或物品,缺乏语义和外部知识信息,存在信息茧房、冷启动、多样性不足、无法跨域推荐等问题;而后者缺乏推荐领域内的专有数据信息,不具备传统推荐模型的序列处理和记忆能力,同时计算复杂度高、训练和推理成本大。

一个自然的想法是:如何通过一种合适的范式,将LLM涌现的各种能力迁移应用在推荐系统之中,利用LLM大语言模型的通用知识来辅助推荐,改善推荐效果和用户体验。

a87997257e6746c22d7ec08e7c12d9ae.png

LLM与推荐的融合

目前业界有非常多关于LLM与推荐的探索,根据LLM与推荐系统的耦合强弱,概括起来有两种建模范式:

4db117750e0577937bb8c981ede4e58b.png

LLM和推荐的两种融合方式[1]:1. LLM+推荐(左) 2. LLM as 推荐(右)

  方式1:LLM + 推荐

这种建模范式将语言模型视为特征提取器,将物品和用户的原始信息(比如商品的标题/属性/类目、用户的点击序列/上下文)设计成prompt,输入到LLM中并输出相应的embedding或者语义summary信息,后续作为特征或者通过语义挖掘用户潜在的兴趣偏好,最终被整合到推荐系统的决策过程中。

  • LLM Embedding

在传统推荐领域,往往使用不具有语义的数值ID来表征商品和文本信息,并采用稀疏one-hot来进行ID特征编码,而特征编码则被设计成一个简单的Embedding Look-up Table。即使是富含文本语义的特征(如商品的标题、属性)都被统一成了ID编码,产生了语义层面的信息损失。伴随着语言模型的兴起,一种直观的方式是采用语言模型作为编码器获取商品标题/属性等文本信息的嵌入表示,与推荐系统基于ID的one-hot编码模式结合起来。典型的工作包括:U-BERT[2]对用户评论内容进行编码来增强用户的个性化向量表征,最终得到稠密的embedding向量;UniSRec[3]通过对商品title/用户行为序列进行编码,来达成跨域序列推荐的目标。

  • LLM Summary

此类工作使用LLM对商品/用户原始的语料信息进行概要总结,生成精简的语义表述,用于后续推荐模块使用,比如Liu[5]等人提出的一个基于LLM的生成式新闻推荐框架GENRE。通过将新闻标题、类别等数据构建成prompt提示,从而激发LLM基于其通用知识来生成如新闻摘要、个性化新闻等相关信息。这些生成信息,一方面用来迭代的优化LLM生成;另一方面用来训练新闻推荐模型,补充推荐模型的知识信息。

44d1258060672d4e8454e2298a97ccf2.png

GENRE[5],一个基于LLM的生成式新闻推荐框架

GPT4Rec[6]将LLM模型用于用户意图理解,根据用户的行为历史,进行兴趣抽取并生成中间的语义query,用于后续的推荐召回。如下图所示,其主要分为两步:首先根据用户历史交互的商品和它们对应的标题,通过prompt格式化后,使用GPT2来生成可以表征用户多个兴趣的“search query”。然后将GPT2生成的query提供给搜索引擎,以检索要推荐的商品,从而提高推荐召回的相关性和多样性。

0cc927315ebc084988d366c5f9ca30bd.png

GPT4Rec:query生成+搜索引擎

  方式2:LLM as 推荐

与融合方式1不同,这个范式的目标是直接将预训练的LLM转换为一个强大的推荐模型,用来替换推荐系统(召回->粗排->精排->重排)的一个或者全部模块。输入序列通常包括简介描述、行为提示和任务指示,输出就是最终的推荐结果。"LLM as 推荐"是一种非常理想的推荐范式,极其依赖于LLM模型强大的语言理解、逻辑推理和文本生成能力。

  • LLM as Ranker

此类工作[7][8]将推荐问题形式化为给定条件的排序任务,其中用户的历史交互作为条件,推荐系统召回得到的商品作为候选。通过设计合适的prompt模版,结合条件、候选、排序指令,使得LLM为候选的商品进行打分或者排序。实验证明,LLM在Zero-Shot场景具有较好的零样本排序能力,但在排序时不可避免地有position bias和popularity bias问题。

ee72d77a250e5ad5141010b9d6be46a0.png

基于LLM的“零样本”排序方法[7]

  • LLM as RecSys

以Chat-Rec[9]为例。Chat-Rec将LLM视作推荐系统的枢纽,通过prompt链接LLM和推荐各个模块,通过用户与LLM的多轮对话,不断缩小推荐候选范围,并最终给出精准的推荐结果和推荐理由。具体包括:将用户的行为足迹等转换为prompt,让LLM学习到用户偏好;然后进一步地将用户的推荐历史和推荐系统生成的候选集输入到LLM,让LLM执行过滤和排序,完成多轮推荐。

fec8cb1b8c37be4a2b5c04e9eef4cf70.png

Chat-Rec:将LLM视作推荐系统的枢纽

8ae40563bde9c46c40035fbe586b378b.png

算法方案

当前的LLM在精准性上和推荐模型相差甚远,同时受限于LLM模型极大的推理耗时,无法满足在线推荐系统毫秒级的时延限制,短期内不具备将LLM模型用于在线推理的条件。于是我们更多地采用"LLM + 推荐"的方式,去利用大模型的知识和推理能力,提高推荐模型对商品信息、上下文、用户行为序列的知识表达,包括:

  1. 借助LLM通用知识信息,构建类目搭配体系,引入推荐系统在推荐召回侧引入搭配I2I、排序侧进行类目兴趣扩展建模,提高推荐的多样性。

  2. 借助LLM文本推理能力,辅助商品/用户理解。我们使用LLM将电商Item冗余文本信息进行去噪提纯和改写;结合用户行为序列、上下文以及用户画像,进行用户行为sumarry总结。并通过预训练语言模型,将文本知识结果进行embedding向量化表征,与传统的推荐模型进行知识感知嵌入,提高模型的知识表达。

0f8297a4a1c0387882e34f1284454d76.png

LLM在推荐的应用

  基于LLM知识能力的类目搭配推荐


经过多年的沉淀,电商平台已经拥有了一套完整的类目体系。这套类目体系通常采用树状结构,通过层层拆解,最终将一个商品映射到一个末级类目,不同末级类目之间相对独立。现有的类目体系无法体现出这类目之间存在的搭配信息,缺乏跨类目的搭配关系表达。同时,相较于品牌和卖家,类目可以更加显式地与用户兴趣进行聚合和映射。在推荐场景之中,给用户准确地推荐相关商品的同时,如果能够挖掘不同兴趣之间的隐藏关系,基于搭配进行发散推荐,将给用户带来新的惊喜感、实现用户需求和兴趣的扩展。

bfc9518bed5602ae0ed2639ac23dfaa4.png

类目体系:休闲裤和衬衫分别属于一级类目(男装)下面的不同二级类目,而男帆布鞋又挂载在另一个一级类目(流行男鞋)上。

传统的类目关系挖掘往往基于知识图谱,采用距离度量、聚类、行业规则、协同过滤等方法。这些工作大都需要繁杂的数据清洗、算法挖掘和行业专家知识。LLM大模型的出现,让快速、高效的电商知识构建变成了现实。

  • LLM搭配类目

LLM搭配类目的整体生产链路如图所示,主要包括三个部分:1. 基于站内类目体系,设计prompt template;2. 批量调用LLM模型,请求LLM知识;3. 进行知识抽取和站内类目ID映射。

fe77249428369cd4bb3cc621873c536a.png

LLM搭配C2C的生产链路

prompt设计

LLM的最终效果非常依赖prompt的设计,设计prompt技巧可以参考吴恩达的课程[10]。以下是我们针对“LLM返回搭配类目”这个问题尝试的几种prompt效果。可以看到,当添加:"1.用逗号分隔,2.返回格式为'''类目1,类目2,类目3...''',3.不包含【cate_name】这个词,4.搭配类目丰富"这些限制后,LLM返回结果具有不错的效果,搭配类目的多样性也基本上能够符合预期。

75f8f9c922dadc0c5eae8e2e2483d5f3.png

LLM模型选择

业界主流的开源LLM模型/服务如下。最终我们选择通义千问模型,进行搭配信息的获取。

  1. LLaMA(Large Language Model Meta AI)[11]:由 Meta AI 发布的一个开放且高效的大型基础语言模型,其数据集来源都是公开数据集,无任何定制数据集。

  2. ChatGlm6B[12]:一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM)架构,具有 62 亿参数。

  3. 通义千问:阿里云推出的一个中文LLM模型,功能包括多轮对话、文案创作、逻辑推理、多模态理解、多语言支持等。

  4. 百川13B:Baichuan-13B 是由百川智能继 Baichuan-7B 之后开发的包含 130 亿参数的开源可商用的大规模语言模型,在权威的中文和英文 benchmark 上均取得同尺寸最好的效果。

  5. chatgpt[13]:openAI基于GPT-3.5(Generative Pre-trained Transformer 3.5)架构开发的对话AI模型。

站内类目ID映射

由于LLM模型返回的是通用知识信息,存在与站内的类目体系无法完全对应的情况。为了便于后续推荐各个模块使用,兼容现有的电商推荐链路,我们进一步将LLM搭配类目映射成站内类目ID。站内类目ID映射可以采用以下两种方法:

  1. 基于文本相关性的向量召回。将LLM搭配类目和站内类目分别表征成文本embedding向量,然后通过向量召回的方式,选取与LLM搭配类目距离空间最近的top站内类目进行映射。

  2. 基于站内后验统计的query2cate映射。将搭配类目作为query,根据电商平台搜索query2cate的统计数据,使用该query下top的点击cate作为映射类目,实现LLM搭配到站内ID的映射。

  • 精排兴趣扩展

我们尝试在排序中引入搭配信息,从序列建模的角度进行优化从而实现兴趣拓展。

序列扩展建模:推荐排序模型通常使用target-attention对用户行为序列进行建模,当序列商品与target商品相关性越大时,会被赋予更大的权重。为了更好的表达用户的类目兴趣,我们在CTR预估模型中新增了一个类目点击序列,同时通过近邻类目表征的方式,实现类目兴趣的扩展。具体地,我们在target和序列侧的sideInfo分别新加一个搭配类目emb来进行信息扩展,搭配类目emb计算规则为:

0f0a8c8612fd76ca35c4d6a1cbc4d203.png

其中,396b6c584b1823b1f17f915ed2dca792.png为target类目t的一个搭配类目。

6296d5e99e4107b1957f1ded0c51270b.png

序列兴趣扩展 

目前,基于LLM搭配类目的精排兴趣扩展模型已经在我们的推荐场景全量,ab效果:uctr+0.83%、人均ipv+2.58%、人均点击叶子类目数+2.06%。

  基于LLM文本能力的商品语义表征

描述商品的文本信息主要包括title、类目以及CPV属性数据。对于商品类目以及属性信息,通常将其通过multi-hot的方式进行编码转化成特征向量。得益于成熟的规范化的商品类目体系,采用这种方式对商品类目信息进行编码是符合直觉的。但是由于商品种类复杂,不同商品的属性往往千差万别,采用mutli-hot形式对商品属性进行编码可拓展性不高,容易产生数据稀疏问题。

同时,商品标题是商品固有的内容类数据,其往往是对属性类特征的延伸。为了最大化商品搜索流量,商家在命名商品标题时通常会添加一些与商品本身无关的修饰词(比如“特价”、“爆款”等),同时也包含一些冗余的类目词。商品标题语义上并不连贯,信息凌乱,直接进行mutli-hot或者文本编码难以得到很好的嵌入表示。

一种可行的解决方案是将对商品零散的信息转换成语义连贯的文本,然后通过pre-train语言模型进行编码。对此,我们借助LLM蕴含的强大的语言表达能力和逻辑推理能力从商品标题中抽取出关键信息,从而实现对商品标题的正则化,得到语义连贯的文本描述,再对其进行编码,从而丰富商品的特征。

  • 商品正则化

我们尝试使用LLM对商品标题进行正则化,并通过困惑度[14]衡量正则化后文本的语义连贯性。考虑到商品标题大多为相关词的组合,于是我们先将商品标题进行分词得到描述词列表,同时结合商品的属性列表,限制LLM选出关键词输出商品的简短描述。具体步骤如下图所示。

你现在是一个买家。给定商品的描述词【A】以及各种属性【B】,请根据关键词和关键属性描述出商品是什么。要求是只需要回答是什么,不要补充其他内容,尽量从A和B中选出词语进行描述,字数不超过40,回答模版为:这个商品是...。比如当A=['giyo', '公路', '山地车', '专用', '自行车', '单车', '专业', '骑行', '手套', '半指', '夏季', '男', '硅胶', '减震', '女'],B=['尺码': 'XXL', '类目': '自行车手套', '适用对象': '通用', '颜色分类': '弧光半指-黄色-双面透气+GEL硅胶+劲厚掌垫', '上市时间': '2016年夏季', '货号': '1183', '品牌': 'GIYO/集优', '款式': '半指手套'],输出:这个商品是GIYO牌的自行车半指手套。现在A=...,B=...

0feb57315419082a637f23215a3c3753.png

抽取部分样本结果如下表所示。

13e136960a64f8a57df1f446a2e9ab38.png

随机抽取100条样本统计平均困惑度,从下表可见,正则化后的商品描述文本困惑度显著下降,表明其语义程度比原始的商品标题更加连贯。

ee815a75fbd2343daf2ac309c64f34cb.png

  • 商品语义向量-引入排序模型

借助Modelscope的CoROM模型[15],我们对正则化后的商品标题文本进行了向量化抽取,并作为特征加入基于双塔结构的DSSM粗排模型中[16]。我们分别做了以下几个实验:

  1. 实验1:模型结构不变,用corom向量替换mind[17]向量对itemid做初始化(包含序列特征+item Tower特征),其他向量重新初始化。

  • auc:0.73158 (-1pt)

实验2:模型结构不变,用corom向量替换mind向量对itemid做初始化(包含序列特征+item Tower特征),其他向量用base模型warmup。

  • auc:0.73434 (-0.7pt)

实验3、模型结构不变,在item tower额外添加一个新特征corom向量,原所有向量用base模型warmup。

    • auc:0.74233 (+0.064pt)

从实验结果中不难发现,用商品标题抽取的文本语义特征相比于用户行为学出来的ID类特征(mind向量)仍然处于劣势,但在mind基础上新增语义向量有着正向效果。因此,语义特征加入模型的较合理方式仍然是做为ID特征的补充而不是替换。此外,由于各种语言大模型中的embedding维度较高,加入模型需要占用大量的存储空间,因此embedding的降维也显得尤为重要,目前我们调研到的一种比较简单有效的降维方式是BERT-whitening[18],供大家参考。

e7f179748b492759be4f1f114db2b84b.jpeg

总结展望

可以预见的是,随着LLM模型的发展和优化,LLM将从推荐系统的一种高效的辅助工具,逐渐成为推荐系统的一部分或作为推荐系统的骨干网络进行推荐内容的生成或排序。结合现阶段的LLM能力,我们将从以下几个方向继续探索:

  1. 多模态推荐:利用多模态LLM大模型的多模态信息抽取和表征能力,提取包括图片、文本、视频关键帧,视频语音文字等不同模态的语义化信息,并通过离线特征工程进行表征,使线上推荐模型能够真正完整地感知到各种电商模态信息,并实现对用户不同信息偏好和意图的理解。

  2. LLM推理加速:现阶段LLM存在推理时延过高的问题,无法满足推荐系统数十ms级别的rt要求,我们的LLM探索也止步于离校特征编码阶段。后续考虑通过蒸馏、剪枝、量化等手段,用一个小模型蒸馏出LLM的部分能力,从而降低推理的复杂性,使其能线上serving。

  3. LLM as 重排: 利用LLM丰富的知识领域扩展能力,在商品已有丰富的语义标签基础上,结合用户历史交互兴趣、选择偏好、序列生成规则 和 prompt template为用户从top排序集合中选取合适的商品或话题,生成推荐列表。

cf5cdac52916949924e8867b919e6b55.jpeg

参考文献

[1] Hou, Yupeng, et al. "Large language models are zero-shot rankers for recommender systems." arXiv preprint arXiv:2305.08845 (2023).

[2] Qiu, Z., Wu, X., Gao, J., & Fan, W. (2021). U-BERT: Pre-training User Representations for Improved Recommendation. Proceedings of the AAAI Conference on Artificial Intelligence, 35(5), 4320-4327.  https://ojs.aaai.org/index.php/AAAI/article/view/16557

[3] Yupeng Hou, Shanlei Mu, Wayne Xin Zhao, Yaliang Li, Bolin Ding, and Ji-Rong Wen. 2022. Towards Universal Sequence Representation Learning for Recommender Systems. In Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD '22). Association for Computing Machinery, New York, NY, USA, 585–593. https://doi.org/10.1145/3534678.3539381

[4]Dingkun Long, Qiong Gao, Kuan Zou, Guangwei Xu, Pengjun Xie, Ruijie Guo, Jian Xu, Guanjun Jiang, Luxi Xing, and Ping Yang. 2022. Multi-CPR: A Multi Domain Chinese Dataset for Passage Retrieval. In Proceedings of the 45th International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR '22). Association for Computing Machinery, New York, NY, USA, 3046–3056. https://doi.org/10.1145/3477495.3531736

[5] Liu, Q., Chen, N., Sakai, T., & Wu, X. (2023). A First Look at LLM-Powered Generative News Recommendation. ArXiv, abs/2305.06566.

[6] Li, J., Zhang, W., Wang, T., Xiong, G., Lu, A., & Medioni, G.G. (2023). GPT4Rec: A Generative Framework for Personalized Recommendation and User Interests Interpretation. ArXiv, abs/2304.03879.

[7] Yupeng Hou, Junjie Zhang, Zihan Lin, Hongyu Lu, Ruobing Xie, Julian McAuley, and Wayne Xin Zhao. Large Language Models are Zero-Shot Rankers for Recommender Systems. arXiv preprint arXiv:2305.08845, 2023.

[8] Dai, S., Shao, N., Zhao, H., Yu, W., Si, Z., Xu, C., Sun, Z., Zhang, X., & Xu, J. (2023). Uncovering ChatGPT's Capabilities in Recommender Systems. ArXiv, abs/2305.02182.

[9] Gao, Y., Sheng, T., Xiang, Y., Xiong, Y., Wang, H., & Zhang, J. (2023). Chat-REC: Towards Interactive and Explainable LLMs-Augmented Recommender System. ArXiv, abs/2303.14524.

[10] https://github.com/datawhalechina/prompt-engineering-for-developers

[11] https://ai.facebook.com/blog/large-language-model-llama-meta-ai/

[12] https://github.com/THUDM/ChatGLM-6B

[13] https://arxiv.org/pdf/2303.12712.pdf

[14] https://zhuanlan.zhihu.com/p/114432097

[15] https://www.modelscope.cn/models/damo/nlp_corom_sentence-embedding_chinese-base-ecom/summary

[16] https://www.microsoft.com/en-us/research/publication/learning-deep-structured-semantic-models-for-web-search-using-clickthrough-data/

[17] Li et al.(2019)]{2019arXiv190408030L} Li, C. and 9 colleagues 2019.\ Multi-Interest Network with Dynamic Routing for Recommendation at Tmall.\ arXiv e-prints. doi:10.48550/arXiv.1904.08030

[18] https://github.com/bojone/BERT-whitening

b653dbf9f312faf8da4b788791eb8fe8.jpeg

团队介绍

我们是淘天集团下FC技术部智能策略团队的推荐算法团队,主要负责手机天猫的推荐和广告算法的研发与优化工作,为用户提供更精准的推荐服务,提高用户体验和满意度。此外,团队还致力于AI技术的创新应用,如智能导购等领域,并积极探索创新性的业务实践。

¤ 拓展阅读 ¤

3DXR技术 | 终端技术 | 音视频技术

服务端技术 | 技术质量 | 数据算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序与idea后端如何进行数据交互

交互使用的其实就是调用的req.get(url)方法 进行路径访问,你要先保证自己的springboot项目已经成功运行了: 如下: 如何交互的? 微信小程序:如下为index.js页面 在onLoad()事件中调用方法Project.findAllCities() 要…

C++面试记录之中望软件

上次面试体验不好,记录了,这次同样记录一次体验不好的面试,中望软件…直接写了名字,因为真的很无语😓 记录一下我不知道的问题 忘记录音了😢 1. main函数之前做了什么? 我:实话我…

java使用itext生成pdf

效果&#xff1a; maven依赖 <!--PDF处理--><!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</vers…

SpringMVC:从入门到精通,7篇系列篇带你全面掌握--七.自定义注解

目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Java注解简介 1.原生注解的分类 &#xff08;1&#xff09;JDK基本注解 ①Override ②SuppressWarnings(value "unchecked") &#xff08;2&#xff09;JDK元注解…

Golang goroutine MPG模式浅析

协程是通过使用关键字 go 调用&#xff08;或执行&#xff09;一个函数或者方法来实现的&#xff08;也可以是匿名函数&#xff09;。 Go 语言在语言层面上支持了并发&#xff0c;goroutine是Go语言提供的一种用户态线程&#xff0c;有时我们也称之为协程。 所谓的协程&#x…

Generative Adversarial Nets

Author:龙箬 Computer Application Technology Change the World with Data and Artificial Intelligence ! CSDNweixin_43975035 生命不息&#xff0c;折腾不止 Reference&#xff1a; [1] Goodfellow, I, Pouget-Abadie, J, Mirza, M, Xu, B, Warde-Farley, D, Ozair, S, Co…

《优化接口设计的思路》系列:第一篇—接口参数的一些弯弯绕绕

大家好&#xff01;我是sum墨&#xff0c;一个一线的底层码农&#xff0c;平时喜欢研究和思考一些技术相关的问题并整理成文&#xff0c;限于本人水平&#xff0c;如果文章和代码有表述不当之处&#xff0c;还请不吝赐教。 作为一名从业已达六年的老码农&#xff0c;我的工作主…

PSP - 蛋白质序列提取 Transformer 蛋白质语言模型 ESM2 特征

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132888139 蛋白质语言模型 ESM (Evolutionary Scale Modeling) 是一种利用深度学习技术来预测蛋白质结构和功能的方法。ESM 通过在大规模的蛋白质…

激光雷达检测负障碍物(附大概 C++ 代码)

检测效果如图&#xff0c;红色是正负的障碍物点&#xff1a; 障碍物根据其相对于地面的高度可以分为两类&#xff1a;正向障碍物和负向障碍物。在室外环境中&#xff0c;负障碍物是沟渠、悬崖、洞口或具有陡峭负坡度的地形&#xff0c;可能会造成安全隐患。 不慎通过道路坑洼处…

【电子通识】案例:采用电阻分压式采样电压的设计注意事项

在一些应用中,我们往往采用电阻分压方式来采样外部电压。如文章【Arduino+ESP32专题】案例:简单的实现NTC热敏电阻检测板卡温度中我们就使用一个10K的电阻与NTC电阻形成分压,通过ADC读取到的电压换算成温度值来检测外部环境温度。 当然,比如手持机的电池电压,如果没有一些…

docker-compose 中 depends_on 的作用

文章目录 depends_on 介绍depends_on 有一个长定义模式condition 说明required 说明 参考文档 depends_on 介绍 在 Docker Compose 中&#xff0c;depends_on 是一个用于定义服务之间依赖关系的关键字。它允许您指定一个或多个服务依赖于其他服务&#xff0c;以确保在启动或重…

基于STM32F407ZET6的环境温湿度监控系统(粤嵌GEC-M4)

注意使用事项&#xff1a; 开发板如下 由于外部晶振是8M&#xff0c;需要修改setup和stm32f4头文件的晶振值。 操作如下&#xff1a; system_stm32f4xx.c的254行 #define PLL_M 8stm32f4xx.h的127行 #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the Ex…

实战SRC漏洞挖掘全过程,流程详细【网络安全】

前言 记录一次完整的某SRC漏洞挖掘实战&#xff0c;为期一个多星期。文章有点长&#xff0c;请耐心看完&#xff0c;记录了完整的SRC漏洞挖掘实战 渗透过程 因为选择的幸运儿没有对测试范围进行规划&#xff0c;所以此次范围就是没有范围。 先上主域名看一眼&#xff0c;看…

2023 Google 开发者大会 – AI 领域的技术更新

大会介绍 Google 开发者大会是 Google 面向开发者和科技爱好者展示最新产品和平台的年度盛会。2023 Google 开发者大会 (Google I/O Connect | China) 为开发者提供丰富的学习资源&#xff0c;实践操作和现场演示&#xff0c;提供与谷歌专家互动、与其他开发者交流的契机&…

贝锐蒲公英客户端6.0发布,异地组网更快、更简单

贝锐蒲公英客户端6.0全新升级&#xff0c;新版本融合了企业版、个人版和个人管理端&#xff0c;不同身份用户可以统一登录&#xff0c;快速部署&#xff0c;即装即用&#xff0c;为异地组网带来更加简单、高效的解决方案。 快速部署、即装即用&#xff0c;支持不同身份用户统一…

langchain主要模块(三):Chain

langchain2之Chain langchain1.概念2.主要模块模型输入/输出 (Model I/O)数据连接 (Data connection)链式组装 (Chains)代理 (Agents)内存 (Memory)回调 (Callbacks) 3.链• LLMChain&#xff1a;• SimpleSequentialChain• Sequential Chains:• RouterChain&#xff1a; lan…

社群团购平台方的选品,无外乎就几个方面:

社群团购平台方选品&#xff0c;无外乎几个方面&#xff1a; 1、是个主推广爆品&#xff0c;好产品&#xff08;好产品的标准&#xff1a;有卖点&#xff1a;比如&#xff1a;有 品牌力、市场需求力、诱人的性价比等&#xff09; 2、你是否跟社群团购平台方说清楚这个产品的优…

什么是云存储,从对象存储说起?

在《存储系统形态之争,从块存储到统一存储》一文中我们提到了对象存储的概念,知道目前很多企业级存储都是支持对象存储的,比如EMC、NetApp和华为等。以EMC的对象存储为例,其最早在1998年就已经具备成熟的产品了,到目前已经有二十多年的历史了。如图是关于对象存储主要产品…

科研诚信与学术规范MOOC-错题集

为了确保学术和科研诚信&#xff0c;很多大学制定了荣誉法则。大学建立荣誉制度的初衷旨在预防大学生考试作弊。“反相对论公司”是对科学的不当干预。&#xff08;√&#xff09;科学具有普遍性&#xff0c;与种族、国籍、宗教、阶级和个人品质等个人因素无关。&#xff08;不…

GpsModule 350+ 常用GPS坐标地图

背景 开源库 GpsAndMap 的 GpsModule 模块中整理集成了 350 国内常用地市的GPS坐标地址&#xff0c;对于日常使用&#xff0c;例如打些标记&#xff0c;做些PPT展示&#xff0c;是非常方便的。 引入模块 pip install GpsAndMap 打印常用地市GPS地名清单 以下代码打印了常用…