当前位置: 首页 > news >正文

杂谈:抖音双塔召回模型:亿级内容分发的数学魔法

在信息爆炸的数字时代,我们每天都被海量内容包围。以抖音为例,这个日活跃用户数亿的平台,每分钟就有数以万计的新视频上传。面对如此庞大的内容库,一个核心问题自然浮现:系统如何从这浩瀚的内容海洋中,为每个用户精准捞出他们可能感兴趣的那"几瓢水"?答案就藏在名为"双塔召回模型"的算法设计中。这套系统犹如一位高效的数字化红娘,用数学语言重新定义了内容与用户之间的匹配逻辑。

一、传统推荐系统的瓶颈

要理解双塔模型的价值,首先需要看看传统推荐系统面临的挑战。早期的内容推荐主要依靠两类方法:基于内容的过滤和协同过滤。前者通过分析内容本身的特征(如关键词、类别)进行匹配,后者则利用用户群体的行为数据(如"喜欢A的人也喜欢B")。这两种方法在小规模数据下尚可应付,但当面对抖音这样的亿级用户和内容规模时,就显得力不从心。

传统方法的主要瓶颈在于计算效率。假设平台有1亿活跃用户和1000万条内容,即使是简单的两两匹配,也需要进行1亿×1000万=10^15次计算,这在现实中是完全不可行的。此外,随着用户和内容的快速增长,计算复杂度会呈指数级上升。正是这样的背景下,双塔召回模型应运而生,它通过巧妙的数学建模,将原本不可能完成的任务变成了现实。

二、双塔模型的架构解析

双塔模型之所以得名,是因为其结构由两个并行的深度学习网络组成,恰似两座并立的塔楼。一座是用户塔,专门处理用户特征;另一座是内容塔,专门处理内容特征。这两座塔的工作方式颇具艺术性。

用户塔的输入是各种用户特征,包括显性特征(如年龄、性别、地理位置)和隐性特征(如历史点赞、观看时长、互动频率等)。这些原始特征经过多层神经网络变换后,输出为一个固定长度的向量,可以理解为该用户在算法眼中的"数字画像"。比如,一个经常观看萌宠视频的年轻女性用户,其向量可能在某些维度上具有特定数值组合,虽然这些数字本身没有直观意义,但在数学空间中却精准定位了她的兴趣所在。

内容塔的工作方式类似,输入是视频的各种特征(如类别、时长、画面元素、音频特征等),经过神经网络处理后,同样输出为一个固定长度的向量。关键在于,用户塔和内容塔输出的向量具有相同的维度,这使得它们可以被置于同一个向量空间中进行比较。

三、向量空间中的高效匹配

双塔模型最精妙之处在于其匹配机制。当用户和内容都被表示为同一空间中的向量后,推荐问题就转化为了向量相似度计算问题。在数学上,这通常通过计算向量间的内积或余弦相似度来实现。距离越近的向量,代表匹配度越高。

这种设计带来了几个革命性优势:首先是效率的质的飞跃。通过预先计算好用户和内容的向量表示,实际推荐时只需要进行简单的向量距离计算,这使得系统能够在毫秒级别完成海量筛选。据估算,抖音的召回系统每秒可以处理上亿次的匹配计算。

其次是扩展性极佳。新增用户或内容时,只需分别通过用户塔或内容塔计算其向量表示,然后放入现有空间即可,无需重新训练整个系统。这种特性对于抖音这样快速增长的平台至关重要。

第三是语义无关性。系统完全不需要"理解"内容的实际含义,所有文字、图像、视频都被转化为纯数字处理。这不仅降低了计算复杂度,还使系统能够跨语言、跨文化工作,适应抖音全球化运营的需求。

四、模型训练的艺术

双塔模型的训练过程同样充满智慧。训练的核心目标是让正向样本(用户实际交互过的内容)的向量距离尽可能近,而负向样本的距离尽可能远。这通过一种称为"对比学习"的技术实现。

在实际训练中,工程师们会设计各种巧妙的负采样策略。比如,对于一个用户点击过的视频,随机选择平台上的其他视频作为负样本;或者选择同一用户跳过观看的视频作为负样本。训练过程中,模型会不断调整参数,使得用户向量与正样本内容向量的相似度提高,与负样本的相似度降低。

值得一提的是,双塔模型通常采用"离线训练,在线服务"的部署方式。模型定期(如每天)用最新数据重新训练,然后将训练好的模型部署到线上服务。用户塔和内容塔可以独立更新,这为系统维护提供了极大灵活性。

五、实践中的挑战与创新

虽然双塔模型理论优雅,但在抖音这样的超大规模应用中,工程师们仍需克服诸多挑战。冷启动问题就是其中之一:如何处理新用户或新内容缺乏历史数据的情况?抖音的解决方案是设计丰富的默认特征和实时特征体系。比如,新用户可以根据设备类型、安装渠道等信息获得初始向量;新视频则可以通过内容分析获得即时特征。

另一个挑战是用户兴趣的动态变化。人的喜好并非一成不变,早上可能想看新闻,晚上则想放松看娱乐内容。为此,抖音引入了短期兴趣和长期兴趣的双重表征。用户塔不仅输出基于长期行为的稳定向量,还会结合最近互动生成动态向量,两者配合实现更精准的实时推荐。

六、对社会的影响与思考

双塔模型的高效运作,无形中塑造着数亿用户的数字生活体验。一方面,它让我们在信息海洋中得以快速找到感兴趣的内容;另一方面,这种高度个性化的推荐也引发了关于"信息茧房"的讨论。当系统不断强化用户已有偏好,是否会限制人们接触多元观点的机会?

抖音的工程师们已经意识到这个问题,并在模型中加入了探索机制。比如,会有意识地给用户推荐一些与其常规兴趣稍有偏差的内容,既能拓宽视野,又能收集更丰富的反馈数据来优化模型。这种平衡艺术,或许正是算法设计中最具人文关怀的部分。

七、未来的可能方向

随着技术进步,双塔模型仍在持续进化。多模态学习是一个重要方向,即更深度地整合视频、图像、音频、文本等多种信息源,构建更丰富的内容表征。另一个趋势是图神经网络的引入,通过建模用户与内容、用户与用户之间的复杂网络关系,获得超越简单向量匹配的推荐能力。

可以预见,作为推荐系统核心架构之一,双塔模型将继续在抖音及其他内容平台发挥关键作用。而支撑这一切的,始终是那个简单而深刻的理念:用数学语言理解人类兴趣,让技术与人文在数字时代和谐共生。

相关文章:

杂谈:抖音双塔召回模型:亿级内容分发的数学魔法

在信息爆炸的数字时代,我们每天都被海量内容包围。以抖音为例,这个日活跃用户数亿的平台,每分钟就有数以万计的新视频上传。面对如此庞大的内容库,一个核心问题自然浮现:系统如何从这浩瀚的内容海洋中,为每…...

Set 集合

默认情况下, Scala 使用的是不可变集合, 如果你想使用可变集合, 需要引用 scala.collection.mutable.Set Set 默认是不可变集合,数据无序 数据不可重复 遍历集合 创建可变集合 mutable.Set 打印集合 集合添加元素 向集合中…...

青蛙吃虫--dp

1.dp数组有关元素--路长和次数 2.递推公式 3.遍历顺序--最终影响的是路长&#xff0c;在外面 其次次数遍历&#xff0c;即这次路长所有情况都更新 最后&#xff0c;遍历次数自然就要遍历跳长 4.max时时更新 dp版本 #include<bits/stdc.h> using namespace std; #def…...

加油站小程序实战教程08用户注册

目录 1 授权手机号2 前端调用API总结 上一篇我们介绍了小程序的登录功能&#xff0c;当用户未注册的时候&#xff0c;点击自动加油按钮会弹出授权手机号&#xff0c;然后进行注册&#xff0c;本篇我们介绍一下用户注册的开发过程。 1 授权手机号 微搭提供了小程序手机号获取的…...

进程内存分布--之showmap呈现memory-layout.cpp内存分布

上一篇我们讲了&#xff1a;进程内存分布--之pmap呈现memory-layout.cpp内存分布 我们这里讲一个用于分析内存占用的更直观的方式&#xff0c;showmap来看看会是什么呈现效果&#xff1a; 我们再来使用showmap命令来看下它是怎么呈现内存分布的&#xff1a; 可以看到showmap…...

vim/vi程序(1)

今天我们来学习一下一个编辑器,vim(vi是以前的版本),这个是linux常用的编辑器,我们是必须要学习滴,来看. 各种模式示意图&#xff1a; 案例&#xff1a; vim aaa.txt 按i进入编辑模式,此时可以输入 按ESC可以退出 :进入命令模式 输入wq保存并退出 今天大家先简单了解一下基础…...

【Python】案例:计算股票收益率和波动率

【Python】案例&#xff1a;计算股票收益率和波动率&#xff1a; 1、案例需求2、数据准备3、案例实现 1、案例需求 在分析股票数据时&#xff0c;我们需要从这些数据中得到一些关键指标进行评估&#xff0c;比如收益率、波动率&#xff0c;其中收益率又可以细分为简单收益率和…...

从云计算到算网融合:未来已来的算力革命

一、算力网络&#xff1a;重塑数字时代的基础设施 在当今的数字世界&#xff0c;我们似乎已习惯了云计算带来的便利。然而&#xff0c;随着技术的飞速发展&#xff0c;一种全新的架构 —— 算力网络&#xff0c;正悄然崛起&#xff0c;有望彻底改变我们对计算资源的认知和利用…...

高级:消息队列面试题精讲

一、引言 消息队列在现代软件架构中扮演着至关重要的角色&#xff0c;尤其在处理高并发、系统解耦和异步通信等场景下。Kafka 和 RabbitMQ 作为两种主流的消息队列技术&#xff0c;各自具有独特的特性和适用场景。本文将深入分析 Kafka 和 RabbitMQ 的原理、使用场景及相关面试…...

大模型RAG项目实战-知识库问答助手v1版

安装 Ollama 根据官网指导&#xff0c;安装对应版本即可。 下载安装指导文档&#xff1a; handy-ollama/docs/C1/1. Ollama 介绍.md at main datawhalechina/handy-ollama 注意&#xff1a;在 Windows 下安装 Ollama 后&#xff0c;强烈建议通过配置环境变量来修改模型存储…...

【云计算】打造高效容器云平台:规划、部署与架构设计

引言 随着移动互联网时代的大步跃进&#xff0c;互联网公司业务的爆炸式增长发展给传统行业带来了巨大的冲击和挑战&#xff0c;被迫考虑转型和调整。对于我们传统的航空行业来说&#xff0c;还存在传统的思维、落后的技术。一项新业务从提出需求到立项审批、公开招标、项目实…...

AI智慧共治新未来——社会综合治理智慧化系统

针对社会综合治理中乱倒垃圾、乱停车、乱贴广告等不文明行为的识别与处置难题&#xff0c;“社会综合治理智慧化系统”融合“技防人防共治”理念&#xff0c;通过人工智能、智能监控与数据驱动的综合手段&#xff0c;构建了一套高效、智能、可扩展的城市治理工具。以下是系统的…...

MySQL学习笔记(四)——DML和DQL

目录 1. DML 1.1 添加数据 1.1.1 给指定字段添加数据 1.1.2 给全部字段添加数据 1.1.3 批量添加数据 1.2 修改数据 1.3 删除数据 2. DQL 2.1 基本语法 2.2 基础查询 2.2.1 查询多个字段 2.2.2 字段设置别名 2.2.3 去除重复记录 2.3 条件查询 2.4 聚合函数 2.5 …...

AWS SNS深度解析:构建高可用、可扩展的云原生消息通信解决方案

引言 在云原生架构中&#xff0c;高效的消息通信是系统解耦、实时响应的核心需求。AWS Simple Notification Service&#xff08;SNS&#xff09;作为一款全托管的发布/订阅&#xff08;Pub/Sub&#xff09;服务&#xff0c;为开发者提供了灵活、可靠的消息分发能力。本文将从…...

大数据(5)Spark部署核弹级避坑指南:从高并发集群调优到源码级安全加固(附万亿级日志分析实战+智能运维巡检系统)

目录 背景一、Spark核心架构拆解1. 分布式计算五层模型 二、五步军工级部署阶段1&#xff1a;环境核弹级校验阶段2&#xff1a;集群拓扑构建阶段3&#xff1a;黄金配置模板阶段4&#xff1a;高可用启停阶段5&#xff1a;安全加固方案 三、万亿级日志分析实战1. 案例背景&#x…...

阿里云域名证书自动更新acme.sh

因为阿里云的免费证书只有三个月的有效期&#xff0c;每次更换都比较繁琐&#xff0c;所以找到了 acme.sh&#xff0c;还有一种 certbot 我没有去了解&#xff0c;就直接使用了 acme.sh 来更新证书&#xff0c;acme.sh 的主要特点就是&#xff1a; 支持多种 DNS 服务商自动化续…...

HCIP第二次作业

一、拓扑图 二、需求 1.按照图示的VLAN及IP地址需求&#xff0c;完成相关配置 2.要求SW1为VLAN 2/3的主根及主网关&#xff0c;SW2为vlan 20/30的主根及主网关&#xff0c;SW1和SW2互为备份 3.上层通过静态路由协议完成数据通信过程 4.AR1为企业出口路由器 5.要求全网可达…...

数据驱动可视化实战:图表狐精准生成图表的完整数据范式

一、数据输入黄金法则 图表狐 - AI图表生成工具,在线数据可视化要求数据描述必须包含三个核心要素&#xff1a; [主体对象] [量化指标] [维度划分] 错误示例 ❌&#xff1a; "展示各部门销售额对比" 正确示例 ✅&#xff1a; "2023年Q1-Q4各部门销售额&a…...

代码随想录算法训练营第五十二天|图论专题: 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿

101. 孤岛的总面积 本题要求找到不靠边的陆地面积&#xff0c;那么我们只要从周边找到陆地然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地都变成海洋&#xff0c;然后再去重新遍历地图 统计此时还剩下的陆地就可以了。 1、从左边和后边向中间遍历 2、从上边和下边向中间遍历…...

Sentinel核心源码分析(下)

文章目录 前言一、StatisticSlot的异常处理二、SentinelResourceAspect的异常处理三、entry.exit2.1、StatisticSlot的exit2.2、DegradeSlot的exit 总结 前言 在上篇中&#xff0c;主要记录了Sentinel与Spring Boot的整合&#xff0c;以及责任链的构建&#xff0c;执行的过程。…...

如何将内网的IP地址映射到外网?详细方法与步骤解析

01 为什么需要将内网IP映射到外网 在当今数字化时代&#xff0c;远程访问内网资源已成为许多企业和个人的刚需。将内网IP地址映射到外网的主要目的是允许外部网络访问内网中的特定服务&#xff0c;比如Web服务器、远程桌面、文件共享等应用场景。无论是企业需要远程办公访问内…...

八股补充说明

ConcurrentHashMap 默认使用16个段&#xff0c;主要是为了平衡并发性能和内存占用。16个段的选择来源于历史经验和实际测试&#xff0c;能够在多数应用中提供较好的性能。 注意&#xff1a;可达性分析法是对所有引用类型都进行分析 总结表&#xff1a; 引用类型与根对象的关系回…...

数字三角形(dfs+动态规划)通过率未达100%

数字三角形 题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那…...

版本控制工具——Git

目录 【版本控制系统】 【Git概述】 【Git下载】 【Git初始化本地仓库并推送】 【克隆目标仓库】 【Git团队开发的一种流程】 【Git客户端TortoiseGit】 【下载、克隆和分支之间的区别】 【下载GitHub中的子文件夹】 【不用魔法的访问方法】 【GitHub官方文档】 【版…...

计算机网络学习前言

前言 该部分说明计算机网络是什么&#xff1f;它有什么作用和功能&#xff1f;值不值得我们去学习&#xff1f;我们该如何学习&#xff1f;这几个部分去大概介绍计算机网络这门课程&#xff0c;往后会介绍计算机网络的具体知识点。 1.计算机网络是什么&#xff1f; 计算机网…...

Python爬虫第6节-requests库的基本用法

目录 前言 一、准备工作 二、实例引入 三、GET请求 3.1 基本示例 3.2 抓取网页 3.3 抓取二进制数据 3.4 添加headers 四、POST请求 五、响应 前言 前面我们学习了urllib的基础使用方法。不过&#xff0c;urllib在实际应用中存在一些不便之处。以网页验证和Cookies处理…...

当实体类中的属性名和表中的字段名不一样 ,怎么办

在不同的持久化框架中&#xff0c;当实体类中的属性名和表中的字段名不一致时&#xff0c;有不同的解决办法&#xff0c;下面为你详细介绍&#xff1a; 1. MyBatis MyBatis 是一个流行的持久层框架&#xff0c;有两种主要方式来处理属性名和字段名不一致的情况。 方式一&…...

我用deepseek制作了一份建设项目从立项到验收全流程手册《从蓝图到交付:建设项目全生命周期管理实战手册》

建设项目全流程详解&#xff08;2025年更新版&#xff09; ‌一、立项决策阶段‌ ‌项目建议书编制‌ 明确建设背景、必要性、初步规模及投资估算&#xff0c;形成《项目建议书》报审材料 ‌12 ‌可行性研究深化‌ 完成市场供需分析、技术方案比选、环境影响评估、财务敏感性…...

力扣HOT100之链表:19. 删除链表的倒数第 N 个结点

这道题的思路比较简单&#xff0c;直接定义一个虚拟头节点&#xff0c;然后再定义快慢指针&#xff0c;快慢指针在初始状态下都指向虚拟头节点&#xff0c;然后让快指针先走n步&#xff0c;慢指针停在原地&#xff0c;然后快慢指针同步前进&#xff0c;当快指针fast指向最后一个…...

【Django】教程-11-ajax弹窗实现增删改查

【Django】教程-1-安装创建项目目录结构介绍 【Django】教程-2-前端-目录结构介绍 【Django】教程-3-数据库相关介绍 【Django】教程-4-一个增删改查的Demo 【Django】教程-5-ModelForm增删改查规则校验【正则钩子函数】 【Django】教程-6-搜索框-条件查询前后端 【Django】教程…...

大厂算法面试 7 天冲刺:第7天-系统设计与模拟面试实战 —— 架构思维 + Java落地

&#x1f3d7;️ 第7天&#xff1a;系统设计与模拟面试实战 —— 架构思维 Java落地 &#x1f4da; 一、What&#xff1a;系统设计是什么&#xff1f; 系统设计是对一个复杂系统的高可用、高性能、高扩展性架构进行顶层思考和具体实现的过程。 &#x1f527; 涉及核心主题&a…...

面试题汇总06-场景题线上问题排查难点亮点

面试题汇总06-场景题&线上问题排查&难点亮点 【一】场景题【1】订单到期关闭如何实现【2】每天100w次登录请求,4C8G机器如何做JVM调优?(1)问题描述和分析(2)堆内存设置(3)垃圾收集器选择(4)各区大小设置(5)添加必要的日志【3】如果你的业务量突然提升100倍…...

AI训练存储架构革命:存储选型白皮书与万卡集群实战解析

一、引言 在人工智能技术持续高速发展的当下&#xff0c;AI 训练任务对存储系统的依赖愈发关键&#xff0c;而存储系统的选型也变得更为复杂。不同的 AI 训练场景&#xff0c;如机器学习与大模型训练&#xff0c;在模型特性、GPU 使用数量以及数据量带宽等方面的差异&#xff…...

数据结构实验3.1:顺序栈的基本操作与进制转换

文章目录 一&#xff0c;问题描述二&#xff0c;基本要求三&#xff0c;算法分析四&#xff0c;示例代码五&#xff0c;实验操作六&#xff0c;运行效果 一&#xff0c;问题描述 在数据处理中&#xff0c;常常会遇到需要对链接存储的线性表进行操作的情况。本次任务聚焦于将链…...

Docker与VNC的使用

https://hub.docker.com/r/dorowu/ubuntu-desktop-lxde-vnc 下载nvc 客户端 https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-7.12.0-Windows.exe 服务端 docker pull dorowu/ubuntu-desktop-lxde-vnc#下载成功 docker pull dorowu/ubuntu-desktop-l…...

JGraphT 在 Spring Boot 中的应用实践

1. 引言 1.1 什么是 JGraphT JGraphT 是一个用于处理图数据结构和算法的 Java 库,提供了丰富的图类型和算法实现。 1.2 为什么使用 JGraphT 丰富的图类型:支持简单图、多重图、伪图等多种图类型。强大的算法库:提供最短路径、最小生成树、拓扑排序等多种算法。易于集成:…...

.net6 中实现邮件发送

一、开启邮箱服务 先要开启邮箱的 SMTP 服务&#xff0c;获取授权码&#xff0c;在实现代码发送邮件中充当邮箱密码用。 在邮箱的 设置 > 账号 > POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务中&#xff0c;把 SMTP 服务开启&#xff0c;获取授权码。 二、安装库 安装 …...

MySQL 触发器与存储过程:数据库的自动化工厂

在数据世界的工业区&#xff0c;有一座运转高效的自动化工厂&#xff0c;那里的机器人日夜不停地处理数据…这就是 MySQL 的触发器与存储过程系统&#xff0c;它让数据库从"手工作坊"变成了"现代化工厂"… 什么是 MySQL 触发器与存储过程&#xff1f;&…...

计科数据库第二次上机操作--实验二 表的简单查询

一、建数据库和表 1&#xff0e;启动数据库服务软件 Navicat 2&#xff0e;在 Navicat 中建立数据库 test 3. 在test数据库上建立teacher表&#xff1a; 二、基本查询 2.1 从teacher表中分别检索出教师的所有信息 SELECT * FROM teacher WHERE 教工号2000; SELECT * FROM t…...

⭐算法OJ⭐滑动窗口最大值【双端队列(deque)】Sliding Window Maximum

文章目录 双端队列(deque)详解基本特性常用操作1. 构造和初始化2. 元素访问3. 修改操作4. 容量操作 性能特点时间复杂度&#xff1a;空间复杂度&#xff1a; 滑动窗口最大值题目描述方法思路解决代码 双端队列(deque)详解 双端队列(deque&#xff0c;全称double-ended queue)是…...

LeetCode刷题SQL笔记

系列博客目录 文章目录 系列博客目录1.distinct关键字 去除重复2.char_length()3.group by 与 count()连用4.date类型有个函数datediff()5.mod 函数6.join和left join的区别1. **JOIN&#xff08;内连接&#xff0c;INNER JOIN&#xff09;**示例&#xff1a; 2. **LEFT JOIN&a…...

Ubuntu中MATLAB启动图标设置

打开终端&#xff0c;键入 su root 输入root密码 键入&#xff1a;vi /usr/share/applications/Matlab.desktop 打开了一个空白文档&#xff0c;按键“i”&#xff0c;进入编辑模式&#xff0c;键入如下内容&#xff1a; [Desktop Entry] NameMatlabR2017b CommentMatlab R…...

Django分页教程及示例

推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 完整代码示例:结论Django的分页模块允许你将大量数据分割成更小的块(页面)。这对于以可管理的方式显示项目列表,如博客文章或产品…...

Ansible的使用

##### Ansible使用环境 - 控制节点 - 安装Ansible软件 - Python环境支持&#xff1a;Python>2.6 - 必要的模块&#xff1a;如PyYAML等 - 被控节点 - 启用SSH服务 - 允许控制节点登录&#xff0c;通常设置免密登录 - Python环境支持 http://www.ansible.com/ …...

JBDC Java数据库连接(1)

目录 JDBC概述 定义 JDBC API 实例 JDBC搭建 建立与数据库连接&#xff1a; 形式&#xff1a; 实例 获得Satement执行sql语句 Satement中的方法: 实例 实例 JDBC概述 定义 JDBC&#xff08;Java DataBase Connectivity&#xff09;java数据库连接是一种用于执行SQL…...

tomcat的负载均衡和会话保持

写你的想写的东西&#xff0c;写在tomcat的默认发布目录中 这里写了一个jsp的文件 访问成功 可以用nginx实现反向代理 tomcat负载均衡实现&#xff1a; 这里使用的算法是根据cookie值进行哈希&#xff0c;根据ip地址哈希会有问题.如果是同一台主机再怎么访问都是同一个ip。 t…...

蓝桥杯 web 新鲜的蔬菜(css3)

思路&#xff1a; 首先将.box容器设置为网格布局 display:grid;同时将网格分成3列3行 然后&#xff1a;通过子选择器或后代选择器选中相应的元素&#xff0c;再通过 grid-area 将其调整到相应的位置 答案&#xff1a; .box {display: grid;grid-template-columns: 1fr 1fr …...

【AI学习】初步了解TRL

TRL&#xff08;Transformer Reinforcement Learning&#xff09; 是由 Hugging Face 开发的一套基于强化学习&#xff08;Reinforcement Learning, RL&#xff09;的训练工具&#xff0c;专门用于优化和微调大规模语言模型&#xff08;如 GPT、LLaMA 等&#xff09;。它结合了…...

2025-04-07 NO.3 Quest3 MR 配置

文章目录 1 MR 介绍1.1 透视1.2 场景理解1.3 空间设置 2 配置 MR 环境2.1 场景配置2.2 MR 配置 3 运行测试 配置环境&#xff1a; Windows 11Unity 6000.0.42f1Meta SDK v74.0.2Quest3 1 MR 介绍 1.1 透视 ​ 透视&#xff08;Passthrough&#xff09;是将应用的背景从虚拟的…...

Kafka在Vue和Spring Boot中的使用实例

Kafka在Vue和Spring Boot中的使用实例 一、项目概述 本项目演示了如何在Vue前端和Spring Boot后端中集成Kafka&#xff0c;实现实时消息的发送和接收&#xff0c;以及数据的实时展示。 后端实现&#xff1a;springboot配置、kafka配置、消息模型和仓库、消息服务和消费者、we…...