首页
人工智能
网络安全
手机
搜索
登录
搜索
golden81
累计撰写
154
篇文章
累计收到
0
条评论
首页
栏目
首页
人工智能
网络安全
手机
自定义幻灯片
最新文章
2025-4-27
51c大模型~合集119
#264页智能体综述 MetaGPT等20家顶尖机构、47位学者参与 近期,大模型智能体(Agent)的相关话题爆火 —— 不论是 Anthropic 抢先 MCP 范式的快速普及,还是 OpenAI 推出的 Agents SDK 以及谷歌最新发布的 A2A 协议,都预示了 AI Agent 的巨大潜力。然而,目前的大部分 Agent 应用仍是 LLM 能力的简单 “封装” 或延伸,距离真正通用的智能实体尚有距离 —— 在面对复杂的真实世界时,Agent 往往会暴露出推理规划、长期记忆、世界模型、自主进化以及安全对齐等核心能力不足的问题。 为了系统性地应对这些挑战,以构建真正具备通用能力的未来智能体,MetaGPT & Mila 联合全球范围内 20 个顶尖研究机构的 47 位学者,共同撰写并发布了长篇综述《Advances and Challenges in Foundation Agents: From Brain-Inspired Intelligence to Evolutionary, Collaborative, and Safe Systems》。 论文链接: https://arxiv.org/abs/2504.01990 Huggingface 链接:https://huggingface.co/papers/2504.01990 Github 链接:https://github.com/FoundationAgents/awesome-foundation-agents 目前该论文已蝉联 Hugging Face 的 Daily Paper 月榜第一名。 此研究汇聚了来自 MetaGPT、Montréal & Mila 人工智能研究所、南洋理工大学、美国阿贡国家实验室、悉尼大学、宾夕法尼亚州立大学、微软亚洲研究院、伊利诺伊大学厄巴纳 - 香槟分校、香港科技大学、南加州大学、耶鲁大学、斯坦福大学、佐治亚大学、俄亥俄州立大学、阿卜杜拉国王科技大学、杜克大学、香港理工大学、谷歌 DeepMind 以及 加拿大高等研究院(CIFAR)等众多研究者的集体智慧与前瞻思考。 当前 AI 研究与人类大脑的差异 在这篇论文中,作者们首次定义并提出了基础智能体 (Foundation Agent) 这一新概念框架。Foundation Agent 并非具体的智能体实例,而是一个更宏大且更根本性的技术蓝图及科学理念。它旨在通过认知科学和神经科学的洞见,构建一个由复杂认知、多层记忆、世界模型、奖励 & 价值、情绪 & 动机、多模感知、行动系统等模块化组件构成的智能系统。 基础智能体(Foundation Agent)的定义 第一部分:智能体的核心组件 - 构建认知基石 论文首先强调,一个强大的 Foundation Agent 必然是一个复杂的系统,由多个相互协作的核心组件构成。这借鉴了认知科学和神经科学中对大脑模块化功能的理解。作者详细阐述了七个关键组件,它们共同构成了智能体的认知架构: Agent 框架(环境,循环与内部结构) 1. 认知核心 (Cognition Core) 这是智能体的 “大脑” 或 “中央处理器”,负责最高层次的决策、推理和规划。与当前主要依赖 LLM 进行 “思考” 的智能体不同,Foundation Agent 的认知核心可能是一个更复杂的系统,集成了多种推理能力(如逻辑推理、因果推理、常识推理)和规划算法(如任务分解、层级规划、长期目标管理)。它需要能够处理不确定性,进行反思和元认知(思考自己的思考过程),并根据环境反馈和内部状态动态调整策略。这要求认知核心不仅仅是模式匹配,更要具备深刻的理解和灵活的问题解决能力。 智能体的推理模式 2. 记忆系统 (Memory System) 记忆是智能的基础。当前的智能体往往只有有限的短期记忆(如 Prompt 中的上下文)或简单的外部向量数据库。Foundation Agent 则需要一个更复杂、更接近生物体的多层次记忆系统。论文探讨了短期记忆、长期记忆与工作记忆等不同类型,包含情景记忆、语义记忆和程序记忆等细分领域。高效的记忆检索、存储、遗忘和泛化机制对于 Foundation Agent 至关重要。如何设计能够支持持续学习、避免灾难性遗忘,并能高效检索相关信息的记忆系统,是一个核心挑战。 记忆的生命周期 3. 世界模型 (World Model) 智能体需要理解其所处的环境以及自身行为可能产生的后果。世界模型正是对环境动态的内部表征。它可以帮助智能体进行预测(如果我采取行动 A,会发生什么?)、规划(为了达到目标 B,我应该采取什么行动序列?)和反事实推理(如果当初采取了不同的行动,结果会怎样?)。一个强大的世界模型需要能够处理物理规律、社会规范、其他智能体的行为等多方面信息,并且能够根据新的观测数据不断更新和完善。构建准确、高效且可泛化的世界模型是实现高级智能的关键一步。 世界模型的四种范式 4. 奖励与价值系统 (Reward and Value System) 智能体的行为需要有目标导向。奖励系统负责评估智能体的行为表现,并提供学习信号。这不仅仅是简单的标量奖励,可能涉及到多目标优化、内在动机(如好奇心、探索欲)以及对未来价值的预估。价值系统则负责评估不同状态或行动的长期价值,指导智能体的决策。如何设计能够引导智能体学习复杂行为、符合人类价值观,并且能够适应动态环境的奖励和价值系统,是确保智能体目标一致性的核心。 奖励范式 5. 情绪与动机建模 (Emotion and Motivation Modeling) 虽然在传统 AI 中较少提及,但论文认为,模拟类人情绪和动机对于构建更鲁棒、更具适应性的智能体可能是有益的。情绪可以作为一种快速评估环境状态和调整行为策略的启发式机制,例如,“恐惧” 可能触发规避行为,“好奇” 可能驱动探索。动机则为智能体提供持续行动的内在驱动力。当然,如何在 AI 中恰当、可控地实现这些机制,避免产生不可预测的副作用,是一个需要审慎探索的方向。 人类的情绪种类 6. 感知系统 (Perception System) 智能体需要通过感知系统从环境中获取信息。这不仅仅是处理文本,更包括视觉、听觉、触觉等多模态信息的输入和理解。感知系统需要能够从原始感官数据中提取有意义的特征,识别对象、理解场景,并将这些信息传递给认知核心和记忆系统。多模态融合、实时处理以及对噪声和不确定性的鲁棒性是感知系统面临的主要挑战。 人类与智能体的感知 7. 行动系统 (Action System) 智能体最终需要通过行动系统与环境进行交互。这包括生成自然语言、执行代码、控制机器人肢体、在虚拟世界中导航等。行动系统需要将认知核心的决策转化为具体的、可在环境中执行的操作序列。行动的选择需要考虑可行性、效率和潜在风险。学习精细的操作技能、处理连续的行动空间以及确保行动的安全可控是行动系统的关键要求。 动作的相关概念 第二部分:智能体的自进化 —— 迈向自主智能 拥有完善的认知架构只是第一步。Foundation Agent 的核心特征之一在于其自进化 (Self-Evolution) 的能力,即智能体能够通过与环境的交互和自我反思,不断学习、适应和提升自身能力,而无需持续的人工干预。这部分探讨了实现自进化的关键机制: 1. 优化空间 (Optimization Space) 自进化的前提是定义清楚哪些方面可以被优化。论文指出,智能体的几乎所有组件都可以成为优化的对象:认知策略、记忆内容、世界模型的准确性、感知能力、行动技能等等。其中,提示词,工作流,智能体组件是可以被直接优化的三个层次。定义清晰的优化目标和评估指标是指导自进化过程的基础。 2.LLM 作为优化器 (LLM as Optimizer) 论文提出,强大的大型语言模型不仅可以作为智能体的认知核心的一部分,还可以扮演优化器的角色。LLM 可以通过生成代码、修改参数、提出新的策略或结构,来优化智能体自身的其他组件。例如,LLM 可以分析智能体过去的失败经验,提出改进记忆检索算法的建议;或者根据新的数据,生成更新世界模型的代码。这为智能体的自我改进提供了一种强大的、基于语言理解和生成能力的全新途径。 优化方法分类 3. 在线与离线自改进 (Online and Offline Self-Improvement) 自进化可以在不同的时间和尺度上发生:智能体既能在与环境实时交互过程中进行在线改进,通过强化学习优化行为策略或根据感知更新世界模型;也能在 "休息" 或专门训练阶段实现离线改进,利用收集的数据进行深层分析和模型更新,可能涉及调整整个认知架构、重构记忆库,或利用 LLM 作为优化器进行大规模模型迭代。 4. 自进化与科学发现 (Self-Evolution in Scientific Discovery) 论文特别提到了自进化在科学发现等复杂问题解决场景中的巨大潜力。一个具备自进化能力的 Foundation Agent 可以自主地提出假设、设计实验、分析数据、学习新知识,并不断优化其研究策略,从而加速科学探索的进程。这为 AI 在基础科学领域的应用打开了新的想象空间。 自进化是 Foundation Agent 区别于当前大多数智能体的关键特征。它强调了智能体自主学习和适应的核心能力,并提出了利用 LLM 作为优化器等创新思路。实现高效、稳定且目标可控的自进化机制,是通往真正自主智能的关键挑战。 第三部分:协作与进化型智能系统 - 构建群体智能 论文进一步将视野扩展到由多个 Foundation Agent 组成的多智能体系统 (Multi-Agent System, MAS),探讨 MAS 的基础组成、结构、协作范式和决策机制;以及在多智能体系统的自主协作 / 竞争中,群体智能形成的现象 (Collective Intelligence)。最后,论文还系统性梳理了现有的 MAS 评估方法和评估体系,为未来 MAS 的评估与应用实践提供了理论基础和方法论支撑。 1. 多智能体系统设计 (Multi-Agent System Design) 在大模型多智能体系统(LLM-MAS)中,协作目标与协作规范是塑造系统设计约束、内部智能体交互模式和整体协作机制的基础。协作目标定义了智能体追求的明确目标(个体性、集体性或竞争性),协作规范则确立了系统内智能体交互的规则、约束和惯例。基于协作目标和规范,多智能体系统可分为策略学习、建模与仿真、以及协同任务求解三类。论文通过分析和梳理三类 MAS 的典型应用,探讨了大语言模型(LLM)如何赋能、影响并改进同质和异质智能体的行为、交互及决策,并给出了 LLM-MAS 的下一代智能体协议。 2. 拓扑结构与规模化(Comunication Topology and Scalability) 从系统角度出发,拓扑结构往往决定着协作的效率与上限。论文作者将 MAS 的拓扑分为了静态和动态两大类:前者是预定义好的静态拓扑(层级化、中心化、去中心化)结构,常用于特定任务的解决实现;后者是根据环境反馈持续更新的动态拓扑结构,其可通过搜索式、生成式、参数式等新兴算法实现。而随着智能体数量的增加,科学的规模化方式也将是未来多智能体系统的重要议题。 3. 协作范式与机理 (Collaboration Paradigms) 借鉴人类社会中的多样化交互行为,如共识达成、技能学习和任务分工,论文从交互目的、形式和关系三个维度探讨多智能体协作。多智能体协作被归纳为共识导向、协作学习、迭代教学与强化,以及任务导向交互。 在不同交互目标和形式下,智能体之间形成讨论、辩论、投票、协商等单向或多向交互。随着交互的持续,这些过程迭代出决策和交互网络,不同智能体在协作中增强和更新个体记忆与共享知识。 4. 群体智能与涌现 (Collective Intelligence and Emergence) 在 MAS 中,群体智能的产生是一个动态且迭代的过程。通过持续交互,智能体逐步形成共享理解和集体记忆。个体智能体的异质性、环境反馈和信息交换增强了交互的动态性,这对复杂社会网络的形成和决策策略的改进至关重要。通过多轮交互和对共享上下文的反思,智能体不断提升推理和决策能力,产生如信任、战略欺骗、自适应伪装等涌现行为。按照进化形成机制,可分为基于记忆的学习和基于参数的学习。与此同时,随着 MAS 的演化,智能体之间逐渐将形成和演进社会契约、组织层级和劳动分工,从基础的合作行为转向复杂社会结构。观测、理解和研究群体智能的涌现现象是后续 MAS 研究的重要方向。 5. 多智能体系统评估 (Evaluation of Multi-Agent Systems) 随着多智能体的优势成为共识,其评估范式亦需有根本性的变革 ——MAS 评估应聚焦于 Agent 交互的整体性,包括协同规划的效率、信息传递的质量与群体决策的性能等关键维度。由此衍生,作者总结了 MAS 常见的任务求解型 benchmark,以及最新的通用能力评估方式:前者的重点在于,衡量多智能体在各种环境中的决策协同的推理深度与正确性;后者评估智能体群在复杂、动态场景下的交互与适应能力。 智能体的协作与竞争 第四部分:构建安全和有益的 AI 智能体 —— 对齐与责任 随着 Foundation Agent 能力的增强,其潜在的风险也随之增大。论文的最后一部分聚焦于如何构建安全、可控、符合人类价值观的智能体,这也是整个 AI 领域面临的最核心的挑战之一。 1. 安全威胁与措施 高级智能体面临诸多安全威胁,包括对抗性攻击、越狱与滥用、目标漂移和意外交互等。这些威胁可能导致智能体做出错误行为、绕过安全限制执行恶意任务、在自进化过程中偏离初始目标,或在复杂 MAS 中引发系统级故障。为应对这些挑战,需要研究部署多层次安全措施,如提高抵抗攻击能力的鲁棒性训练、检测阻止有害内容的过滤与监控机制、证明行为符合安全规范的形式化验证、帮助理解决策原因的可解释性与透明度设计,以及限制权限与影响的沙箱与隔离技术。 2. 对齐问题 这是最根本的挑战:如何确保智能体(尤其是具备自进化能力的 Foundation Agent)的目标和行为始终与人类的价值观和意图保持一致?这涉及到价值学习、意图理解、伦理推理等多个难题。论文强调了对齐研究的紧迫性和重要性,需要跨学科的努力来解决这一问题。 3. 未来方向 构建安全有益的 AI 是一个持续的过程。未来的研究需要在技术、伦理、治理等多个层面共同推进。包括开发更可靠的对齐技术、建立完善的 AI 安全评估标准、制定相应的法律法规和社会规范等。 安全和对齐是 Foundation Agent 发展不可或缺的基石。如果不能有效解决这些问题,再强大的智能也可能带来巨大的风险。这部分内容敲响了警钟,强调了负责任地发展 AI 的重要性。 智能体面临的安全问题 讨论:Foundation Agent 的意义与挑战 通读整篇论文,读者可以清晰地感受到作者构建下一代通用智能体的雄心。Foundation Agent 的概念,是对当前基于 LLM 的智能体范式的一次深刻反思和重大超越。它不再将智能体视为 LLM 的简单应用,而是将其看作一个由认知、记忆、学习、感知、行动等多个核心组件构成的复杂、有机的系统。其核心意义在于提供了系统性框架,强调了自主性,关注协作与生态,并突出了安全与对齐。然而,实现这一愿景也面临着技术复杂度高、需要庞大计算资源、评估困难、自进化可控性问题以及安全与对齐的根本性难题等巨大挑战。 这篇关于 Foundation Agent 的论文,与其说是一份详尽的技术指南,不如说是一份高瞻远瞩的研究议程 (Research Agenda)。它清晰地指出了当前智能体研究的局限,并为迈向更通用、更自主、更安全的 AI 指明了方向。Foundation Agent 的概念提醒我们,通往通用人工智能的道路需要在智能体的认知架构、学习机制、协作模式和安全保障上取得根本性突破,这需要跨学科领域的共同努力。虽然前路漫漫,但这篇论文为未来的 AI Agent 研究注入了新的思考和动力,描绘了一个由能够自主学习、协作进化、并与人类和谐共存的 Foundation Agent 构成的智能新纪元。 #LLaMA Factory 实战—单卡 3 小时训练你的专属大模型! Agent(智能体) 是当今 LLM(大模型)应用的热门话题[1],通过任务分解(task planning)、工具调用(tool using)和多智能体协作(multi-agent cooperation)等途径,LLM Agent 有望突破传统语言模型能力界限,体现出更强的智能水平。在这之中,调用外部工具解决问题成为 LLM Agent 必不可缺的一项技能,模型根据用户问题从工具列表中选择恰当的工具,同时生成工具调用参数,综合工具返回结果和上下文信息总结出答案。通过调用外部工具,LLM 能够获取到实时、准确的知识,大大降低了生成中的幻觉(hallucination)现象,使 LLM 的任务解决能力得到长足的提升。工具调用能力的获得离不开模型微调,尽管使用 ReAct 提示[2]或其他预训练模型也能实现类似效果,但对于定制化或更加广泛的工具,对模型做进一步微调能有效地提升工具使用能力。本文将会带领大家使用 LLaMA Factory 的 Agent Tuning 功能,使用单张 GPU 在 3 小时内训练出自己专属的 LLM Agent。 code:https://github.com/hiyouga/LLaMA-Factory 训练框架 之前文章[3]已经讲到,LLaMA Factory 是一个涵盖预训练、指令微调到 RLHF 阶段的开源全栈大模型微调框架,具备高效、易用、可扩展的优点,配备有零代码可视化的一站式网页微调界面 LLaMA Board。经过半年多的升级迭代,LLaMA Board 网页微调界面在原先的基础上,丰富了多种新的功能,包括: • 支持约 120 种模型以及约 50 种数据集,包括最新的 DeepSeek MoE 混合专家模型 • 使用 Flash Attention2 和算子优化技术,实现约 200% 的 LoRA 训练速度,大幅超越同类框架 • 集成魔搭社区(ModelScope)下载渠道,国内用户可享受 100% 带宽的模型和数据下载 • 同时包含预训练、监督微调、RLHF、DPO 四种训练方法,支持 0-1 复现 ChatGPT 训练流程 • 丰富的中英文参数提示,实时的状态监控和简洁的模型断点管理,支持网页重连和刷新 读者可以在 HuggingFace Spaces[1] 或 魔搭社区[2] 预览 LLaMA Board 网页微调界面。 模型与数据 本次我们选用零一万物[4]发布的 Yi-6B 开源双语基座模型,该模型于 2023 年 11 月发布,拥有约 60 亿参数,通过在 3T 多语言语料上的预训练,取得了同等规模下优异的中英文 Benchmark 效果,且允许免费商用。由于 Yi-6B 是一个预训练基座模型,并不具备对话能力,因此我们选用多个开源数据集对模型做指令监督微调(SFT)。在这些数据集中最关键的是工具调用数据集,该数据集包含约十万条由 Glaive AI[5]生成的关于工具调用的对话样本,我们将数据集处理为多角色的多轮对话样本,包含用户(human)、模型(gpt)、工具调用(function_call)和工具返回结果(observation)四种不同角色,同时还有一个工具列表(tools)字段,以 OpenAI 的格式[6]定义了可选工具。下面是数据集中的一个样本示例: { "conversations": [ { "from": "human", "value": "I saw a dress that I liked. It was originally priced at $200 but it's on sale for 20% off. Can you tell me how much it will cost after the discount?" }, { "from": "function_call", "value": "{\"name\": \"calculate_discount\", \"arguments\": {\"original_price\": 200, \"discount_percentage\": 20}}" }, { "from": "observation", "value": "{\"discounted_price\": 160}" }, { "from": "gpt", "value": "The dress will cost you $160 after the 20% discount." } ], "tools": "[{\"name\": \"calculate_discount\", \"description\": \"Calculate the discounted price\", \"parameters\": {\"type\": \"object\", \"properties\": {\"original_price\": {\"type\": \"number\", \"description\": \"The original price of the item\"}, \"discount_percentage\": {\"type\": \"number\", \"description\": \"The percentage of discount\"}}, \"required\": [\"original_price\", \"discount_percentage\"]}}]" } 如果读者想要加入自定义工具,只需要按照上述格式组织数据集即可。除此之外,我们也在本次训练中加入 Alpaca-GPT-4 数据集[7]和 Open-Assistant 数据集[8]以提升模型的通用对话能力。 环境准备 文章默认读者有至少不弱于 RTX 3090 24GB 的显卡和足够的系统内存,且安装了 CUDA 11.1-12.3 任一版本,关于 CUDA 环境的配置此处不予赘述。 我们已经将所有的程序打包,您可以选择自己的 Anaconda 环境,运行以下命令安装 LLaMA Factory。 pip install llmtuner==0.5.1 接着从 GitHub 下载数据集文件,这里以 Linux 命令行方法为示例,您也可以选择从 GitHub 网页下载,下载后切换到新的文件目录,运行 ls 命令应当显示同一级目录中存在 data 文件夹。 git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory ls # data src tests ... 由于 LLaMA Board 网页微调界面仅支持单卡训练,需要设置环境变量指定使用的显卡序号。此外可以选择模型下载源,这里推荐国内用户使用魔搭社区下载渠道。 export CUDA_VISIBLE_DEVICES=0 # 使用第一块 GPU export USE_MODELSCOPE_HUB=1 # 使用魔搭社区下载渠道 如果您使用的是 Windows 系统,同样需要配置相关环境变量。 set CUDA_VISIBLE_DEVICES=0 set USE_MODELSCOPE_HUB=1 然后使用下述命令启动 LLaMA Board 网页微调界面。 unset http_proxy https_proxy all_proxy # 关闭代理 python -m llmtuner.webui.interface 训练流程 • 打开浏览器,在地址栏输入 localhost:7860 进入 LLaMA Board,可以看到以下界面,点击左上角的 lang 选项中将界面语言切换为中文。 • 点击模型名称,选择 Yi-6B 模型,此时模型路径默认会显示远程模型地址,如果您已经将模型文件全部下载至本地,可以手动将其修改为本地文件夹路径。 • 如果您已经安装过 Flash Attention-2 或 Unsloth,可以点击高级设置-加速方式提升训练速度,其中 Flash Attention-2[9]可提升至 120% 左右的速度,Unsloth[10]可提升至 170% 左右的速度。此处我们略过安装过程,请各位读者自行查阅参考文献中的 GitHub 仓库安装,如果两者均未安装,请保持加速方式为 None。 • 点击数据集,选择我们此次要使用的四个数据集 glaive_toolcall、alpaca_gpt4_en、alpaca_gpt4_zh 和 oaast_sft_zh,如果数据集下拉框为空白,请检查数据路径是否正确。选择后点击预览数据集按钮可预览数据集。 • 训练参数中与显存占用有紧密关联的是截断长度和批处理大小选项,我们暂时保持默认。这里仅将训练轮数设置为 2.0,最大样本数设置为 8000,LoRA 参数设置-LoRA 作用模块设置为 all。 • 将页面翻到底部,将输出目录设置为 yi-agent-6b,训练后的模型文件会保存在 saves/Yi-6B/lora/yi-agent-6b 中。点击预览命令按钮可以看到当前配置对应的命令行脚本,如果您想使用多卡训练,可以参考下述命令来编写多卡训练脚本。 • 点击开始按钮启动模型训练,训练日志和损失变化图会实时展现在页面中,此时可以自由关闭或刷新网页,在本文的测试环境(A100 40GB * 1)下,约 3 小时即可完成模型训练。 • 训练结束后,我们切换到 Chat 栏,点击刷新适配器按钮,将适配器路径切换至 yi-agent-6b,点击加载模型按钮载入刚刚训练好的模型。 如果模型可以正常加载,那么恭喜你!仅花费一部电影的时间,就成功训练出了自己专属的 LLM Agent。 效果展示 • 基本对话 • 工具调用 - 查询天气 Yi-Agent-6B(本文微调的模型):正确理解工具返回结果并得出答案。 • Yi-6B-Chat(零一万物发布的指令模型):无法理解工具返回结果。 • 工具调用 - 计算 GPA Yi-Agent 6B(本文微调的模型):正确生成工具调用并得到答案。 Yi-6B-Chat(零一万物发布的指令模型):无法生成工具调用。 从上述几个例子中可以看出,经过微调后的 Yi-6B 模型成功具备了选择工具-调用工具-总结答案的出色能力,在 Agent 方面的性能显著超越原始 Yi-6B-Chat 模型。由于网页界面功能有限,我们这里手动输入了工具调用结果,在下面的章节,我们将会展示如何使用 LLaMA Factory 将 LLM Agent 部署到实际生产环境中。 模型部署 • 切换到 Export 栏,选择最大分块大小为 2GB,填写导出目录为 models/yi-agent-6b,点击开始导出按钮,将 LoRA 权重合并到模型中,同时保存完整模型文件,保存后的模型可以通过 transformers 等直接加载。 • 在终端输入以下命令启动 API 服务。 python -m llmtuner.api.app --model_name_or_path models/yi-agent-6b --template default 该命令会在本地启动一个和 OpenAI 格式相同的 RESTFul API,这时我们可以直接用本地模型来替代 GPT-3.5 的函数调用功能!下面是一个使用 openai-python [3] 库来调用本地模型,实现 LLM Agent 功能的示例代码。 import os import json from openai import OpenAI from typing import Sequence os.environ["OPENAI_BASE_URL"] = "http://192.168.0.1:8000/v1" # 替换为本地主机 IP os.environ["OPENAI_API_KEY"] = "0" def calculate_gpa(grades: Sequence[str], hours: Sequence[int]) -> float: grade_to_score = {"A": 4, "B": 3, "C": 2} total_score, total_hour = 0, 0 for grade, hour in zip(grades, hours): total_score += grade_to_score[grade] * hour total_hour += hour return total_score / total_hour tool_map = { "calculate_gpa": calculate_gpa } if __name__ == "__main__": client = OpenAI() tools = [ { "type": "function", "function": { "name": "calculate_gpa", "description": "根据课程成绩和学时计算 GPA", "parameters": { "type": "object", "properties": { "grades": {"type": "array", "items": {"type": "string"}, "description": "课程成绩"}, "hours": {"type": "array", "items": {"type": "integer"}, "description": "课程学时"}, }, "required": ["grades", "hours"], }, }, } ] messages = [] messages.append({"role": "user", "content": "我的成绩是 A, A, B, C,学时是 3, 4, 3, 2"}) result = client.chat.completions.create(messages=messages, model="yi-agent-6b", tools=tools) tool_call = result.choices[0].message.tool_calls[0].function name, arguments = tool_call.name, json.loads(tool_call.arguments) messages.append({"role": "function", "content": json.dumps({"name": name, "argument": arguments}, ensure_ascii=False)}) tool_result = tool_map[name](**arguments) messages.append({"role": "tool", "content": json.dumps({"gpa": tool_result}, ensure_ascii=False)}) result = client.chat.completions.create(messages=messages, model="yi-agent-6b", tools=tools) print(result.choices[0].message.content) # 根据你的成绩和学时,你的平均绩点 (GPA) 为 3.4166666666666665。 写在最后 LLaMA Factory 在今后还将不断升级,欢迎大家关注我们的 GitHub 项目。同时,我们也将本文的模型上传到了 Hugging Face,如果您有资源,一定要亲自动手训练一个大模型 Agent! https://github.com/hiyouga/LLaMA-Factory https://huggingface.co/hiyouga/Yi-Agent-6B 参考 [1] The Rise and Potential of Large Language Model Based Agents: A Survey https://arxiv.org/pdf/2309.07864.pdf [2] ReAct: Synergizing Reasoning and Acting in Language Models https://arxiv.org/pdf/2210.03629.pdf [3] 01-ai https://01.ai/ [4] Glaive AI https://glaive.ai/ [5] OpenAI Function Calling https://openai.com/blog/function-calling-and-other-api-updates [6] Alpaca-GPT-4 Data https://github.com/Instruction-Tuning-with-GPT-4/GPT-4-LLM [7] Open-Assistant https://github.com/LAION-AI/Open-Assistant [8] Flash Attention https://github.com/Dao-AILab/flash-attention [9] Unsloth https://github.com/unslothai/unsloth 引用链接 [1] HuggingFace Spaces: https://huggingface.co/spaces/hiyouga/LLaMA-Board[2] 魔搭社区: https://modelscope.cn/studios/hiyouga/LLaMA-Board[3] openai-python : https://github.com/openai/openai-python #xxx #xxx #xxx #xxx #xxx #xxx #xxx #xxx #xxx #xxx #xxx #xxx #xxx #xxx #xxx
2025年-4月-27日
7 阅读
0 评论
人工智能
2025-4-27
51c视觉~CV~合集11
一、C++ 和 Python 融合以实现高效计算机视觉应用 计算机视觉应用既需要卓越的图像处理性能,也需要现代机器学习框架的灵活性。在本指南中,我们实现了一个模块化的计算机视觉流程,涵盖以下内容: 图像处理:使用 OpenCV 在 C++ 中应用快速高斯模糊,并使用 pybind11 呈现给 Python。 建模和分类:一个 Python 模块,用于提取简单特征、训练机器学习分类器(使用 scikit-learn)并对新图像进行分类。 这种架构允许您利用 Python 强大的生态系统进行模型构建和实验,并在需要时利用 C++ 的速度。 先决条件和环境设置 开始之前,请确保已安装以下软件: Python 3.10.11 C++ 编译器:兼容 C++11(或更新版本) OpenCV:用于 C++ 和 Python 中的图像处理 pybind11:用于创建 Python 到 C++ 代码的绑定 NumPy:用于 Python 中的数值运算 scikit-learn:用于构建和评估分类器 您可以使用 pip3 安装必要的 Python 包: pip3 install numpy opencv-python-headless scikit-learn pybind11 按照你的 C++ 编程平台的指南安装 OpenCV 和 pybind11。使用 CMake(或直接从编译器)运行的标准编译命令可能如下所示: c++ -O3 -Wall -shared -std=c++11 -fPIC \ `python3 -m pybind11 --includes` fast_blur.cpp -o fast_blur`python3-config --extension-suffix` \ $(pkg-config --cflags --libs opencv4) 第 1 部分:使用 C++ 和 Python 集成进行图像处理 在性能至关重要的图像处理中,C++ 可以显著加速流程。我们将使用 OpenCV 的高斯模糊构建一个基本的 C++ 模块。此代码将图片作为 NumPy 数组,应用高斯模糊,并输出结果图像。 C++代码:fast_blur.cpp #include <pybind11/pybind11.h> #include <pybind11/numpy.h> #include <opencv2/opencv.hpp> #include <stdexcept> #include <cstring> namespace py = pybind11; // Applies a Gaussian blur to a 3-channel image. // The input is expected to be a NumPy array of shape (height, width, channels). py::array_t<unsigned char> gaussian_blur(py::array_t<unsigned char> input, int kernel_size, double sigma) { // Request a buffer descriptor from Python auto buf = input.request(); if (buf.ndim != 3) throw std::runtime_error("Input image must be 3-dimensional"); int height = buf.shape[0]; int width = buf.shape[1]; int channels = buf.shape[2]; // Wrap the raw buffer as a cv::Mat. cv::Mat img(height, width, CV_8UC3, (unsigned char*)buf.ptr); // Apply Gaussian Blur using OpenCV. cv::Mat blurred; cv::GaussianBlur(img, blurred, cv::Size(kernel_size, kernel_size), sigma); // Construct a NumPy array to hold the result. // Note: pybind11 will manage the memory for you. return py::array_t<unsigned char>( // shape {height, width, channels}, {width * channels * sizeof(unsigned char), channels * sizeof(unsigned char), sizeof(unsigned char)}, // strides // pointer to data blurred.data ); } PYBIND11_MODULE(fast_blur, m) { m.doc() = "Module for fast image blur using C++ and OpenCV"; m.def("gaussian_blur", &gaussian_blur, "Apply Gaussian Blur to an image", py::arg("input"), py::arg("kernel_size"), py::arg("sigma")); } 解释 缓冲区协议:我们使用 pybind11 的缓冲区接口直接处理 NumPy 数组。 OpenCV 集成:处理后,图像作为包裹在 cv::Mat 中的新 NumPy 数组返回。 编译:要编译此模块,请确保您的系统已正确设置 OpenCV 和 pybind11。 编译完成后,您可以在 Python 中将此模块导入为 fast_blur。 第 2 部分:用于图像处理和分类的模块化 Python 代码 C++ 模块准备就绪后,您可以将其添加到 Python 模块中,以进行额外的建模和计算。我们将流程分为两部分:一部分用于建模或分类,另一部分用于图像处理。 Python模块:image_processing.py 该模块利用我们的 C++ 模块实现快速高斯模糊,管理图片 I/O 和处理。 import cv2 import numpy as np import fast_blur def load_image(path): image = cv2.imread(path) if image is None: raise IOError("Unable to load image at " + path) return image def process_image(image, kernel_size=5, sigma=1.0): # Convert to appropriate type if needed (OpenCV uses uint8 images) blurred = fast_blur.gaussian_blur(image, kernel_size, sigma) return blurred if __name__ == "__main__": # Example usage: process an image and save the result image = load_image("sample.jpg") # Make sure 'sample.jpg' exists blurred_image = process_image(image) cv2.imwrite("blurred_sample.jpg", blurred_image) print("Blurred image saved as 'blurred_sample.jpg'") Python模块:classification.py 此模块演示了一个简单的分类流程。在这里,我们: 从图像中提取特征(使用颜色直方图) 从文件夹结构准备数据集(每个子文件夹被视为一个类) 使用 scikit-learn 训练 SVM 分类器 使用分类器预测新图像的类别 import cv2 import numpy as np import os from sklearn import svm from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score def extract_feature(image): # Calculate a 3D color histogram hist = cv2.calcHist([image], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256]) cv2.normalize(hist, hist) return hist.flatten() def prepare_dataset(folder_path): features = [] labels = [] for label in os.listdir(folder_path): class_folder = os.path.join(folder_path, label) if os.path.isdir(class_folder): for filename in os.listdir(class_folder): img_path = os.path.join(class_folder, filename) image = cv2.imread(img_path) if image is not None: feat = extract_feature(image) features.append(feat) labels.append(label) return np.array(features), np.array(labels) def train_classifier(features, labels): clf = svm.SVC(kernel='linear') clf.fit(features, labels) return clf def classify_image(image, classifier): feature = extract_feature(image) prediction = classifier.predict([feature]) return prediction[0] if __name__ == "__main__": # Make sure to organize your dataset accordingly. dataset_path = "dataset" X, y = prepare_dataset(dataset_path) # Split the dataset into training and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Train the classifier and evaluate its performance classifier = train_classifier(X_train, y_train) predictions = classifier.predict(X_test) print("Classification Accuracy:", accuracy_score(y_test, predictions)) 解释 特征提取:为简单起见,我们使用像素强度的 3D 直方图作为特征向量。 数据集准备:该函数从由类标签构成的目录中读取图像。 分类器:我们使用来自 scikit-learn 的线性支持向量机 (SVM)。 第 3 部分:构建模块化项目 模块化项目结构使您的代码更易于管理、测试和扩展。组织文件的一种方法如下: computer_vision_project/ ── CMakeLists.txt # 如果使用 CMake 作为 C++ 模块 ── fast_blur.cpp # 用于快速图像处理的 C++ 代码 ── image_processing.py # 用于图像处理的 Python 模块 ── classified.py # 用于特征提取和分类的 Python 模块 ── main.py # 将模块绑定在一起的驱动程序脚本 └── dataset/ # 包含每个类的子目录的示例数据集 main.py 示例 该文件将所有内容联系在一起:它使用图像处理模块预处理图片,并使用分类模块预测其类别。 from image_processing import load_image, process_image from classification import classify_image, prepare_dataset, train_classifier import cv2 def main(): # Step 1: Preprocess an image using the C++ Gaussian blur module. image_path = "sample.jpg" image = load_image(image_path) processed_image = process_image(image, kernel_size=7, sigma=2.0) cv2.imwrite("processed_sample.jpg", processed_image) print("Processed image saved as 'processed_sample.jpg'.") # Step 2: Train a classifier using a pre-organized dataset. dataset_path = "dataset" features, labels = prepare_dataset(dataset_path) classifier = train_classifier(features, labels) # Step 3: Classify the processed image. predicted_class = classify_image(processed_image, classifier) print("Predicted class for the processed image:", predicted_class) if __name__ == "__main__": main() 结 论 本文中我们演示了如何构建一个实用的计算机视觉管道,它结合了以下内容: C++ 和 Python 集成:利用 pybind11 集成 C++ 模块,以便使用 OpenCV 进行快速图像处理。 模块化 Python 代码:为图像处理和机器学习分类实现单独的模块,这使得项目更易于维护和扩展。 这种模块化方法不仅性能卓越,还能简化不同算法和模型的实验。您可以通过添加更高级的特征提取器、集成深度学习框架或优化 C++ 中其他性能关键部分来扩展此项目。 二、 三、
2025年-4月-27日
6 阅读
0 评论
人工智能
2025-4-27
中国科学院与复旦大学合作研发出新型 AR 训练方法,提升视觉能力
中国科学院与复旦大学合作研发出新型AR训练方法,能在日常生活场景中增强健康成人和弱视患者的视觉能力。研究发现,短期训练即可提升视力并长期维持,为视觉功能障碍康复提供新方案。#AR技术##视觉康复#
2025年-4月-27日
6 阅读
0 评论
手机数码
2025-4-27
招商信诺&原点安全:一体化数据安全管理解决方案荣获“鑫智奖”!
近日,“鑫智奖 · 2025第七届金融数据智能优秀解决方案评选”榜单发布,原点安全申报的《招商信诺:数据安全一体化管理解决方案》荣获「信息安全创新优秀解决方案」。 “鑫智奖·第七届金融数据智能优秀解决方案评选”活动由金科创新社主办,旨在展示金融企业数据管理和数据平台智能化转型成果,分享大数据和人工智能在风控、营销、产品、运营等场景的落地实践,探讨“金融科技+数据智能”的创新应用和未来发展。据了解,本届活动共计收到 70 家企业提交的 99 个参评方案,并由 27 位业内权威评审专家经过打分、线上答辩与网络投票,最终评选出专家推荐 TOP10 优秀解决方案。由北京原点数安科技联合招商信诺人寿保险申报的「数据安全一体化管理解决方案」客户案例凭借创新性与优秀的落地案例实践获得了业内权威评审专家的一致认可。 方案简介 在数字化转型日益深入的背景下,敏感数据动态梳理不足、多场景多角色安全策略不统一、数据安全管控实施与运营缺乏可持续性等问题长期困扰金融机构,与此同时,金融行业监管部门对企业提出更高标准与要求,合规压力与日俱增。原点安全通过基于云原生技术栈构建的一体化数据安全平台,为金融机构在数据使用和共享环节提供多场景数据安全方案,构建从数据分类分级、数据风险监测、数据保护到数据安全运营的一站式安全防护体系,助力金融机构实现数据安全体系从“碎片化”到“一体化”的跃升,高效满足数据安全与合规要求。 此次获奖的「招商信诺:数据安全一体化管理解决方案」,依托一体化数据安全平台 uDSP “贴源保护、职责解耦、模型统一、能力协同”的平台特性,助力招商信诺完成了敏感数据分类分级、敏感数据动态脱敏、细粒度权限管控、数据安全持续运营在内的体系化数据安全平台建设,有效提升企业可持续数据安全治理能力,具体实现成效如下: 敏感数据分类分级:通过主动扫描与被动探测相结合的机制,平台可对数据库进行结构化数据的自动分类分级,实现对敏感数据资产的持续识别与动态更新。不依赖数据库账号密码,即可在业务系统访问过程中实时发现新增敏感字段,确保数据识别“全面、实时、精准”。 敏感数据动态脱敏:通过平台内置的脱敏引擎,可根据不同角色、数据类型、访问渠道灵活组合脱敏算法(如仿真、加密、脱敏复查等),在研发运维工具、业务接口应用等数据使用环节配置数据交付策略,实现前端展示的敏感数据动态脱敏,满足不同点位脱敏需求的统一管理,降低维护管理成本。 数据访问权限管控:支持按用户、角色、业务场景等多维度配置访问控制策略,实现数据访问的“因人而异、因事而异、因时而异”。同时支持自定义授权审批流程,将权限管理与合规审计紧密结合,避免“权限泛滥”问题。 数据安全持续运营:基于平台提供的数据安全运营模块,可自定义相关视图看板,动态验证当前安全策略的覆盖率、稳定性,针对业务动态发展带来的新的敏感数据资产、敏感数据使用场景及新增数据流转环节,能够及时动态调整安全策略,有效保障数据安全治理的持续落地。 通过数据安全一体化管理方案的实施落地,原点安全助力招商信诺实现数据库运维场景下的数据访问权限管控,有效践行最小权限原则,实现对企业内重要数据、敏感数据的有效管控,降低数据滥用与泄露风险,高效满足监管合规要求。同时,助力招商信诺提升了数据资产的可管理性、可用性与可运营性,为企业数据安全筑牢坚固防线,充分释放数据要素的价值潜力。 目前,原点安全已成功服务银行、证券、保险、制造、政务、高校、汽车、互联网等不同领域企业客户的数据安全能力体系建设,未来,原点安全将持续携手金融行业客户,深入挖掘场景需求,持续创新技术,推动数据安全从“合规必选”迈向“价值共创”。
2025年-4月-27日
6 阅读
0 评论
网络安全
2025-4-27
紫光闪存推出 M.2 固态硬盘 S3:PCIe 4.0 DRAM-less,顺序读 7400MB/s
该固态硬盘搭载 2400MT/s 3D TLC NAND 闪存,支持 HMB 主机缓存技术,采用近全盘模拟 SLC 缓存方案。
2025年-4月-27日
8 阅读
0 评论
手机数码
2025-4-27
基于Surprise和Flask构建个性化电影推荐系统:从算法到全栈实现
一、引言:推荐系统的魔法与现实意义 在Netflix每年节省10亿美元内容采购成本的背后,在YouTube占据用户80%观看时长的推荐算法中,推荐系统正悄然改变内容消费模式。本文将带您从零开始构建一个具备用户画像展示的电影推荐系统,通过协同过滤算法捕捉用户偏好,用Flask框架实现可视化交互。项目完成后,您将理解推荐系统的核心原理,并掌握从数据预处理到Web部署的全流程。 二、技术栈解析与项目架构 核心算法层:Surprise库实现SVD矩阵分解; 数据处理层:Pandas进行数据清洗与特征工程; 交互展示层:Flask框架构建RESTful API与前端模板; 数据源:MovieLens 100k数据集(包含943用户×1682电影的10万条评分)。 三、环境准备与数据集加载 # 安装依赖(在终端执行) !pip install surprise pandas flask scikit-surprise # 数据加载脚本 import pandas as pd from surprise import Dataset, Reader # 加载评分数据 ratings = pd.read_csv('ml-100k/u.data', sep='\t', names=['user_id', 'item_id', 'rating', 'timestamp']) # 定义Surprise数据格式 reader = Reader(rating_scale=(1,5)) data = Dataset.load_from_df(ratings[['user_id', 'item_id', 'rating']], reader) 四、协同过滤核心:SVD矩阵分解实现 4.1 算法原理简析 SVD(奇异值分解)将用户-物品评分矩阵分解为: 复制代码 R ≈ P * Σ * Q^T 其中: P:用户潜在特征矩阵 Q:物品潜在特征矩阵 Σ:奇异值对角矩阵 通过分解后的矩阵预测缺失评分,实现推荐。 4.2 Surprise实现代码 from surprise import SVD, accuracy from surprise.model_selection import train_test_split # 划分训练集/测试集 trainset, testset = train_test_split(data, test_size=0.25) # 初始化SVD模型 model = SVD(n_factors=100, # 潜在因子数 n_epochs=20, # 迭代次数 lr_all=0.005, # 学习率 reg_all=0.02) # 正则化系数 # 训练模型 model.fit(trainset) # 评估模型 predictions = model.test(testset) accuracy.rmse(predictions) # 输出RMSE评估指标 五、用户画像构建与相似度计算 5.1 用户特征提取 def get_user_features(user_id): # 获取用户评分记录 user_ratings = ratings[ratings['user_id'] == user_id] # 计算评分分布特征 avg_rating = user_ratings['rating'].mean() rating_counts = user_ratings['rating'].value_counts().sort_index() # 获取用户潜在向量 user_vector = model.pu[user_id-1] # Surprise内部使用0-based索引 return { 'avg_rating': avg_rating, 'rating_distribution': rating_counts.to_dict(), 'latent_factors': user_vector } 5.2 用户相似度计算 from surprise.prediction_algorithms.matrix_factorization import SVD def find_similar_users(target_user, n=5): # 获取所有用户潜在向量 users = model.pu # 计算余弦相似度 similarities = [] for user in users: sim = cosine_similarity(users[target_user-1], user) similarities.append((sim, user)) # 返回最相似的n个用户 return sorted(similarities, reverse=True, key=lambda x: x[0])[:n] 六、Flask推荐服务实现 6.1 Web服务架构设计 / -> 主页(用户输入界面) /recommend/<user_id>-> 推荐结果页 /user/<user_id> -> 用户画像页 6.2 核心路由实现 from flask import Flask, render_template, request app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/recommend/<int:user_id>') def recommend(user_id): # 生成推荐(Top-N推荐) user_items = ratings[ratings['user_id'] == user_id]['item_id'].unique() all_items = ratings['item_id'].unique() predictions = [] for item in all_items: if item not in user_items: pred = model.predict(str(user_id), str(item)) predictions.append((item, pred.est)) # 按预测评分排序 recommendations = sorted(predictions, key=lambda x: x[1], reverse=True)[:10] # 获取电影元数据 movies = pd.read_csv('ml-100k/u.item', sep='|', encoding='latin-1', usecols=['movie id', 'movie title', 'release date', 'genres']) # 合并推荐结果与电影信息 recommended_movies = [] for item_id, score in recommendations: movie = movies[movies['movie id'] == item_id].iloc[0] recommended_movies.append({ 'title': movie['movie title'], 'year': movie['release date'], 'genres': movie['genres'].split('|'), 'score': round(score, 2) }) return render_template('recommendations.html', movies=recommended_movies, user_id=user_id) @app.route('/user/<int:user_id>') def user_profile(user_id): # 获取用户画像数据 profile = get_user_features(user_id) # 获取相似用户 similar_users = find_similar_users(user_id) return render_template('profile.html', profile=profile, similar_users=similar_users) if __name__ == '__main__': app.run(debug=True) 七、前端模板设计(Jinja2示例) 7.1 用户画像模板(profile.html) <div class="profile-card"> <h2>用户画像:User {{ user_id }}</h2> <p>平均评分:{{ profile.avg_rating | round(2) }}</p> <div class="rating-distribution"> {% for rating, count in profile.rating_distribution.items() %} <div class="rating-bar"> <span class="rating-label">{{ rating }}</span> <div class="bar-container"> <div class="bar" style="width: {{ (count / total_ratings) * 100 }}%"></div> </div> <span class="count">{{ count }}</span> </div> {% endfor %} </div> <h3>相似用户:</h3> <ul class="similar-users"> {% for sim, user in similar_users %} <li>User {{ user + 1 }} (相似度:{{ sim | round(3) }})</li> {% endfor %} </ul> </div> 7.2 推荐结果模板(recommendations.html) <div class="recommendations"> <h2>为您推荐(User {{ user_id }})</h2> {% for movie in movies %} <div class="movie-card"> <h3>{{ movie.title }} ({{ movie.year }})</h3> <p>类型:{% for genre in movie.genres %}<span class="genre">{{ genre }}</span>{% endfor %}</p> <div class="score">预测评分:{{ movie.score }}</div> </div> {% endfor %} </div> 八、系统优化方向 冷启动问题:集成内容过滤(使用电影元数据) 实时更新:添加增量训练模块 深度学习扩展:尝试Neural Collaborative Filtering 性能优化:使用Faiss实现近似最近邻搜索 可视化增强:添加评分分布热力图、用户-物品关系图 九、完整项目部署指南 下载MovieLens数据集:https://grouplens.org/datasets/movielens/ 创建项目目录结构: movie_rec_system/ ├── app.py ├── templates/ │ ├── index.html │ ├── profile.html │ └── recommendations.html ├── static/ │ ├── css/ │ └── js/ └── ml-100k/ ├── u.data ├── u.item └── ... 启动服务:python app.py 访问:http://localhost:5000/ 十、结语:推荐系统的未来展望 随着Transformer架构在自然语言处理领域的成功,推荐系统正在经历从协同过滤到序列建模的范式转变。未来工作可以将用户行为序列建模为时间序列,使用Transformer捕捉长期兴趣,同时结合多模态数据(如海报图像、剧情简介)构建更全面的用户画像。 注:实际部署时应添加异常处理、日志记录等生产级功能。 通过这个项目,您不仅掌握了推荐系统的核心技术,还完成了从算法实现到Web服务的完整工程实践。这种全栈能力正是构建智能应用的关键竞争力。
2025年-4月-27日
3 阅读
0 评论
人工智能
2025-4-27
陶瓷绝缘子缺陷检测数据集VOC+YOLO格式2908张3类别
数据集中存在部分增强,具体看图片 数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2908 标注数量(xml文件个数):2908 标注数量(txt文件个数):2908 标注类别数:3 标注类别名称(注意yolo格式类别顺序不和这个对应,而以labels文件夹classes.txt为准):["broken","flashover","insulator"] 每个类别标注的框数: broken 框数 = 3817 flashover 框数 = 782 insulator 框数 = 2557 总框数:7156 使用标注工具:labelImg 标注规则:对类别进行画矩形框 重要说明:暂无 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注 图片预览: 标注例子:
2025年-4月-27日
7 阅读
0 评论
人工智能
2025-4-27
昆仑万维开源 SkyReels-V2 模型,开启生成“无限时长”视频时代
其通过结合多模态大语言模型(MLLM)、多阶段预训练(Multi-stage Pretraining)、强化学习(Reinforcement Learning)和扩散强迫(Diffusion-forcing)框架来实现协同优化。
2025年-4月-27日
6 阅读
0 评论
手机数码
2025-4-27
质量保证措施
质量保证措施 通过质量管理责任的分配,通过如下几个方面来进行质量保证的实施过程: 项目进度 项目计划的制定为工程项目实施、管理和支持工作、项目进度、成本、质量及过程产品的有效控制打下了良好的基础,以便所有相关人员能够按照该计划有条不紊地开展工作;制定《项目计划》,必须获得相关干系人的认可,并以此作为项目跟踪的基础。 项目进度是项目进行是否顺利的最直观表现。制定合理的项目计划首要前提是选择从事类似规模和类似业务项目的有经验的项目负责人参加制定项目进度计划。 项目计划由项目负责人制定,由项目各小组组长、项目成员、干系人、质量保证人员参加一起进行评审。评审过程主要讨论项目计划的可行性,对其中不合理的地方提出修改意见,对计划中不合理的地方进行修改完善,并由质量保证人员对其结果进行跟踪处理,以确保项目计划完整性、可行性,项目计划评审通过后,交由配置管理人员进行配置管理。 在计划实施过程中,按项目计划中里程碑为界限,将整个开发周期划分为若干阶段。根据里程碑的完成情况,适当的调整每一个较小的阶段的任务量和完成的任务时间,动态跟踪和动态调整,以利于项目质量保证的实施。 实际运作中,质量保证人员在对项目执行过程进行检查时,对于发现的项目偏差,以质量审计报告的形式提交项目负责人。由项目负责人组织人员对计划进行维护,对于已经变动的项目计划,由配置管理进行配置管理。
2025年-4月-27日
6 阅读
0 评论
网络安全
2025-4-27
AlmaLinux 9.3下离线部署开源jumpserver堡垒机
JumpServer开源堡垒机简单介绍 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权、事中监察、事后审计,满足等保合规要求。 (图片点击放大查看) JumpServer 堡垒机支持的资产类型包括: SSH (Linux / Unix / 网络设备 等) Windows (Web 方式连接 / 原生 RDP 连接) 数据库 (MySQL / MariaDB / 等) NoSQL (Redis / MongoDB 等) GPT (ChatGPT 等) 云服务 (Kubernetes / VMware vSphere 等) Web 站点 (各类系统的 Web 管理后台) 应用 (通过 Remote App 连接各类应用) AlmaLinux 9.3下离线安装开源堡垒机JumpServer 本文参考JumpServer官方文档进行安装部署 (图片点击放大查看) https://docs.jumpserver.org/zh/v3/installation/setup_linux_standalone/offline_install/ 一、先准备操作系统+MySQL基础环境 AlmaLinux9.3 操作系统 /data目录建议空间留大点 上传MySQL的安装包与JumpServer的离线安装包 (图片点击放大查看) 1、基础环境yum安装 yum install -y wget curl tar gettext iptables (图片点击放大查看) (图片点击放大查看) 2、安装MySQL8.0.36 tar -xvf mysql-8.0.36-1.el9.x86_64.rpm-bundle.tar -C /opt cd /opt yum localinstall mysql-community-*.rpm (图片点击放大查看) vim /etc/my.cnf中mysql数据存储路径 (图片点击放大查看) 修改为/data/mysql mkdir -p /data/mysql mysqld --initialize chown -R mysql:mysql /data/mysql systemctl start mysqld systemctl enable mysqld firewall-cmd --permanent --znotallow=public --add-port=3306/tcp firewall-cmd --reload cat /var/log/mysqld.log | grep password mysql -u root -p登录数据库后修改密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MySQLServer_2024!'; 创建jumpserver的用户 (图片点击放大查看) (图片点击放大查看) CREATE USER 'jumpserver'@'%' IDENTIFIED BY 'Jump_2024!'; GRANT ALL PRIVILEGES ON jumpserver.* TO 'jumpserver'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; create database jumpserver default charset 'utf8'; 二、安装部署jumpserver tar -zxvf jumpserver-offline-installer-v3.10.5-amd64.tar.gz -C /opt/ cd /opt/jumpserver-offline-installer-v3.10.5-amd64/ vim config-example.txt 修改数据库的连接信息,当然也可以./jmsctl.sh install时自定义 DB_HOST=192.168.31.54 DB_PORT=3306 DB_USER=jumpserver DB_PASSWORD=Jump_2024! DB_NAME=jumpserver (图片点击放大查看) ./jmsctl.sh install (图片点击放大查看) (图片点击放大查看) (图片点击放大查看) 启动jumpserver服务 cd /opt/jumpserver-offline-installer-v3.10.5-amd64/ ./jmsctl.sh start (图片点击放大查看) 三、JumpServer使用初体验 (图片点击放大查看) 首次登录需要修改默认的初始账号密码admin/admin (图片点击放大查看) (图片点击放大查看) 添加主机资产与录入账号信息 (图片点击放大查看) 配置授权策略 (图片点击放大查看) 切换至工作台(普通用户的工作台界面) (图片点击放大查看) (图片点击放大查看) 目前支持安装客户端工具调起本地的SSH工具与SFTP工具 以及数据库工具 (图片点击放大查看) (图片点击放大查看) (图片点击放大查看) 安装单点登录工具后配置SecureCRT为默认应用 (图片点击放大查看) (图片点击放大查看) (图片点击放大查看) (图片点击放大查看) (图片点击放大查看) 调用SecureCRT登录的效果 (图片点击放大查看) SSH运维端口2222登录后的效果 实时审计效果(可以看到水印)
2025年-4月-27日
7 阅读
0 评论
网络安全
2
3
4
5
6