事業紹介 事業紹介トップ 経営データ分析基盤 Claude / MCP 導入 複雑な SaaS を専用 UI に Shopify Plus 移行・拡張 生成AI 活用(Multi AI) SEO / AIO / 広告運用 顧問・アドバイザリ インフラ構築 自社メディア投資・開発
Claude Claude / MCP 総合 Claude Cowork Claude Code Claude Design MCP サーバー実装
Shopify Plus Shopify Plus トップ EC-CUBE からの移行 大手カートからの移行 Shopify 通常プラン
実績
業界ニュース 業界ニュース トップ AI ニュース Shopify ニュース SaaS ニュース お知らせ(自社発信)
会社情報 お問い合わせ
2026.05.13

MachinaCheck:AMD MI300X上でQwen 2.5 7Bを動かすCNC加工性マルチエージェントシステム

記事のサマリー(TL;DR)

  • AMD MI300X(192GB HBM3)でQwen 2.5 7Bをオンプレミス実行し、STEP形式のCADデータを外部に送信せず加工性判断を自動化
  • STEPパーサー・操作分類・工具マッチング・判断・レポート生成の5コンポーネント構成で、エンドツーエンド25〜40秒
  • LLMは推論が必要な3エージェントのみに限定し、DB参照など確定的処理はPythonで実装することで精度と速度を両立

製造業DXを検討する国内機械加工・ものづくり企業への示唆

製造業では顧客からのSTEPファイルにNDA対象の設計情報が含まれるケースが多く、商用APIへの送信はコンプライアンス上リスクになる。MachinaCheckはこの問題を「オンプレLLM実行」で解決したアーキテクチャの実例として参考になる。国内の中小機械加工業では、RFQ(見積依頼)の受否判断に熟練者が1件あたり30〜60分を費やしており、週10〜20件のRFQを抱える工場では週5〜20時間が feasibility 分析に消える計算だ。同様の構成は、製造ERP・MESにつながる専用UIと組み合わせることで、受注判断フローそのものをシステム化する文脈にも応用できる。また、Qwen 2.5 72BはMI300Xの192GBに収まることが示されており、より高精度な推論が必要な場面ではモデルのスケールアップも現実的な選択肢となる。

詳細

解決した課題

中小のCNC機械加工工場では、受注可否の判断プロセスはほぼ手作業だ。図面を印刷し、寸法を手で読み取り、工場内を歩いて使用可能な工具を確認し、機械が必要公差を保持できるかを経験で見積もり、クリップボードにメモする。この作業は図面1枚あたり30〜60分かかる。週10〜20件のRFQを受ける繁忙な工場では、feasibility 分析だけで週5〜20時間の熟練者工数が消費される。

判断ミスも起きる。受注して生産を始め、途中で適切なタップがないこと、あるいはミルが重要フィーチャーの公差を保持できないことに気づく。部品はスクラップになり、顧客は不満を持ち、機械稼働時間が無駄になる。MachinaCheckはこの問題を根本から解消するために開発された。

MachinaCheckの機能

MachinaCheckはマルチエージェントAIシステムだ。STEPファイル(顧客が機械加工業者に送る標準CAD形式)を、材料種・必要公差・ねじ仕様の3つの入力とともにアップロードすると、30秒後に完全な加工性レポートが得られる。

  • その部品を製造できるか否か
  • 必要な工具
  • 不足しているもの
  • 生産開始前に取るべきアクション

図面の手読み、工場内の確認、勘による判断は不要になる。

AMD MI300X上で構築した理由

これは単なる技術的選択ではなく、ビジネス要件だ。製造業顧客はNDAを締結している。STEPファイルには何年もの設計工数と数百万ドルのR&D成果を表す独自ジオメトリが含まれる。医療機器の穴パターンや航空宇宙部品のポケットジオメトリは機密の知的財産(IP)であり、これをOpenAI・Anthropic・その他の商用APIエンドポイントに送信することは機密違反に直結する。

AMD Instinct MI300Xはこの方程式を根本的に変える。192GB HBM3 VRAM・5.3 TB/sのメモリ帯域幅によって、Qwen 2.5 7B Instructを完全にオンプレミスで実行できる。STEPジオメトリはサードパーティのサーバーに送信されない。顧客のIPはあるべき場所に留まる。これが製造業における「プライバシー・バイ・デザイン」の実態だ――チェックボックスではなく、製品を実際のエンタープライズ顧客にとって成立させる根本的なアーキテクチャ上の決定だ。

エージェントアーキテクチャ

MachinaCheckはLangChainで構築され、FastAPI経由でオーケストレーションされる5コンポーネントのパイプラインを使用する。

コンポーネント1 — STEPファイルパーサー(Pure Python、LLMなし)

OpenCASCADEをベースにしたPythonライブラリ「cadquery」でSTEPファイルを直接パースする。数学的に正確なフィーチャー抽出が可能だ。

  • すべての円筒穴(直径・深さ付き)
  • 平面とその面積
  • 面取りとフィレット
  • バウンディングボックス寸法
  • 総体積・表面積

ビジョンモデルもOCRも近似も使わず、数学的なジオメトリを直接読み取るため精度は100%だ。Ø6.0mmの穴は出力でも正確にØ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),
    }

エージェント1 — 操作分類器(Qwen 2.5 7B)

抽出されたジオメトリとユーザー入力(材料・公差・ねじ)を、AMD MI300X上でvLLM経由で動作するQwen 2.5 7Bに渡す。エージェントが答えるのは「この部品を製造するために必要なCNC操作と工具は何か?」という問いだ。製造ドメイン知識を適用する。

  • SUS304はカーバイド工具が必要
  • 円筒穴にはエンドミルではなくドリルが必要
  • ±0.005mmの公差には標準ミルではなく精密機械が必要

エージェント2 — 工具マッチャー(Pure Python)

LLMを使用しない。工場の工具在庫データベースに照会し、各必要工具と手持ちを照合する。完全な決定論的ロジック――DB参照・比較・結果のみ。DB照会にLLMは不要であり、使うと余分なレイテンシとハルシネーションリスクが増えるだけだ。

エージェント3 — 加工性判断エージェント(Qwen 2.5 7B)

マッチング結果をQwenに返す。エージェントは全体状況を推論し、構造化された判断を出力する。

{
  "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
}

エージェント4 — レポートジェネレーター(Qwen 2.5 7B)

最後のエージェントがすべてを統合し、全体ステータス・エグゼクティブサマリー・部品分析・工具状況・機械状況・最終推奨事項を含むプロフェッショナルな加工性レポートを生成する。

AMDスタック

AMD MI300X上でROCmとvLLMを経由してQwen 2.5 7Bを実行するのは直截だった。AMD Developer CloudのvLLM Quick Startイメージにすべてが事前設定済みだ。

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

gpu-memory-utilization 0.5の設定で利用するVRAMは約96GB、利用可能な192GBのうち半分に留まる。エージェント呼び出しの推論レイテンシは平均3秒未満だ。

LangChainはOpenAI互換エンドポイント経由でvLLMに接続する。

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
)

結果

GrabCADの実際のSTEPファイルを使ったテスト結果:

指標 結果
フィーチャー抽出(50フィーチャー以下の部品) 1秒未満
フルパイプライン(全4エージェント) 25〜40秒(エンドツーエンド)
判断精度 テスト全部品で正確な加工性評価
プライバシー STEPジオメトリの外部送信ゼロバイト

学んだこと

LLMは推論が必要な場所にのみ使う。 エージェント2(工具マッチング)はPure Pythonだ。そこにLLMを置けば遅く・高コストで・信頼性が低下する。DB参照には適切なツールはDBクエリだ。

構造化出力のためのプロンプトエンジニアリングは重要。 Qwenに有効なJSONを確実に出力させるには、プロンプトに明確なルールを設定する必要があった――円筒穴にはエンドミルではなくドリルが必要であること、直径は正確に一致させること、ねじが指定された場合にのみタップが登場すること、といったルールだ。

AMD MI300XはこのユースケースでRRな印象を受けた。 192GB VRAMにより、必要であればより大きなモデルも実行できる。本番デプロイではQwen 2.5 72Bが十分に収まり、推論品質が大幅に向上するだろう。

試す

STEPファイルをアップロードするとフルパイプラインを確認できる。

使用スタック: Qwen 2.5 7B · AMD Instinct MI300X · ROCm · vLLM · LangChain · cadquery · FastAPI · Next.js · Hugging Face Spaces

2026年5月、lablab.aiのAMD Developer Hackathonで、Syed Muhammad SarmadとSabari Doss Rが開発。