Zilliz-Skill:为向量数据库构建可插拔AI技能库的实战指南

news2026/5/11 2:46:31
1. 项目概述一个为向量数据库赋能的技能库最近在折腾RAG检索增强生成应用发现向量数据库虽然解决了海量非结构化数据的存储和检索问题但要让一个应用真正“智能”起来光有向量搜索是远远不够的。比如我想让我的聊天机器人不仅能回答问题还能根据对话历史推荐相关文档或者自动对用户上传的图片进行打标分类。这些功能都需要在向量数据库的基础上叠加一层“智能处理”的能力。就在我四处寻找现成的轮子时发现了Zilliz开源的zilliztech/zilliz-skill项目。简单来说zilliz-skill是一个专门为 Milvus以及更广泛的向量数据库生态设计的“技能库”或“工具包”。你可以把它理解为一个预置了多种AI能力的插件集合。它不替代你的向量数据库而是作为其强大的“外挂”让你能够以极低的代码成本为你的应用注入诸如文本重写、查询理解、多模态数据处理、结果后处理等高级功能。对于任何正在构建基于向量检索的AI应用如智能客服、知识库问答、内容推荐系统的开发者来说这个项目就像是一个开箱即用的“瑞士军刀”能帮你快速跨越从“能检索”到“好用、智能”之间的鸿沟。2. 核心设计思路构建可插拔的AI处理流水线2.1 为什么需要“技能”在传统的应用开发中我们习惯于编写固定的业务逻辑代码。但在AI应用特别是RAG场景下需求多变且复杂。例如用户的查询可能是模糊的、口语化的直接用于向量搜索效果很差这就需要“查询重写”技能检索出来的文档可能很长需要“摘要”技能来提炼核心内容或者我们想对存入的图片自动生成描述文本这就需要“视觉描述”技能。zilliz-skill的设计哲学正是将这些常见的AI处理任务抽象成一个个独立的、可配置的“技能”Skill。每个技能都是一个功能单元负责完成一项特定的AI处理任务。它们通过标准化的接口进行输入输出从而可以像乐高积木一样被灵活地组合成一条处理流水线Pipeline。2.2 架构解析技能、链与执行器项目的核心架构非常清晰主要包含三个层次技能Skill最基本的执行单元。每个技能封装了一个具体的AI能力。例如QueryRewriteSkill: 使用大语言模型LLM对用户原始查询进行改写、扩展或精炼使其更适合向量检索。SummarySkill: 为长文本生成简洁的摘要。OCRToTextSkill: 从图片中提取文字信息。MultiModalEmbeddingSkill: 为文本或图像生成统一的向量表示需要多模态模型支持。链Chain多个技能的有序组合。链定义了数据处理的流程。例如一个“文档预处理链”可能包含TextSplitSkill文本分割 -SummarySkill生成摘要 -EmbeddingSkill生成向量。链让你能够将多个步骤串联起来实现复杂的处理逻辑。执行器Executor负责运行技能或链。它处理技能的初始化、输入数据的传递、输出结果的收集以及错误处理。执行器是连接你的应用程序和技能库的桥梁。这种设计带来了巨大的灵活性。你可以根据实际场景从技能库中挑选合适的技能快速组装出符合你业务需求的处理流程而无需从零开始调用各种AI模型的API、处理复杂的参数和格式转换。2.3 与Milvus的深度集成作为Zilliz旗下的项目zilliz-skill与Milvus向量数据库的集成是其一大亮点。这种集成不是简单的客户端调用而是深度的流程内嵌。作为数据摄入的增强器在将文档灌入Milvus之前你可以使用技能链对文档进行预处理。比如自动摘要后再嵌入这样存储的向量既能代表细节也能反映主旨提升后续检索的召回质量。作为查询端的智能网关在用户查询到达Milvus之前可以通过QueryRewriteSkill等技能优化查询。在Milvus返回结果后又可以通过RerankSkill重排技能使用更精细的交叉编码器模型对Top-K结果进行重新排序提升精度。统一配置与管理技能的执行可以依托Milvus生态的工具如MilvusCLI或未来可能的图形化界面进行配置使得整个AI数据处理流水线的管理更加集中和便捷。注意虽然与Milvus集成紧密但zilliz-skill的技能本身是模型和算法抽象的理论上其输出文本、向量等可以对接任何支持相应格式的向量数据库或系统具备良好的可移植性。3. 核心技能详解与实操配置3.1 文本处理类技能让查询和文档更“懂”搜索这是最常用的一类技能旨在优化文本信息以适应向量检索。1. QueryRewriteSkill查询重写技能功能将用户简短、模糊、口语化的查询改写成更全面、更正式、包含潜在同义词或相关概念的搜索查询。原理通常提示Prompt一个大语言模型如GPT-4, Claude, 或本地部署的Llama 3指令其扮演“搜索查询优化专家”的角色。实操配置示例YAML格式skills: - name: query_rewriter type: QueryRewriteSkill params: model: “gpt-4” # 指定使用的LLM api_key: ${OPENAI_API_KEY} # 建议从环境变量读取 prompt_template: | 你是一个专业的搜索引擎优化助手。请将以下用户问题改写为2-3个更全面、更适合用于向量数据库检索的查询语句。 原问题{{input}} 改写后的查询 temperature: 0.3 # 较低的温度使输出更稳定心得prompt_template的设计是关键。清晰的指令和示例Few-shot能极大提升改写质量。例如要求模型“考虑技术术语的同义词”或“将开放式问题转化为陈述性搜索点”。2. SummarySkill摘要技能功能为长文档生成简洁摘要。在RAG中可以为每个检索出的文档块生成一个摘要让LLM在生成最终答案前快速把握文档核心或直接将摘要存入向量库作为“元数据”辅助检索。实操要点摘要的长度需要根据你的文档块Chunk大小和业务需求谨慎设定。对于学术论文可能需要较长的摘要对于新闻段落一两句话即可。skills: - name: doc_summarizer type: SummarySkill params: model: “gpt-3.5-turbo” max_summary_length: 150 # 控制摘要token数3.2 多模态与预处理技能打通不同数据源1. OCRToTextSkill光学字符识别技能功能从扫描的PDF、图片中提取文字。这是构建企业知识库的关键一步能将非结构化的图像资料转化为可检索的文本。工具选型项目可能集成Tesseract、PaddleOCR或商业OCR API。PaddleOCR对中文支持好Tesseract更通用。skills: - name: invoice_ocr type: OCRToTextSkill params: engine: “paddleocr” # 指定OCR引擎 lang: “ch” # 指定语言中文2. MultiModalEmbeddingSkill多模态嵌入技能功能为文本和图像生成同一个向量空间下的嵌入Embedding。这意味着你可以用文字搜索图片或者用图片搜索相关文字描述。核心依赖于CLIP、BLIP等多模态模型。配置时需要指定模型名称和维度。skills: - name: mm_embedder type: MultiModalEmbeddingSkill params: model_name: “openai/clip-vit-base-patch32” embedding_dim: 512 device: “cuda:0” # 指定运行设备GPU加速注意事项多模态模型通常较大需考虑计算资源。对于生产环境可能需要使用模型推理服务如Triton Inference Server而非直接加载。3.3 后处理与增强技能优化检索结果1. RerankSkill重排技能功能对向量检索返回的粗排结果例如Top 100进行精排。使用计算量更大、但精度更高的交叉编码器Cross-Encoder模型如bge-reranker计算查询与每个文档的相关性分数并重新排序。价值能显著提升RAG最终答案的准确性是解决“语义相似但内容不相关”问题的利器。配置skills: - name: result_reranker type: RerankSkill params: model: “BAAI/bge-reranker-large” top_n: 10 # 对粗排的Top 100进行重排返回新的Top 102. HyDERerankSkill混合检索重排技能功能这是一个更高级的技能它可能融合了来自向量检索稠密检索和传统关键词检索稀疏检索如BM25的分数进行混合重排。这种方法能结合语义匹配和精确词汇匹配的优点效果往往比单一方法更好。实操思考使用此技能需要你的系统同时具备向量检索和全文检索的能力。zilliz-skill可能提供了集成这些分数并进行加权融合的逻辑。4. 从零开始构建一个智能文档问答处理链让我们通过一个完整的例子看看如何利用zilliz-skill构建一个从文档上传到智能问答的全流程。4.1 场景定义与技能链设计场景用户上传一份混合了文字和扫描图片的PDF产品手册希望后续能通过自然语言提问获取手册中的信息。处理链设计数据摄入端文档解析与拆分提取PDF中的文本和图片。OCR处理对图片部分进行文字识别。文本清洗与合并将原生文本和OCR文本合并并按语义分割成适中的片段Chunks。摘要生成为每个文本片段生成一个简短摘要。向量化为每个文本片段生成向量嵌入。存储将向量、原始文本、摘要一并存入Milvus集合Collection。处理链设计查询端查询重写优化用户原始问题。向量检索使用重写后的查询在Milvus中搜索。结果重排对检索结果进行精排。上下文构建与答案生成将重排后的Top结果及其摘要构建为上下文发送给LLM生成最终答案。4.2 配置与实现示例我们主要关注数据摄入链的zilliz-skill配置。假设我们已有一个PDF解析器能将文档拆分为文本块和图像块列表。定义技能链配置文件 (ingestion_pipeline.yaml)name: “product_manual_ingestion_pipeline” description: “处理产品手册PDF提取文本、OCR、分块、摘要并嵌入” skills: # 假设第一个技能是外部解析器这里我们从OCR开始 - name: ocr_processor type: OCRToTextSkill params: engine: “paddleocr” lang: “ench” # 中英文混合 - name: text_cleaner type: TextProcessingSkill # 假设存在一个文本清洗技能用于合并、去噪 params: remove_extra_whitespace: true remove_special_chars: false - name: text_splitter type: TextSplitSkill params: splitter: “recursive_character” chunk_size: 500 chunk_overlap: 50 - name: summarizer type: SummarySkill params: model: “gpt-3.5-turbo-16k” # 使用支持长上下文的模型 max_summary_length: 100 - name: embedder type: EmbeddingSkill # 或者 MultiModalEmbeddingSkill params: model_name: “BAAI/bge-large-zh-v1.5” # 选用优秀的中文嵌入模型 embedding_dim: 1024 normalize_embeddings: true # 归一化向量有利于余弦相似度计算 # 定义执行流程 chain: - ocr_processor - text_cleaner - text_splitter - summarizer - embedderPython代码驱动示例import yaml from zilliz_skill import PipelineExecutor import pymilvus # 1. 加载技能链配置 with open(‘ingestion_pipeline.yaml’, ‘r’) as f: pipeline_config yaml.safe_load(f) # 2. 初始化执行器 executor PipelineExecutor.from_config(pipeline_config) # 3. 准备输入数据 (假设doc_elements是解析后的文本和图片块列表) # 每个元素可能是 {‘type’: ‘text’, ‘content’: ‘…’} 或 {‘type’: ‘image’, ‘content’: image_data} doc_elements […] # 从PDF解析而来 # 4. 执行处理链 processed_results [] for elem in doc_elements: # 执行器会根据技能链定义自动流转数据 result executor.execute(elem) # result 应包含: {‘original_content’: …, ‘cleaned_text’: …, ‘chunks’: […], ‘summaries’: […], ‘embeddings’: […]} processed_results.append(result) # 5. 连接Milvus并插入数据 milvus_conn pymilvus.connections.connect(host‘localhost’, port‘19530’) collection pymilvus.Collection(“product_manual”) data_to_insert [] for res in processed_results: for chunk, summary, embedding in zip(res[‘chunks’], res[‘summaries’], res[‘embeddings’]): data_to_insert.append({ “chunk_text”: chunk, “summary”: summary, “embedding”: embedding }) # 批量插入 insert_result collection.insert(data_to_insert) collection.flush() print(f”成功插入 {len(data_to_insert)} 条数据。”)4.3 查询端技能链的集成查询端的技能链可以嵌入到你的RAG应用服务中例如在FastAPI接口中from fastapi import FastAPI from pydantic import BaseModel from zilliz_skill import PipelineExecutor import pymilvus app FastAPI() # 加载查询处理链 with open(‘query_pipeline.yaml’, ‘r’) as f: query_pipeline_config yaml.safe_load(f) query_executor PipelineExecutor.from_config(query_pipeline_config) class QueryRequest(BaseModel): question: str app.post(“/ask”) async def ask_question(request: QueryRequest): # 1. 使用技能链处理查询 processed_query query_executor.execute({“input”: request.question}) # processed_query 可能包含: {‘original_question’: …, ‘rewritten_queries’: […], ‘query_embedding’: …} # 2. 进行向量检索 (这里简化假设取第一个重写查询的向量) search_params {“metric_type”: “IP”, “params”: {“nprobe”: 10}} results collection.search( data[processed_query[‘query_embedding’][0]], anns_field“embedding”, paramsearch_params, limit10, output_fields[“chunk_text”, “summary”] ) # 3. 构建LLM上下文 context “\n\n”.join([hit.entity.get(‘chunk_text’) for hit in results[0]]) # 4. 调用LLM生成答案 (这里使用伪代码) final_answer call_llm(f”基于以下上下文回答问题\n{context}\n\n问题{request.question}”) return {“answer”: final_answer, “rewritten_query”: processed_query.get(‘rewritten_queries’)}5. 实战避坑指南与性能调优在实际部署和使用zilliz-skill的过程中会遇到一些典型问题。以下是我总结的一些经验和解决方案。5.1 常见问题与排查问题现象可能原因排查步骤与解决方案OCR技能识别率低1. 图片质量差分辨率低、倾斜、阴影2. 语言配置错误3. 特定字体或排版识别困难1.预处理图片在OCR前增加图像预处理步骤如使用OpenCV进行二值化、去噪、纠偏。可以创建一个自定义的ImagePreprocessSkill。2.确认语言包确保lang参数正确如’ch’、’en’或’chen’。3.尝试不同引擎在配置中切换engine比如从tesseract换到paddleocr后者对复杂中文场景通常更优。查询重写效果不理想偏离原意1. LLM的Prompt指令不清晰2. 温度Temperature参数过高导致发散3. 使用的LLM能力不足1.优化Prompt在prompt_template中提供明确的角色、任务和示例。例如“给定一个查询生成一个更正式的搜索查询。示例输入‘苹果手机怎么截图’输出‘iPhone 屏幕截图操作方法’”。2.降低温度将temperature设为0.1-0.3使输出更确定。3.升级模型尝试更强大的模型如从gpt-3.5-turbo升级到gpt-4。嵌入技能速度慢成为流水线瓶颈1. 嵌入模型过大2. 未使用批处理3. 在CPU上运行1.模型选型权衡效果与速度。对于中文BAAI/bge-small-zh比bge-large-zh快很多效果仍不错。2.启用批处理检查技能配置或代码确保是批量文本送入模型而非单条循环。3.使用GPU确保device参数设置为’cuda’并确认CUDA环境正常。技能链执行顺序错误或数据格式不对1. 技能链YAML配置中chain顺序错误2. 上一个技能的输出格式与下一个技能的输入预期不匹配1.仔细检查YAML确认chain列表中的技能名称与定义的skills部分完全一致且顺序符合逻辑。2.打印中间结果在开发时可以修改执行器或添加日志技能打印每个技能处理后的数据格式确保流转顺畅。与Milvus集成时插入数据失败1. 向量维度不匹配2. 集合Schema未包含技能生成的所有字段如summary1.核对维度确保EmbeddingSkill中embedding_dim的值与Milvus集合中向量字段定义的维度完全相同。2.扩展Schema在设计Milvus集合时提前规划好需要存储的元数据字段chunk_text,summary,source_file等并在插入数据时提供所有字段。5.2 性能优化与进阶技巧异步化处理对于I/O密集型技能如调用远程LLM API、OCR服务强烈建议使用异步模式。你可以用asyncio和aiohttp封装技能的execute方法或者在技能链执行器中实现异步调度这能极大提升流水线的整体吞吐量。缓存策略嵌入缓存相同的文本重复计算嵌入是巨大的浪费。可以引入一个简单的缓存层如使用Redis或diskcache以文本内容的哈希值为键存储计算好的向量。在EmbeddingSkill执行前先查询缓存。LLM结果缓存对于重写、摘要等LLM技能如果输入文本相同输出也相同。同样可以缓存尤其适用于文档预处理阶段。技能粒度与自定义zilliz-skill提供的技能是通用型的。在复杂业务中你可能需要更定制化的技能。最好的方式是继承基础技能类创建你自己的技能。例如创建一个LegalQueryRewriteSkill其中包含专门针对法律领域术语优化的Prompt。from zilliz_skill import BaseSkill class MyCustomSkill(BaseSkill): def __init__(self, config): super().__init__(config) # 你的初始化代码 self.my_param config.get(‘my_param’, ‘default’) def execute(self, input_data): # 你的处理逻辑 processed_data do_something(input_data, self.my_param) return processed_data然后在YAML配置中通过type: my_module.MyCustomSkill引用它。监控与日志在生产环境务必为每个技能添加详细的日志记录输入、输出、耗时、错误。这有助于快速定位故障和性能瓶颈。可以考虑使用像Prometheus这样的工具来暴露技能执行的指标如延迟、调用次数、错误率。资源隔离与弹性将计算密集型的技能如嵌入、重排部署到独立的、可伸缩的服务中如使用Triton Inference Server或Ray Serve而不是与主应用进程耦合。这样可以根据负载动态扩缩容提高系统的稳定性和资源利用率。zilliz-skill项目为基于向量数据库的AI应用开发提供了一个高层次的、可组合的抽象层。它把开发者从繁琐的模型API调用和数据处理代码中解放出来让我们能更专注于业务逻辑和流程设计。虽然项目可能还在不断演进中但其设计理念已经指明了方向未来的AI应用开发将是“技能”的编排与组装。

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