tag 标签: 技术

相关帖子
相关博文
  • 2025-3-14 17:08
    130 次阅读|
    0 个评论
    万物互联时代,全屋智能正从概念走向现实,而蓝牙低功耗(BLE)技术凭借独特优势,已成为构建智慧家庭生态的核心驱动力之一。作为一项成熟且持续创新的无线通信协议,BLE技术不仅以“低功耗”定义行业标准,更凭借Mesh组网能力打破场景疆界,为智能家居设备提供了灵活、可靠、可扩展的解决方案,有力推动了全屋智能的落地应用。 据中商产业研究院整理数据显示,2023年我国智能家居市场规模为7257亿元,预计到2024年将达7848亿元,到2025年将达到8526亿元,同比增长率约为10%。随着未来新房建设和老房改造的需求增多,以及物联网、云计算、人工智能等技术的更新迭代,智能家居市场将呈上升态势持续发展,市场渗透率亦有望逐步提高,市场潜力巨大。 BLE 技术,推动智能家居发展的 “重要引擎” BLE技术在继承传统蓝牙功能的同时,将功耗大幅降低,是专为传感器、智能门锁、温控器等对功耗要求苛刻、数据传输量小、需要长期稳定运行的小型终端设备而设计。其可通过优化的协议栈设计、LE Power Control(功率控制)功能与休眠算法等能力,大幅提升这些小型终端设备在电池供电条件下的使用寿命,是各种小型智能家居设备理想的无线连接解决方案。 BLE设备工作在2.4GHz的ISM频段,该频段共划分了40个信道(信道带宽为2MHz)。其中,3 个Advertising信道(37、38、39)用于设备的发现和连接请求等操作,37 个Data信道用于数据传输。 BLE设备可以周期性地通过Advertising信道发送广播数据包,其他设备则可通过扫描操作监听广播数据包以发现可连接的 BLE 设备。例如:当一个BLE设备发现另一个BLE设备并希望建立连接时,它会发送连接请求,如果目标设备接受请求,双方就会建立起一个点对点的连接。连接建立后,设备之间可以进行数据的双向传输,从而实现各种智能控制功能。 BLE技术采用了快速连接和断开机制,BLE设备在大部分时间可处于休眠状态,仅在需要传输数据时才被短暂激活,如智能手表与手机连接后,平时可处于低功耗监听模式,有数据交互时才唤醒工作,大大降低了能耗。 此外,BLE技术还具有成熟的开发工具和软件协议栈,开发者可利用丰富的开源资源和示例代码,缩短开发周期,降低开发成本与技术门槛。同时,BLE技术还采用了先进的纠错和重传机制,在有干扰的环境中也能保证数据传输的准确性,如在信道拥挤的环境中,BLE设备仍能准确传输数据。 BLE Mesh技术,推动单品互联到全屋智能 随着智能家居市场的持续发展,蓝牙设备进行一对一、一对多的数据通信已逐渐难以满足众多智能家居设备互联互通的连接需求,而蓝牙低功耗网状网络(BLE Mesh)技术支持多对多网络拓扑(类似网状结构),多个蓝牙设备可以互相发送消息并可作为中继点将消息转发到网络中的其他设备,从而扩展了网络的覆盖范围,让智能家居设备之间可以自由交流、协同工作,是推动单品互联到全屋智能的重要技术驱动力之一。 BLE Mesh网络协议栈 图源:SIG BLE Mesh技术是建立在BLE协议基础上的一种通信协议,旨在为BLE设备创建一个多节点、多跳的网状网络,使设备之间能够进行高效、可靠的通信。其利用了蓝牙技术广泛的市场接受度和低功耗特性,将蓝牙的应用场景从传统的一对一或一对多连接扩展到了大规模的设备网络。 接入BLE Mesh网络中的所有设备都可以被称为节点,而所有节点都能够在Mesh网络中发送并接收消息。此外,一些节点(如传感器)的电池有可能会被耗尽,而其他节点(如照明设备、制造机械和安防摄像机)则会通过主电网来获取电力,不同节点的处理能力会存在差异,因此不同节点在mesh网络中可扮演不同的角色,主要表现出上表的四个节点特征(Features)。 BLE mesh网络拓扑结构简示图 如上图所示,当BLE节点1(手机、平板)需要向低功耗节点1(传感器)传输信息时,会通过GATT Bearer向中继节点2发送信息,中继节点则通过ADV Bearer在广播信道转发BLE节点1(手机、平板)的信息,而朋友节点1、普通节点3和中继节点2都在其无线信号覆盖范围内并接收到消息,朋友节点1作为低功耗节点1(传感器)的好友会储存接收到的信息,而低功耗节点1(传感器)会在唤醒后查询朋友节点1的储存信息来取得BLE节点1(手机、平板)发送给它的消息并做相应的处理。 在万物互联的时代发展背景下,各种传感器、温控器与湿度计等小型终端已被广泛嵌入至智能家居系统之中,它们依靠电池供电且需要长时间稳定的运行,还必须周期性地向控制中心汇报监测信息,而BLE Mesh 技术凭借网状网络架构、低功耗特性与低成本优势,完美契合大量低功耗设备的互联需求,可为智能家居系统的高效运作提供坚实支撑。 值得一提的是,当BLE Mesh技术为全屋智能成功搭建起设备互通的网络骨架时,如何将各种家居设备完美接入网络中就成为了行业关注的焦点,而这则需要底层BLE芯片在通信性能、功耗控制与功能集成等维度上通过设计实现。 例如,CMT4531就是一款超低功耗物联网蓝牙无线通信芯片,搭载 32 位 ARM®Cortex™-M0 内核,最高工作主频64MHz,配备48KB SRAM与256KB FLASH,具有超低功耗、高性能和无线多模的特点,支持无线数据透传功能、全双工双向通讯,最低波特率9600bps。 CMT4531 产品框图 CMT4531 支持BLE高速数据吞吐,包括BLE 2Mbps PHY协议与长度扩展功能;同时,CMT4531还可完全支持BLE Mesh协议下的Friend、LowPower、Proxy、Relay等多种节点特性,是打造智能家居BLE Mesh网络的理想选择之一。 展望未来,随着技术的不断进步和创新,BLE 技术在智能家居中的应用前景将更加广阔。它将不断拓展新的应用场景,与其他前沿技术深度融合,为智能家居的发展注入源源不断的动力,引领我们迈向更加智能、美好的未来生活。
  • 热度 3
    2024-7-27 15:47
    347 次阅读|
    0 个评论
    多核异构系统是⼀种使同⼀颗SoC芯片中不同核心分别独立运行不同平台的计算系统。通过合理的处理器核心及外设资源划分,使⼀颗SoC芯片能够独立运行Linux系统和实时性系统,在满足系统软件功能和硬件外设丰富性要求的同时,也满足系统的实时性要求,具有突出的性价比优势和产品体积优势。 1. 瑞芯微多核异构系统 “瑞芯微多核异构系统”是瑞芯微提供的⼀套通用多核异构系统解决方案。 在运行平台方面: Linux提供标准的Linux Kernel,RTOS提供开源的RT-Thread ,Bare-metal提供基于RK HAL硬件抽象层的裸机开发库。同时,瑞芯微多核异构系统支持客户自行适配更多的运行平台,例如可以基于RK HAL硬件抽象层适配指定的RTOS等。 在处理器核心方面 : 瑞芯微多核异构系统支持SoC中同构的ARM Cortex-A核心独立运行。也支持SoC中异构的ARM Cortex-M或RISC-V核心独立运行。瑞芯微多核异构系统通过合理的处理器核心资源划分,将适当的任务分配到最适合的核心进行处理,从而使SoC发挥出更优秀的性能和能效表现。 目前,瑞芯微多核异构系统采用无监督的AMP方案。不使用虚拟化管理,从而在运行实时性系统时获得更快的中断响应,以满足电力、工控等行业应用中严苛的硬实时性要求。 2. RK3562J处理器核心及AMP支持情况 处理器核心 AMP支持情况 3. 中断嵌套机制 中断嵌套是一种有效的中断处理机制,它允许系统根据中断的优先级来响应和处理中断,从而确保关键任务能够及时得到处理,具有实时性高、灵活性好、响应快速等特点,但传统的Linux系统为了简化设计、提高系统的稳定性和可预测性、减少资源竞争和死锁等风险、以及提高兼容性和可维护性,不支持中断嵌套。这种设计选择使得Linux内核在许多应用场景中表现出色,但对于高实时性场景下的应用就显得力不从心了。 4. 案例实践分享 开发板型号:OK3562J-C 资料版本:OK3562-C_Linux 5.10.198_用户资料_R1 测试思路: 使用两个GPIO,分别为GPIO4B1和GPIO0B0,其中GPIO4B1设置为输出,GPIO设置为输入并且中断配置为下降沿触发。硬件上短接GPIO4B1和GPIO0B0。 使用Timer4定时器每秒产生一个定时器中断,在中断处理函数中控制GPIO4B1产生一个下降沿并延时,如果出现了GPIO0B0中断处理函数中的打印信息则证明成功发生了中断抢占。 测试步骤: (1)编写测试程序fltest_irq_preempt.c开启TIEMR4和GPIO0B0的中断并且将GPIO0B0配置为下降沿触发,在定时器中断处理函数中将GPIO4B1拉高拉低,使之触发GPIO0B0的中断,在GPIO0B0的中断处理函数中打印一句话来表明当前进入了GPIO0B0的中断; (2)修改中断路由,添加TIMER4和GPIO0的中断并使之绑定给CPU3,并设置TIMER4的中断优先级高于GPIO0; (3)重新编译镜像并烧写; (4)在uboot菜单中打开AMP并重启OK3562J-C开发板,此时RTOS调试串口打印如下: 按tab键可以打印出当前的所有命令: 可以看到我们的命令已经注册成功了。 现在执行我们刚刚编写的fl_irq_test这条命令,即可看到效果: 可以看到GPIO0B0的中断抢占了当前的TIMER4中断。 我们将二者的优先级调换一下再重新编译烧写,然后再次执行该程序,可以看到GPIO0B0的中断在TIMER4中断结束之后才被处理,未发生抢占。
  • 热度 3
    2024-3-15 10:07
    343 次阅读|
    0 个评论
    SPI(Serial Peripheral Interface)通信总线以其高速、全双工、同步的特性而被广泛应用,它只需要四根线就能实现数据传输,有效地节约了芯片管脚的数量,同时为PCB布局带来了空间上的优化和便捷。正因为它简单易用的特点,现在越来越多的芯片选择集成SPI通信协议。 作为TI Sitara™产品线新一代MPU产品,TI AM62x处理器特别配备了多达4路的SPI接口以及1路OSPI接口(有时也称为QSPI),丰富的SPI接口配置使得该处理器能够同时与多个设备进行通信连接,大大提高了系统的扩展性和灵活性。 在飞凌嵌入式推出的搭载了AM62x处理器的OK6254-C开发板上,NOR Flash存储器正是通过连接到处理器的OSPI总线上进行工作的。这样的设计充分利用了SPI通信协议的高速传输和全双工特性,保证了开发板在数据处理和存储方面的效率。本文就通过OK6254-C开发板为大家介绍一下AM62x的SPI。 0 1 SPI的工作流程和时序 我们首先需要了解一下SPI是如何工作的——通常SPI通过4个引脚与外部器件相连: (1) MISO:主设备输入/从设备输出引脚 该引脚在从模式下发送数据,在主模式下接收数据; (2) MOSI:主设备输出/从设备输入引脚 该引脚在主模式下发送数据,在从模式下接收数据; (3) CLK:串口时钟 作为主设备的输出,从设备的输入; (4) NSS:从设备选择 这是一个可选的引脚,用来选择从设备。 SPI的工作流程是这样的: (1) 主机先将NSS信号拉低,这样保证开始接收数据; (2) 当接收端检测到时钟的边沿信号时,将立即读取数据线上的信号,这样就得到了一位数据; (3) 由于时钟是随数据一起发送的,因此指定数据的传输速度并不重要,尽管设备将具有可以运行的最高速度; (4) 主机发送到从机时,主机产生相应的时钟信号,然后数据一位一位地将从MOSI信号线上进行发送到从机; (5) 主机接收从机数据时,如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过MISO信号线发送。 SPI工作时序图如下: 0 2 AM62x处理器中SPI总线的特点 在AM62x这款芯片中,TI将SPI的MISO与MOSI设计为d0和d1,具体哪一个作为输入,哪一个作为输出,是由设备树中的 ti,pindir-d0-out-d1-in= 来设置的。 默认属性值为0,即d0是输入,d1是输出; 当属性值为1时,d0为输出,d1为输入。 0 3 AM62x的SPI应用 1. menuconfig配置: 将该项选中,SPI驱动将编译进内核中。 makemenuconfi Usermode SPI device driver support (注:在飞凌嵌入式OK6254-C开发板中,SPI驱动编译已进去。) 2. 设备树配置: (1) 选择需要使用的spi,这里我们用spi0,节点为&main_spi0; (2) 将该节点所用的引脚复用为相应的功能。 spi0_pins_default: spi0-pins- default { pinctrl- single ,pins = < AM62X_IOPAD ( 0 x1B4, PIN_OUTPUT, 0 ) /* (A13) SPI0_CS0 */ AM62X_IOPAD ( 0 x1B8, PIN_OUTPUT, 0 ) /* (C13) SPI0_CS1 */ AM62X_IOPAD ( 0 x1C0, PIN_INPUT, 0 ) /* (B13) SPI0_D0 */ AM62X_IOPAD ( 0 x1BC, PIN_OUTPUT, 0 ) /* (A14) SPI0_CLK */ AM62X_IOPAD ( 0 x1C4, PIN_INPUT, 0 ) /* (B14) SPI0_D1 */ ; }; (3) 描述节点的属性,具体配置项的功能见注释。 &main_spi0 { status = "okay" ; pinctrl-names = "default" ; pinctrl-0 = ; /* 描述引脚复用节点 */ ti,spi-num-cs = < 2 ; /* 描述片选的数量 */ ti,pindir-d0- out -d1- in = < 1 ; /*描述输入输出分别是哪个*/ /* 描述子节点spidev0设备 */ spidev @0 { spi-max-frequency = < 24000000 ; /* 描述spidev0设备的最大频率 */ reg = < 0 ; /* 描述spidev0设备所用的片选,这里是第0个 */ spi-cs-high; /* 描述spidev0设备高有效 */ compatible = "rohm,dh2228fv" ; /* 描述spidev0设备所用驱动 */ }; /* 描述子节点spidev1设备 */ spidev @1 { spi-max-frequency = < 24000000 ; reg = < 1 ; compatible = "rohm,dh2228fv" ; }; }; 3. 编译烧录: 在源码路径下输入以下命令: .build.sh sudo./build.sh kernel 没有报错即为编译成功。 将源码路径下的image中的OK6254-C.dtb文件放到开发板的/boot目录中,重启开发板即可。 4. SPI测试: 将spi0_D0和spi0_D1短接 重启开发板后,在/dev目录下看到多出两个spidev设备。 使用我们的测试程序 fltest_spidev_test -D /dev/spidev3.0 -s 42000 有如下打印信息即为成功: spimode: 0 bitsper word: 8 maxspeed: 42000 Hz (42 KHz) FFFF FF FF FF FF 4000 00 00 00 95 FFFF FF FF FF FF FFFF FF FF FF FF FFFF FF FF FF FF DEAD BE EF BA AD F00D 0 4 总结 TI AM62x处理器有着丰富的SPI资源,而SPI又可以作为许多设备的总线,这使得AM62x能够接入许多SPI接口的设备,因此在那些对SPI有着比较多需求的应用场景下,TI AM62x无疑是一个非常好的主控选择。
  • 热度 6
    2024-1-19 09:55
    451 次阅读|
    0 个评论
    迷宫老鼠机器人比赛是一项以电子和信息、装备制造等专业核心技术作为主要竞赛内容的赛事,其中用到的关键技术包括嵌入式微控制器技术及应用、传感器技术及应用、智能控制算法应用、3D虚拟仿真技术应用以及人工智能与计算技术应用等。该类比赛要求参赛的电脑鼠在不同的“迷宫”中自动记忆和选择路径,通过采用相应的算法,快速达到设定的目的地,这就是所谓的“智能鼠走迷宫”。 这项技术的核心在于其可以广泛应用于各个领域,如自动化控制、智能制造等。此外,国际智能鼠走迷宫竞赛(中国)总联络处已经成立,得到美国、葡萄牙、印度、英国、日本、新加坡、泰国、蒙古等多个海外国家Micromouse组织的授权和支持,这将进一步推动中国与世界各国在Micromouse前端技术交流合作等方面的工作。 至于推广方面,已经有多个大学和机构参与其中。例如,天津市大学生学科竞赛第12届“启诚杯”人工智能电脑鼠大赛在南开大学举行,来自南开大学、天津大学、天津理工大学等学校的师生都参与了这次比赛。此外,北京交通大学电脑鼠走迷宫校内赛也吸引了大量参赛队伍。通过这些比赛,迷宫老鼠机器人比赛得以在高校和科研机构中得到广泛推广。
  • 热度 3
    2023-3-16 22:31
    3513 次阅读|
    14 个评论
    2023年3月16日星期四读报,一文《英国在科学技术领域还是“世界领先”吗?》唤起我一直有个看法,就是白肤色人类擅长科学,黄肤色人类擅长技术,科技是人类演化不可或缺的两个相互关联领域。这文章题目可见,话外音,人类当下科学发明拿不出什么新玩意儿了,技术应用要量力而行适度适宜,世界领先不要过度了。 这两天,FT中文网报道,感觉英国新闻多了点,还都是关于科学。是不是想说当下人类在 科学发明发现上停滞 ,为了可持续生存,在技术应用上不要过度,好听是“世界领先”,毕竟不好说人家领先,就先自己落后,以身作则,用行为说话? FT中文网新闻摘录如下: 英国将出台金融和监管措施着重发展计算机与生命科学 - FT 中文网 (d2wz47owtacjie.cloudfront.net) 英国财政大臣亨特誓言要让英国成为“欧洲最佳科技公司投资和发展之地”。 更新于 2023 年 3 月 16 日 15:00 英国《金融时报》 克 莱 夫•库克森 , 汉 娜 •库 赫 勒 英国在科学技术领域还是 “ 世界领先 ” 吗? - FT 中文网 (d2wz47owtacjie.cloudfront.net) 阿胡贾 :根据科学政策学者的新分析,英国在科学技术的优先领域中表现良好,但并不突出,离世界领先还有一段距离。 更新于 2023 年 3 月 16 日 12:12 安贾娜• 阿胡贾 把基因组编辑放出笼子前必须先确立规则 - FT 中文网 (d2wz47owtacjie.cloudfront.net) 阿胡贾 :改变人类 DNA 为治疗疾病带来了希望,但也引发了公平获取等问题。 更新于 2023 年 3 月 15 日 17:39 安贾娜• 阿胡贾 本文作者是科学评论员 每一项新兴技术都有自己的梦想家和阴谋家。人类基因组编辑无疑也是如此,它是 上周在伦敦弗朗西斯•克里克研究所 (Francis Crick Institute) 举行的一场备受瞩目的全球峰会 的焦点。 英国的产业政策要有重点 - FT 中文网 (d2wz47owtacjie.cloudfront.net) 帕里克:英国应该珍视自己的优势产业,如果妄想在每个领域都领先世界,那么最终可能一事无成。 更新于 2023 年 3 月 15 日 17:29 泰杰•帕里克 前天看到可谓“狂轰滥炸”的新闻就好奇? 美国走向大萧条?美国怎么了?接下来意味着什么? _ 工程 师职场 - 面包板社区 (eet- china.com) 发表于 2023-3-14 10:52:40 硅谷银行倒闭,怎么这么热闹? 硅谷,自然想到科技,年初报道科技行业大裁员就好奇?硅,又让人想到半导体,不一直在折腾没完没了? 如何看 “ 科技行业裁员更多是重新调整 ” ? - 面包板社区 (eet-china.com) 重新调整什么?还没看明白,这又到了金融行业,裁什么员?干脆倒闭! 更有意思的是美国一唱,英国一和,还都是白肤色人擅长科学的国家。 莫非人类真是在 科学发明发现上停滞 了? 百度搜索“人类科学停滞”,可见一斑。 若真是这样,那就是说人类演化的当下,就只有发挥技术应用了,在已有科学发明基础上的应用,这就涉及到应用的程度了,毕竟技术应用是要消耗地球自然资源和能源的,而这又是当下面临枯竭的趋势,还加上气候不利于生存的变化。 资源不够了,环境恶化了,那我们人类该如何应对呢? 不也就只有适度地把握科技发展,不要过度。这又唤起多年来的一个看法,是不是人类科技发展过度了?呵呵,百度看看,有意思,看看下拉菜单,这该不是百度使用了ChatGPT技术吧?知道我想看的信息? 最后一条:科技发展太快人类灭亡更快 再看《英国在科学技术领域还是“世界领先”吗?》,可想而知英国想干啥了,不就是想世界能达成一致取向而放慢科技发展,直到人类共同度过这段时间,至少是21世纪和22世纪,地球运行从黄道十二宫的双鱼宫进入宝瓶宫。 或有科学新发明发现? 科学家始终在研究,今天人民日报报道: 我国科学家发现两种新矿物 (peopleapp.com) ,央视新闻 2023-03-16 12:46,报道最后说: 新矿物的发现属于 0 到 1 原创性成果,代表了矿物学基础研究的突破性进展。截至目前,全球共发现的矿物数量约 5900 个,我国科学家发现的矿物数量只有约 180 个。 接下来还要看世界上技术应用如何把控了? 如果是这样,那我们中国在科技尤其在技术上如何做呢?
相关资源
  • 所需E币: 0
    时间: 2025-3-4 13:49
    大小: 3KB
    上传者: huangyasir1990
    一、什么是RAGRAG即“检索增强生成”(RetrievalAugmentedGeneration),这项技术通过将大量外部数据与基础模型相结合,显著增强了语言模型(LLM)的能力,使得AI的回应更加真实、个性化和可靠。RAG技术的核心在于结合了检索(Retrieval)和生成(Generation)两大核心技术。在处理复杂的查询和生成任务时,RAG首先通过检索模块从大量数据中找到与查询最相关的信息,然后生成模块会利用这些检索到的信息来构建回答或生成文本。自2020年提出以来,从最初的朴素RAG(NaiveRag),到高级RAG(AdvanceRag),再到模块化RAG(ModularRag),RAG系统不断优化和迭代,以解决实际应用中遇到的问题,如索引环节中的核心知识淹没问题、「检索环节中的用户意图理解不准确问题」,以及生成环节中的冗余信息干扰问题等二、GraphRAG框架的关键组件查询处理器(QueryProcessor):负责预处理用户定义的查询,使其能够与图数据源进行交互。检索器(Retriever):根据预处理后的查询从图数据源中检索相关内容。组织者(Organizer):对检索到的内容进行整理和优化,以提高生成器的性能。生成器(Generator):根据组织后的信息生成最终答案。三、企业大规模落地RAG核心问题经过了很长时间对RAG的研发,总结出了企业RAG落地的关键点,分别是效果、性能和成本。效果:今天很多企业并没有大规模的落地RAG,或者说是在一些关键场景上没有去使用RAG,是因为企业担心用了以后,会因为效果问题,影响他们核心场景的业务。所以效果问题是现在RAG落地最关键的因素。性能:在RAG链路里很多环节是需要使用大模型的,比如说向量化、文档解析,最后大模型的生成、大模型Agent等。这样整个链路多次调用大模型,会导致离线和在线性能都会有不同程度的下降。比如说像GraphRAG,一个30K的文档需要将近1个小时时间才能把数据处理好,这样的话很难在一个生产环境中去落地。成本:相对于其他的应用来说,RAG应用需要去多次调用大模型,而大模型背后就是GPU,但GPU资源是紧缺和昂贵的,这就不可避免的导致这类应用比其他应用的成本高很多,所以很多客户无法接受这个成本。四、RAG优化效果—数据提取和解析首先在效果层面,离线链路里第一个优化点就是文档解析。文档有很多格式,比如说PDF、Word、PPT,等等,还有一些结构化数据。然而最大的难点还是一些非结构化的文档,因为里面会有不同的内容。比如说像表格、图片,这些内容AI其实是很难理解的。在通过长期大量的优化以后,我们在搜索开放平台里面提供了文档解析服务,支持各种各样常见的文档格式和内容的解析。五、RAG优化效果—文本切片文档解析完,从文档里面能够正确的提取出内容后,接下来就可以进行文本切片。切片有很多种方法,最常见的有层次切分,把段落提取出来,对段落里面的内容再进行段落级的切片;还有多粒度切分,有时除了段落的切片,还可以增加单句的切片。这两种切片都是最常用的。另外对于一些场景,我们还可以进行基于大模型的语义切片,就是把文档的结构用大模型处理一遍,然后再提取一些更精细的文档结构。那么经过了多种切片以后,我们就可以继续进行向量化了。六、RAG评估纯检索指标精准率(Precision):衡量信号与噪音的比例——检索到的相关文档/所有检索到的文档。召回率(Recall):衡量完整性——检索到的相关文档/所有相关文档。我们认为召回率是检索领域的北极星指标。这是因为只有当我们有足够的信心,相信检索到的上下文完整到足以回答问题时,检索系统对于生成任务来说才是可接受的。F1分数:精确率和召回率的调和平均值。检索&重排指标平均倒数排名(MeanReciprocalRank,MRR):MRR计算的是最相关文档的倒数排名的平均值。如果正确答案的排名是高的(即排名接近第一位),则倒数值会大。MRR值的范围是0到1,值越高表示检索系统性能越好。平均精确率均值(MeanAveragePrecision,MAP):MAP首先计算每个查询的平均精确率,然后对所有查询的平均精确率进行平均。这里的“精确率”是指在每个排名阶段检索到的相关文档数量占到目前为止所有检索到的文档数量的比例。MAP考虑了所有相关文档,并且对检索结果的排序非常敏感,值越高,表示检索系统的排名性能越好。归一化折损累计增益(NormalizedDiscountedCumulativeGain,NDCG):NDCG倾向于赋予排在前面的相关文档更高的权重,是一种位置敏感的度量方法。NDCG先计算一个未经归一化的折扣累积增益(DiscountedCumulativeGain,DCG),然后用这个值除以一个理想状态(即最佳排名顺序)下的DCG,从而得到归一化的值。NDCG的值范围在0到1之间,越接近1表示检索性能越佳,特别是在前面几个结果的质量方面。
  • 所需E币: 5
    时间: 2024-11-2 18:33
    大小: 10MB
    上传者: 明星
    在机械制造工业中,热处理在其中占有十分重要的地位,它是提高机器零件质量和延长使用寿命的关键工序,也是充分发挥金属材料潜力、节约材料的有效途径。
  • 所需E币: 3
    时间: 2024-7-17 21:05
    大小: 79.44KB
    上传者: anhuali678
    LDO的精心设计,使得可以使用固定的输出电容来保持LDO的稳定
  • 所需E币: 0
    时间: 2024-7-13 13:07
    大小: 1.59MB
    上传者: weixianghui
    GB-T-38661-2020电动汽车用电池管理系统技术条件
  • 所需E币: 2
    时间: 2024-6-5 08:49
    大小: 52.78KB
    上传者: ICDIEE
    示波器带宽增强技术理论指南
  • 所需E币: 0
    时间: 2024-2-28 12:01
    大小: 3.42KB
    Kubernetes,简称K8s,是一个开源系统,用于自动化部署、扩展和管理容器化应用程序。它提供了基本机制来部署、维护和扩展应用程序,支持跨多个主机的容器应用。K8s是Go语言开发的,建立在Docker之上,可以看作是Docker的上层架构。它的主要功能包括应用部署、维护、扩展,集群管理、安全防护、准入机制、多应用支撑、服务注册与发现、智能负载均衡、故障发现与自我修复、服务滚动升级、在线扩容、资源配额管理等。K8s通过容器的方式来管理应用程序,使得容器集群能够运行在用户期望的状态,并解决容器跨机器通信的问题。DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。容器技术是k8s中最关键的技术,通过容器技术可以将一台实体服务器资源虚拟化为多个隔离的容器,容器之间有较高的隔离级别,可像一台独立的服务器般部署程序并对外提供服务。简单来说,可以把容器简单视为一个特殊的进程,该进程与其他进程相隔离,在自己的命名空间下使用网络接口和文件,并且该进程只能使用硬件的部分资源。容器技术的基础是linux命令空间和cgroups,其中:(1)容器的隔离是基于linux命令空间来实现的,命名空间提供了一种内核级别隔离系统资源的方法,通过将系统的全局资源放在不同的命名空间中,来实现资源隔离的目的。不同命名空间的进程,可以享有一份独立的系统资源。(2)硬件资源的限制是通过cgroups实现的,cgroups是一个linux内核功能,它被用来限制一个进程或者一组进程的资源(cpu、内存、带宽等)使用,被限制的进程不能过分使用为其他进程保留的资源。容器技术与微服务概念相得映彰,微服务概念强调将一个大的系统拆分为若干微服务,每个微服务实现系统的特定功能,通过这个方式来减少系统的耦合。一般而言,一个微服务所需的系统资源并不需要很多,使用一个容器来部署一个微服务便成了一件很合适的事情,毕竟容器创建简单、资源可控,隔离性好、扩容方便。Kubernetes中的CRD(CustomResourceDefinition,自定义资源定义)允许用户扩展API服务器以支持新的自定义资源。使用CRD,用户可以定义自己的KubernetesAPI资源类型,并在Kubernetes集群中创建、管理和操作这些自定义资源。CRD的创建和使用通常涉及以下几个步骤:创建CRD定义:创建一个CRD定义文件,例如customresource.yaml,其中包含自定义资源的结构和属性。CRD定义文件使用KubernetesAPI对象的规范来定义自定义资源的模式、版本和行为。apiVersion:apiextensions.k8s.io/v1kind:CustomResourceDefinitionmetadata: name:mycustomresources.samples.example.comspec: group:samples.example.com versions:  -name:v1   served:true   storage:true scope:Namespaced names:  plural:mycustomresources  singular:mycustomresource  shortNames:  -mcrkube-scheduler调度过程和原理kube-scheduler是Kubernetes集群中的一个核心组件,负责根据预定义的调度策略将Pod分配到集群中的合适节点上运行。下面是kube-scheduler的调度过程和原理的简要描述:获取未调度的Pod:kube-scheduler会定期从KubernetesAPI服务器获取所有未调度的Pod的列表。筛选:kube-scheduler会对未调度的Pod进行筛选,剔除不符合调度要求的Pod。这包括检查系统保留节点、Pod的亲和性和反亲和性要求(如NodeSelector、NodeAffinity等)、污点(Taints)等。只有符合筛选条件的Pod才会进入下一步的调度过程。评分:对于剩下的可调度Pod,kube-scheduler会对每个节点进行评分,根据一系列算法为每个节点计算出一个分数。评分算法可以根据用户自定义的策略进行配置,常见的因素包括节点资源利用率、节点的可用性、亲和性和反亲和性等。选择节点:根据评分结果,kube-scheduler会选择具有最高分数的节点来运行Pod。如果多个节点具有相同的最高分数,kube-scheduler会根据预定义的调度策略(如最少负载、随机选择等)来决定最终的调度结果。更新调度结果:获取到调度结果后,kube-scheduler将更新Pod的调度信息,并将其更新到KubernetesAPI服务器中。这样其他组件(如kubelet)就会根据调度结果来将Pod放置到相应的节点上运行。监控和重调度:kube-scheduler会定期监控已调度的Pod以确保其正常运行。如果发现某个节点不可用或Pod处于非运行状态,kube-scheduler将重新进行调度,将Pod迁移到其他合适的节点上。kubernetes内部需要5套证书,手动创建或者自动生成,分别为:1.etcd内部通信需要一套ca和对应证书。2.etcd与外部通信也要有一套ca和对应证书。3.APIserver间通信需要一套证书。4.apiserver与node间通信需要一套证书。5.node和pod间通信需要一套ca证书。目前来说还不能实现把所有的业务都迁到kubernetes上,如存储,因为这个是有状态应用,出现错误排查很麻烦,所以目前kubernetes主要是运行无状态应用。所以一般而言,负载均衡器运行在kubernetes之外,nginx或者tomcat这种无状态的应用运行于kubernetes集群内部,而数据库如mysql,zabbix,zoopkeeper等有状态的,一般运行于kubernetes外部,通过网络连接,实现kubernetes集群的pod调用这些外部的有状态应用。Kubernetes引入Pod主要基于下面两个目的:-可管理性有些容器天生就是需要紧密联系,一起工作。Pod提供了比容器更高层次的抽象,将它们封装到一个部署单元中。Kubernetes以Pod为最小单位进行调度、扩展、共享资源、管理生命周期。-通信和资源共享Pod中的所有容器使用同一个网络namespace,即相同的IP地址和Port空间。它们可以直接用localhost通信。同样的,这些容器可以共享存储,当Kubernetes挂载volume到Pod,本质上是将volume挂载到Pod中的每一个容器。
  • 所需E币: 2
    时间: 2024-1-13 21:31
    大小: 341.63KB
    上传者: 电子阔少
    GB/T8897.02-2005原电池第2部分外形尺寸和技术要求9页0.3M.pdf
  • 所需E币: 2
    时间: 2024-1-13 21:39
    大小: 2.51MB
    上传者: 电子阔少
    劲量电池产品技术手册52页2.5M.pdf
  • 所需E币: 0
    时间: 2024-1-9 14:40
    大小: 2.77KB
    在现如今的信息化时代,相信各位读者对于“操作系统”这四个字并不陌生。例如我们常常使用的Windows、安卓、IOS、MacOS以及Linux等,都属于操作系统。操作系统,是现如今信息化时代中不可或缺的一种软件。Linux操作系统是一种开源的、基于Unix的操作系统。它最初由芬兰计算机科学家LinusTorvalds在1991年开发,并得到了全球范围内广泛的应用和支持。Linux操作系统具有稳定性、安全性、可靠性和灵活性等特点,广泛应用于服务器领域,也被许多个人用户选择作为他们的主要操作系统。Linux提供了丰富的命令行工具和图形界面,支持各种编程语言和软件开发环境,是一个非常强大而且自由开放的操作系统。操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合,操作系统是计算机系统中最基本的系统软件。操作系统(OperatingSystem,OS):是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。下面我们进行代码实战,让大家更深入的理解操作系统的本质:<divclass="site-content__wrapper">  <mainclass="site-content"    :class="{'site-content--tabs':$route.meta.isTab}">    <el-tabsv-if="$route.meta.isTab"      v-model="siteContent.mainTabsActiveName":closable="true"      @tab-click="selectedTabHandle"      @tab-remove="removeTabHandle">      <el-tab-panev-for="iteminsiteContent.mainTabs"        :label="item.title":name="item.name">        <el-card:body-style="siteContent.siteContentViewHeight">          <router-view:key="router.currentRoute.value.query.random"/>        </el-card>      </el-tab-pane>    </el-tabs>    <el-cardv-else:body-style="siteContent.siteContentViewHeight">      <router-view:key="router.currentRoute.value.query.random"/>    </el-card>  </main></div>在框架页面的模型层中,定义removeTabHandle()封装函数。functionremoveTabHandle(tabName){  //让mainTabs数组剔除要关闭的Tab  siteContent.mainTabs=siteContent.mainTabs.filter(item=>item.name!==tabName);  //如果还存在剩余的Tab,就切换到最后的Tab上面  if(siteContent.mainTabs.length>=1){    //获取mainTabs数组最后一个元素    lettab=siteContent.mainTabs[siteContent.mainTabs.length-1];    //选中这个Tab控件    siteContent.mainTabsActiveName=tab.name;    //内容区切换引用的页面    router.push({name:tab.name});  }else{    siteContent.mainTabsActiveName='';    router.push({name:'MisHome'});  }}这个注解会拦截Web方法的请求,让SaToken验证客户端提交的Token令牌。如果令牌合法就允许调用Web方法,反之就拒绝HTTP请求,返回401状态码。@RestController@RequestMapping("/mis/user")publicclassUserController{  ……     @GetMapping("/searchUserSummary")  @SaCheckLogin  publicRsearchUserSummary(){    ……  }}在user.vue页面中,添加<el-dialog>标签,它可以实现弹窗的效果。<selectid="searchUsernameById"parameterType="int"resultType="String">  SELECTusername  FROMtb_user  WHEREid=#{userId}</select><updateid="updatePassword"parameterType="Map">  UPDATEtb_user  SETpassword=#{newPassword}  WHEREid=#{userId}   ANDpassword=#{password}</update>在com.example.his.api.mis.service.impl包UserServiceImpl.java类中,实现抽象方法。@ServicepublicclassUserServiceImplimplementsUserService{  ……  @Override  publicintupdatePassword(Mapparam){    intuserId=MapUtil.getInt(param,"userId");    Stringusername=userDao.searchUsernameById(userId);    MD5md5=MD5.create();    Stringpassword=MapUtil.getStr(param,"password");    Stringtemp=md5.digestHex(username);    StringtempStart=StrUtil.subWithLength(temp,0,6);    StringtempEnd=StrUtil.subSuf(temp,temp.length()-3);    password=md5.digestHex(tempStart+password+tempEnd).toUpperCase();    param.replace("password",password);    StringnewPassword=MapUtil.getStr(param,"newPassword");    newPassword=md5.digestHex(tempStart+newPassword+tempEnd).toUpperCase();    param.replace("newPassword",newPassword);    introws=userDao.updatePassword(param);    returnrows;  }}在com.example.his.api.mis.controller包UserController.java类中,声明Web方法。@RestController@RequestMapping("/mis/user")publicclassUserController{  ……  @PostMapping("/updatePassword")  @SaCheckLogin  publicRupdatePassword(@Valid@RequestBodyUpdatePasswordFormform){    intuserId=StpUtil.getLoginIdAsInt();    HashMapparam=newHashMap(){{      put("userId",userId);      put("password",form.getPassword());      put("newPassword",form.getNewPassword());    }};    introws=userService.updatePassword(param);    returnR.ok().put("rows",rows);  }}
  • 所需E币: 5
    时间: 2023-12-3 01:03
    大小: 88.56MB
    上传者: Alson
    《电工学第七版上册电工技术》.pdf
  • 所需E币: 0
    时间: 2023-11-29 14:22
    大小: 4.78KB
    大家好,今天我将给大家分享关于如何开发一个数据库系统的知识,将从0到1手把手带着一步步去开发这个项目,希望我的分享对大家的学习和工作有所帮助,如果有不足的地方还请大家多多指正。一、什么是数据库系统数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成 二、数据库管理系统的主要功能包括数据定义功能:DBMS提供数据定义语言(DataDefinitionLanguage,DDL),用户通过它可以方便地对数据库中的对象进行定义数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。数据操纵功能:DBMS提-供数据操纵语言(DataManipulationLanguage,DML),用户可以使用DML操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等数据库的事务管理和运行管理:数据库在建立、运用和维护时由数据管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用以及发生故障后的系统恢复数据库建立和维护功能:数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。三、数据库系统结构1.1模式(概念模式或逻辑模式)定义:数据库中全体数据的逻辑结构特征的描述,是所有用户的公用数据库结构。特性:一个数据库只有一个模式模式与应用程序无关,只是数据的一个框架1.2子模式(外模式或用户模式)定义:数据库用户所见和使用的局部数据的逻辑结构和特征的描述,是用户所用的数据库结构特性:子模式是模式的子集一个数据库有多个子模式,每个用户至少使用一个子模式同一个用户可以使用不同的子模式,每个子模式可为不同的用户所用1.3内模式(存储模式)定义:是数据物理结构和存储方法的描述。它是整个数据库的最低层结构的表示。特性:一个数据库只有一个内模式,内模式对用户透明一个数据库由多种文件组成,如用户数据文件,索引文件及系统文件内模式设计直接影响数据库的性能以下是开发流程:在idea中构建如下几个子模块工程:@PostMapping("/doLogin")@ApiOperation(value="一键注册登录接口",notes="一键注册登录接口",httpMethod="POST")publicGraceJSONResultdoLogin(HttpServletRequestrequest,                HttpServletResponseresponse,                @RequestBody@ValidRegisterLoginBOregisterLoginBO,                BindingResultresult);验证的字段上方可以写一些相关的注解,系统识别后会自动检查RegisterLoginBO.javapublicclassRegisterLoginBO{  @NotBlank(message="手机号不能为空")  privateStringmobile;  @NotBlank(message="短信验证码不能为空")  privateStringsmsCode;  publicStringgetMobile(){    returnmobile;  }  publicvoidsetMobile(Stringmobile){    this.mobile=mobile;  }  publicStringgetSmsCode(){    returnsmsCode;  }  publicvoidsetSmsCode(StringsmsCode){    this.smsCode=smsCode;  }  @Override  publicStringtoString(){    return"RegisterLoginBO{"+        "mobile='"+mobile+'\''+        ",smsCode='"+smsCode+'\''+        '}';  }}如果校验有问题,那么可以直接获得并且放回给前端即可。BaseController.java/** *验证beanBO中的字段错误信息 *@paramresult *@return */publicMap<String,String>getErrors(BindingResultresult){  Map<String,String>map=newHashMap<>();  List<FieldError>errorList=result.getFieldErrors();  for(FieldErrorerror:errorList){    //发生验证错误所对应的某一个属性    StringerrorField=error.getField();    //验证错误的信息    StringerrorMsg=error.getDefaultMessage();    map.put(errorField,errorMsg);  }  returnmap;}一般来说,admin系统不会有主动注册功能,账号都是分配的,那么默认就会存在一个基本账户,这也是预先通过代码生成用户名和密码的。直接手动生成即可:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>同理,查询操作也是类似JPA的操作,再继承Repository后直接使用其内置api即可:FriendLinkMngControllerApi.java@PostMapping("getFriendLinkList")@ApiOperation(value="查询友情链接列表",notes="查询友情链接列表",httpMethod="POST")publicGraceJSONResultgetFriendLinkList();首先可以在数据库通过写sql脚本实现查询SELECTc.idascommentId,c.father_idasfatherId,c.article_idasarticleId,c.comment_user_idascommentUserId,c.comment_user_nicknameascommentUserNickname,c.contentascontent,c.create_timeascreateTime,f.comment_user_nicknameasquoteUserNickname,f.contentasquoteContentFROMcommentscLEFTJOINcommentsfonc.father_id=f.idWHEREc.article_id='2006117B57WRZGHH'orderbyc.create_timedesc目前我们所搭建的eureka是单机单实例的注册中心,如果挂了,那么整个微服务体系完全不可以,这是不应该的,所以为了实现eureka的高可用,我们可以搭建集群。在进行集群构建之前,大家先参照目前的eureka再去构建一个一模一样的工程,可以取名为springcloud-eureka-cluster。为集群中各个eureka节点配置hosteureka: instance:  hostname:eureka-cluster-${port:7001}  #集群中每个eureka的名字都要唯一 #自定义eureka集群中另外的两个端口号 other-node-port2:${p2:7002} other-node-port3:${p3:7003} client:#  register-with-eureka:false#  fetch-registry:false  service-url:   #集群中的每个eureka单实例,都需要相互注册到其他的节点,在此填入集群中其他eureka的地址进行相互注册   defaultZone:http://eureka-cluster-${eureka.other-node-port2}:${eureka.other-node-port2}/eureka/,http://eureka-cluster-${eureka.other-node-port3}:${eureka.other-node-port3}/eureka/我们自己测试的时候时间可以设置为10秒内有10次,我认定非法请求,直接限制这个ip访问15秒,15秒后释放。(像有的网站会出现二维码让你扫描通过,或者手机验证码或者人机交互判断你当前是否是人还是机器,因为有可能是爬虫请求)开发步骤:首先在yml中设置基本参数:@OverridepublicObjectrun()throwsZuulException{  System.out.println("执行【IP黑名单】Zuul过滤器...");  //获得上下文对象requestContext  RequestContextrequestContext=RequestContext.getCurrentContext();  HttpServletRequestrequest=requestContext.getRequest();  //获得ip  Stringip=IPUtil.getRequestIp(request);  /**   *需求:   *判断ip在10秒内请求的次数是否超过10次,   *如果超过,则限制访问15秒,15秒过后再放行   */  finalStringipRedisKey="zuul-ip:"+ip;  finalStringipRedisLimitKey="zuul-ip-limit:"+ip;  //获得剩余的限制时间  longlimitLeftTime=redis.ttl(ipRedisLimitKey);  //如果剩余时间还存在,说明这个ip不能访问,继续等待  if(limitLeftTime>0){    stopRequest(requestContext);    returnnull;  }  //在redis中累加ip的请求访问次数  longrequestCounts=redis.increment(ipRedisKey,1);  //从0开始计算请求次数,初期访问为1,则设置过期时间,也就是连续请求的间隔时间  if(requestCounts==1){    redis.expire(ipRedisKey,timeInterval);  }  //如果还能取得到请求次数,说明用户连续请求的次数落在10秒内  //一旦请求次数超过了连续访问的次数,则需要限制这个ip了  if(requestCounts>continueCounts){    //限制ip访问一段时间    redis.set(ipRedisLimitKey,ipRedisLimitKey,limitTimes);    stopRequest(requestContext);  }  returnnull;}privatevoidstopRequest(RequestContextrequestContext){  //停止继续向下路由,禁止请求通信  requestContext.setSendZuulResponse(false);  requestContext.setResponseStatusCode(200);  Stringresult=JsonUtils.objectToJson(      GraceJSONResult.errorCustom(          ResponseStatusEnum.SYSTEM_ERROR_BLACK_IP));  requestContext.setResponseBody(result);  requestContext.getResponse().setCharacterEncoding("utf-8");  requestContext.getResponse().setContentType(MediaType.APPLICATION_JSON_VALUE);}上面这些都是通过不同key要执行多次才能得到结果,一般来说我们会使用es的aggs功能做聚合统计,会更好。通过一个脚本来统计男女数量:POSThttp://192.168.1.203:9200/fans/_doc/_search{  "size":0,  "query":{    "match":{      "writerId":"201116760SMSZT2W"    }  },  "aggs":{    "counts":{      "terms":{        "field":"sex"      }    }  }}以下就是数据库系统开发的整个流程讲解,感谢大家的阅读
  • 所需E币: 3
    时间: 2023-10-29 23:33
    大小: 3.78MB
    上传者: 宝藏库
    中科院-技术结构图谱2022
  • 所需E币: 0
    时间: 2023-10-26 10:01
    大小: 1.67KB
    无论你是数据库内核研发、DBA、还是后端研发,能够手写一套自己的数据库系统,都是你突破技术发展瓶颈的有效途径。[11章]技术大牛成长课,从0到1带你手写一个数据库系统课程将带你从架构设计,原理剖析,再到源码的实现,手把手带你构建一套完整的数据库系统,让你深度掌握数据库底层,及更多数据库高端技术,具备解决大量生产级数据库问题的能力,助力成为高端技术人才!从数据库架构设计到功能实现,吃透底层原理,解决大量生产级问题具备从0到1数据库系统的架构设计能力从需求分析,系统分析,到系统架构设计,以及面向未知故障场景防御式编程,灵活运用设计模式,全面深入理解数据库系统架构深度掌握数据库底层原理及系统性方法论掌握SQL语法解析、语义解析原理,数据库如何生成执行计划,数据库底层存储机制、事务管理机制,C/S架构网络服务,综合性提升数据库运维、调优能力提升大量生产级数据库问题高效解决能力深入掌握数据库索引调优思路、瓶颈点,如何快速定位线上问题,深入挖掘针对数据库的面试题,知其然更知其所以然,有效突破你的疑难杂症问题解决能力理论结合实际场景综合性落地,轻松吃透核心技术底层原理应用场景复用到日常开发场景中,如何运用高级数据结构、算法和设计模式,如何正确面对高并发进行编程,如何进行数据库的优化,如何理解数据库的执行计划分析慢SQL的原因等。原理剖析深度剖析数据库系统原理,将数据库几十年发展精髓拆解并呈现,端到端解析数据库系统中的各种工程trick,结合具体实现案例(MySQL/PostgreSQL/SQLite)展现系统级实现方案源码实战手把手实现每一行代码,掌握每行代码的原理,实现代码规模巨大的数据库系统原型,开发、debug过程演示真实传授解bug的核心方法论,探讨各种工程技巧、可优化的空间,引发深层思考多场景数据库解决方案,灵活解决大量生产级问题数据库性能及扩展评估数据库性能、扩展数据库功能特性、数据库扩展的方法和机制数据库优化分析数据库性能瓶颈、配置数据库索引、执行计划分析、分析系统硬件瓶颈大数据量存储如何进行数据存储、设计端到端大数据量存储方案、评估大数据量对数据库的影响数据库高可用数据库高可用的挑战、数据库WAL机制、WAL机制在数据库高可用中的应用数据库网络规划OS的网络模型、高效实现网络编程、数据库如何面对高并发挑战数据库故障定位定位数据库中故障的来源、如何对故障进行响应、进行数据库系统的高效运维
  • 所需E币: 2
    时间: 2023-10-22 13:59
    大小: 1.34MB
    上传者: 宝藏库
    自然语言处理的发展历史回顾Attention注意力机制的基本原理Transformer构建大模型的基石持续进化:从GPT-1到GPT-3能力突变:从ChatGPT到GPT-4未来展望:多模态和AIGC.
  • 所需E币: 0
    时间: 2023-9-17 15:39
    大小: 205.79KB
    上传者: 木头1233
    基于CH340N的USB转TTL模块-MINI-A技术手册
  • 所需E币: 0
    时间: 2023-9-17 15:29
    大小: 343.15KB
    上传者: 木头1233
    STC89C52单片机最小系统板-基础版技术手册
  • 所需E币: 0
    时间: 2023-8-31 14:52
    大小: 52.46MB
    上传者: 小Z爱学习
    抽样技术 SAMPLINGTECHNIQUE_13858701
  • 所需E币: 0
    时间: 2023-8-15 11:33
    大小: 330.91KB
    上传者: Aigtekatdz
    功率放大器超声椭圆无心磨削技术研究中的应用
  • 所需E币: 1
    时间: 2023-7-29 18:07
    大小: 46.01MB
    上传者: Argent
    蓝牙4.0技术介绍
  • 所需E币: 1
    时间: 2023-7-29 15:11
    大小: 3.27MB
    上传者: Argent
    准谐振和同步整流技术在反激变换器中的应用