从开源AI导师项目GURU-Ai拆解:如何构建具备教学能力的智能体

news2026/5/17 7:29:45
1. 项目概述一个“AI导师”的诞生与定位最近在GitHub上看到一个挺有意思的项目叫“Guru322/GURU-Ai”。光看名字你可能会觉得这又是一个平平无奇的AI工具仓库。但点进去细看你会发现它的野心不小——它想做的不是又一个聊天机器人而是一个“AI导师”Guru。这个定位本身就很有意思它暗示了这个项目不仅仅是在处理信息更是在尝试理解、引导甚至教授。在AI应用遍地开花的今天一个专注于“教学”和“指导”的模型其背后的技术选型、数据策略和实现路径值得我们这些搞技术的人好好拆解一番。我自己在尝试部署和调优这类项目时发现很多开源AI项目要么过于学术化离落地太远要么就是封装得太好成了黑箱你只知道怎么用不知道为什么这么用。GURU-Ai这个项目从它的代码结构和文档来看似乎试图在两者之间找到一个平衡它提供了可运行的模型同时也暴露了足够多的接口和配置项让你能窥见其内部运作的机理。这对于想深入理解如何构建一个“有教学能力”的AI系统的开发者来说是个很好的学习样本。接下来我就结合自己的实践经验把这个项目从里到外拆解一遍聊聊它的核心设计、实现细节以及我们在复现或借鉴时需要注意的那些“坑”。2. 核心架构与设计哲学解析2.1 为何选择“导师”而非“助手”的定位差异市面上绝大多数AI应用无论是基于GPT的聊天工具还是各类开源大模型其核心定位大多是“助手”。助手的特点是响应式服务你问它答你提需求它执行。但“导师”Guru的定位则要求更高一层它需要具备主动引导、知识结构化输出和适应性教学的能力。GURU-Ai项目选择这个定位意味着它在模型训练和交互设计上必须解决几个关键问题。首先是对话的主动性与引导性。一个普通的问答AI它的目标是最小化损失函数给出概率最高的下一个词。但一个导师它需要判断用户的当前知识水平决定是深入讲解一个概念还是提供一个类比或是给出一个练习。这要求模型在生成回复时不仅要考虑对话历史还要有一个隐式的“教学状态机”。在GURU-Ai的实现中我推测它很可能通过以下几种方式来实现一是在提示词Prompt工程上下重功夫设计一套复杂的系统提示System Prompt将导师的角色、教学大纲、互动规则固化进去二是在训练数据中混入大量高质量的教学对话数据例如来自教育平台的师生问答、技术文档的讲解段落等让模型从数据中学习教学节奏三是在推理层加入后处理逻辑对模型的原始输出进行“教学化”润色比如自动添加总结性段落、关键点强调等。其次是知识的深度与结构化。助手可以满足于给出一个答案哪怕这个答案是从不同来源拼凑的。但导师给出的答案需要逻辑自洽、由浅入深、并且最好能形成一个小的知识体系。这就要求模型本身具备强大的知识融合与逻辑推理能力。GURU-Ai项目很可能基于一个经过高质量指令微调Instruction Tuning的大语言模型LLM底座比如Llama 3、Qwen或者DeepSeek的最新版本。光有底座还不够还需要进行领域适应性训练Domain Adaptation用大量的学科知识编程、数学、科学等和教学语料对它进行继续预训练或微调让模型不仅“知道”还“懂得如何教”。最后是评估与反馈机制。真正的教学是一个闭环讲解 - 练习 - 评估 - 反馈 - 再讲解。GURU-Ai如果志在成为一个真正的AI导师那么它必须集成或设计一套评估用户理解程度的机制。这可能通过多种形式实现最简单的是在对话中直接提问“你明白了吗”或“你能复述一下吗”更高级的可以设计选择题或填空题让用户回答然后由模型判断对错并解析最复杂的甚至能对用户提交的代码或解题步骤进行自动评测。从项目仓库的issue和讨论区看社区正在积极探索这个方向但目前核心版本可能更侧重于前两步——引导性对话和结构化知识输出。2.2 技术栈选型从模型底座到应用层封装拆解一个AI项目技术栈是重中之重。GURU-Ai的技术选型反映了当前开源AI应用的一个典型分层架构模型层、服务层、应用层。每一层的选择都充满了权衡。模型层Model Layer这是项目的核心引擎。GURU-Ai没有选择从头训练一个模型那需要天文数字的算力和数据这不现实。它必然是基于一个现有的、强大的开源大模型进行微调。那么选哪个底座模型这里有几个考量维度模型能力、微调成本、推理速度和社区生态。以我的经验看像Meta 的 Llama 3系列或国内阿里的 Qwen 2.5系列是热门选择。它们不仅在通用能力上表现出色更重要的是有极其活跃的社区提供了丰富的微调工具链如Llama-Factory, transformers, unsloth和量化方案如GGUF, AWQ, GPTQ。GURU-Ai的文档里如果提到了模型文件格式比如.safetensors或.gguf我们就能反向推断出它使用的推理库和微调框架。注意选择底座模型时许可证License是必须仔细审查的一环。一些商用友好的模型如Llama 3、Qwen允许一定条件下的商业使用而有些模型则仅限于研究。这直接决定了你的项目能否用于商业场景。服务层Service Layer如何把模型跑起来并提供API这里常见的选择有vLLM、Text Generation Inference (TGI)或Ollama。vLLM以其高效的PagedAttention和极高的吞吐量著称非常适合需要服务多用户、高并发的生产环境。TGI由Hugging Face开发则与transformers库集成得最好部署简单功能全面。Ollama的优势在于在个人电脑上本地部署和运行极其方便对新手友好。GURU-Ai项目为了兼顾开发者和终端用户可能会提供多种部署选项。例如对于开发者它可能提供Docker镜像里面封装了vLLM服务对于普通用户则可能推荐使用Ollama一键拉取和运行量化后的模型。应用层Application Layer用户最终如何与这个AI导师交互一个命令行界面CLI是最轻量、最开发者友好的方式。但要想吸引更广泛的用户一个Web界面几乎是必须的。这里的选择就更多了Gradio可以快速搭建一个功能简单的演示页面Streamlit适合数据科学相关的交互应用而如果想要一个更美观、功能更丰富的聊天界面ChatUI、Open WebUI原名Ollama WebUI或自己用Next.jsFastAPI搭建都是可行的方案。从GURU-Ai的仓库结构看如果它包含一个frontend或webui目录里面大概率是用了上述某一种框架。工具链与生态除了核心的三层项目的“周边”工具链也决定了它的易用性和可维护性。这包括微调框架是否提供了LoRA低秩适应或QLoRA量化低秩适应的微调脚本这能让用户在消费级显卡上对模型进行个性化定制。数据准备工具是否有将对话数据、文档数据转换成模型可接受格式如JSONL的脚本评估脚本如何衡量这个“AI导师”教得好不好是否有基于标准教育数据集的评估流程部署脚本是否提供了Dockerfile、docker-compose.yml或Kubernetes的部署清单实现一键部署一个成熟的项目会在这些方面都提供良好的支持。我们在复现时也需要沿着这条工具链把每一个环节都打通。3. 数据与训练策略深度剖析3.1 构建“导师”语料库的核心原则模型的能力七分靠数据三分靠训练。要打造一个AI导师训练数据的质量直接决定了它的“教学水平”。GURU-Ai这类项目的数据策略我认为核心在于构建一个高质量的“教学对话”语料库。这个语料库不能是简单的问答对QA而应该是结构化的“教学单元”Teaching Unit。一个理想的教学单元数据可能长这样{ “context”: “用户是一名刚开始学习Python编程的大学生之前已经了解了变量和打印语句。”, “conversation”: [ {“role”: “user”, “content”: “‘for循环’和‘while循环’有什么区别我该什么时候用哪个”}, {“role”: “assistant”, “content”: “这是一个非常核心的问题我们可以从‘控制逻辑’和‘典型场景’两个维度来区分...此处为结构化讲解包含定义、对比表格、简单代码示例”}, {“role”: “user”, “content”: “你刚才说for循环更适合遍历序列那如果我不知道要循环多少次呢”}, {“role”: “assistant”, “content”: “问得好这正是while循环的用武之地。当你循环的次数取决于一个‘条件’而这个条件在循环开始前无法确定时...此处进行概念延伸并给出一个猜数字游戏的while循环示例”}, {“role”: “assistant”, “content”: “为了巩固理解我们来个小练习假设你要读取用户输入直到用户输入‘quit’为止用哪种循环为什么这是一个引导式提问而非直接给答案”} ], “metadata”: { “domain”: “programming”, “subdomain”: “python_control_flow”, “difficulty”: “beginner”, “teaching_style”: “contrastive_explanation_with_exercise” } }从这段模拟数据可以看出构建导师语料的关键原则场景化Contextual每条数据都有明确的背景用户身份、已有知识这能帮助模型学习“因材施教”。多轮深度对话Multi-turn Deep不是一问一答就结束而是有来有回逐步深入模拟真实的探究过程。结构化输出Structured Output助理导师的回答不是随意散文而是有意识地采用对比、举例、总结、提问等教学技巧。丰富的元数据Rich Metadata给数据打上领域、难度、教学风格等标签这能在训练时用于加权或课程控制也能在推理时辅助模型选择回应策略。那么这些数据从哪里来无非是几个渠道公开数据集清洗如Stack Exchange的QA、教育视频字幕、高质量教科书和文档的对话化转换、以及人工或AI辅助生成Synthetic Data Generation。最后一种方式现在越来越重要可以用一个较强的教师模型如GPT-4来生成针对某个知识点的模拟教学对话作为种子数据。3.2 微调技术实战从SFT到RLHF的路径选择有了高质量数据下一步就是如何用它们来塑造模型。标准的流程通常包括有监督微调SFT和基于人类反馈的强化学习RLHF。对于GURU-Ai这样的项目每一步都有其特定的挑战和技巧。有监督微调SFT这是第一步目的是让模型学会“模仿”我们提供的优秀教学对话。这里最大的坑是数据格式和损失函数。你必须确保你的数据加载器能正确解析上面那种多轮、带元数据的JSON格式并且在构造训练样本时正确地对齐“用户”和“助理”的对话轮次只对助理部分计算损失。常用的训练框架如TRL、Axolotl或Llama-Factory都提供了成熟的SFT数据处理器但你需要根据自己数据的格式进行适配。实操心得在SFT阶段学习率Learning Rate的设置非常关键。通常我们会使用一个较小的学习率例如5e-6到2e-5并配合余弦衰减Cosine Decoding或线性衰减的调度器。训练轮数Epoch不宜过多1-3个epoch通常足够否则容易过拟合到训练数据的特定风格上导致模型失去通用性。一定要在保留的验证集上监控损失Loss当验证损失不再下降甚至开始上升时就应该提前停止Early Stopping。奖励模型训练与RLHFSFT后的模型已经像个老师了但它可能还不够“好”。比如它的回答可能冗长啰嗦或者在某些情况下会给出过于武断甚至错误的引导。RLHF的目的就是进一步对齐人类的偏好让模型输出更优质、更安全、更符合教学目标的回答。对于教学场景构建一个有效的奖励模型Reward Model是难点。人类的偏好是什么是答案更准确解释更清晰语气更鼓励人还是能更好地激发思考你需要定义明确的、可量化的评判维度。例如可以请标注员从“准确性”、“清晰度”、“启发性”、“互动性”四个维度对模型的不同输出进行排序。用这些排序数据训练出一个奖励模型这个模型能对一个给定的问题 模型回答对打出一个分数。随后使用PPO近端策略优化等强化学习算法以这个奖励模型为指引去优化SFT后的模型。在优化过程中还需要加入KL散度Kullback–Leibler divergence惩罚项防止新模型偏离SFT模型太远导致语言能力崩溃。踩坑记录RLHF过程计算成本高且不稳定是出了名的难调。对于个人或小团队一个实用的建议是优先把SFT做到极致。收集尽可能多、质量尽可能高的教学对话数据做好数据清洗和增强进行充分的SFT。一个经过高质量SFT的模型其表现往往已经能满足大部分教学辅助场景。RLHF可以作为后续进阶优化的手段在资源充足时再进行。参数高效微调PEFT无论是SFT还是RLHF全参数微调对大模型来说都是极其昂贵的。因此LoRA或QLoRA几乎是现在的标配。它们只训练模型注意力机制中插入的少量低秩矩阵却能达到接近全参数微调的效果。在GURU-Ai的实践中使用QLoRA量化版的LoRA在单张24GB显存的消费级显卡上微调一个70亿参数的模型是完全可行的。这大大降低了定制你自己专属AI导师的门槛。4. 部署与推理优化全流程指南4.1 本地与云端部署方案对比模型训练好了接下来就是把它部署起来提供服务。部署环境的选择主要取决于你的使用场景、用户规模和预算。本地部署个人使用/开发测试核心工具Ollama是当前最省心的方案。它类似于一个模型管理器可以一键拉取、运行和管理各种GGUF格式的量化模型。你只需要在官网找到GURU-Ai发布的模型或者自己转换的GGUF文件执行类似ollama run guru-ai:7b的命令一个本地的API服务就启动了。优势完全离线数据隐私有保障零延迟适合个人学习、研究或作为开发后端进行测试。劣势受本地硬件特别是GPU性能限制模型大小和推理速度有天花板难以服务多用户。硬件建议对于70亿参数7B的模型使用QLoRA 4-bit量化后的GGUF文件16GB内存的电脑通常就能流畅运行。如果想运行更大的模型如130亿或700亿参数或者追求更快的响应速度那么一块至少8GB显存的NVIDIA显卡是必要的。云端服务器部署团队/生产环境核心方案使用vLLM或TGI部署在云服务器上。以vLLM为例部署流程可以高度自动化准备一台带有GPU的云服务器如AWS g4dn.xlarge, Google Cloud T4 VM, 或国内的带有A10/V100等卡的实例。通过Docker拉取vLLM官方镜像docker run --runtime nvidia --gpus all -p 8000:8000 -v /path/to/models:/models vllm/vllm-openai:latest --model /models/guru-ai-7b --served-model-name guru-ai-7b这条命令会在容器内启动vLLM服务加载你放在宿主机/path/to/models目录下的模型文件并开放一个兼容OpenAI API格式的端口8000。优势强大的算力支持可以运行更大的原始模型非量化或低比特量化获得更好的效果易于扩展可以通过负载均衡服务多个用户可以24小时不间断运行。劣势有持续性的云服务成本需要一定的运维知识服务器安全、监控、日志等。成本估算以按需计费的g4dn.xlarge实例1块T4 GPU16GB显存为例运行一个7B模型绰绰有余每小时费用大约在0.5-0.7美元左右。如果使用抢占式实例Spot Instance或自有物理服务器成本可以进一步降低。混合部署一种折中的方案是将Web前端部署在云服务器或静态托管服务如Vercel, Netlify上而将模型API服务部署在你家中性能较强的电脑上通过内网穿透工具如frp, ngrok或Tailscale等组网工具将本地API暴露到公网供前端调用。这样既利用了本地硬件又获得了可远程访问的便利性但网络稳定性和延迟是需要考虑的问题。4.2 推理加速与成本控制关键技术一旦服务上线推理速度和成本就成了核心指标。没有人愿意等一个答案等上十几秒也没人愿意为一次简单的问答支付高昂的算力费用。模型量化Quantization这是降低部署门槛和成本的第一法宝。量化将模型参数从高精度如FP16转换为低精度如INT8, INT4大幅减少模型体积和内存占用同时提升推理速度。目前最流行的格式是GGUF由llama.cpp项目推动它支持多种量化等级如q4_0, q8_0等。你可以使用llama.cpp提供的convert.py脚本将Hugging Face格式的模型转换为GGUF。对于vLLM或TGI它们也原生支持AWQ或GPTQ等量化格式。参数选择经验q4_0或q4_K_M是精度和速度的一个很好平衡对于7B模型量化后体积约4GB在大多数场景下感知不到明显的质量下降。q8_0精度更高体积也更大约7GB如果显存充足追求极致效果可选。推理优化技术连续批处理Continuous Batching这是vLLM的核心技术之一。传统批处理要求所有请求同时开始、同时结束如果一个请求生成长文本其他短请求也要等着效率低下。连续批处理允许动态地将新请求加入正在运行的批次中并让已完成的请求先行退出极大提高了GPU利用率。这是生产部署必选项。PagedAttention同样是vLLM的杀手锏。它解决了传统Attention机制中由于KV缓存Key-Value Cache内存碎片化导致显存利用率低的问题。通过像操作系统管理内存一样分页管理KV缓存PagedAttention可以实现接近理论极限的显存使用率从而在相同显存下支持更长的上下文或更大的批次大小。FlashAttention一种优化Attention计算顺序的算法能显著减少GPU显存访问次数从而提升计算速度并降低显存占用。现在的主流模型和推理库如vLLM, TGI基本都已集成。缓存与预热模型预热在服务启动后正式处理用户请求前先让模型“热身”处理一些虚拟请求。这可以让CUDA内核被提前编译和加载避免第一个真实请求遭遇冷启动带来的高延迟。响应缓存对于一些常见的、通用的教学问题例如“Python里列表和元组的区别是什么”其答案在短时间内是不会变化的。可以在API网关或应用层设置一个缓存如Redis将问题 答案对缓存起来设定一个合理的过期时间如1小时。当收到相同或高度相似的问题时直接返回缓存结果完全绕过模型推理这能极大降低负载和成本。监控与成本分析部署后一定要建立监控。关键指标包括请求量QPS、平均响应时间Latency、GPU利用率、显存使用量、错误率等。结合云服务商提供的成本分析工具你可以清晰地看到模型服务的每小时成本并据此优化资源配置例如在夜间低峰期自动缩减实例规模。5. 效果评估与迭代优化方法论5.1 如何量化评估一个“AI导师”说一千道一万模型到底教得好不好不能凭感觉需要有客观的评估体系。对于GURU-Ai这样的项目评估需要从多个维度展开可以分为自动化评估和人工评估。自动化评估主要用于模型迭代过程中的快速反馈。知识准确性评估使用标准的问答数据集如MMLU, HellaSwag, 或领域特定的考试题集让模型回答计算准确率。这能检验模型的知识储备是否扎实。教学指令遵循评估设计一系列包含明确教学指令的提示词例如“请用比喻的方式向小学生解释光合作用”、“请分三步讲解如何配置Nginx反向代理”。然后使用一个评估模型如GPT-4或一套规则判断模型的输出是否严格遵循了指令用了比喻吗分了三步吗。这可以评估模型的“可控性”和“角色扮演”能力。代码执行与评测对于编程教学这是黄金标准。可以构建一个包含编程题目、测试用例和模型生成代码的评估管道。自动执行模型生成的代码运行测试用例通过测试用例的比例直接反映了模型解决实际编程问题的能力。工具如HumanEval或MBPP数据集就是为此设计的。人工评估这是最可靠但成本最高的方式通常在关键节点如发布新版本前进行。设计评估任务创建一系列覆盖不同学科、不同难度、不同教学场景的对话任务。例如“引导一个完全不懂递归的初学者理解递归的概念并写出一个简单的递归函数”。招募评估人员最好是目标用户群体如学生、自学者或相关领域的老师。制定评分标准设计一个详细的评分表可以包括内容准确性1-5分回答的事实性错误有多少解释清晰度1-5分讲解是否易于理解逻辑是否清晰教学有效性1-5分是否有效引导了思考是否提供了恰当的练习或反馈互动性与鼓励性1-5分对话是否自然、有吸引力是否鼓励用户继续学习进行盲测与对比将不同版本模型如SFT版 vs RLHF版或不同底座模型的输出打乱顺序交给评估员评分最后进行统计分析。这能得出相对客观的优劣结论。5.2 持续迭代从用户反馈中学习模型上线不是终点而是起点。一个真正有生命力的AI导师必须能持续从与真实用户的互动中学习。GURU-Ai项目如果开放给用户使用建立一套反馈循环机制至关重要。显式反馈最简单的方式是在聊天界面添加“点赞/点踩”按钮。当用户点赞时可以记录下这条对话历史 模型回复作为正样本当用户点踩时可以作为负样本。这些数据可以定期收集起来用于后续的奖励模型训练或直接偏好优化DPO。隐式反馈通过分析用户行为数据来推断反馈。例如对话长度用户与模型进行了多轮深入的对话可能意味着教学效果不错用户感兴趣。追问模式用户在模型回答后立刻追问相关问题可能意味着回答激发了用户的思考这是积极信号。中断与重新提问用户突然打断或问一个完全不相关的问题可能意味着对当前讲解感到困惑或不耐烦。复制代码/文本用户复制了模型输出的代码块或总结这是一个很强的正反馈信号。构建数据飞轮将收集到的反馈数据无论是显式还是隐式清洗、格式化后加入到下一轮模型微调的训练集中。这就是所谓的“数据飞轮”Data Flywheel。模型表现更好 - 吸引更多用户 - 产生更多反馈数据 - 用于训练更好的模型。启动这个飞轮是项目长期成功的关键。注意事项在收集和使用用户数据时隐私和安全是绝对的红线。必须明确告知用户数据的使用方式获取同意并对数据进行严格的匿名化处理。绝不能存储或传输任何可识别个人身份的信息。可以考虑在设备端进行初步的偏好学习如通过LoRA微调一个本地适配器只将脱敏的、聚合后的模型参数更新上传这是一种更安全的联邦学习思路。6. 扩展方向与未来可能性探讨GURU-Ai作为一个开源项目其核心价值在于提供了一个可修改、可扩展的基座。基于它我们可以探索许多有趣的方向让这个AI导师变得更强大、更个性化。多模态教学目前的对话模型主要是文本。但教学过程中图表、示意图、甚至动画和视频都至关重要。未来的扩展可以集成多模态大模型如LLaVA、Qwen-VL让AI导师能够“看”到用户上传的图表或代码截图并在此基础上进行讲解或者根据描述生成简单的示意图来辅助解释抽象概念。个性化学习路径规划当前的模型主要是对话响应式。更高级的形态是AI导师能够根据用户的长期学习目标、历史对话表现、知识掌握情况动态地规划学习路径。这需要模型具备更强的记忆和规划能力。可以通过给模型接入一个向量数据库来存储长期记忆或者采用更复杂的智能体Agent架构让一个“规划模块”来调用“教学模块”和“评估模块”。领域深度定制虽然通用教学能力很重要但在垂直领域如高级机器学习、量子计算、法律、医学成为专家导师价值更大。这需要对底座模型进行大规模的领域特异性数据继续预训练Continued Pre-training再用高质量的领域教学对话进行微调。开源社区可以围绕GURU-Ai基座衍生出“GURU-Ai for BioInformatics”、“GURU-Ai for Legal Studies”等专业版本。集成工具与执行环境一个编程导师如果只能讲理论而不能运行代码总是隔了一层。可以给模型集成代码执行器如Jupyter Kernel、命令行工具调用能力让它能够演示代码运行结果、调试错误甚至直接帮用户在安全沙箱中完成一些环境配置操作。这需要为模型构建工具调用Function Calling的能力并严格限制执行权限确保安全。开源项目的魅力就在于它的边界由社区共同定义。GURU-Ai提供了一个起点而上述每一个扩展方向都可能成为下一个令人兴奋的Pull Request。从理解它的架构开始到部署它、使用它再到最终改进它、扩展它这个过程本身就是一次绝佳的学习之旅。

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