MiniMax-M1开源大模型:混合注意力与闪电机制解析与实战部署

news2026/5/2 23:35:40
1. 模型概览与核心设计思路MiniMax-M1的发布无疑是当前开源大模型领域的一枚重磅炸弹。作为全球首个公开权重的、大规模混合注意力推理模型它直接瞄准了当前大模型应用中最核心的痛点如何在处理超长上下文和复杂推理任务时既保持强大的性能又能有效控制计算成本。这背后是MiniMax团队在模型架构和训练方法上的一次深度探索。从技术路线上看M1并非凭空创造而是基于其前代模型MiniMax-Text-01进行深度演进。Text-01本身已经是一个拥有4560亿参数的庞然大物采用了混合专家MoE架构每次推理激活459亿参数。M1继承了这一庞大的参数规模但真正的革新在于其引入了“闪电注意力”机制并围绕“测试时计算”这一核心概念进行了系统性优化。这里需要解释一下“测试时计算”这个概念。传统上我们评价一个模型的“聪明”程度主要看其训练完成后在固定计算量下的表现。但现实世界的复杂问题往往需要模型“多想一想”。比如解一道奥数题人类可能会在草稿纸上反复演算修复一个复杂的软件Bug工程师也需要反复推敲代码逻辑。这种“思考”的过程对应到模型上就是增加推理时的计算量例如通过“思维链”生成更长的中间过程。M1的设计哲学就是让这种“多想一想”的过程变得极其高效。那么M1是如何做到这一点的呢关键在于其“混合注意力”架构与“闪电注意力”机制的协同。简单来说混合注意力允许模型在处理不同长度和类型的序列时动态分配计算资源。而闪电注意力则是一种高度优化的注意力计算算法它大幅减少了处理超长序列时的内存和计算开销。官方数据显示在处理10万token的生成任务时M1的浮点运算量仅为DeepSeek R1的25%。这意味着你可以用同样的硬件资源让M1进行更深入、更长时间的“思考”从而解决更复杂的问题。这种设计使得M1特别适合两类任务一是需要处理超长文档如百万token级别的代码库、法律文书、学术论文的理解与摘要二是需要多步、深度推理的任务如高级数学证明、复杂软件工程问题、需要调用多步工具完成的智能体任务。它不仅仅是一个“更大”的模型更是一个“更会思考”的模型。2. 模型性能深度解析与基准测试解读评估一个模型尤其是像M1这样的“思考型”模型不能只看一两个榜单分数。我们需要深入到不同任务类别中去理解其优势所在。官方提供的基准测试表格信息量巨大我们可以从中提炼出几个关键结论。2.1 数学与推理能力稳居第一梯队在AIME美国数学邀请赛2024和2025、MATH-500等顶级数学竞赛数据集上M1-80K版本分别取得了86.0、76.9和96.8的高分。这个成绩是什么水平它超越了原版DeepSeek-R1和Qwen3-235B与最强的闭源模型如Gemini 2.5 Pro和OpenAI o3相比虽有差距但已非常接近。特别值得注意的是M1-40K版本与80K版本在数学上的差距并不大AIME 2024: 83.3 vs 86.0这说明在数学推理上40K的“思考预算”已经能发挥出模型绝大部分潜力。对于大多数数学问题使用40K版本可能是性价比更高的选择。2.2 代码与软件工程长板突出在LiveCodeBench和FullStackBench等通用编码基准上M1表现强劲但并非绝对领先。然而在更具挑战性的SWE-bench Verified真实GitHub Issue修复任务上M1-80K取得了56.0%的通过率显著超越了Qwen3-235B的34.4%并与DeepSeek-R1-0528的57.6%几乎持平。这充分证明了M1在解决真实世界、开放式软件工程问题上的强大能力。这种能力离不开其超长上下文支持因为修复一个Issue往往需要理解整个代码文件的上下文。2.3 长上下文理解核心优势所在这是M1的“杀手锏”。在OpenAI-MRCR需从长文中提取答案的128K版本测试中M1-80K得分73.4远超其他开源模型DeepSeek-R1为51.5Qwen3-235B仅为27.7。更惊人的是在1M token的版本测试中M1-80K仍能保持56.2的得分证明了其“百万上下文”并非营销噱头而是实打实的能力。LongBench-v2的综合测试也印证了这一点M1以61.5分领先于其他开源模型。如果你有处理超长文本如整本书分析、长视频转录总结、大型代码库检索的需求M1是目前开源领域几乎唯一的选择。2.4 智能体与工具使用潜力巨大在TAU-bench模拟真实网站操作的任务上M1在航空订票和零售购物两个场景中分别取得了62.0和63.5的分数表现全面优于Qwen3-235B和原版DeepSeek-R1与Claude 4 Opus、Gemini 2.5 Pro等顶级闭源模型处于同一竞争区间。这显示了M1在理解复杂指令、规划多步操作、与外部环境交互方面的强大潜力是构建复杂AI智能体的优秀基座模型。注意在查看基准测试结果时务必关注其测试条件。例如HLE人类水平考试任务标注了“*”表示是在纯文本子集上测试的未使用工具。SWE-bench也排除了14个与其内部基础设施不兼容的测试用例。这些细节说明基准测试分数是评估模型的重要参考但并非绝对标准实际性能还需结合具体任务和部署环境来判断。3. 实战部署指南从模型下载到服务上线拿到一个如此强大的模型下一步就是让它跑起来为你服务。MiniMax-M1提供了两种主要的部署方式使用vLLM进行高性能生产部署或使用Transformers库进行更灵活的研发部署。我将以最常用的vLLM方案为例详细拆解部署流程。3.1 环境准备与模型下载首先你需要一台拥有足够GPU显存的服务器。根据经验以BF16精度加载M1-40K模型大约需要90GB以上的GPU显存加载M1-80K则需要更多。因此至少需要一张A100 80GB或H100 80GB的显卡。多卡并行可以降低单卡压力。# 1. 创建并激活Python虚拟环境强烈推荐 conda create -n minimax-m1 python3.10 -y conda activate minimax-m1 # 2. 安装vLLM及其依赖 # vLLM对PyTorch和CUDA版本有要求以下命令安装兼容性较好的版本 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install vllm # 3. 安装Hugging Face Hub工具以下载模型 pip install huggingface-hub # 4. 使用huggingface-cli下载模型需先登录拥有访问权限 huggingface-cli login # 下载40K版本 huggingface-cli download MiniMaxAI/MiniMax-M1-40k --local-dir ./MiniMax-M1-40k --local-dir-use-symlinks False # 或下载80K版本 # huggingface-cli download MiniMaxAI/MiniMax-M1-80k --local-dir ./MiniMax-M1-80k --local-dir-use-symlinks False下载过程会持续较长时间因为模型文件非常大约数百GB。请确保磁盘有足够空间并保持网络稳定。3.2 使用vLLM启动推理服务vLLM的核心优势在于其高效的PagedAttention内存管理和极高的吞吐量。启动服务非常简单# 基本启动命令在单张A100 80G上运行40K模型 python -m vllm.entrypoints.openai.api_server \ --model ./MiniMax-M1-40k \ --tensor-parallel-size 1 \ --gpu-memory-utilization 0.9 \ --served-model-name minimax-m1-40k \ --max-model-len 131072 \ # 设置最大上下文长度可根据需要调整最高支持1M --dtype bfloat16关键参数解析--model: 指定本地模型路径。--tensor-parallel-size: 张量并行大小设置为1表示单卡运行。如果你有多张GPU可以设置为GPU数量以实现模型并行降低单卡显存占用。--gpu-memory-utilization: GPU内存利用率0.9表示使用90%的显存为系统和其他进程留出空间。--max-model-len: 这是至关重要的参数。它定义了服务端支持的最大上下文长度输入输出。虽然M1支持1M上下文但实际设置取决于你的硬件显存。设置得越高单次请求消耗的显存越多。对于40K思考预算的模型建议初始设置为131072128K平衡性能和实用性。--dtype: 模型加载精度bfloat16在保持性能的同时显著节省显存。服务启动后默认会在http://localhost:8000提供一个兼容OpenAI API格式的接口。3.3 客户端调用示例你可以使用任何HTTP客户端或OpenAI SDK来调用服务。以下是使用Python的示例from openai import OpenAI # 指向本地vLLM服务 client OpenAI( base_urlhttp://localhost:8000/v1, api_keytoken-abc123 # vLLM默认API密钥可在启动时通过--api-key修改 ) # 构建符合M1推荐格式的请求 response client.chat.completions.create( modelminimax-m1-40k, # 与启动时的--served-model-name一致 messages[ {role: system, content: You are a helpful assistant.}, {role: user, content: 请解释一下量子计算的基本原理。} ], temperature1.0, # 使用官方推荐参数 top_p0.95, max_tokens2048 ) print(response.choices[0].message.content)3.4 生产环境部署优化建议对于线上服务你还需要考虑以下几点多GPU与量化如果单卡显存不足必须使用--tensor-parallel-size进行模型并行。此外可以探索vLLM支持的AWQ/GPTQ量化以INT4/INT8精度运行模型能大幅降低显存需求但可能会轻微损失精度。批处理与吞吐量vLLM的--max-num-batched-tokens和--max-num-seqs参数可以控制批处理大小在高并发场景下需要仔细调优以平衡延迟和吞吐。API安全与监控为API密钥设置复杂的令牌或通过Nginx等反向代理添加认证。同时监控服务的GPU利用率、内存使用和请求延迟。上下文长度管理虽然M1支持超长上下文但处理1M token的请求会占用大量显存且生成速度较慢。在实际应用中应根据业务需求合理设置--max-model-len并考虑对超长输入进行分段、摘要等预处理。4. 发挥模型潜力的关键推理参数与系统提示词工程模型部署好了但直接使用默认设置可能无法发挥M1的全部实力尤其是在复杂任务上。官方文档中给出的推荐设置是一个很好的起点但理解其背后的原理并学会根据任务调整才是进阶使用的关键。4.1 推理参数详解为什么是temperature1.0, top_p0.95Temperature (温度1.0)这个参数控制输出的随机性。温度越高1.0输出越随机、有创意但也可能不连贯温度越低1.0输出越确定、保守且倾向于高频词。对于M1这样的推理模型设置为1.0是一个“甜点”值。它允许模型在生成“思维链”时进行适度的探索避免陷入局部最优的、重复的推理路径这对于解决开放式问题如代码生成、数学证明至关重要。相比之下如果做事实性问答可以适当降低温度如0.7以获得更稳定的答案。Top-p (核采样0.95)它从概率质量最高的词汇中采样直到累积概率达到p这里是95%。与top-k固定候选词数量相比top-p能动态适应不同概率分布。0.95是一个较高的值意味着模型可以从一个相对广阔的候选词池中挑选这同样是为了促进多样性和创造性思维避免生成过于平庸或模板化的内容。实操心得对于需要严格逻辑和确定答案的任务如计算、提取固定信息可以尝试将温度降至0.8top_p降至0.9。而对于创意写作、头脑风暴甚至可以尝试将温度提高到1.2。最好的方式是为你的特定任务类型做一个小范围的A/B测试。4.2 系统提示词System Prompt定制化策略系统提示词是引导模型角色和行为的最强大工具。官方给出了三个示例我们可以将其扩展为更通用的策略。A. 通用任务模板你是一个乐于助人且能力强大的AI助手。请以清晰、有条理的方式回应用户的请求。对于复杂问题请逐步推理并在最终给出答案前进行总结。确保你的回答准确、有用且无害。这个模板在官方“You are a helpful assistant.”基础上增加了“逐步推理”和“总结”的引导能更好地激发M1的推理能力。B. 代码生成与审查场景对于官方给出的Web开发提示词其核心思想是角色扮演 明确输出格式 质量要求。我们可以将其抽象为一个更通用的代码助手提示词你是一位经验丰富的{编程语言}开发专家。你的任务是根据用户需求生成完整、可运行、高质量的代码。 请遵循以下规则 1. 深入分析需求如有模糊之处基于最佳实践进行合理假设并说明。 2. 输出完整的代码文件将相关代码如HTML、CSS、JS整合在单个代码块内除非用户明确要求分开。 3. 代码应包含必要的注释遵循{语言规范如PEP 8}并考虑错误处理和边界情况。 4. 生成后在思维中模拟运行或检查代码逻辑确保没有语法错误和明显的逻辑缺陷。 5. 最终只输出代码本身除非用户要求解释。 现在请开始处理下面的任务。使用时替换{编程语言}和{语言规范}即可。C. 数学与科学推理场景官方的“逐步推理并放入\boxed{}”非常经典有效。为了更深入可以结合“费曼技巧”你是一位严谨的数学家/科学家。请按以下步骤解决问题 1. **理解与重述**用你自己的话重新表述问题确保理解无误。 2. **计划**概述你的解题思路和可能用到的公式、定理。 3. **分步执行**展示每一步详细的计算和推导过程避免跳跃。 4. **验证**检查答案是否合理是否满足问题中的所有条件。 5. **总结与框出答案**简要总结方法并将最终答案置于 \boxed{} 中。4.3 针对长上下文任务的特殊提示技巧M1的百万上下文能力需要正确的提示来激发。简单的“总结这篇文档”可能效果一般。更好的方式是你是一个专业的文档分析员。我将提供一份很长的文档约XX字/词。 请先快速浏览全文识别其核心主题、主要章节和关键论点。 然后请撰写一份结构化摘要包含 1. 文档主旨一句话概括。 2. 核心论点与证据分点列出最多5点。 3. 结论与潜在影响。 4. 文档中存在的任何未解决的问题或矛盾之处。 请确保你的摘要准确反映了原文的细节和 nuance细微差别避免引入原文没有的信息。这种提示给了模型一个清晰的“思考”框架能更好地利用长上下文信息进行深度分析。5. 高级功能探索函数调用与智能体构建MiniMax-M1支持函数调用Function Calling这是将其从“聊天模型”升级为“智能体”的关键。这意味着模型可以理解工具的描述并在认为需要时输出结构化的请求来调用这些工具。5.1 函数调用基础流程假设我们有一个查询天气的函数get_weather(city: string)。使用M1进行函数调用的典型流程如下定义工具在系统提示或单独的消息中以结构化格式如JSON Schema向模型描述这个函数。用户提问用户提出一个需要用到该工具的问题例如“北京今天天气怎么样”模型决策模型理解问题后判断需要调用get_weather函数并输出一个符合预定格式的调用请求例如{name: get_weather, arguments: {city: 北京}}。执行与返回你的程序接收到这个请求实际调用天气API获取结果。结果反馈将API返回的结果如{city: 北京, temperature: 22°C, condition: 晴}以助理的身份再次发送给模型。最终回复模型结合函数返回的结果生成面向用户的自然语言回答例如“北京今天天气晴朗气温22摄氏度。”5.2 实战示例构建一个多工具智能体让我们构建一个简单的智能体它可以使用搜索和计算器工具。# 伪代码展示与M1 API交互的逻辑 import json from openai import OpenAI client OpenAI(base_urlhttp://localhost:8000/v1, api_keyyour-key) # 1. 定义可用的工具 tools [ { type: function, function: { name: search_web, description: 在互联网上搜索最新信息。, parameters: { type: object, properties: { query: {type: string, description: 搜索关键词} }, required: [query] } } }, { type: function, function: { name: calculate, description: 执行数学计算。, parameters: { type: object, properties: { expression: {type: string, description: 数学表达式如 23*sin(30)} }, required: [expression] } } } ] # 2. 系统提示词告知模型可用工具 system_prompt f 你是一个智能助手可以调用工具来帮助用户。 以下是你可以使用的工具 {json.dumps(tools, indent2)} 当你需要用到这些工具时请直接输出对应的函数调用请求。 messages [{role: system, content: system_prompt}] # 3. 用户提问一个复杂问题 user_query “请先搜索‘2025年奥运会举办城市’然后计算该城市与我所在城市‘上海’的时差假设该城市是巴黎。” messages.append({role: user, content: user_query}) # 4. 首次调用模型期望它规划工具调用 response client.chat.completions.create( modelminimax-m1-40k, messagesmessages, temperature0.8, # 工具调用可适当降低随机性 tool_choiceauto, # 让模型自行决定是否及如何调用工具 toolstools ) message response.choices[0].message print(f模型回复: {message}) # 5. 检查回复中是否包含工具调用 if message.tool_calls: for tool_call in message.tool_calls: func_name tool_call.function.name args json.loads(tool_call.function.arguments) # 6. 模拟执行工具 if func_name search_web: # 模拟搜索返回结果 result f根据网络搜索{args[query]}的结果是2025年奥运会将在法国巴黎举行。 elif func_name calculate: # 这里需要解析表达式假设我们有一个简单的计算器 # 时差计算巴黎UTC1与上海UTC8时差为7小时上海比巴黎快7小时 result f计算表达式 {args[expression]} 的结果是-7小时巴黎比上海晚7小时。 # 7. 将工具执行结果作为新的消息追加 messages.append(message) # 先追加模型的上一条消息 messages.append({ role: tool, tool_call_id: tool_call.id, content: result }) # 8. 再次调用模型让它基于工具结果生成最终回答 second_response client.chat.completions.create( modelminimax-m1-40k, messagesmessages, temperature0.8 ) final_answer second_response.choices[0].message.content print(f\n最终回答: {final_answer})5.3 函数调用实战避坑指南工具描述要清晰精确函数的description和参数的description至关重要。模糊的描述会导致模型错误调用。例如“获取数据”不如“根据股票代码查询实时股价”明确。处理模型“幻觉”调用有时模型可能会调用不存在的工具或参数格式错误。你的代码需要健壮的错误处理比如捕获JSONDecodeError并可以回复模型一个错误信息让它重新尝试。多轮对话中的状态管理在复杂的多轮对话中需要维护完整的消息历史包括所有工具调用和返回这样模型才能理解当前对话的上下文。并行工具调用M1可能支持在一个回复中输出多个工具调用请求。你的后端需要能够处理这种并行请求并等待所有结果返回后再一并反馈给模型。6. 性能调优与问题排查实录在实际部署和使用M1的过程中你肯定会遇到各种性能问题和意料之外的行为。以下是我在测试中遇到的一些典型问题及解决方案。6.1 显存不足OOM问题这是部署大模型最常见的问题。症状启动vLLM时直接报错或处理长上下文请求时崩溃提示CUDA out of memory。排查与解决降低精度确保使用--dtype bfloat16。如果依然OOM可以考虑尝试--dtype float16但注意兼容性。启用量化这是最有效的显存节省手段。vLLM支持AWQ/GPTQ量化。你需要先找到或自己生成模型的量化版本如4bit权重然后使用--quantization awq或gptq参数启动。这可以将显存占用降低至原来的1/3到1/2。减少并行度如果使用多卡检查--tensor-parallel-size是否设置正确。有时错误设置会导致每张卡都加载完整模型。限制上下文长度显存消耗与--max-model-len的平方成正比对于注意力机制。如果业务不需要超长上下文果断将其从1M降低到128K或64K显存需求会大幅下降。调整vLLM内存管理--gpu-memory-utilization可以微调--block-size默认16可以尝试调整为8或32影响内存碎片和利用率。6.2 生成速度慢症状每个token的生成耗时很长吞吐量低。排查与解决检查GPU利用率使用nvidia-smi命令查看GPU-Util是否接近100%。如果很低可能是CPU预处理或IO成为瓶颈。启用批处理vLLM的强项在于批处理。通过调整--max-num-batched-tokens和--max-num-seqs来增加批量大小可以显著提升吞吐量。但注意更大的批次会增加延迟。使用更快的GPUM1这样的模型对内存带宽非常敏感。从A100升级到H100或使用HBM3e高带宽内存的显卡生成速度会有质的提升。检查输入长度处理非常长的输入如500K token时模型在生成第一个token前的“预填充”阶段会消耗大量时间。这是注意力计算的固有成本。考虑是否可以对输入进行压缩或摘要。6.3 模型输出不符合预期症状回答偏离主题、逻辑混乱、或未遵循指令。排查与解决确认系统提示词这是最常见的原因。确保系统提示词清晰、无歧义并且被正确放置在messages列表的开头。调整推理参数如果输出过于天马行空降低temperature如从1.0到0.7和top_p如到0.9。如果输出过于重复或保守则适当提高。检查上下文截断如果对话历史或输入文档太长超过了--max-model-lenvLLM会从最早的消息开始截断。这可能导致模型“忘记”关键的早期指令。确保你的最大长度设置足够容纳所有必要信息或实现一个更智能的上下文窗口管理策略如只保留最近N轮对话和系统提示。功能调用失败如果模型不调用你期望的工具首先检查工具描述是否足够清晰。其次可以在系统提示中更强烈地引导例如“你必须使用提供的工具来回答问题”。还可以在用户问题中隐含提示例如“请用计算器工具算一下...”。6.4 服务稳定性问题症状服务运行一段时间后崩溃或出现内存泄漏。排查与解决监控显存使用nvidia-smi -l 1持续监控显存变化。如果显存使用量缓慢增长可能是内存泄漏。尝试更新vLLM到最新版本。限制请求速率如果突然涌入大量长上下文请求可能导致OOM。在API网关层设置速率限制和最大token限制。日志与监控确保vLLM的日志输出到文件并监控关键指标请求数、错误率、平均延迟。使用PrometheusGrafana等工具建立监控看板。7. 未来展望与生态结合MiniMax-M1的发布不仅是一个模型的亮相更代表了一种趋势开源模型正在向更深的推理能力和更高效的测试时计算迈进。对于开发者和研究者而言围绕M1可以探索的方向非常多。7.1 与MCPModel Context Protocol生态结合官方提到了 MiniMax MCP Server 这是一个非常重要的信号。MCP是一种新兴的协议旨在标准化AI模型与外部工具、数据源之间的连接。通过MCP服务器M1可以轻松接入视频生成、图像生成、语音合成等各类工具成为一个功能更全面的多模态智能体中枢。对于企业开发者来说基于M1和MCP构建内部业务自动化流程将是一个高效的选择。7.2 微调与领域适配虽然M1是一个强大的通用基础模型但在特定垂直领域如医疗、金融、法律通过继续预训练或有监督微调SFT进行领域适配能产生更大的商业价值。由于其开放的权重和架构研究人员可以对其进行各种微调实验。需要注意的是对如此大规模的MoE模型进行全参数微调成本极高可以优先考虑LoRA、QLoRA等参数高效微调方法。7.3 智能体框架的深度集成M1在TAU-Bench上的优秀表现使其成为构建复杂智能体的理想“大脑”。可以将其与AutoGPT、LangChain、CrewAI等智能体框架深度集成。利用其长上下文能力智能体可以维护更长的操作历史和更复杂的计划利用其强大的推理能力可以做出更精准的决策和工具调用规划。从我个人的实际测试和行业观察来看MiniMax-M1确实在长上下文和深度推理任务上树立了新的开源标杆。它的价值不仅仅在于榜单分数更在于为社区提供了一个可深入研究、可自由构建的先进架构范本。无论是想体验百万上下文摘要的研究者还是需要构建复杂AI应用的工程师M1都提供了一个强大而开放的起点。当然强大的能力也伴随着对算力的高要求如何在实际业务中平衡性能、成本与效果将是每个团队需要仔细权衡的课题。

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