用于遥测、缺陷图像和 RCA 报告的一个平台。使用多模态搜索更快地找到根本原因。
使用案例: 人工智能
行业: 制造与运动
产品和工具: MongoDB Atlas、 MongoDB Atlas Vector Search、 MongoDB时间序列集合
合作伙伴: Amazon Bedrock、 Amazon Web Services、LangChain
解决方案概述
半导体制造会在断开连接的系统中生成大量数据。发生偏移时,您必须手动关联传感器遥测、缺陷图像和历史 RCA 报告,以找到问题根源。此进程需要数小时,每小时的计划外停机造成的损失高达 1 万美元。
代理AI系统结合了法学硕士、专用工具和持久内存来自主调查故障。通过使用多模态搜索将遥测、图像和知识统一在单个平台中,AI代理可以更快地找到根本原因,而您可以专注于解决问题。
该解决方案专注于晶圆厂中的偏移检测和根本原因分析。您可以在不同的制造场景中应用相同的架构。
为了构建此解决方案,代理系统需要根据上下文及时访问权限数据。传统的晶圆厂 IT 系统将遥测、图像和知识存储在单独的数据库中,这使得代理很难分析完整的上下文。
MongoDB Atlas为时间序列、向量和文档数据提供原生支持。对于半导体代理AI, MongoDB Atlas可实现以下功能:
传感器遥测摄取:此功能允许您使用专门的时间序列集合实时摄取大量传感器数据。
多模态嵌入存储:该平台可存储图像和文本嵌入,以便于对晶圆缺陷进行高级语义搜索。
代理内存持久性:此功能维护会话状态和代理历史记录,以确保完全可审核性和恢复会话的能力。
低延迟可扩展性:该架构可动态扩展,以处理海量流媒体数据负载,同时保持高性能。
借助MongoDB Atlas,您可以统一工业数据和代理AI功能,从被动式故障排除转变为自动调查。
参考架构
使用此解决方案,可使用MongoDB Atlas、LangGraph 和Amazon Bedrock构建用于优化半导体良率的代理AI系统。这些技术共同实现了跨多模态数据的偏移检测、根本原因分析和缺陷模式匹配的自动化。该解决方案的工作原理如下:
MongoDB Atlas充当统一代理数据层。它存储遥测、警报、缺陷图像、历史报告和代理内存。 Atlas还为代理提供了向量搜索、混合搜索和聚合工具。
LangGraph 通过持久状态和工具协调来协调根本原因代理工作流程。
Amazon Bedrock 提供的 LLM (Claude) 使代理能够推理、分析传感器相关性并生成结构化 RCA 报告。
Voyage AI生成多模态嵌入,将晶圆缺陷图像与文本上下文相结合,以进行语义相似性搜索。
该架构遵循实时事件驱动模式。机器遥测数据流入MongoDB Atlas,其中偏移检测系统使用变更流监控传感器流。当系统违反阈值时,它会创建警报并启动根本原因代理。根本原因代理使用三种专用工具进行调查:
查询晶圆缺陷:执行多模向量搜索以查找类似的历史缺陷模式。
查询历史知识:使用语义嵌入搜索 RCA 报告和技术文档。
查询时间序列数据:使用聚合框架分析偏移窗口周围的传感器遥测数据。
用户通过实时监控仪表盘与系统交互。仪表盘显示实时警报、传感器图表和晶圆缺陷。您还可以直接与根本原因代理聊天,调查事件或提出后续问题。此架构中的每个工具都直接查询MongoDB Atlas 。代理的内存和会话状态会在检查点保留,从而实现Atlas 审核跟踪和会话恢复。
图 1。使用MongoDB进行代理良率分析
晶圆缺陷的多模态嵌入
该解决方案使用 Voyage AI 的 voyage-multimodal-3 模型生成将晶圆缺陷图像与文本上下文相结合的嵌入。这样就可以跨视觉模式和描述性文本进行语义相似性搜索。
嵌入服务
EmbeddingService 类使用 Voyage AI客户端处理嵌入生成:
import voyageai from PIL import Image import base64 import io class EmbeddingService: def __init__(self): self.voyage_client = voyageai.Client(api_key=os.getenv("VOYAGE_API_KEY")) self.multimodal_model = "voyage-multimodal-3" self.embedding_dimension = 1024 async def generate_image_embedding( self, image_data: str, text_context: str = None ) -> List[float]: """Generate multimodal embedding from image and text.""" # Decode base64 image to PIL Image image_bytes = base64.b64decode(image_data) pil_image = Image.open(io.BytesIO(image_bytes)) # Combine text and image inputs inputs = [] if text_context: inputs.append(text_context) inputs.append(pil_image) # Generate embedding result = self.voyage_client.multimodal_embed( inputs=[inputs], model=self.multimodal_model, input_type="document" ) return result.embeddings[0]
处理晶圆缺陷
对于每个晶圆缺陷文档,管道执行以下操作:
根据可观察到的特征(晶圆ID、缺陷模式、设备、良率、晶圆描述)构建文本内容。
从Amazon S3 获取墨迹地图图像。
结合两个输入生成多模态嵌入。
将 1024 维向量存储在
embedding字段中。
# Build text from observable facts only (not suspected causes) text_content = f"Wafer ID: {wafer['wafer_id']} " text_content += f"Defect pattern: {wafer['defect_summary']['defect_pattern']} " text_content += f"Equipment: {wafer['process_context']['equipment_used'][0]} " text_content += f"Yield: {wafer['defect_summary']['yield_percentage']}%" # Get image data image_data = wafer["ink_map"]["thumbnail_base64"] # Generate multimodal embedding embedding = await embedding_service.generate_image_embedding( image_data=image_data, text_context=text_content ) # Store in document await db.wafer_defects.update_one( {"_id": wafer["_id"]}, {"$set": { "embedding": embedding, "embedding_type": "multimodal", "embedding_model": "voyage-multimodal-3" }} )
向量搜索索引
在MongoDB Atlas中的 wafer_defects集合上创建向量搜索索引:
{ "name": "wafer_defects_vector_search", "type": "vectorSearch", "definition": { "fields": [ { "path": "embedding", "type": "vector", "numDimensions": 1024, "similarity": "cosine" } ] } }
这样,即使新晶圆没有已知的根本原因,根本原因代理也能通过向量搜索找到类似的历史缺陷。
代理工具
工具是特定于域的函数,启用代理能够与MongoDB Atlas交互。它们查询传感器数据、执行语义搜索并检索历史模式。每个工具都会返回结构化数据,LLM 会分析这些数据以生成 RCA 报告。
以下代码展示了如何使用 LangChain 的 @tool 装饰器为根本原因代理注册工具。在此示例中,该工具使用向量搜索来查找相似的晶圆缺陷模式。
from langchain_core.tools import tool async def query_wafer_info( wafer_id: str, include_similar_patterns: bool = True, similarity_limit: int = 3 ) -> Dict[str, Any]: """ Get wafer defect details and find similar historical patterns. Returns the wafer data plus similar past defects with known root causes. """ db = _get_db() wafer = await db.wafer_defects.find_one({"wafer_id": wafer_id}) if not wafer: return {"error": f"Wafer {wafer_id} not found"} similar_patterns = None if include_similar_patterns and "embedding" in wafer: pipeline = [ { "$vectorSearch": { "index": "wafer_defects_vector_index", "path": "embedding", "queryVector": wafer["embedding"], "numCandidates": 100, "limit": similarity_limit + 1 } }, {"$match": {"wafer_id": {"$ne": wafer_id}}}, {"$addFields": {"similarity_score": {"$meta": "vectorSearchScore"}}}, {"$limit": similarity_limit} ] results = await db.wafer_defects.aggregate(pipeline).to_list(length=None) similar_patterns = [ { "wafer_id": r.get("wafer_id"), "description": r.get("description"), "root_cause": r.get("root_cause"), "similarity_score": round(r.get("similarity_score", 0), 4) } for r in results ] return { "wafer": wafer, "similar_historical_patterns": similar_patterns } # Tool registry TOOLS = [query_alerts, query_wafer_info, query_time_series_data, vector_search_knowledge_base]
根本原因代理使用以下工具来调查偏移:
query_alerts检索按设备、严重性或时间窗口筛选的近期警报。
返回违规详细信息、受影响的晶圆和源传感器数据。
query_wafer_info获取晶圆缺陷详细信息,包括良率、缺陷模式和严重性。
执行多模态向量搜索,以查找具有已知根本原因的类似历史缺陷。
query_time_series_data查询特定时间窗口周围的传感器遥测数据。
返回聚合统计信息(最小值、最大值、平均值)以减少令牌使用量。
识别与缺陷事件相关的传感器异常。
vector_search_knowledge_base使用语义嵌入搜索 RCA 历史报告和技术文档。
返回包含标题、根本原因和纠正措施的匹配文档。
帮助代理参考过去类似故障的解决方案。
您可以扩展此工具集以匹配您工厂的工艺。示例,添加用于查询设备维护日志、验证配方参数或检索操作符轮班记录的工具。
代理记忆
为了使智能体有效工作,需要内存来存储上下文和推理步骤。此功能使代理能够:
保持调查的连续性。
回想一下之前的步骤和工具输出。
在用户交互中构建上下文。
在此架构中, MongoDB Atlas存储所有代理内存。内存由以下类型组成:
短期记忆:存储代理进行调查时的中间状态。此内存可确保在进程中断时可以恢复进程而不会丢失进度。以下集合存储此类内存:
checkpoints:捕获每个推理步骤的代理状态。checkpoint_writes:记录工具调用及其输出。
长期记忆:存储为当前调查提供信息的历史数据。助手使用向量搜索来检索此数据,确保历史上下文驱动推理。集合包括:
wafer_defects:具有用于相似性搜索的多模态嵌入的晶圆检测数据。historical_knowledge:RCA 报告、技术文档和部落知识。alerts:包含违规详细信息和源数据的活动和已解决的警报。process_sensor_ts:用于相关性分析的时间序列传感器遥测。
要配置短期记忆,请使用 LangGraph 中的 MongoDBSaver 类。此类将代理进度写入 checkpoints 集合,如下所示:
from langgraph.checkpoint.mongodb import MongoDBSaver from pymongo import MongoClient mongo_client = MongoClient(os.getenv("MONGODB_URI")) checkpointer = MongoDBSaver(mongo_client, "smf-yield-defect")
此设置将为根本原因代理启用内存和容错功能。
代理状态图
状态图表将工作流建模为节点和边。每个节点代表一个推理步骤、工具调用或检查点。边定义了这些步骤之间的转换。状态图使工作流程变得明确、可重复且具有弹性。
在此解决方案中,LangGraph 使状态图表能够协调根本原因代理及其工具。代理遵循 ReAct(推理 + 执行)模式:
原因:LLM 分析当前状态并决定下一步动作。
行动:代理调用工具从MongoDB检索数据。
观察:代理处理工具输出并更新其推理。
重复:继续循环,直到代理获得足够的证据。
此架构可确保以下功能:
代理可以根据结果进行分支,例如找到相似模式与未找到匹配项。
每个步骤都会自动写入和读取内存。
工程师可以恢复对话或Atlas 审核推理链。
以下代码使用MongoDB检查点功能构建一个 ReAct代理:
from langgraph.prebuilt import create_react_agent from langchain_aws import ChatBedrock async def create_rca_agent(): """Create LangGraph agent with MongoDB checkpointing.""" # Initialize LLM llm = ChatBedrock( model_id="anthropic.claude-3-5-sonnet-20241022-v2:0", region_name=os.getenv("AWS_REGION", "us-east-1") ) # Initialize MongoDB checkpointer mongo_client = MongoClient(os.getenv("MONGODB_URI")) checkpointer = MongoDBSaver(mongo_client, "smf-yield-defect") # System prompt system_prompt = """You are an expert semiconductor yield engineer. When investigating alerts: 1. First, query the alert details 2. Get wafer defect information and similar historical patterns 3. Query sensor data around the alert time 4. Search the knowledge base for similar RCA reports 5. Synthesize findings into a structured root cause analysis Always cite evidence from the tools.""" # Create agent agent = create_react_agent( model=llm, tools=TOOLS, checkpointer=checkpointer, prompt=system_prompt ) return agent
通过此设置,您可以跟踪、恢复和调试整个调查工作流程。
端到端工作流程
下面介绍系统如何处理偏移:
您可以使用以下功能扩展和自定义此工作流程:
自动修复:根据 RCA 发现触发设备隔离性或配方调整。
预测性警报:使用历史模式在违反阈值之前发出警告。
多工具关联:添加工具以查询配方参数、腔室日志或维护计划。
由于工具、内存和图表编排是模块化的,因此您可以在不中断现有工作流程的情况下添加新功能。
数据模型方法
半导体良率优化系统依赖于范围的数据,包括:
高频传感器遥测
晶圆检测图像和缺陷模式
历史 RCA 报告和部落知识
代理内存和对话状态
设备状态和进程上下文
MongoDB 灵活的文档模型使得在单个解决方案中操作这些数据变得容易。在MongoDB Atlas中,您可以存储以下数据:
时间序列数据:这种格式以秒级粒度捕获传感器遥测数据。
向量嵌入:这启用跨晶圆缺陷和更广泛的知识库语义搜索。
多模态嵌入:这些结构将缺陷图像与特定的文本上下文相结合。
元数据:此信息通过跟踪 设备ID、批次ID或进程步骤来统一上下文。
操作数据:此类别管理警报、设备状态和进程参数的实时信息。
主要集合
此解决方案使用以下集合来存储数据:
sensor_events:用于变更流监控的实时传感器事件。这种定期集合使偏移检测系统能够实时监视阈值违规情况。
alerts:触发根本原因代理的活动偏移和阈值违规。每个警报都会捕获违规详细信息、受影响的晶圆和源传感器数据。状态转换为从“打开”到“已确认”再到“已解决”。
wafer_defects:具有用于语义搜索的多模态嵌入的晶圆检测数据。每个文档都包含缺陷模式、良率百分比、严重性级别以及由 Voyage AI生成的组合图像文本嵌入。
historical_knowledge:使用向量嵌入存储的 RCA 报告和技术文档。代理搜索此集合以查找类似的过去事件、故障排除程序和行之有效的纠正措施。
process_context:制造进程元数据,包括配方参数、设备配置和用于相关性分析的基线值。
checkpoints:LangGraph 的 MongoDBSaver 在每个推理步骤捕获的代理状态,以启用会话持久化、会话恢复和Atlas 审核跟踪。
process_sensor_ts:将过程传感器遥测数据存储为时间序列集合,以进行高效的历史分析。时间序列集合可有效存储和查询数百万个读数。它们保留上下文元元数据,例如设备ID、批次ID和进程步骤。
以下示例显示了 process_sensor_ts集合中的示例文档:
{ "timestamp": { "$date": "2025-01-24T10:30:00.000Z" }, "equipment_id": "CMP_TOOL_01", "metrics": { "particle_count": 1234, "temperature": 68.5, "rf_power": 1502.3, "chamber_pressure": 5.2 }, "metadata": { "lot_id": "LOT_2025_001", "wafer_id": "W_004_16", "process_step": "Oxide CMP" } }
时间序列文档包括以下字段:
timestamp:读数的时间戳equipment_id:源工具的标识符metrics:颗粒计数、温度、RF 功率和腔室压力的数字传感器值metadata:批次、晶圆和进程步骤的上下文标签
以下示例显示了 wafer_defects集合中的示例文档:
{ "_id": "W_CMP_001", "wafer_id": "W_CMP_001", "lot_id": "LOT_2025_001", "inspection_timestamp": { "$date": "2025-01-24T10:30:00Z" }, "description": "Edge-concentrated particle contamination from slurry degradation", "defect_summary": { "defect_pattern": "edge_cluster", "severity": "critical", "yield_percentage": 72.5, "failed_dies": 22, "total_dies": 80 }, "process_context": { "equipment_used": ["CMP_TOOL_01"], "last_process_step": "Oxide CMP", "recipe_id": "CMP_STD_01", "slurry_batch": "SLR-2025-0142" }, "ink_map": { "thumbnail_base64": "iVBORw0KGgo...", "thumbnail_size": { "width": 200, "height": 200 }, "full_image_url": "s3://bucket/wafers/W_CMP_001.png" }, "embedding": [0.123, -0.456, ...] }
晶圆缺陷文档包括以下字段:
wafer_id和lot_id:将缺陷链接到生产环境description:包含历史晶圆的根本原因分析defect_summary:捕获模式类型、严重性、良率影响和管芯数process_context:跟踪设备、配方和材料以进行相关性分析ink_map:存储晶圆图可视化(用于显示的缩略图,用于完整图像的 S3 URL )embedding:包含用于相似性搜索的 1024 维多模态向量
构建解决方案
要查看完整的演示实施,请参阅 GitHub存储库。存储库的自述文件涵盖以下步骤:
配置后端
导航到后端目录并使用 uv 安装依赖项:
cd backend # Install UV package manager curl -LsSf https://astral.sh/uv/install.sh | sh # Install dependencies uv sync
使用您的凭证创建 .env文件:
# MongoDB Atlas connection MONGODB_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/ # Voyage AI for embeddings VOYAGE_API_KEY=your-voyage-api-key # AWS Bedrock for LLM inference AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your-access-key AWS_SECRET_ACCESS_KEY=your-secret-key
关键要点
使用AI代理: AI代理可以自主调查偏移,将传感器数据、缺陷图像和历史报告关联起来,从而在几秒钟(而不是几小时)内生成根本原因分析。
构建现代数据基础:高性能、低延迟且可扩展的数据基础架构对于扩展有效运行AI助手至关重要。 MongoDB Atlas为时间序列、向量和文档提供统一平台。
启用多模态搜索:结合图像和文本嵌入,工程师能够找到相似的缺陷,无论缺陷最初是如何描述的。 Voyage AI 的多模式模型可捕获视觉模式和文本上下文。
实时处理偏移:变更流启用立即检测阈值违规情况。系统会在几毫秒内(而不是在轮班结束时)创建警报。
持久代理内存: MongoDB检查点功能使工程师能够恢复调查、提出后续问题并Atlas 审核代理的推理链。这种透明度可以建立信任并实现持续改进。
作者
Humza Akhtar,MongoDB
Kiran Tulsulkar, MongoDB
Daniel Jamir, MongoDB