Ollama模型性能基准测试:量化评估本地大模型推理速度与显存占用

news2026/5/10 13:08:19
1. 项目概述一个为Ollama量身定制的性能基准测试工具最近在折腾本地大模型特别是用Ollama来部署和运行各种开源模型。相信很多朋友跟我一样面对Llama 3、Qwen、Gemma这些琳琅满目的模型以及它们不同大小的版本7B、8B、13B、70B最头疼的问题就是我的电脑到底能跑哪个跑起来速度怎么样内存够不够凭感觉去试成本太高。下载一个几十GB的模型跑起来发现生成一个字要十几秒或者直接爆内存这种体验太糟糕了。我们需要数据需要量化的指标来指导决策。这就是我注意到LarHope/ollama-benchmark这个项目的原因。它不是一个复杂的AI框架而是一个非常务实的工具——专门用来对Ollama拉取的模型进行系统性的性能基准测试。简单来说它帮你自动化完成以下工作自动通过Ollama拉取你指定的模型然后执行一系列标准化的推理任务比如生成固定长度的文本并收集关键的性能数据。这些数据通常包括生成速度每秒能生成多少个词元Tokens Per Second, TPS。这是衡量推理流畅度的核心指标。内存占用模型加载后占用了多少显存VRAM和系统内存RAM。这直接决定了你的硬件能否“扛得住”。首次词元延迟从发送请求到收到第一个词元输出的时间。这影响交互的“第一感觉”。推理总耗时完成整个测试提示词生成的总时间。有了这些数据你就能在“模型能力大小、精度”和“硬件负担速度、内存”之间做出明智的权衡。比如你的显卡只有8GB显存那么通过测试你会发现llama3:8b的4位量化版本q4_0可能刚好能跑而llama3:70b则完全不用考虑。这个项目适合所有使用Ollama的开发者、研究者和爱好者无论是想在个人电脑上选型还是在服务器上评估部署成本它都能提供客观的参考依据。2. 核心设计思路自动化、标准化与可扩展的测试框架2.1 为什么需要专门的基准测试工具你可能会问Ollama自己不是有ollama run命令吗手动计时不就好了这里有几个关键问题使得一个专门的测试工具变得必要测试环境的一致性手动测试很难保证每次测试时系统负载是干净的。后台一个更新进程或一个浏览器标签就可能显著影响测试结果。自动化工具可以在测试前尽可能确保环境纯净或多次测试取平均值减少误差。测试流程的标准化测试什么内容提示词Prompt用多长要模型生成Generate多少词元不同的设置会极大影响结果。一个基准测试工具需要定义一套标准测试集比如包含短上下文问答、长文档总结等不同场景的提示词并固定生成长度使得不同模型之间的数据具有可比性。数据收集的自动化手动操作需要自己记录时间、查看系统监视器来记录内存峰值既繁琐又不精确。自动化工具可以直接从Ollama的API响应、系统接口或通过nvidia-smi这样的命令精准抓取数据并结构化地保存下来如JSON、CSV格式。批量测试与报告生成当需要比较多个模型或多个量化版本时手动操作是灾难性的。自动化工具可以读取一个模型列表依次完成“拉取模型-预热-执行测试-收集数据-清理”的全流程最后生成一个直观的对比报告或图表。LarHope/ollama-benchmark的设计正是围绕解决这些问题展开的。它的核心思路是作为一个“测试指挥官”通过脚本调用Ollama的API通常是其提供的RESTful API发送标准化的请求接收响应并在这个过程中通过外部工具或内部计时来收集性能指标。2.2 工具选型与架构考量从项目名称和常见实现来看这类工具通常基于Python或Go等脚本语言开发原因如下丰富的生态库Python有requests、aiohttp用于HTTP调用psutil用于获取系统内存信息pandas、matplotlib用于数据处理和绘图能快速构建原型。与Ollama API的良好交互Ollama提供了简单的HTTP API默认在11434端口使用/api/generate端点进行流式或非流式生成非常易于调用。跨平台性可以在Windows、macOS、Linux上运行适配用户多样的本地环境。一个典型的ollama-benchmark工具架构会包含以下模块配置模块读取一个YAML或JSON配置文件定义要测试的模型列表如[“llama3:8b”, “qwen2:7b”]、测试用的提示词模板、生成参数如temperature0.7,num_predict512。模型管理模块检查模型是否已存在本地若不存在则调用ollama pull命令或对应API进行拉取。测试执行引擎核心模块。针对每个模型循环执行多次测试请求。对于每次请求记录开始时间。向http://localhost:11434/api/generate发送POST请求请求体包含模型名、提示词、生成参数。如果是流式接收则计算首个词元到达的时间首次词元延迟和整个流结束的时间。从响应中提取生成的词元总数和耗时信息如果API返回。指标收集模块速度根据总生成词元数和总耗时计算TPS。内存在推理过程中通过子进程调用nvidia-smi对于NVIDIA GPU或vm_stat/top对于macOS/Linux系统内存来采样峰值内存占用。更精确的做法是在测试前后计算差值。结果处理与输出模块将每次测试的原始数据模型名、参数、耗时、内存、TPS存储起来最后汇总成表格并可能生成条形图、折线图进行可视化对比输出为Markdown报告或HTML页面。注意内存测试是基准测试中最棘手的部分之一。因为Ollama在加载模型时就会占用大部分显存而每次推理的中间激活Intermediate Activations也会带来波动。可靠的测试应该在模型加载稳定后进行多次推理记录其峰值或平均值并明确说明测量的是“加载后静态内存”还是“推理峰值动态内存”。3. 实操部署与运行指南3.1 环境准备与项目获取假设我们是在一个Linux/macOS系统上操作Windows用户使用WSL或PowerShell也可类似进行。首先确保你的系统已经安装了最基础的依赖Ollama这是前提。请前往Ollama官网下载并安装。安装后在终端运行ollama serve或直接运行ollama run llama3:8b测试一下确保Ollama服务正常运行默认在11434端口。Python 3.8大多数此类脚本使用Python。通过python3 --version检查。Git用于克隆项目。接下来获取ollama-benchmark项目代码。由于这是一个示例我们假设一个典型的项目结构# 克隆项目仓库这里以假设的仓库为例 git clone https://github.com/LarHope/ollama-benchmark.git cd ollama-benchmark # 创建并激活Python虚拟环境强烈推荐避免污染系统环境 python3 -m venv venv source venv/bin/activate # Linux/macOS # 对于Windows: venv\Scripts\activate # 安装项目依赖 # 通常项目会有一个 requirements.txt 文件 pip install -r requirements.txt一个典型的requirements.txt可能包含requests2.28.0 psutil5.9.0 pandas1.5.0 matplotlib3.6.0 pyyaml6.0 tqdm4.65.0 # 用于显示进度条3.2 配置文件详解与定制基准测试的核心在于配置。项目通常会提供一个config.yaml或config.json的示例文件。我们需要根据自身硬件和测试目标来修改它。# config.yaml 示例 ollama_base_url: http://localhost:11434 # Ollama API地址 benchmark: num_runs: 5 # 每个模型测试多少次取平均值以减少波动 warmup_runs: 2 # 正式测试前先“预热”运行几次让模型状态稳定 models: - name: llama3:8b # 模型名称与 ollama pull 使用的名称一致 parameters: # 调用API时的生成参数 temperature: 0.7 top_p: 0.9 num_predict: 512 # 让模型生成的最大词元数这是测试长度的关键 - name: qwen2:7b parameters: temperature: 0.8 num_predict: 512 - name: llama3:8b:q4_0 # 量化版本 parameters: temperature: 0.7 num_predict: 512 prompts: - id: short_qa content: What is the capital of France? Answer concisely. - id: longer_reasoning content: Please explain the process of photosynthesis in a step-by-step manner suitable for a high school student. - id: coding content: Write a Python function to calculate the Fibonacci sequence recursively and iteratively. Include comments.关键配置解析num_predict: 这是最重要的参数之一。设置得太短如64可能无法充分体现模型生成长文本时的持续性能设置得太长如2048测试时间会非常久且可能受上下文长度限制。512是一个比较均衡的测试长度既能反映持续生成能力又不会耗时过长。num_runs和warmup_runs:一定要设置预热模型的第一次推理往往包含一些初始化开销如KV缓存初始化速度会慢很多。用2-3次预热运行“跳过”这个阶段能让后续测试结果更稳定地反映模型的稳态性能。prompts: 使用多样化的提示词可以测试模型在不同类型任务下的表现。简单的问答、需要推理的长回答、代码生成它们对模型注意力和计算路径的调用是不同的。3.3 执行测试与数据收集配置好后运行主脚本。通常命令很简单python benchmark.py --config config.yaml --output results.json脚本会按照以下逻辑执行读取配置解析模型列表和提示词。对于每个模型检查本地是否存在。如果不存在则自动调用ollama pull model_name。这里有个坑拉取大模型非常耗时且耗带宽建议在网络条件好、时间充裕时进行或者先手动拉取好要测试的模型。对于每个模型执行预热运行不记录数据。正式测试阶段对每个提示词运行num_runs次。每次记录推理开始前和结束后系统的显存/内存使用量通过psutil和subprocess调用nvidia-smi解析。向Ollama API发送请求并精确计时。如果是流式响应一边接收一边统计计算首个词元延迟。将所有原始数据每次运行的时间、内存、返回的词元数暂存起来。实操心得监控与日志在运行测试时建议打开另一个终端窗口用ollama logs或watch -n 1 nvidia-smi来实时观察模型加载和资源使用情况。这能帮你确认测试是否在按预期进行以及及时发现内存溢出OOM等问题。同时确保测试期间不要运行其他占用大量CPU/GPU的程序以保证数据的准确性。4. 核心测试指标的技术解析与解读4.1 生成速度Tokens Per Second, TPS的计算与含义TPS是衡量推理效率的黄金指标。它的计算看似简单总生成词元数 / 总推理耗时。但在实际测量中有几个细节必须注意总推理耗时的界定是从客户端发送完HTTP请求的最后一个字节开始计时到接收到最后一个字节结束还是从服务器端开始计算Ollama的API响应中如果使用流式输出stream: false通常会包含一个total_duration字段单位纳秒这个时间包含了模型计算的时间但可能不包含网络传输的微小开销。最可靠的方法是使用流式请求stream: true客户端记录从发送请求到收到最后一个[DONE]信号的总时间。这样测得的时间包含了网络延迟但对于本地部署localhost这个延迟极小结果更贴近真实用户体验。“总生成词元数”的来源不要相信提示词的长度而要从API响应中解析。Ollama的每个流式响应块chunk里会包含response: 一段文本你需要累加这些文本然后使用模型的词元化工具如tiktokenfor OpenAI models或transformers库中的tokenizer来精确计算词元数。更简单的方法是如果响应中包含eval_count字段它通常就代表了本次生成新词元的数量。TPS解读示例假设测试llama3:8bnum_predict512进行了5次运行剔除最高最低值后平均耗时为8.2秒。粗略TPS 512 / 8.2 ≈ 62.4 tokens/s。这个数字意味着什么对于纯文本对话如果平均回复长度在100个词元那么生成一条回复大约需要1.6秒体验是流畅的。但如果用于需要生成长篇文档数千词元耗时就会按比例增长。不同硬件下的TPS预期高端消费级GPU如RTX 4090, 24GB运行7B/8B模型的4位量化版TPS可能达到100运行13B模型可能在40-70 TPS。中端GPU如RTX 4060, 8GB运行7B模型的4位量化版TPS可能在50-80运行8B模型可能刚好但TPS会下降到30-50。仅用CPU无GPU或GPU内存不足TPS会急剧下降可能只有个位数延迟感非常明显。4.2 内存占用的测量与瓶颈分析内存是决定“能不能跑”的硬约束。测试需要测量两种内存模型加载内存静态内存在运行任何推理之前使用nvidia-smi或ollama ps命令查看模型占用的显存。这主要由模型参数量、精度如FP16, INT4和上下文长度决定。推理峰值内存动态内存在推理过程中由于需要存储中间激活、KV缓存等内存使用会有一个峰值。这个峰值可能比静态内存高20%-50%尤其是处理长上下文时。测量方法对于NVIDIA GPU在每次推理请求前后通过subprocess调用nvidia-smi --query-gpumemory.used --formatcsv,noheader,nounits来获取显存使用量MB。取多次推理中的最大值作为峰值。对于系统内存使用Python的psutil库psutil.Process().memory_info().rss / 1024**2获取当前进程的常驻内存MB。内存估算经验公式以4位量化为例一个粗略的估算方法是模型参数数量B * 量化位数 / 8 * (1 上下文长度/模型总长度的一个系数)。 例如一个7B参数的INT4模型基础权重约需7e9 * 4 / 8 / 1024**3 ≈ 3.3 GB。再加上KV缓存对于2048上下文7B模型可能额外需要1-2GB以及框架开销总显存需求可能在5-6GB。这就是为什么8GB显存的显卡是运行7B/8B量化模型的“入门门槛”。重要提示Ollama在启动时会尝试将模型完全加载到GPU显存。如果显存不足它会自动将部分或全部权重卸载到系统内存RAM通过PCIe总线交换数据这会导致推理速度TPS严重下降。你的基准测试报告应该明确指出测试是在“纯GPU模式”还是“GPU内存交换模式”下进行的。通过观察推理时的GPU利用率接近100%为纯GPU频繁波动且较低可能发生了交换可以辅助判断。4.3 首次词元延迟Time To First Token, TTFT与用户体验TTFT衡量的是从用户按下回车到看到第一个字开始出现的时间。这个指标对交互体验至关重要尤其是在聊天场景中。影响TTFT的主要因素提示词处理Prefill模型需要先对你的整个输入提示词进行前向计算生成第一个输出词元的概率分布。提示词越长Prefill阶段越耗时TTFT就越长。硬件与计算Prefill阶段是计算密集型的依赖于CPU/GPU的并行计算能力。软件栈开销包括网络延迟、框架调度、数据准备等。在基准测试中TTFT可以通过流式请求精确测量记录从发送请求到收到第一个非空响应块的时间。一个优秀的、针对交互优化的推理引擎会努力优化Prefill阶段。通常TTFT在几百毫秒以内是优秀的1-2秒是可接受的超过3秒就会让用户感到明显的“卡顿”。5. 结果分析与可视化实战5.1 生成结构化测试报告测试完成后ollama-benchmark脚本会将原始数据输出到results.json。我们需要将其转化为人类可读的报告。一个简单的Python脚本可以处理这个JSON并生成Markdown报告import json import pandas as pd with open(‘results.json‘, ‘r‘) as f: data json.load(f) # 将数据转换为Pandas DataFrame便于分析 rows [] for model_result in data[‘results‘]: model_name model_result[‘model‘] for prompt_id, runs in model_result[‘prompts‘].items(): avg_tps sum(run[‘tps‘] for run in runs) / len(runs) avg_ttft sum(run[‘ttft_ms‘] for run in runs) / len(runs) if runs[0].get(‘ttft_ms‘) else None avg_peak_vram sum(run[‘peak_vram_mb‘] for run in runs) / len(runs) rows.append({ ‘Model‘: model_name, ‘Prompt‘: prompt_id, ‘Avg TPS‘: round(avg_tps, 2), ‘Avg TTFT (ms)‘: round(avg_ttft, 2) if avg_ttft else ‘N/A‘, ‘Avg Peak VRAM (MB)‘: int(avg_peak_vram), ‘Runs‘: len(runs) }) df pd.DataFrame(rows) print(df.to_markdown(indexFalse))生成的Markdown表格如下ModelPromptAvg TPSAvg TTFT (ms)Avg Peak VRAM (MB)Runsllama3:8bshort_qa65.3242075605llama3:8blonger_reasoning61.4585079805llama3:8b:q4_0short_qa122.1521041205qwen2:7bshort_qa58.9038068205从这个表格我们可以立刻得出一些结论量化效果显著llama3:8b:q4_0相比原版llama3:8bTPS提升近一倍122 vs 65TTFT减半显存占用几乎减半。这是用精度换取速度和内存的典型体现。提示词长度影响对于同一个模型longer_reasoning提示词比short_qa的TTFT长很多因为Prefill阶段更长。但TPS略有下降可能因为生成长文本时内部调度有细微开销。模型间对比qwen2:7b在相近参数规模下与llama3:8b性能指标处于同一量级但略有差异这源于模型架构和Ollama后端优化的不同。5.2 可视化图表让对比一目了然使用matplotlib可以生成更直观的图表。import matplotlib.pyplot as plt import numpy as np # 假设我们已经按模型分组好了数据 models [‘llama3:8b‘, ‘llama3:8b:q4_0‘, ‘qwen2:7b‘] tps_values [65.32, 122.15, 58.90] vram_values [7560, 4120, 6820] fig, (ax1, ax2) plt.subplots(1, 2, figsize(12, 5)) # TPS 条形图 bars1 ax1.bar(models, tps_values, color[‘skyblue‘, ‘lightgreen‘, ‘salmon‘]) ax1.set_ylabel(‘Tokens Per Second (TPS)‘) ax1.set_title(‘推理速度对比 (Higher is Better)‘) ax1.bar_label(bars1, fmt‘%.1f‘) # VRAM 条形图 bars2 ax2.bar(models, vram_values, color[‘skyblue‘, ‘lightgreen‘, ‘salmon‘]) ax2.set_ylabel(‘Peak VRAM Usage (MB)‘) ax2.set_title(‘峰值显存占用对比 (Lower is Better)‘) ax2.bar_label(bars2, fmt‘%d‘) plt.tight_layout() plt.savefig(‘benchmark_summary.png‘, dpi300) plt.show()通过这样的图表模型之间的性能权衡关系变得非常清晰。你可以一眼看出哪个模型在速度和内存上达到了最佳平衡从而根据你的硬件限制如“我的显卡只有8GB”做出选择。6. 常见问题、排查技巧与高级用法6.1 测试过程中遇到的典型问题与解决问题1测试时Ollama服务崩溃或报“CUDA out of memory”错误。原因这通常是因为要测试的模型超过了可用显存。即使模型权重经过量化可以放下但预留的KV缓存空间或过长的生成长度num_predict可能导致峰值内存超出限制。排查与解决降低测试规格首先在配置中减少num_predict比如从512降到128看是否还能运行。检查可用显存在测试前运行nvidia-smi查看当前空闲显存。确保你要测试的模型预估内存见4.2节小于空闲显存至少1-2GB给系统和其他进程留余地。使用更激进的量化如果q4_0还不行可以尝试q3_K_S等更低的量化级别如果模型提供。限制GPU层数Ollama支持通过OLLAMA_NUM_GPU环境变量或--num-gpu参数控制将多少模型层放在GPU上。例如OLLAMA_NUM_GPU20。你可以尝试减少这个数字让更多层留在CPU但这会显著降低速度。问题2测试结果波动很大每次运行的TPS差异超过20%。原因系统后台干扰、温度导致的GPU降频、或没有正确进行预热。排查与解决确保环境干净关闭不必要的应用程序特别是浏览器、视频播放器等。增加预热次数将配置中的warmup_runs增加到3或5确保模型和运行时状态稳定。增加测试次数将num_runs增加到10或更多然后取中位数或去掉最高最低值后的平均值以抵消偶然波动。监控系统资源在测试期间使用htop或系统监视器观察是否有其他进程突然占用CPU或IO。问题3首次运行某个模型时测试时间异常长后续正常。原因这很可能是因为首次运行包含了模型从存储介质如SSD加载到内存/显存的时间。这个I/O时间在后续运行中因为缓存而不复存在。解决这正是“预热运行warmup runs”要解决的问题。确保你的测试脚本包含了预热步骤并且正式测试的数据收集是从预热之后开始的。报告中也应注明测试是否包含了初始加载时间。6.2 高级用法与定制化测试基础的吞吐量和内存测试之外ollama-benchmark项目或你自己编写的脚本可以扩展更多测试维度长上下文测试目的评估模型在处理长文档如32K、128K上下文时的性能和内存增长。方法构造一个长达数万词元的提示词例如重复一段文本或使用真实长文档设置一个较短的num_predict如64主要观察TTFT因为Prefill很长和峰值内存。对比短上下文下的数据看KV缓存带来的内存增长是否符合线性预期。多轮对话测试目的模拟真实聊天场景测试模型在多轮交互中的性能保持能力。方法编写一个包含多轮问答的会话脚本。每一轮都将历史对话作为上下文输入。测试整体会话的吞吐量并观察随着对话轮数增加内存和速度是否有显著变化由于KV缓存不断增长。不同参数下的性能分析目的了解生成参数如temperature,top_p对性能的影响。方法固定模型和提示词遍历不同的temperature(0.1, 0.7, 1.0) 和top_p(0.5, 0.9, 1.0) 组合。通常这些参数对核心计算速度影响微乎其微但极端情况下可能影响采样逻辑。主要目的是验证性能稳定性。集成到CI/CD流程对于团队开发可以将基准测试作为自动化流程的一部分。每次更新Ollama版本、更新模型版本或更换服务器硬件时自动运行一组标准测试并与历史基准数据对比生成性能回归报告确保更新没有带来意外的性能回退。6.3 我的个人实操心得与建议测试环境要“冷”在开始一系列正式测试前重启一下Ollama服务ollama serve甚至重启电脑可以确保一个干净的初始状态避免之前残留的模型碎片影响内存测量。从最小的模型开始如果你不确定你的硬件极限先从最小的模型如tinyllama或一个已知能运行的模型开始测试逐步增加模型大小直到碰到内存瓶颈。这比直接挑战大模型导致崩溃更有效率。关注“性价比”不要盲目追求最大的模型。对于很多任务7B/8B的量化模型在速度和质量的平衡上已经做得很好。用基准测试数据找到那个在你的硬件上既能提供可接受质量又能保持流畅响应速度的“甜点”模型。结果报告要注明条件分享你的测试结果时一定要附带详细的测试环境CPU型号、GPU型号和显存大小、系统内存大小、操作系统、Ollama版本、模型具体版本如llama3:8b的digest哈希值以及你的测试配置num_predict,temperature等。没有这些信息数据对别人的参考价值会大打折扣。理解数据的局限性基准测试数字是重要的参考但不是全部。它无法衡量模型的理解能力、创造力和事实准确性。最终选择模型时还需要结合实际的对话或任务测试进行主观质量评估。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…