-
EleutherAI的GPT-NeoX并非一个单一的模型,而是一个用于训练大规模自回归语言模型的开源库,其核心是GPT-NeoX-20B模型。这个项目在开源社区中具有奠基性的地位。在诸如GPT-3这样的强大模型仅提供商业API而未开放权重的时期,EleutherAI的目标是构建一个完全开源的高性能模型。GPT-NeoX库及其模型验证了基于Google的JAX/Flax框架,并参考Megatron-LM的设计,在数千个GPU上稳定训练百亿参数级别模型的可能性。它所采用的旋转位置编码(RoPE) 和并行注意力 等架构选择,为后续众多模型提供了经过实践检验的蓝图。可以说,没有GPT-NeoX在工程实践和架构设计上的探索,后续许多重要的开源模型,包括BLOOM以及Qwen2,其开发门槛会高得多。OPT,即Open Pre-trained Transformer,是Meta AI为了促进AI社区的开放研究而发布的一系列模型。其最引人注目的版本是OPT-175B,这是一个参数规模与GPT-3相当的语言模型。OPT项目的关键贡献不在于架构创新——它基本上遵循了经典的GPT-3架构——而在于其开放性。Meta不仅发布了模型的预训练权重,还完整公开了训练日志和代码。这一举动为学术界和资源有限的研究机构提供了研究超大模型行为、进行微调实验和评估其社会影响的宝贵资源。通过研究OPT,社区得以深入理解百亿级以上参数模型的训练动态、失败模式以及计算需求。将两者联系起来看,GPT-NeoX和OPT代表了开源大模型发展路径上的两个互补方向:GPT-NeoX提供了如何从头开始构建一个现代大模型的工程框架与核心组件,是方法论上的贡献;而OPT则提供了一个已经构建好的、可供深入剖析的顶级模型实例,是资源上的贡献。后来者可以继承GPT-NeoX库中成熟且高效的Transformer层实现、并行训练策略等基础设施,同时参考OPT在模型结构细节上的权衡与选择,从而能够专注于其自身的创新与优化。
-
1. 下载模型权重 安装python环境 conda create -n qwq_model python==3.13.6 conda activate qwq_model pip install modelscope 通过 modelscope SDK下载模型(https://www.modelscope.cn/models/Qwen/QwQ-32B)到制定目录 mkdir -p /usr/local/data/model_list/model/QwQ-32B modelscope download --model Qwen/QwQ-32B --local_dir /usr/local/data/model_list/model/QwQ-32B 2. 部署模型 vim /etc/sysctl.conf 设置 net.ipv4.ip_forward的值为1 source /etc/sysctl.conf docker pull swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_ascend:pytorch_2.5.1-cann_8.2.rc1-py_3.11-hce_2.0.2503-aarch64-snt9b-20250729103313-3a25129 启动容器 docker run -itd \--device=/dev/davinci0 \--device=/dev/davinci1 \--device=/dev/davinci2 \--device=/dev/davinci3 \-v /etc/localtime:/etc/localtime \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /etc/ascend_install.info:/etc/ascend_install.info \--device=/dev/davinci_manager \--device=/dev/devmm_svm \--device=/dev/hisi_hdc \-v /var/log/npu/:/usr/slog \-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \-v /sys/fs/cgroup:/sys/fs/cgroup:ro \-v /usr/local/data/model_list/model:/usr/local/data/model_list/model \--net=host \--name vllm-qwen \91c374f329e4 \/bin/bash 来到容器环境 docker exec -it -u ma-user ${container_name} /bin/bashdocker exec -it -u ma-user vllm-qwen /bin/bash设置容器里的参数export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 export VLLM_PLUGINS=ascend # VPC网段# 需用户手动修改,修改方式见下方注意事项VPC_CIDR="192.168.0.0/16" VPC_PREFIX=$(echo "$VPC_CIDR" | cut -d'/' -f1 | cut -d'.' -f1-2)POD_INET_IP=$(ifconfig | grep -oP "(?<=inet\s)$VPC_PREFIX\.\d+\.\d+" | head -n 1)POD_NETWORK_IFNAME=$(ifconfig | grep -B 1 "$POD_INET_IP" | head -n 1 | awk '{print $1}' | sed 's/://')echo "POD_INET_IP: $POD_INET_IP"echo "POD_NETWORK_IFNAME: $POD_NETWORK_IFNAME" # 指定通信网卡export GLOO_SOCKET_IFNAME=$POD_NETWORK_IFNAMEexport TP_SOCKET_IFNAME=$POD_NETWORK_IFNAMEexport HCCL_SOCKET_IFNAME=$POD_NETWORK_IFNAME# 多机场景下配置export RAY_EXPERIMENTAL_NOSET_ASCEND_RT_VISIBLE_DEVICES=1 # 开启显存优化export PYTORCH_NPU_ALLOC_CONF=expandable_segments:True# 配置通信算法的编排展开位置在Device侧的AI Vector Core计算单元export HCCL_OP_EXPANSION_MODE=AIV# 指定可使用的卡,按需指定export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7# 指定绑核,按需指定export CPU_AFFINITY_CONF=1export LD_PRELOAD=/usr/local/lib/libjemalloc.so.2:${LD_PRELOAD}# 默认启用 ascend-turbo-graph模式,指定启动插件export VLLM_PLUGINS=ascend_vllm# 如果使用 acl-graph 或者 eager 模式,指定启动插件 # export VLLM_PLUGINS=ascend# 指定vllm后端 v1export VLLM_USE_V1=1# 指定vllm版本export VLLM_VERSION=0.9.0 export USE_MM_ALL_REDUCE_OP=1export MM_ALL_REDUCE_OP_THRESHOLD=256 # 不需要设置以下环境变量unset ENABLE_QWEN_HYPERDRIVE_OPTunset ENABLE_QWEN_MICROBATCHunset ENABLE_PHASE_AWARE_QKVO_QUANTunset DISABLE_QWEN_DP_PROJ source /home/ma-user/AscendCloud/AscendTurbo/set_env.bash 运行API服务 nohup python -m vllm.entrypoints.openai.api_server \--model /usr/local/data/model_list/model/QwQ-32B \--max-num-seqs=256 \--max-model-len=512 \--max-num-batched-tokens=512 \--tensor-parallel-size=4 \--block-size=128 \--host=192.168.0.127 \--port=18186 \--gpu-memory-utilization=0.95 \--trust-remote-code \--no-enable-prefix-caching \--additional-config='{"ascend_turbo_graph_config": {"enabled": true}, "ascend_scheduler_config": {"enabled": true}}' > QwQ-32B.log 2>&1 & port端口号可以自定义,勿与已经使用的端口号冲突 3. 验证API服务 验证服务 curl http://192.168.0.127:18186/v1/completions \-H "Content-Type: application/json" \-d '{ "model": "/usr/local/data/model_list/model/QwQ-32B", "prompt": "What is moon","max_tokens": 64,"temperature": 0.5 }'
-
以大语言模型评估evaluate_inference 方法为例,它采用分阶段测量策略,将推理过程拆解为预填充和解码两个关键阶段,这种设计源于对Transformer架构特性的深刻理解。预填充阶段负责处理输入序列的并行计算,而解码阶段则涉及自回归生成,两者的性能特征截然不同。该方法通过预热机制确保模型状态稳定,这是深度学习推理评估的标准实践。预热阶段运行5次固定推理,消除冷启动带来的性能波动。在实际测量中,预填充延迟通过生成单个token来捕获,这种方法能够准确反映模型处理输入序列的初始计算开销。解码延迟的测量则采用端到端方式,通过计算平均每个token的生成时间来评估模型的持续生成效率。内存监控机制是该方法的另一重要特征。它跟踪最大分配内存和保留内存,为模型部署时的资源规划提供数据支持。这种内存监控不仅反映模型的理论内存需求,还能捕捉实际运行时的动态内存使用模式。Logits保存机制体现了数值稳定性的验证思路。通过保存每个生成步骤的logits分布,该方法能够进行精确的数值对比,这种对比超越了简单的文本匹配,能够检测模型输出的细微差异。当文本内容不匹配时,logits对比提供了第二层验证保障,确保模型推理的正确性。该评估方法的设计还考虑了实际部署场景的需求。通过支持多组prompt和图像的批量测试,它能够模拟真实应用中的多样化输入情况。时间戳机制和结果文件的规范化命名,为长期性能追踪和版本对比奠定了基础。从工程角度看,该方法在准确性和实用性之间找到了平衡。同步操作的合理使用确保了时间测量的准确性,而异常处理机制则保证了评估过程的鲁棒性。结果汇总功能不仅生成详细的性能报告,还提供了直观的对比结果,便于快速判断模型状态。这种评估方法论的背后,是对大语言模型推理特性的系统化认知。它认识到模型性能不仅取决于硬件能力,还与输入特征、序列长度、生成策略等多个因素相关。通过多维度的性能指标收集,该方法为模型优化提供了全面的数据支撑,是模型部署前不可或缺的验证环节。
-
sglang 是一个专为大型语言模型设计的高效编程语言和运行时系统。1. sglang 的核心定义sglang 的全称是 Structured Generation Language for Large Language Models。它的主要目标是让开发者能够更简单、更快速、更高效地构建和运行复杂的 LLM 应用程序。您可以把它理解为一个“LLM 的编程框架”或“加速引擎”。2. 为什么需要 sglang?在开发基于大语言模型的应用时,我们经常会遇到一些复杂场景,比如:多轮对话智能体(Agent) 的推理和工具调用分支逻辑(例如,根据模型的不同回答执行不同的后续操作)约束生成(要求模型必须按照特定格式,如 JSON,来回答)使用传统的调用方式(比如直接调用 OpenAI API 或使用简单的 LangChain)来处理这些复杂逻辑时,代码会变得冗长、难以维护,并且在性能上(尤其是延迟和吞吐量)可能不是最优的。sglang 就是为了解决这些问题而生的。3. sglang 的主要特点和优势直观的编程模型:它提供了一种类似于编写普通程序的语法(支持分支、循环、函数等),让开发者可以用更结构化和易读的方式描述复杂的 LLM 交互流程。显著的性能优化:这是 sglang 最突出的优势之一。它内置了多种优化技术,例如:RadixAttention:通过缓存注意力矩阵中的键(Key)和值(Value),极大地减少了重复计算。例如,在多轮对话中,历史对话的 KV Cache 可以被有效复用,而不是每次请求都重新计算,从而大幅降低延迟。并行执行:能够智能地识别和并行执行多个独立的 LLM 调用。后端兼容性:sglang 支持多种流行的 LLM 后端,包括 vLLM、NVIDIA TensorRT-LLM 以及 Hugging Face Transformers 等。这意味着您可以将它轻松部署到现有的推理服务上。以镜像名称为例:ubuntu22.04-py3.11-cann8.2rc1-**sglang**-main-notebook,这个镜像是一个为 AI 开发预配置的完整环境,它包含了:操作系统:Ubuntu 22.04编程语言:Python 3.11AI 计算基础:cann8.2rc1(华为的 Ascend CANN 计算平台,通常用于昇腾 AI 处理器)核心组件:sglang(用于在昇腾硬件上高效运行 LLM 应用的框架)应用形式:notebook(Jupyter Notebook,一种交互式编程环境)附sglang检查:$ python3 -c "import sglang; print(sglang.__version__); print(sglang.__file__)" 0.5.2rc1 /home/service/.local/lib/python3.11/site-packages/sglang/__init__.py $ python3 -c "import sglang; print(dir(sglang))" ['Anthropic', 'Engine', 'LazyImport', 'LiteLLM', 'OpenAI', 'Runtime', 'RuntimeEndpoint', 'ServerArgs', 'VertexAI', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 'assistant', 'assistant_begin', 'assistant_end', 'flush_cache', 'function', 'gen', 'gen_int', 'gen_string', 'get_server_info', 'global_config', 'greedy_token_selection', 'image', 'lang', 'select', 'separate_reasoning', 'set_default_backend', 'system', 'system_begin', 'system_end', 'token_length_normalized', 'unconditional_likelihood_normalized', 'user', 'user_begin', 'user_end', 'utils', 'version', 'video'] $
-
Qwen2-VL-2B-Instruct这一模型堪称是当前轻量级多模态模型领域的一个典范。其背后是一部从单一语言到统一多模态的技术演进史。它的直接前身是Qwen-VL系列,而Qwen-VL又深深植根于其纯文本版本的Qwen系列。Qwen本身是阿里巴巴通义千问团队对标LLaMA、GPT等主流大语言模型的作品,其核心思想是通过海量高质量文本数据训练,赋予模型强大的语言理解与生成能力。但纯文本模型存在天然局限,无法感知我们身处这个充满图像、视频的物理世界,这便催生了多模态模型的迫切需求。早期的多模态模型往往采用“拼凑”式架构,例如将视觉编码器(如CLIP的ViT)和语言模型(如LLaMA)简单连接,通过一个投影层将图像特征映射到文本特征空间。这种方式虽然有效,但存在信息损失和协同效率问题。Qwen-VL系列的突破在于,它更早地拥抱了“Everything-to-Text”的统一范式,将图像信息通过视觉编码器与分词器,转换成类似于文本token的“视觉token”,与文本token在同一个序列中被Transformer核心处理。这种设计使得模型能够像理解文字一样,在同一个语义空间里理解图片内容,为后续的复杂推理奠定了坚实基础。而Qwen2-VL-2B-Instruct的诞生,正是在此基础上的一次“小而美”的进化。这里的“Qwen2”代表了其基于第二代Qwen语言模型架构,该架构通常在注意力机制、位置编码、激活函数等方面进行了优化,带来了更强的性能与稳定性。“VL”点明了其多模态本质。“2B”是其最引人注目的标签,意指20亿参数规模。在模型规模疯狂内卷的今天,这个尺寸堪称“轻量级”,其意义在于瞄准边缘计算、移动设备和实时应用场景,证明高性能多模态能力并非巨型模型的专利。最后的“Instruct”则明确了它的使命:经过高质量的指令微调与人类反馈强化学习,它不再是一个基础的多模态识别模型,而是一个能精准理解用户复杂指令、遵循安全规范、并进行有效对话的智能助手。如果我们将其置于更广阔的技术图景中,可以看到它与谷歌的Gemini Nano、微软的Phi-Vision等模型共享着相似的“轻量化、场景化”设计哲学。同时,它所采用的统一序列建模思想,也与OpenAI的GPT-4V、Google的PaLI-X等前沿模型一脉相承,只是在模型尺度上做出了不同的权衡。它依赖于三大技术支柱:一个强大的视觉编码器(用于提取图像本质特征)、一个高效的语言模型核心(用于理解和生成语言)、以及一个高质量的指令对齐数据集(用于教会模型如何与人交互)。
-
近期,快手 Kwaipilot 团队推出了 KAT 系列两款突破性 Agentic Coding 大模型:开源 32B 参数模型 KAT-Dev-32B 与闭源旗舰模型 KAT-Coder。 这两款模型在 Code Intelligence 领域分别体现出轻量级的超强表现和极致性能。其中,在 SWE-Bench Verified 上,KAT-Dev-32B 展现出强劲性能并取得了 62.4% 的解决率,在所有不同规模的开源模型中排名第 5。与此同时,KAT-Coder 以 73.4% 的解决率在 SWE-Bench Verified 上取得了极佳的单模型表现,比肩全球顶尖闭源模型。 图 1:在 SWE-Bench Verified 上,和全尺寸开源模型对比,KAT-Dev 用极小的模型尺寸取得了第一梯队的性能 图 2:在 SWE-Bench Verified 上,KAT-Coder 取得极佳的单模型表现,比肩全球顶尖闭源模型性能 模型开源和 API 开放KAT-Dev-32B 已在开源模型托管平台 Hugging Face 上线,可供进一步研究和开发使用。KAT-Coder 模型的 API 密钥近期也在 “快手万擎” 企业级大模型服务与开发平台上开放申请,用户将能够通过 Claude Code 等工具直接访问并进行编码。快手 Kwaipilot 团队的官方技术 Blog:https://kwaipilot.github.io/KAT-Coder/KAT-Dev-32B 模型开源地址:https://huggingface.co/Kwaipilot/KAT-DevKAT-Coder 开发工具接入指南:https://www.streamlake.com/document/WANQING/me6ymdjrqv8lp4iq0o9KAT-Coder API Key 申请:https://console.streamlake.com/wanqing/ 核心贡献点摘要KAT-Dev-32B 和 KAT-Coder 在多个训练阶段进行了创新和优化,包括 Mid-Training 阶段、监督微调 (SFT) 阶段、强化微调 (RFT) 阶段,以及大规模智能体强化学习 (RL) 阶段,具体如下:Mid-Training:Kwaipilot 团队发现,在这一阶段大量增加工具使用能力、多轮交互和指令遵循的训练,虽然在当前结果上(例如在 SWE-bench 等排行榜)可能不会带来显著的性能提升,但对后续的 SFT 和 RL 阶段具有重大影响。SFT & RFT:团队在 SFT 阶段精心策划了八种任务类型和八种编程场景,以确保模型的泛化能力和综合能力。此外,在 RL 之前,创新性地引入了 RFT 阶段,使用人类工程师标注的 "教师轨迹" 作为训练期间的指导。大规模 Agentic RL:当前,扩展智能体 RL 面临三个挑战:非线性轨迹历史的高效学习、利用内在模型信号以及构建可扩展的高吞吐量基础设施。对此,Kwaipilot 团队通过对数概率计算的前缀缓存(Log-Probability Prefix Caching)、基于熵的轨迹剪枝(Entropy-based Tree Pruning)和自研的工业级规模强化学习训练框架 SeamlessFlow 来解决这些问题。 KAT 系列模型的核心技术路线一、Mid-TrainingKwaipilot 团队对经过预训练的模型进行了两阶段训练,该阶段被称为 Mid-Training。在其中的第一个阶段,增强了模型与 “LLM-as-Agent” 相关的全方位能力,包括但不限于以下几种能力:工具调用能力:构建了在沙盒环境真实执行工具的调用方法以及执行结果的交互数据,用于提升模型的工具调用能力;多轮交互能力:构建了最长数百轮的人类、模型、工具的交互数据,用于提升在长文本情况下模型的多轮交互能力;编码知识注入:加入了高质量的与编码相关的领域知识数据,用于进一步增强模型在编码场景下的性能;Git Commit 数据:加入了大量来自于真实 Git 仓库的 PR 数据,用于进一步提升模型在真实编程任务下的表现;指令跟随数据:收集了 30 + 类常见的用户指令,用于增强模型对用户指令的理解能力;通用及思考数据:构建了多类通用数据,用于增强模型在通用领域以及在调用工具时进行思考的能力。二、监督微调 (Supervised Fine-Tuning, SFT) 在第二阶段,Kwaipilot 团队收集了大量人类工程师标记的真实需求交付轨迹,并基于此合成了大量的轨迹数据,进一步对模型进行训练,以增强其端到端需求交付的能力。其中覆盖了多种任务类型:八大用户任务类型:Feature Implementation(功能实现)Feature Enhancement(功能增强)Bug Fixing(缺陷修复)Refactoring(结构优化)Performance Optimization(性能优化)Test Case Generation(测试用例生成)Code Understanding(代码理解)Configuration & Deployment(配置与部署)八大用户编程场景:Application Development(应用开发)UI/UX Engineering(界面与用户体验工程)Data Science & Engineering(数据科学与工程)Machine Learning & AI(机器学习与人工智能)Database Systems(数据库系统)Infrastructure Development(基础设施开发)Specialized Programming Domains(专业编程领域)Security Engineering(安全工程) 三、强化微调(Reinforcement Finetune,RFT)在这一阶段,Kwaipilot 团队在强化学习流程的基础上,额外引入了多个 ground truth 用于轨迹探索的指导,提升 rollout 效率,从绝对 reward 到衡量与 ground truth 的差异,提升了强化学习阶段的效率和稳定性。从直接给定绝对 reward 更新为衡量 rollout 样本和 ground truth 之间的相对差异给了强化学习更稳定和更准确的奖励信号,同时也会在 rollout 阶段实时监督样本的正确性,并及时终止与 ground truth 有明显偏离的样本生成,这也给强化学习带来了更高的样本效率。 图 3:在强化微调(RFT)流程中,引入教师轨迹作为指导 经过三阶段的训练,团队获得了为 RL 阶段准备的冷启动模型,RFT 的加入也为 SFT 和 RL 之间构建了桥梁。Mid-Training:首先,团队教会大模型各种基本技能,包括如何使用工具、如何理解用户意图等;SFT:其次,用高质量的轨迹数据,让模型学习如何执行真实的下游任务;RFT:最后,在模型准备 “自由探索” 之前,先由教师轨迹手把手教会模型如何探索,保障了模型后续在 RL 阶段的稳定性。 四、大规模 Agentic RL1、基于熵的树剪枝(Entropy Based Tree Pruning)Kwaipilot 团队发现,即便使用上述技术,对完整树中的所有 token 进行训练的成本仍然过高,因此亟需设计一种能够优先聚焦于携带最强训练信号节点的机制。为此,团队将轨迹压缩成一个前缀树,其中每个节点表示一个共享前缀,每条边对应一段 token。在固定的计算预算下,目标是只保留最有价值的节点进行训练。团队基于树中聚合的熵信号和节点被到达的可能性来估计节点的信息量,并按照重要性顺序扩展节点来剪枝树,直到预算耗尽。额外的启发式方法确保保留结构上的重要区域(例如,工具或内存事件),并维护局部上下文以稳定训练。这种基于熵的剪枝大幅减少冗余计算,同时保留大部分有效的训练信号,从而实现显著的吞吐量提升和更低的总体成本。 2、RL infra:自研 SeamlessFlow 框架 图 4:Kwaipilot 团队自研的 RL 训练框架 SeamlessFlow 架构 为扩展 RL,必须将 RL 训练与智能体的多样化内部逻辑完全解耦,同时最大化异构计算架构的利用率。遵循 SeamlessFlow 的设计,Kwaipilot 团队在智能体和 RL 训练之间设计了一个专门用于轨迹树管理的中间层,确保两者之间的严格分离。此外,采用提出的标签驱动调度机制来协调异构集群中的任务分配,从而最小化管道气泡并维持高吞吐量训练。 3、统一环境接口和企业级 RL 数据构建Kwaipilot 团队还通过统一不同 RL 执行环境的部署和评估接口,使任何新添加的环境都能以低成本无缝集成。这种统一设计为跨异构数据源和任务类型扩展 RL 训练奠定了坚实基础。具体到软件开发场景,团队聚集于三个基本组件:与相应分支代码配对的问题描述、可执行环境和可验证的测试用例。Kwaipilot 团队从开源仓库收集拉取请求和相关问题,并根据这些仓库的星标、PR 活动和问题内容过滤低质量数据,随后系统地为每个收集的实例构建可执行环境镜像并生成单元测试用例。除了软件工程数据,团队还纳入了其他可验证领域,如数学和推理任务,进一步丰富了 RL 信号的多样性。更重要的是,除了开源数据,团队还进一步收集并利用来自真实世界工业系统的匿名企业级代码库进行 RL 训练。与仅在公共仓库(如 GitHub 上的仓库)上训练不同,这些仓库通常包含较简单的项目,而这些大规模、复杂的代码库 —— 跨越多种编程语言并代表真实的业务逻辑 —— 让模型接触到更具挑战性的开发场景,为 RL 提供了高价值的资产。训练智能体解决这些真实世界的工业问题不仅增强了学习的鲁棒性,还将所得模型的编程能力建立在现实的生产级环境中。 图 5:在 SWE-Bench Verified 上,各阶段训练对模型的性能影响 模型效果展示 KAT-Coder 模型具备强大的代码生成能力,可独立完成完整的项目开发,通过调用编程工具可实现从交互式游戏到代码重构等多样化编程任务。用户仅需描述需求,模型即可交付完整的代码解决方案。1、星空效果 2、水果忍者🥷 3、代码重构 大规模 Agentic RL 后的涌现能力对经过大规模 Agentic RL 训练后的模型进行分析,Kwaipilot 团队观测到了两个显著的涌现现象:对话轮次显著降低:模型倾向于用更少的交互轮次完成任务,相较于 SFT 模型,平均对话轮次下降了 32%;多工具并行调用:模型展现出同时调用多个工具的能力,而非传统的串行调用。 团队推测,这源于轨迹树结构带来的隐式优化压力,使模型自然形成效率偏好与并行调用能力。效率偏好的形成:在轨迹树结构中,较短的路径(更少的对话轮次)会被更多的训练样本共享。这创造了一个隐式的优化压力:模型倾向于学习更高效的解决方案;并行化的自然选择:在树结构中,多工具并行调用创造了更多的分支可能性,这些分支在训练时被独立处理,使得模型能够同时探索多个工具组合。同时熵剪枝机制(Long-term Entropy Pruning)保留了信息量较大的节点,而多工具调用节点往往具有更高的熵值,使模型逐渐学会了 "批处理" 思维。 未来展望Kwaipilot 团队将持续探索代码智能的前沿领域,开拓创新可能:增强工具集成:与流行的 IDE、版本控制系统和开发工作流深度集成,创建无缝的编码体验。多语言扩展:扩展 KAT 模型能力以覆盖新兴的编程语言和框架,确保全面的语言支持。协作编码:探索多智能体系统,让 KAT 模型能够在复杂的软件项目上协同工作,实现前所未有的协作。多模态代码智能:集成视觉理解能力,处理架构图、UI 设计、调试截图和文档图像以及代码,使开发过程更加直观和高效。 原文链接:https://kwaipilot.github.io/KAT-Coder/
-
生成对抗网络在医学影像修复中的应用与前景生成对抗网络(GANs,Generative Adversarial Networks)自2014年由Ian Goodfellow等人提出以来,已经在图像生成、图像修复、图像转换等领域取得了巨大的进展。GAN的独特结构,即由生成器(Generator)和判别器(Discriminator)组成的对抗性训练过程,使其在生成逼真图像方面表现出了强大的能力。本文将重点探讨基于生成对抗网络的图像生成技术的现状与未来发展,分析当前的主流方法,并通过代码实例演示GAN在图像生成中的应用。一、生成对抗网络(GAN)的基本原理1.1 GAN的结构与工作原理生成对抗网络由两部分组成:生成器(Generator):负责从随机噪声中生成图像。判别器(Discriminator):用于判定输入图像是否为真实图像。这两部分通过对抗训练来优化。生成器通过不断学习如何生成越来越逼真的图像,而判别器则不断学习如何辨别图像的真伪,直到生成器能够生成几乎无法与真实图像区分的图像。1.2 训练过程训练过程可以视为一个博弈过程。生成器试图生成“骗过”判别器的图像,而判别器试图分辨这些图像是否真实。随着训练的进行,生成器和判别器不断提升自己的能力,最终使生成的图像越来越逼真。1.3 损失函数GAN的目标是通过最小化生成器和判别器之间的损失函数来实现优化。通常,生成器的目标是最大化判别器的错误,而判别器的目标则是最小化其错误。二、基于GAN的图像生成技术应用2.1 图像生成GAN的最经典应用之一是从随机噪声生成图像。通过训练,生成器能够生成非常接近真实的图像,广泛应用于艺术创作、游戏设计、广告等领域。代码示例:简单的GAN实现(基于Keras)以下代码演示了一个简单的GAN实现,其中使用了Keras框架进行训练:import numpy as np import matplotlib.pyplot as plt from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, LeakyReLU, BatchNormalization from tensorflow.keras.optimizers import Adam from tensorflow.keras.datasets import mnist # 加载MNIST数据集 (X_train, _), (_, _) = mnist.load_data() X_train = X_train / 127.5 - 1.0 # 数据归一化到[-1, 1] X_train = X_train.reshape(X_train.shape[0], 784) # 生成器模型 def build_generator(): model = Sequential() model.add(Dense(256, input_dim=100)) model.add(LeakyReLU(0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(512)) model.add(LeakyReLU(0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(1024)) model.add(LeakyReLU(0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(784, activation='tanh')) return model # 判别器模型 def build_discriminator(): model = Sequential() model.add(Dense(1024, input_dim=784)) model.add(LeakyReLU(0.2)) model.add(Dense(512)) model.add(LeakyReLU(0.2)) model.add(Dense(256)) model.add(LeakyReLU(0.2)) model.add(Dense(1, activation='sigmoid')) return model # GAN模型(生成器和判别器的组合) def build_gan(generator, discriminator): discriminator.trainable = False model = Sequential() model.add(generator) model.add(discriminator) return model # 编译模型 discriminator = build_discriminator() discriminator.compile(loss='binary_crossentropy', optimizer=Adam(0.0002, 0.5), metrics=['accuracy']) generator = build_generator() gan = build_gan(generator, discriminator) gan.compile(loss='binary_crossentropy', optimizer=Adam(0.0002, 0.5)) # 训练模型 def train_gan(epochs=1, batch_size=128): batch_count = X_train.shape[0] // batch_size for epoch in range(epochs): for _ in range(batch_count): # 训练判别器 noise = np.random.normal(0, 1, (batch_size, 100)) generated_images = generator.predict(noise) real_images = X_train[np.random.randint(0, X_train.shape[0], batch_size)] real_labels = np.ones((batch_size, 1)) fake_labels = np.zeros((batch_size, 1)) d_loss_real = discriminator.train_on_batch(real_images, real_labels) d_loss_fake = discriminator.train_on_batch(generated_images, fake_labels) d_loss = 0.5 * np.add(d_loss_real, d_loss_fake) # 训练生成器 noise = np.random.normal(0, 1, (batch_size, 100)) g_loss = gan.train_on_batch(noise, real_labels) print(f"{epoch}/{epochs} [D loss: {d_loss[0]} | D accuracy: {100 * d_loss[1]}] [G loss: {g_loss}]") if epoch % 10 == 0: plot_generated_images(epoch) # 可视化生成的图像 def plot_generated_images(epoch, examples=10, dim=(1, 10), figsize=(10, 1)): noise = np.random.normal(0, 1, (examples, 100)) generated_images = generator.predict(noise) plt.figure(figsize=figsize) for i in range(examples): plt.subplot(dim[0], dim[1], i + 1) plt.imshow(generated_images[i].reshape(28, 28), cmap='gray') plt.axis('off') plt.tight_layout() plt.savefig(f"gan_generated_image_epoch_{epoch}.png") plt.close() train_gan(epochs=1000, batch_size=128) 2.2 图像修复与增强GAN在图像修复和增强方面也得到了广泛应用。通过训练,GAN能够恢复丢失的图像信息,或者对图像进行去噪、超分辨率等增强操作。像Pix2Pix、CycleGAN等模型就是在这一领域中应用的典型代表。2.3 图像风格转换GAN还被广泛应用于图像风格转换,例如将一张照片转换成油画风格或将夏天的场景转换为冬天的场景。CycleGAN正是专门为无监督的图像到图像转换任务设计的。三、未来的发展方向3.1 高效GAN模型尽管现有的GAN在图像生成方面取得了巨大成功,但仍然存在训练不稳定、计算资源消耗大等问题。未来的GAN研究将更加注重如何提高训练效率,减少计算成本,优化训练过程。3.2 多模态图像生成当前的GAN主要用于单一模态的图像生成,未来的发展将朝着多模态图像生成方向迈进。例如,如何根据不同的输入条件(如文本、音频等)生成图像,成为一个重要研究方向。3.3 生成对抗网络的可解释性随着生成对抗网络的广泛应用,可解释性问题也日益成为研究的重点。如何理解生成器和判别器的决策过程,如何确保生成图像符合特定的要求,将是未来研究的重要方向。四、挑战与解决方案4.1 GAN的训练不稳定性训练GAN时,最常见的问题之一就是生成器和判别器之间的训练不平衡。判别器的性能过强可能导致生成器无法有效学习,反之,生成器过强可能使判别器的判别能力下降。为了解决这个问题,研究者们提出了多种方法,包括:梯度惩罚(Gradient Penalty):通过在判别器的损失函数中加入惩罚项,限制其梯度的大小,避免判别器过于强大。谱归一化(Spectral Normalization):对判别器的权重进行谱归一化,使得模型的训练过程更加稳定。4.2 模型的收敛速度慢GAN的训练通常非常缓慢,尤其是对于深层网络。生成器和判别器的训练需要大量的时间和计算资源。为了解决这个问题,以下是几种常见的优化方案:小批量训练(Mini-batch Training):将训练数据划分成更小的批次,从而加速训练过程。预训练(Pre-training):可以通过预训练生成器和判别器的部分网络,来帮助加速训练的收敛过程。4.3 模型生成的图像质量尽管GAN在生成图像方面已经取得了显著进展,但生成的图像质量仍然存在差距,尤其是在生成细节复杂或者高分辨率图像时。为了解决这一问题,研究者们提出了许多创新的架构,例如:Wasserstein GAN(WGAN):引入Wasserstein距离作为损失函数,能够稳定训练过程,并提高生成图像的质量。渐进式生成(Progressive Growing GANs):通过逐渐增加生成器和判别器的网络层数,从低分辨率图像开始训练,最终生成高分辨率图像。4.4 模型的计算资源需求高质量的图像生成通常需要非常大的计算资源,尤其是在训练大规模的网络时。例如,生成一张高分辨率的图像需要大量的GPU内存和计算时间。为了解决这个问题,以下是几种解决策略:模型压缩与量化:通过压缩和量化模型,减少模型的大小,从而减少计算资源的需求。迁移学习:使用已经训练好的GAN模型进行迁移学习,减少从零开始训练的计算开销。五、生成对抗网络的多样化应用5.1 医学图像分析GAN在医学图像分析中的应用得到了广泛关注,尤其是在医学影像数据的增强、生成和修复方面。通过训练GAN,研究者可以生成缺失的医学图像区域,或生成特定病变的图像,从而帮助医生进行疾病诊断。代码示例:医学图像修复from tensorflow.keras.layers import Conv2D, UpSampling2D from tensorflow.keras.models import Sequential # 简单的图像修复生成器 def build_image_inpainting_generator(): model = Sequential() model.add(Conv2D(64, (3, 3), padding='same', input_shape=(256, 256, 3))) model.add(UpSampling2D(size=(2, 2))) model.add(Conv2D(128, (3, 3), padding='same')) model.add(UpSampling2D(size=(2, 2))) model.add(Conv2D(256, (3, 3), padding='same')) model.add(Conv2D(3, (3, 3), activation='sigmoid', padding='same')) return model # 假设我们已经有了缺失部分的医学图像,使用生成器修复图像 generator = build_image_inpainting_generator() reconstructed_image = generator.predict(missing_image_data) 5.2 视频生成与预测除了静态图像生成,GAN在视频生成和预测方面也有重要应用。例如,可以使用GAN生成视频中的下一帧图像,或者通过训练GAN生成整个视频序列。视频生成可以在影视制作、虚拟现实等领域得到广泛应用。5.3 数据增强与合成GAN还可以用于数据增强,特别是在数据集不平衡的情况下。例如,在图像分类任务中,GAN可以生成少数类的图像样本,进而平衡训练数据集,从而提高分类器的性能。5.4 生成艺术与创意近年来,生成对抗网络在艺术创作中也得到了应用,尤其是在生成绘画、设计风格转换等方面。例如,著名的ArtGAN模型能够根据用户输入的风格生成艺术作品。此外,GAN还被应用于自动化设计中,如图像中的家具、服装、建筑等元素的生成。六、结论生成对抗网络(GAN)作为一种强大的图像生成技术,在多个领域取得了显著进展。从图像生成到图像修复,再到数据增强和视频生成,GAN的应用已经渗透到艺术创作、医学分析、虚拟现实等多个行业。然而,GAN模型仍面临着训练不稳定、生成图像质量不高、计算资源消耗大等挑战。未来,随着优化算法和硬件的发展,GAN的训练效率和生成图像的质量有望进一步提高。通过跨学科的合作和不断创新,GAN将在更广泛的应用场景中发挥重要作用。
-
多智能体系统中的深度强化学习:协作与竞争策略优化深度强化学习(Deep Reinforcement Learning, DRL)作为人工智能领域的一个重要分支,已广泛应用于智能控制系统中。从无人驾驶到机器人控制,DRL通过模拟和训练智能体,能够在复杂环境中做出决策并执行控制任务。本文将探讨DRL在智能控制系统中的应用、所面临的挑战以及如何克服这些挑战。1. 深度强化学习概述1.1 强化学习简介强化学习是一种基于奖励信号引导智能体学习如何在环境中采取行动以最大化累积奖励的机器学习方法。与监督学习不同,强化学习不依赖于标注数据,而是通过与环境的交互来学习最优策略。1.2 深度强化学习的定义深度强化学习将深度学习与强化学习相结合,通过深度神经网络来近似强化学习中的价值函数或策略函数,从而使智能体能够处理高维、复杂的输入数据(如图像、声音等)。2. 深度强化学习在智能控制系统中的应用2.1 无人驾驶系统在无人驾驶系统中,DRL被应用于车辆的路径规划和决策制定。智能体通过与环境交互(例如,感知周围道路情况和交通规则),优化车辆的驾驶策略。import gym import numpy as np import tensorflow as tf from tensorflow.keras import layers # 创建环境 env = gym.make("CarRacing-v0") # 定义深度Q网络(DQN) class DQN(tf.keras.Model): def __init__(self): super(DQN, self).__init__() self.conv1 = layers.Conv2D(32, 8, strides=4, activation='relu') self.conv2 = layers.Conv2D(64, 4, strides=2, activation='relu') self.conv3 = layers.Conv2D(64, 3, strides=1, activation='relu') self.flatten = layers.Flatten() self.dense1 = layers.Dense(512, activation='relu') self.dense2 = layers.Dense(env.action_space.n, activation='linear') def call(self, input): x = self.conv1(input) x = self.conv2(x) x = self.conv3(x) x = self.flatten(x) x = self.dense1(x) return self.dense2(x) # 初始化网络 dqn = DQN() # 训练过程(略) 2.2 机器人控制DRL在机器人控制领域的应用十分广泛,尤其在任务导向的自主导航和物品搬运等方面。机器人通过DRL能够学习如何在复杂的环境中规划路径、避免障碍物和执行多步骤任务。import gym from stable_baselines3 import DQN # 创建环境 env = gym.make('FetchReach-v1') # 使用DQN算法训练机器人 model = DQN('MlpPolicy', env, verbose=1) model.learn(total_timesteps=50000) # 保存模型 model.save("dqn_fetchreach") # 测试模型 model = DQN.load("dqn_fetchreach") obs = env.reset() for _ in range(1000): action, _states = model.predict(obs) obs, rewards, done, info = env.step(action) if done: obs = env.reset() 2.3 智能电网在智能电网领域,DRL被用来优化电力流控制、负荷预测及设备调度。通过学习历史数据,DRL可以预测电力需求并自动调整电网配置,从而提高系统的效率与可靠性。3. 深度强化学习在智能控制中的挑战3.1 高维状态和动作空间智能控制系统中常常涉及复杂的状态和动作空间。例如,在无人驾驶或机器人控制中,状态空间可能包含图像或传感器数据,而动作空间则可能包括连续的运动控制参数。DRL算法在高维空间中的训练和推理过程非常复杂,计算资源消耗大,且容易陷入局部最优解。3.2 样本效率问题传统的强化学习算法通常需要大量的交互样本来训练模型。然而,在实际的智能控制系统中,尤其是涉及高风险的任务(如无人驾驶),收集大量训练样本可能会非常昂贵或危险。如何提高DRL的样本效率,减少对真实环境的依赖,是一个重要挑战。3.3 探索与利用的平衡在强化学习中,智能体需要在探索新的行为与利用已有知识之间找到平衡。过度的探索可能导致效率低下,而过度利用则可能导致智能体陷入局部最优。在智能控制系统中,如何处理这个平衡,尤其是在动态和不确定环境中,仍然是一个开放的研究问题。4. 深度强化学习在智能控制中的优化方法4.1 经验回放与目标网络为了提高样本效率,DRL通常使用经验回放和目标网络技术。经验回放可以有效地利用历史经验,目标网络可以稳定学习过程,避免模型的过度振荡。from collections import deque import random class ReplayBuffer: def __init__(self, max_size): self.buffer = deque(maxlen=max_size) def add(self, experience): self.buffer.append(experience) def sample(self, batch_size): return random.sample(self.buffer, batch_size) def size(self): return len(self.buffer) 4.2 模型集成与迁移学习在深度强化学习中,模型集成与迁移学习方法能够帮助提升算法的性能。通过将多个模型的预测结果进行集成,或通过迁移已有模型的知识到新的任务中,能够有效提高智能控制系统的表现。4.3 层次强化学习层次强化学习将复杂任务分解为多个子任务,每个子任务由单独的强化学习智能体进行处理。这种方法能够提高训练效率,并在多任务环境中提供更好的性能。5. 深度强化学习在智能控制中的未来发展5.1 自适应控制与实时决策随着智能控制系统对实时性要求的不断提升,深度强化学习在自适应控制方面的应用将成为重要的发展方向。在许多实际应用中,控制系统需要能够在环境动态变化的情况下快速调整控制策略。通过自适应深度强化学习,系统能够在面对突发变化时,迅速做出调整,保障系统稳定性。未来的研究将致力于优化DRL算法,以支持更低延迟和更高频率的决策能力。特别是在自动驾驶、无人机控制等高实时性要求的应用场景中,DRL的实时性和高效性将是其能否成功应用的关键因素。5.2 解释性与安全性在许多智能控制应用中,尤其是与人类安全相关的系统(如医疗设备、无人驾驶等),模型的可解释性和安全性变得尤为重要。深度强化学习的“黑箱”特性使得它的决策过程缺乏透明性,这使得它在高风险应用中的可接受性受到限制。未来的研究可能集中在增强DRL模型的可解释性上,采用可解释的强化学习方法,使得系统可以提供可追溯的决策依据,并为开发者提供对控制策略的更好理解。除此之外,结合安全机制的DRL模型也将在实践中得到更多关注,以避免由于决策错误而导致的系统失效或安全问题。5.3 多智能体系统与协作在一些复杂的智能控制任务中,单个智能体往往无法高效完成任务。这时,采用多智能体系统(Multi-Agent Systems, MAS)成为一种有效的解决方案。通过DRL,多个智能体可以相互协调、共享信息,并共同优化任务完成的效率。例如,在智能制造中,多个机器人需要在工厂环境中协作完成装配任务;在无人机群体控制中,不同的无人机通过协同工作完成对大范围区域的监测。这种多智能体协作不仅提高了任务完成的速度和准确性,还使得系统具有更强的鲁棒性和灵活性。5.4 跨领域迁移与泛化能力深度强化学习的泛化能力在面对未见过的环境或任务时,常常面临显著挑战。为了提升其在新任务上的表现,研究人员正在致力于跨领域迁移学习技术的研究。通过迁移学习,DRL模型能够将一个任务中学到的知识迁移到另一个相关任务中,从而加速新任务的学习过程。未来,DRL模型可能会更加关注如何在多个不同领域中高效迁移和共享知识。跨领域的迁移能力不仅可以降低训练成本,还能使得智能控制系统在更广泛的实际场景中得到应用。5.5 环境建模与仿真在许多智能控制任务中,实际环境的模拟和建模至关重要。传统的强化学习往往依赖于与环境的交互来获取经验,而这种交互在实际中往往是昂贵或有风险的。因此,如何通过仿真环境快速而高效地训练深度强化学习模型成为一个重要研究方向。未来,虚拟仿真环境将成为DRL模型训练的重要工具。通过与现实环境的对接,模拟与真实世界的差异,智能体能够在仿真中进行大量的训练,降低对现实环境交互的依赖。此外,随着生成对抗网络(GAN)等技术的进步,虚拟环境的生成和优化也将得到极大的提升,从而增强DRL在复杂环境中的应用。6. 深度强化学习在智能控制系统中的成功案例6.1 AlphaGo与AlphaZeroAlphaGo是深度强化学习在智能控制领域的经典案例。它成功地将DRL与蒙特卡罗树搜索(MCTS)相结合,能够在围棋这项复杂游戏中战胜人类世界冠军,标志着深度强化学习在策略优化和决策制定中的巨大潜力。之后,AlphaZero进一步提升了算法性能,突破了围棋、国际象棋和将棋的传统局限,展示了DRL在更加广泛领域中的应用能力。尽管AlphaGo和AlphaZero的应用主要集中在游戏领域,但其背后的技术方法对于智能控制系统中的决策制定提供了重要参考。这些算法的成功表明,DRL不仅能够处理复杂的、非线性的问题,还能够在面对大规模状态空间时展现出卓越的学习能力。6.2 无人驾驶汽车无人驾驶技术是DRL在智能控制领域的重要应用之一。通过深度强化学习,无人驾驶系统能够在复杂的交通环境中进行路径规划、障碍物避免以及交通信号识别等任务。例如,Waymo等公司使用基于DRL的算法来优化自动驾驶决策,帮助车辆在城市道路中进行安全驾驶。这些系统不仅依赖深度强化学习进行决策,而且通过不断地与环境进行交互来积累经验,从而提高其决策精度与安全性。尽管目前无人驾驶技术仍面临许多挑战,但DRL的应用无疑推动了该领域的发展。6.3 机器人控制与自动化在工业自动化领域,机器人控制系统广泛采用深度强化学习来提高生产线的效率。例如,波士顿动力的Spot机器人就使用了强化学习来进行环境适应,能够在复杂、动态的环境中完成如运输、巡逻等任务。深度强化学习通过使机器人能够自主学习控制策略,大大提高了机器人的适应能力和工作效率。这种方法还在机器人协作和集群控制中得到了应用,使得多个机器人可以协同完成任务。7. 未来研究方向与技术展望7.1 强化学习与模仿学习结合模仿学习(Imitation Learning)和深度强化学习的结合将成为未来智能控制系统中的一个重要发展趋势。模仿学习通过模仿人类专家的行为来加速学习过程,而强化学习则通过自主探索和试错来优化决策策略。两者结合能够提高智能体的学习效率,并在减少对环境交互的需求的同时,增强其表现能力。7.2 基于知识图谱的强化学习知识图谱(Knowledge Graph)为强化学习提供了丰富的先验知识,有助于智能体在训练过程中更好地理解环境和任务。通过将知识图谱与深度强化学习结合,智能体能够从历史数据中提取结构化知识,并将其应用于新的决策问题。这一方法能够在多个任务之间共享知识,减少重复训练,提升多任务学习的效果。7.3 量子强化学习量子计算的进步为深度强化学习提供了新的机遇。量子强化学习(Quantum Reinforcement Learning, QRL)结合了量子计算的优势,能够在解决复杂优化问题时提供更高效的算法。尽管这一领域仍处于研究阶段,但它代表了强化学习与量子计算结合的前景,未来可能为智能控制系统带来更多创新。结论深度强化学习(DRL)在智能控制系统中展现了广泛的应用潜力,尤其在无人驾驶、机器人控制、智能电网等领域。它通过模拟与环境的交互学习优化策略,为复杂、动态的控制任务提供了有效的解决方案。然而,深度强化学习在实际应用中面临一些挑战,包括高维状态空间、样本效率、探索与利用的平衡等问题。随着技术的不断发展,深度强化学习在智能控制中的未来发展方向也逐渐显现。包括自适应控制与实时决策、解释性与安全性、多智能体协作、跨领域迁移与泛化能力等方面都将成为重点研究方向。此外,环境建模与仿真技术、DRL的优化方法、模型集成等也将不断改进,以提升算法的实际应用效果。深度强化学习在智能控制系统中的成功案例,如AlphaGo、无人驾驶、机器人控制等,证明了其强大的学习与决策能力。未来,随着跨领域技术(如模仿学习、量子计算)的结合,DRL将在智能控制系统中发挥更加重要的作用,推动行业创新与进步。
-
人工智能论坛9月好文分享可解释AI在医疗诊断中的落地方案https://bbs.huaweicloud.com/forum/thread-0203194257533698156-1-1.html深度强化学习在机器人控制中的应用与改进https://bbs.huaweicloud.com/forum/thread-0208194257405636180-1-1.htmlAI在智能交通系统中的优化与调度研究https://bbs.huaweicloud.com/forum/thread-0203194257122513155-1-1.htmlAI在教育行业中的应用:智能学习助手与个性化教学https://bbs.huaweicloud.com/forum/thread-0208194256846812179-1-1.htmlAI在游戏开发中的应用:从自动化设计到玩家互动https://bbs.huaweicloud.com/forum/thread-0232194256758351152-1-1.html、基于机器学习的网络安全威胁检测系统https://bbs.huaweicloud.com/forum/thread-02127194256359514157-1-1.htmlAI在视频内容分析中的应用:从检测到生成https://bbs.huaweicloud.com/forum/thread-0243194255750773133-1-1.html智能家居中的AI技术:智能控制与自动化系统https://bbs.huaweicloud.com/forum/thread-0237194255668802160-1-1.htmlAI在智能语音识别与翻译中的应用进展https://bbs.huaweicloud.com/forum/thread-0251194255576718150-1-1.html深度学习在语音生成中的突破:语音合成与模仿https://bbs.huaweicloud.com/forum/thread-0232194255383379151-1-1.html基于AI的个性化广告推荐:从用户分析到广告投放https://bbs.huaweicloud.com/forum/thread-0243194255264430132-1-1.html人工智能在多个领域的广泛应用与发展人工智能(AI)技术在多个行业中的应用正在逐步改变传统模式,特别是在医疗、交通、教育、游戏开发、网络安全、视频分析等领域。通过深度学习、强化学习和可解释AI等技术的结合,AI不仅提高了操作效率,也推动了个性化服务的实现。在医疗领域,AI的可解释性成为提高诊断准确性和医生信任度的关键。深度强化学习在机器人控制中的应用使得机器人能够在复杂任务中实现更高的自适应性,提升了自动化操作的精度和灵活性。而在智能交通领域,AI优化了交通流量和调度系统,极大地减少了拥堵,提高了出行效率。教育领域通过智能学习助手的应用,实现了个性化教学,提高了学习效率,满足了不同学生的需求。而在游戏开发中,AI不仅能自动化生成游戏设计内容,还能改善玩家互动体验,使得游戏更加具有沉浸感。AI还在网络安全方面发挥了重要作用,通过机器学习检测潜在威胁,保护用户数据安全。此外,AI在视频内容分析中的应用,助力从内容检测到生成的各个环节,提高了内容创作的效率和质量。在智能家居和语音识别领域,AI技术为用户提供了更加智能、便捷的生活体验。总体来看,AI的应用正在各个领域内不断深入,并通过技术创新提升服务质量和用户体验。这些进展展示了AI作为一种革命性技术,如何推动各行各业的智能化,提升效率、降低成本、增强个性化服务,未来将持续影响和重塑我们的日常生活与工作方式。
-
M4oE模型的核心实现细节1. 架构设计M4oE模型基于Swin Transformer框架,将传统MLP层替换为多模态专家混合块(M4oE Block),每个块包含:模态专家网络:并行处理不同医学影像模态(如CT/MRI/PET)的专用子网络门控网络:通过softmax动态分配输入数据到各专家,权重计算采用模态感知的注意力机制特征调制层:对专家输出进行加权融合,实现跨模态特征互补2. 动态路由机制模态感知路由:门控网络根据输入数据的模态类型(如DICOM头信息)自动选择激活的专家组合类别对齐投影:输出层前插入可切换的线性投影头,解决不同模态标签维度不一致问题稀疏激活策略:仅激活与当前输入最相关的2-3个专家,计算量降低40%3. 训练策略两阶段训练:单模态预训练:各专家独立学习模态特定特征多模态微调:通过门控网络协调专家协作,优化跨模态特征融合损失函数:采用Dice Loss+Cross-Entropy的加权组合,平衡不同模态数据分布差异4. 性能优化硬件适配:通过专家并行化部署,在NVIDIA A100上实现3倍加速内存管理:采用梯度检查点技术,显存占用减少60%量化支持:支持INT8推理,模型体积压缩至原始大小的
-
BERT 的 MLM 任务实现步骤BERT 的 Masked Language Model (MLM) 任务通过以下流程实现,核心目标是让模型根据上下文预测被遮蔽的 token12:1. 输入文本预处理子词切分:使用 WordPiece 分词器将文本拆分为 token(如“unhappy” → “un” + “happy”)。特殊符号添加:在句子开头添加 [CLS] 标记,句子间用 [SEP] 分隔(若为多句任务)。2. Token 遮蔽策略遮蔽比例:随机选择输入序列中 15% 的 token 进行遮蔽遮蔽方式:80% 替换为 [MASK](如“I love [MASK]”)。10% 替换为随机 token(如“I love apple” → “I love banana”)。10% 保持不变(如“I love apple” → “I love apple”)。此设计增强模型鲁棒性,避免过拟合 [MASK]3. 模型训练目标预测被遮蔽词:模型需基于双向上下文(左右两侧信息)预测被遮蔽 token 的原始值。损失计算:仅计算被遮蔽 token 的交叉熵损失,忽略未遮蔽部分。4. 任务优化细节动态遮蔽:部分变体(如 RoBERTa)采用动态遮蔽(每次训练时重新随机遮蔽),避免静态遮蔽的过拟合问题长文本处理:若输入超过最大长度(如 512 tokens),需截断或分段处理。技术实现示例(伪代码)pythonCopy Code# 伪代码示例:MLM 任务数据生成 def mask_tokens(text, mask_ratio=0.15): tokens = tokenizer.tokenize(text) masked_indices = random.sample(range(len(tokens)), int(len(tokens) * mask_ratio)) for idx in masked_indices: if random.random() < 0.8: # 80% 替换为 [MASK] tokens[idx] = "[MASK]" elif random.random() < 0.9: # 10% 替换为随机词 tokens[idx] = random.choice(vocab) return tokens 与 GPT 的对比特性BERT (MLM)GPT (自回归)上下文双向(同时利用左右信息)单向(仅依赖左侧历史)遮蔽方式静态/动态遮蔽无遮蔽,逐词生成
-
1. AI开发平台ModelArts新功能2025年9月份发布了新功能,如下共4项。主要是支持CloudMatrix384超节点专属资源池、以及增强训练运维管理功能。序号功能名称功能描述相关文档1CloudMatrix384超节点资源配置、管理与调度基于CloudMatrix384超节点的ModelArts专属资源池支持推理任务在线部署单节点内多POD配置,支持逻辑子池动态使用资源1、单节点内多POD配置,CloudMatrix384超节点NPU资源使用率提升30%。2、通过逻辑子池动态调度调整资源,让不同作业在不同的时间段运行以提升资源利用率。管理Standard专属资源池的逻辑子池2新增训练平台故障检测和快恢能力对ModelArts的训练作业可靠性增强,提升检测、快恢、日志能力等能力,提高训练作业的可维护性1、新增作业详情中查看故障恢复与统计数据。2、新增作业运行中镜像拉取失败、存储挂载失败等异常事件的告警。3、新增作业日志自动转储,新增算子信息、内存信息等故障信息。查看训练作业事件3新增插件广场能力ModelArts平台新增插件广场能力,实现插件一站式汇聚,提供丰富插件资产,主要包含Device Plugin、kube-prometheus-stack、NodeLocal DNS Cache等插件,提升资源使用、运维等的能力,满足客户多种业务诉求。Lite Cluster插件概述4资源管理(轻量算力节点Lite Server)新增“节点任务中枢(NodeTaskHub)”插件ModelArts Lite server 新增“节点任务中枢(NodeTaskHub)”插件,支持昇腾软件升级、压测、故障诊断、系统配置等任务的下发,做到基础运维工作(驱动固件升级、系统配置等)快速闭环,故障定位周期最快由3天降为3小时,大幅提升故障定位效率;该能力仅适用昇腾机型(snt9b、snt9b23),已在贵阳一、华东二、乌兰察布一等Region上线,欢迎体验安装Lite Server AI插件2. 人工智能相关直播合集9月份的相关整理如下:HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢cid:link_4深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢。对于现在比较流行的的AI Agent、MCP有比较详细的介绍,包括和华为云serverless的结合应用。感兴趣的朋友值得一看!
-
9月份人工智能【FAQ合集】来了!有哪些好用的具身智能平台?如何在Linux系统上安装OBS桶?在markdown cell中输入latex公式,只能显示latex代码,不能渲染为公式。Wan2.2 适配遇到的error code 361001大模型靠概率来回答问题,那么怎么保证回答的准确?大语言模型如果靠的是单词下一个词的概率来回答,那么如果发现回答错误,怎么纠正?89% 的美国学生承认使用 AI 做作业!你们觉得 AI 对教育界而言是好还是不好?自然语言转SQL有哪些开源的产品,准确率咋样CPU和GPU设计上都有存储计算单元,那为啥因特尔追不过英伟达?代理问题安装问题有哪些好用图像拼接算法?模型的输入尺寸与模型的参数量有关系吗?有哪些好用的视频动作识别算法?扩散模型和生成对抗网络哪个好?为什么AI模型大都部署在GPU、NPU上,CPU不是也能跑吗?为什么AI模型大都部署在GPU、NPU上,CPU不是也能跑吗?AI大模型是如何理解图像的?用干净数据训练出来的模型,为什么上线后总是翻车?应该怎么解决?什么是长尾类别?什么是模型量化、剪枝和蒸馏?什么是模型的全量微调?有哪些图像增强的方法?9月份问题覆盖工具使用、模型机制、优化方法、硬件差异及社会影响,聚焦技术要点。
-
可解释AI在医疗诊断中的落地方案引言随着人工智能(AI)在医疗领域的广泛应用,AI辅助诊断已成为提高诊疗效率和准确性的关键手段。然而,传统深度学习模型往往被视为“黑箱”,难以解释其决策逻辑。在医疗场景中,医生和患者对AI结果的可解释性有严格要求。可解释AI(Explainable AI, XAI)技术能够提供透明、可信的模型解释,辅助临床决策,提高医疗AI的落地可行性。可解释AI的重要性提升临床信任医生在诊断中依赖经验和数据证据。可解释AI通过展示模型决策依据(如特征重要性、注意力热图),增强医生对AI预测结果的信任,从而更容易在临床中采纳。支持法规合规医疗AI应用需遵守相关法规,如数据保护和可解释性要求。XAI技术为模型提供决策可追踪性,便于监管机构审查和合规。辅助错误分析当模型预测错误时,可解释AI能帮助开发者和医生快速定位原因,优化模型和诊疗流程,降低潜在风险。可解释AI技术方法基于模型的可解释方法适用于本身具有可解释性的模型,例如决策树、线性回归等。这类模型天然易于理解,但在复杂医疗数据场景下可能性能受限。基于后置解释的方法对复杂黑箱模型(如深度神经网络)进行解释,常用方法包括:LIME(Local Interpretable Model-agnostic Explanations):通过局部线性近似解释单个样本的预测。SHAP(SHapley Additive exPlanations):基于博弈论分配特征贡献度,解释全局和局部模型行为。Grad-CAM(Gradient-weighted Class Activation Mapping):在图像模型中生成热图,展示关键区域。XAI在医疗诊断中的实战案例胸部X光疾病检测我们以胸部X光图像的多疾病分类为例,使用ResNet模型结合Grad-CAM生成可解释热图。import torch import torch.nn as nn from torchvision import models, transforms from PIL import Image import matplotlib.pyplot as plt import numpy as np # 加载预训练ResNet模型 model = models.resnet18(pretrained=True) model.eval() # 图像预处理 transform = transforms.Compose([ transforms.Resize((224,224)), transforms.ToTensor(), transforms.Normalize([0.485,0.456,0.406], [0.229,0.224,0.225]) ]) img = Image.open("chest_xray_sample.jpg").convert('RGB') input_tensor = transform(img).unsqueeze(0) # 前向传播 output = model(input_tensor) pred_class = output.argmax(dim=1) # Grad-CAM可解释性 def grad_cam(model, input_tensor, target_class): features = None gradients = None def save_features(module, input, output): nonlocal features features = output def save_gradients(module, grad_input, grad_output): nonlocal gradients gradients = grad_output[0] h = model.layer4.register_forward_hook(save_features) g = model.layer4.register_backward_hook(save_gradients) model.zero_grad() output = model(input_tensor) loss = output[0, target_class] loss.backward() weights = torch.mean(gradients, dim=(2,3), keepdim=True) cam = torch.sum(weights * features, dim=1).squeeze().detach().numpy() cam = np.maximum(cam, 0) cam = cam / cam.max() h.remove() g.remove() return cam cam = grad_cam(model, input_tensor, pred_class.item()) # 可视化热图 plt.imshow(img) plt.imshow(cam, cmap='jet', alpha=0.5) plt.axis('off') plt.show() SHAP在电子病历预测中的应用import shap import xgboost as xgb import pandas as pd # 模拟电子病历数据 X = pd.DataFrame({ 'age': [45, 60, 30, 50], 'blood_pressure': [120, 140, 110, 130], 'cholesterol': [200, 250, 180, 220] }) y = [0,1,0,1] # 0:健康, 1:疾病 # 训练XGBoost分类模型 model = xgb.XGBClassifier() model.fit(X, y) # SHAP解释 explainer = shap.Explainer(model, X) shap_values = explainer(X) # 可视化每个特征贡献 shap.plots.bar(shap_values) 可解释AI落地方案设计多层次解释:结合全局解释(模型整体特征重要性)与局部解释(单样本预测原因)。临床可视化界面:将热图、特征贡献、决策路径以可视化形式展示,便于医生理解。反馈机制:将医生反馈用于模型迭代优化,形成闭环学习系统。安全与隐私保护:在可解释AI过程中,确保敏感医疗数据脱敏和访问控制。优势与挑战优势提升医生信任,促进AI辅助诊疗落地。提供模型可追踪性,符合医疗法规要求。支持模型错误分析和优化,提高诊断准确率。挑战高维医疗数据解释难度大,模型复杂性与可解释性存在权衡。可解释方法需兼顾实时性,不能影响诊断效率。医疗场景多样化,通用解释方法仍有限。结语可解释AI在医疗诊断中的落地不仅提升了AI模型的可信度和透明度,也为医生提供了决策支持。通过结合Grad-CAM、SHAP等可解释技术,构建多层次解释和可视化界面,医疗AI能够更安全、可靠地服务临床。随着XAI技术和医疗数据的发展,可解释AI将在医疗诊断中发挥越来越核心的作用,为智慧医疗落地提供坚实支撑。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签