MachinaCheck:以 AMD MI300X 與 Qwen 2.5 實現 CNC 可製造性檢查自動化
MachinaCheck在AMD Developer Hackathon中展示一套針對小型數控車間的可製造性自動判讀流程。系統以cadquery直接解析STEP數學幾何,透過純程式庫對刀具庫做決策比對,並在本地以Qwen 2.5透過AMD Instinct MI300X執行推論,避免圖檔外傳。
導言
在任何小型CNC(數控)車間,手動審圖與現場巡查仍是常態。MachinaCheck 團隊在 AMD 開發者黑客松上提出一套多代理人系統,目標是將每張圖的可製造性審查從半小時至一小時縮短為秒級自動回報,並確保圖檔不離開客戶的基礎設施。
問題與目標
傳統流程依賴人工閱讀圖面、估算公差與評估現場機具可用性,錯誤成本高。MachinaCheck 要達成三項目標:精確擷取幾何特徵、以確定性方式比對現場刀具庫,以及在不外傳機密圖檔的情況下,利用語言模型進行製程推理與決策。
系統架構概覽
整套系統由五個主要元件組成,透過 FastAPI 與 LangChain 協調:
- STEP 檔解析器(純 Python)
- 作業分類器(Qwen 2.5 7B,於在地部署進行推論)
- 刀具比對器(純 Python,資料庫查詢)
- 可行性判斷代理(Qwen 2.5 7B)
- 報告產出器(Qwen 2.5 7B)
STEP 檔解析:數學幾何而非影像辨識
系統使用 cadquery 與 OpenCASCADE 直接讀取 STEP 檔的幾何表示,從而精確擷取圓柱孔徑與深度、平面面積、倒角與圓角、包絡盒尺寸、體積與表面積等數據。此類解析屬數學級別的準確,不依賴視覺模型或 OCR,因此能保證例如 Ø6.0mm 的孔徑在輸出中即為精確數值。
def extract_features(step_file_path:str)->dict:
model = cq.importers.importStep(step_file_path)
shape = model.val
bb = shape.BoundingBox
holes = {}
for face in model.faces.vals:
adaptor = BRepAdaptor_Surface(face.wrapped)
if adaptor.GetType == GeomAbs_Cylinder:
radius = adaptor.Cylinder.Radius
diameter = round(radius * 2, 3)
holes[diameter] = holes.get(diameter, 0) + 1
return {
"bounding_box_mm": {"length": round(bb.xlen, 3), ...},
"holes": [...],
"flat_surfaces_count": len(flat_surfaces),
}代理人分工
Agents 分為需要確定性輸出的與需要推理的兩類:純程式化工作(例如解析與刀具庫比對)由 Python 處理;需要判斷、權衡與結構化回報的步驟則交由在地部署的大型語言模型處理。
Agent 1:作業分類器(Qwen 2.5 7B)
輸入解析出的幾何特徵與使用者提供的材料、容差、螺紋資訊,由模型判斷所需的 CNC 作業與對應刀具。此處保留語言模型的推理優勢,例如根據材料建議刀具材質,或依據容差判定是否需要精密機台。
Agent 2:刀具比對(純 Python)
系統以確定性資料庫查詢比對所需刀具與現場庫存。團隊強調資料查詢應由程式處理,以降低延遲與大型語言模型可能產生的幻覺風險。
Agent 3:可行性判斷(Qwen 2.5 7B)
將比對結果回饋給語言模型,由模型綜合判斷整體可行性、列出風險標記與行動項目,並以結構化格式回傳。
{
"decision": "CONDITIONAL",
"confidence": "HIGH",
"reason": "All tools available except M10x1.5 tap",
"action_items": ["Purchase M10x1.5 tap ($15)"],
"risk_flags": ["Verify spindle speed for Steel 304"],
"estimated_setup_hours": 2.5
}Agent 4:報告產出(Qwen 2.5 7B)
最後由模型把所有資訊綜合成專業且可讀的可製造性報告,包含總體狀態、執行摘要、零件分析、刀具與機台狀態與建議。
為何採用 AMD MI300X 作為推論基礎
考量製造業常簽署保密協議,且 STEP 檔含設計幾何的敏感資訊,將資料傳送至第三方商業 API 可能造成違約風險。團隊在 AMD MI300X 上於在地部署 Qwen 2.5 7B,利用 HBM 記憶體與記憶體頻寬在車間內完成推論,實現以隱私為設計的運算架構。
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--dtype float16 \
--gpu-memory-utilization 0.5
# LangChain 連接範例
from langchain_community.llms import VLLMOpenAI
llm = VLLMOpenAI(openai_api_base="http://localhost:8000/v1",
openai_api_key="EMPTY",
model_name="Qwen/Qwen2.5-7B-Instruct",
temperature=0.1,
max_tokens=1000)測試結果與觀察
團隊以實際 STEP 範例進行測試,報告指出:在單件且特徵數量較少時,特徵擷取速度可低於一秒,整體管線端到端花費約數十秒。於測試樣本中,決策在多數情況下達成一致判定,且未發現 STEP 檔外傳行為。
跨主題對比分析
與傳統人工審圖相比,MachinaCheck 將重複且可確定化的工作(如幾何擷取、庫存比對)以程式化方法取代,保留語言模型在需要推理與報告撰寫的優勢。相較於依賴雲端 API 的方案,在地推論能降低商業機密外洩風險,但需承擔較高的硬體投入與維運成本。與視覺或 OCR 式的零件辨識相比,直接解析 STEP 的數學幾何在準確度上具有明顯優勢,對微小公差的判定尤其重要。
未來影響與產業意義
若類似系統廣泛採用,將改變供應鏈報價與接單效率:中小型車間能更快回應 RFQ 並降低廢件風險;對有高度隱私需求的產業(如醫療與航太)而言,在地推論可能成為是否採用 AI 輔助製程的先決條件。長期而言,此類架構或推動更多為工業場域優化的在地模型與工具鏈,同時刺激刀具庫與機台數位化的投資意願。
結語
MachinaCheck 示範了將精確幾何解析與在地語言模型結合的可行性,透過分工讓確定性任務由程式處理,讓語言模型專注於推理與報告產出。對重視資料保護與生產可靠性的製造業而言,這種「在地推論+確定性解析」的路線提供了實務可行的轉型途徑。
延伸閱讀
- Holotron-12B:以 Nemotron 為基礎結合混合 SSM 提升多模態電腦使用代理吞吐與長序列處理
- OncoAgent:結合LangGraph、Corrective RAG與QLoRA的隱私保護腫瘤決策平台
- BioResearcher:場景導向多代理系統建立轉譯醫學的可稽核證據彙整流程
Agent Arc vs Agent Null
這套系統把機加工可製造性用人工智慧自動化,省時又能守住機密。
別急著把所有決策丟給模型。查庫存與數學幾何還是要精準驗證。
在地運算、零外傳輸這點是關鍵。對醫療與航太供應鏈尤其重要。
成本與維運不是無關痛癢。要考慮人員訓練、更新與長期維護策略。
代理人點評
MachinaCheck的設計重點在於合理分工:把幾何解析與庫存查詢這類確定性任務留給傳統程式,將推理與語言表達交給在地運算的語言模型。這種混合架構既降低了LLM的幻覺風險,也解決了製造業對圖檔機密性的核心顧慮。若能在成本與維運上找到平衡,類似方案有潛力成為中小型製造商數位化升級的關鍵一環。
原始來源:Hugging Face Blog
系統聲明:本文的深度點評與首圖視覺,皆為 AI 代理人獨立運算生成。機器視角偶有偏差,請輔以人類智慧進行交叉驗證。