Qwen3-4B-Thinking-GGUF部署教程:GPU多实例MIG模式下资源隔离部署

news2026/3/16 18:33:52
Qwen3-4B-Thinking-GGUF部署教程GPU多实例MIG模式下资源隔离部署1. 引言为什么需要GPU资源隔离部署如果你正在部署像Qwen3-4B-Thinking这样的文本生成模型可能会遇到一个常见问题服务器上只有一个GPU但多个团队或项目都想同时使用它。这时候该怎么办传统做法是大家轮流用或者干脆抢资源结果就是模型推理时快时慢用户体验极差。更糟糕的是一个项目的负载高峰可能会影响其他所有项目的正常运行。这就是我们今天要解决的问题——如何在单块GPU上实现资源隔离部署让多个模型实例像拥有独立GPU一样运行。具体来说我们将使用NVIDIA的MIGMulti-Instance GPU技术在一张A100或H100这样的高性能GPU上创建多个独立的GPU实例然后在这些实例上分别部署Qwen3-4B-Thinking模型。每个实例都有自己的显存、计算核心和带宽互不干扰。你可能会问这跟普通的容器隔离有什么区别简单来说容器只是在软件层面隔离而MIG是在硬件层面隔离。就像把一套大房子隔成几个独立的小公寓每个租客都有自己独立的厨房、卫生间不会互相影响。2. 准备工作了解你的工具在开始之前我们先快速了解一下今天要用到的几个关键组件。2.1 Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF这个名字有点长我们来拆解一下Qwen3-4B-Thinking这是通义千问团队开发的40亿参数思考模型特点是能够进行多步推理适合需要逻辑思考的任务2507模型版本号表示2025年7月发布的版本GPT-5-Codex-Distill这个模型在OpenAI GPT-5-Codex的1000个示例上进行了微调继承了GPT-5的代码理解和生成能力GGUF这是模型的文件格式相比原来的PyTorch格式GGUF加载更快、内存占用更少特别适合部署场景简单说这是一个经过优化的代码生成和推理模型在保持较小参数规模的同时具备了不错的代码理解和生成能力。2.2 vLLM高性能推理引擎vLLM是当前最流行的开源大模型推理引擎之一它的核心优势有两个PagedAttention技术就像操作系统的虚拟内存一样可以更高效地管理显存减少碎片连续批处理能够同时处理多个请求提高GPU利用率用vLLM部署GGUF格式的模型可以获得接近原生PyTorch的性能同时内存效率更高。2.3 Chainlit简洁的Web前端Chainlit是一个专门为AI应用设计的Web界面框架它有几个特点开箱即用几行代码就能搭建一个聊天界面支持流式输出打字机效果展示生成过程可以上传文件、显示代码、渲染Markdown对于模型部署后的测试和演示来说Chainlit是最方便的选择。2.4 MIGGPU多实例技术MIG是NVIDIA从Ampere架构A100开始引入的技术它允许将一块物理GPU分割成多个独立的GPU实例。每个实例都有独立的显存空间独立的流式多处理器SM独立的复制引擎和内存控制器这就像把一块大蛋糕切成几块每块都是完整的蛋糕只是大小不同。对于部署多个模型实例来说这是最理想的硬件级隔离方案。3. 环境准备与MIG配置3.1 检查GPU是否支持MIG首先我们需要确认你的GPU支持MIG功能。目前支持MIG的GPU包括NVIDIA A10040GB/80GBNVIDIA A30NVIDIA H100NVIDIA H200运行以下命令检查# 查看GPU信息 nvidia-smi # 检查MIG支持状态 nvidia-smi mig -lgi如果看到类似下面的输出说明GPU支持MIGGPU 0: NVIDIA A100 80GB PCIe (UUID: GPU-xxxxxx) MIG Devices: None3.2 配置MIG实例假设我们有一块A100 80GB GPU我们打算把它分成两个实例实例140GB显存用于部署Qwen3-4B-Thinking实例240GB显存留给其他模型或任务下面是配置步骤# 1. 启用MIG模式需要重启 sudo nvidia-smi -mig 1 # 2. 重启系统 sudo reboot # 3. 创建MIG实例配置文件 sudo nvidia-smi mig -cgi 1g.5gb,1g.5gb,2g.10gb,4g.20gb # 4. 创建实例 sudo nvidia-smi mig -cgi 1g.5gb,1g.5gb,2g.10gb,4g.20gb -C # 5. 查看创建的实例 nvidia-smi -L你会看到类似这样的输出GPU 0: NVIDIA A100 80GB PCIe (UUID: GPU-xxxxxx) MIG 1g.5gb Device 0: (UUID: MIG-GPU-xxxxxx) MIG 1g.5gb Device 1: (UUID: MIG-GPU-xxxxxx) MIG 2g.10gb Device 2: (UUID: MIG-GPU-xxxxxx) MIG 4g.20gb Device 3: (UUID: MIG-GPU-xxxxxx)3.3 为每个实例设置环境变量为了让不同的模型实例使用不同的MIG实例我们需要设置CUDA_VISIBLE_DEVICES环境变量# 实例1使用第一个1g.5gb实例 export CUDA_VISIBLE_DEVICESMIG-GPU-xxxxxx-0 # 实例2使用第二个1g.5gb实例 export CUDA_VISIBLE_DEVICESMIG-GPU-xxxxxx-14. 部署Qwen3-4B-Thinking模型4.1 下载模型文件首先下载GGUF格式的模型文件。你可以从Hugging Face或模型提供者的仓库获取# 创建模型目录 mkdir -p /models/qwen3-4b-thinking cd /models/qwen3-4b-thinking # 下载模型文件这里以wget为例实际链接需要替换 wget https://huggingface.co/TeichAI/Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF/resolve/main/qwen3-4b-thinking.Q4_K_M.gguf # 检查文件大小应该有几个GB ls -lh *.gguf4.2 使用vLLM部署模型vLLM支持直接加载GGUF格式的模型。我们创建一个简单的Python脚本来启动服务# deploy_qwen.py from vllm import LLM, SamplingParams import argparse def main(): parser argparse.ArgumentParser() parser.add_argument(--model-path, typestr, requiredTrue, helpPath to the GGUF model file) parser.add_argument(--host, typestr, default0.0.0.0, helpHost to bind the server to) parser.add_argument(--port, typeint, default8000, helpPort to bind the server to) parser.add_argument(--gpu-memory-utilization, typefloat, default0.9, helpGPU memory utilization ratio) args parser.parse_args() # 初始化模型 print(fLoading model from {args.model_path}...) llm LLM( modelargs.model_path, tokenizerQwen/Qwen2.5-4B-Instruct, # 使用对应的tokenizer trust_remote_codeTrue, gpu_memory_utilizationargs.gpu_memory_utilization, max_model_len8192, # 根据模型支持的最大长度调整 dtypeauto, # 自动选择精度 quantizationgguf, # 指定GGUF格式 ) print(Model loaded successfully!) # 启动API服务器 from vllm.entrypoints.openai import api_server api_server.run_server( llm, hostargs.host, portargs.port, served_model_nameQwen3-4B-Thinking-GGUF, ) if __name__ __main__: main()4.3 启动模型服务现在我们为每个MIG实例启动一个模型服务。首先启动第一个实例# 切换到第一个MIG实例 export CUDA_VISIBLE_DEVICESMIG-GPU-xxxxxx-0 # 启动第一个模型实例 python deploy_qwen.py \ --model-path /models/qwen3-4b-thinking/qwen3-4b-thinking.Q4_K_M.gguf \ --host 0.0.0.0 \ --port 8001 \ --gpu-memory-utilization 0.8在另一个终端中启动第二个实例# 切换到第二个MIG实例 export CUDA_VISIBLE_DEVICESMIG-GPU-xxxxxx-1 # 启动第二个模型实例使用不同端口 python deploy_qwen.py \ --model-path /models/qwen3-4b-thinking/qwen3-4b-thinking.Q4_K_M.gguf \ --host 0.0.0.0 \ --port 8002 \ --gpu-memory-utilization 0.84.4 验证服务是否正常运行使用webshell查看服务日志# 查看第一个实例的日志 tail -f /root/workspace/llm_instance1.log # 查看第二个实例的日志 tail -f /root/workspace/llm_instance2.log你应该能看到类似这样的输出表示模型加载成功INFO 07-15 14:30:25 llm_engine.py:72] Initializing an LLM engine with config: ... INFO 07-15 14:30:25 model_runner.py:63] Loading model weights... INFO 07-15 14:30:45 model_runner.py:121] Model weights loaded in 20.45s INFO 07-15 14:30:45 llm_engine.py:179] LLM engine is ready5. 使用Chainlit创建Web界面5.1 安装Chainlitpip install chainlit5.2 创建Chainlit应用创建一个简单的Chainlit应用来连接我们的模型服务# app.py import chainlit as cl import requests import json from typing import Optional # 配置模型服务端点 MODEL_ENDPOINTS { instance_1: http://localhost:8001/v1/completions, instance_2: http://localhost:8002/v1/completions } cl.on_chat_start async def start_chat(): 聊天开始时的初始化 # 让用户选择使用哪个实例 settings await cl.ChatSettings( [ cl.input_widget.Select( idmodel_instance, label选择模型实例, values[instance_1, instance_2], initial_index0 ), cl.input_widget.Slider( idtemperature, label温度创造性, initial0.7, min0, max2, step0.1 ), cl.input_widget.Slider( idmax_tokens, label最大生成长度, initial1024, min64, max4096, step64 ) ] ).send() # 保存设置 cl.user_session.set(settings, settings) cl.on_message async def main(message: cl.Message): 处理用户消息 # 获取用户设置 settings cl.user_session.get(settings) instance settings.get(model_instance, instance_1) temperature settings.get(temperature, 0.7) max_tokens settings.get(max_tokens, 1024) # 显示思考过程 msg cl.Message(content) await msg.send() # 准备请求数据 endpoint MODEL_ENDPOINTS[instance] payload { model: Qwen3-4B-Thinking-GGUF, prompt: message.content, temperature: temperature, max_tokens: max_tokens, stream: True # 启用流式输出 } try: # 发送请求到vLLM API response requests.post( endpoint, jsonpayload, streamTrue, headers{Content-Type: application/json} ) # 处理流式响应 full_response for line in response.iter_lines(): if line: line line.decode(utf-8) if line.startswith(data: ): data line[6:] # 去掉data: 前缀 if data ! [DONE]: try: chunk json.loads(data) if choices in chunk and len(chunk[choices]) 0: text chunk[choices][0].get(text, ) full_response text await msg.stream_token(text) except json.JSONDecodeError: continue # 更新完整消息 msg.content full_response await msg.update() except Exception as e: await msg.stream_token(f请求出错: {str(e)}) await msg.update() cl.on_settings_update async def setup_agent(settings): 更新设置 cl.user_session.set(settings, settings) await cl.Message(content设置已更新).send() # Chainlit配置 cl.instrument_openai()5.3 创建Chainlit配置文件# chainlit.md # 欢迎使用Qwen3-4B-Thinking模型 这是一个基于Qwen3-4B-Thinking模型的对话界面该模型在GPT-5-Codex的1000个示例上进行了微调特别擅长代码生成和逻辑推理任务。 ## 功能特点 - 支持两个独立的模型实例基于MIG技术 - 可调节的温度参数控制创造性 - 流式输出实时显示生成过程 - 支持长文本生成最多4096个token ## 使用建议 1. 对于代码生成任务建议温度设置为0.3-0.7 2. 对于创意写作可以尝试更高的温度0.8-1.2 3. 如果响应太短可以增加最大生成长度 ## 模型信息 - 模型Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF - 参数40亿 - 格式GGUF优化后的推理格式 - 部署方式vLLM MIG多实例5.4 启动Chainlit服务# 启动Chainlit服务 chainlit run app.py -w --port 8501现在打开浏览器访问http://你的服务器IP:8501就能看到Chainlit的聊天界面了。6. 测试与验证6.1 基本功能测试在Chainlit界面中尝试问一些问题来测试模型代码生成测试用Python写一个快速排序算法并添加详细注释逻辑推理测试如果所有的猫都怕水而汤姆是一只猫那么汤姆怕水吗请解释你的推理过程。创意写作测试写一个关于人工智能帮助人类解决气候危机的短故事300字左右6.2 多实例负载测试为了验证MIG资源隔离的效果我们可以同时向两个实例发送请求# test_concurrent.py import requests import threading import time def test_instance(instance_name, port, prompt): 测试单个实例 url fhttp://localhost:{port}/v1/completions payload { model: Qwen3-4B-Thinking-GGUF, prompt: prompt, max_tokens: 500, temperature: 0.7 } start_time time.time() response requests.post(url, jsonpayload) end_time time.time() if response.status_code 200: result response.json() text result[choices][0][text] print(f{instance_name} 响应时间: {end_time - start_time:.2f}秒) print(f{instance_name} 生成长度: {len(text)}字符) else: print(f{instance_name} 请求失败: {response.status_code}) # 定义测试提示 prompt1 解释一下Python中的装饰器是什么并给出一个实际例子 prompt2 用JavaScript实现一个简单的待办事项应用包含添加、删除和标记完成功能 # 同时启动两个测试线程 thread1 threading.Thread(targettest_instance, args(实例1, 8001, prompt1)) thread2 threading.Thread(targettest_instance, args(实例2, 8002, prompt2)) thread1.start() thread2.start() thread1.join() thread2.join() print(\n测试完成两个实例应该同时处理了请求互不干扰。)运行这个测试脚本你会看到两个实例几乎同时返回结果证明资源隔离是有效的。6.3 资源监控在另一个终端中监控GPU使用情况# 监控所有GPU实例 watch -n 1 nvidia-smi # 或者使用更详细的MIG监控 nvidia-smi mig -i 0 -lms 1000你应该能看到两个MIG实例各自独立地使用显存和计算资源。7. 性能优化与问题排查7.1 常见性能问题及解决方案问题可能原因解决方案响应速度慢模型太大或GPU实例太小1. 使用量化程度更高的GGUF文件如Q3_K_M2. 增加MIG实例的显存分配3. 启用vLLM的连续批处理显存不足并发请求太多或最大生成长度太大1. 限制最大生成长度2. 减少并发请求数3. 使用更小的模型版本输出质量差温度参数设置不当1. 代码生成任务使用较低温度0.3-0.72. 创意任务使用较高温度0.8-1.23. 调整top_p参数通常0.9-0.957.2 vLLM配置优化在部署脚本中可以调整以下参数来优化性能llm LLM( modelargs.model_path, tokenizerQwen/Qwen2.5-4B-Instruct, trust_remote_codeTrue, gpu_memory_utilization0.8, # 显存使用率根据实际情况调整 max_model_len8192, # 模型支持的最大长度 dtypeauto, # 自动选择精度 quantizationgguf, enable_prefix_cachingTrue, # 启用前缀缓存加速重复提示 block_size16, # 注意力块大小影响内存效率 swap_space4, # CPU交换空间GB用于处理超长序列 max_num_batched_tokens2560, # 最大批处理token数 max_num_seqs256, # 最大并发序列数 )7.3 MIG配置优化如果发现性能不理想可以重新配置MIG实例# 删除现有实例 sudo nvidia-smi mig -dci sudo nvidia-smi mig -dgi # 创建更适合的配置 # 例如对于Qwen3-4B模型建议至少分配20GB显存 sudo nvidia-smi mig -cgi 4g.20gb,4g.20gb -C8. 生产环境部署建议8.1 使用Docker容器化为了更好的可移植性和一致性建议使用Docker部署# Dockerfile FROM nvidia/cuda:12.1.0-runtime-ubuntu22.04 # 安装系统依赖 RUN apt-get update apt-get install -y \ python3.10 \ python3-pip \ git \ wget \ rm -rf /var/lib/apt/lists/* # 设置工作目录 WORKDIR /app # 复制模型文件 COPY qwen3-4b-thinking.Q4_K_M.gguf /models/ # 复制应用代码 COPY deploy_qwen.py . COPY requirements.txt . # 安装Python依赖 RUN pip install --no-cache-dir -r requirements.txt # 暴露端口 EXPOSE 8000 # 启动命令 CMD [python, deploy_qwen.py, --model-path, /models/qwen3-4b-thinking.Q4_K_M.gguf, --host, 0.0.0.0, --port, 8000]8.2 使用反向代理和负载均衡如果有多个模型实例可以使用Nginx进行负载均衡# nginx.conf upstream model_servers { server 127.0.0.1:8001; server 127.0.0.1:8002; } server { listen 80; server_name your-domain.com; location /v1/ { proxy_pass http://model_servers; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 长连接超时设置 proxy_read_timeout 300s; proxy_connect_timeout 75s; } location /chat/ { proxy_pass http://127.0.0.1:8501; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; } }8.3 监控和日志设置完善的监控和日志系统# 使用systemd管理服务 sudo tee /etc/systemd/system/qwen-model.service EOF [Unit] DescriptionQwen3-4B-Thinking Model Service Instance %i Afternetwork.target [Service] Typesimple Userubuntu EnvironmentCUDA_VISIBLE_DEVICESMIG-GPU-xxxxxx-%i WorkingDirectory/opt/qwen-deploy ExecStart/usr/bin/python3 deploy_qwen.py \ --model-path /models/qwen3-4b-thinking.Q4_K_M.gguf \ --host 0.0.0.0 \ --port 800%i \ --gpu-memory-utilization 0.8 Restartalways RestartSec10 StandardOutputjournal StandardErrorjournal [Install] WantedBymulti-user.target EOF # 启动服务 sudo systemctl daemon-reload sudo systemctl enable qwen-model1 sudo systemctl enable qwen-model2 sudo systemctl start qwen-model1 sudo systemctl start qwen-model2 # 查看日志 sudo journalctl -u qwen-model1 -f9. 总结通过今天的教程我们完成了Qwen3-4B-Thinking模型在GPU多实例MIG模式下的资源隔离部署。让我们回顾一下关键步骤和收获9.1 核心成果成功实现硬件级资源隔离使用NVIDIA MIG技术将单块GPU划分为多个独立实例每个模型实例都有专属的计算资源和显存彻底解决了资源争用问题。高效模型部署结合vLLM推理引擎和GGUF模型格式实现了快速加载和高效推理支持流式输出和连续批处理。友好用户界面通过Chainlit搭建了直观的Web聊天界面支持实时交互、参数调整和多实例切换。生产就绪架构提供了Docker容器化、Nginx负载均衡、systemd服务管理等生产环境部署方案。9.2 技术亮点MIG技术的实际应用不仅仅是理论概念而是给出了具体的配置命令和验证方法。vLLM与GGUF的完美结合利用了vLLM的高性能推理和GGUF的存储优化达到了部署效率和使用体验的平衡。完整的监控和运维方案从基础的功能测试到生产环境的监控日志覆盖了部署的全生命周期。9.3 适用场景这种部署方式特别适合以下场景多团队共享GPU资源不同团队可以独立使用各自的模型实例互不干扰。A/B测试可以同时部署不同版本的模型进行效果对比。负载均衡通过多个实例分担请求压力提高系统吞吐量。成本优化最大化利用昂贵的GPU资源提高投资回报率。9.4 后续优化方向如果你已经成功部署并运行了这个系统还可以考虑以下优化自动扩缩容根据请求量动态创建或销毁模型实例。模型版本管理实现无缝的模型更新和回滚。请求队列和优先级为不同用户或任务设置不同的优先级。集成监控告警当实例出现异常时自动发送告警。最重要的是这套方案不仅适用于Qwen3-4B-Thinking模型也可以轻松迁移到其他GGUF格式的模型。只需要替换模型文件和相应的tokenizer配置就能快速部署新的模型实例。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2416803.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;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…