مهندسی سامانه‌های هوش مصنوعی · فصل ۲ — Model Selection، Serving، Cost Governor و Workflow · 137

Local-first Routing و Model Selection

می‌تواند مدل یا ابزار AI را فراخوانی کند اما contract، qualification، routing، cost، trust و failure را کنترل نمی‌کند. موضوع جاری: «Local-first Routing و Model Selection». می‌تواند «Local-first Routing و Model Selection» را در یک workflow AI محدود طراحی کند و validation، authority، cost یا failure controls مرتبط را مشخص کند.

Local-first Routing and Model Selection — en-US

خلاصهٔ درس

می‌تواند مدل یا ابزار AI را فراخوانی کند اما contract، qualification، routing، cost، trust و failure را کنترل نمی‌کند. موضوع جاری: «Local-first Routing و Model Selection».

می‌تواند «Local-first Routing و Model Selection» را در یک workflow AI محدود طراحی کند و validation، authority، cost یا failure controls مرتبط را مشخص کند.

خروجی این درس

می‌تواند «Local-first Routing و Model Selection» را در یک workflow AI محدود طراحی کند و validation، authority، cost یا failure controls مرتبط را مشخص کند.

پیش‌نیازها

1. مسئله واقعی: Local-first یک preference است، نه shortcut

یک workflow ممکن است هم‌زمان چند مسیر اجرا داشته باشد: مدل روی workstation، endpoint محلی/کلاستر و provider راه‌دور. اگر router فقط «local بودن»، قیمت یا latency را ببیند، می‌تواند مدلی را انتخاب کند که برای task/locale/risk موردنظر qualification ندارد. در این درس Local-first فقط بعد از عبور hard gateها اجازه اثرگذاری دارد.

2. Routing را از Model Qualification جدا نگه دار

AIE-004 پاسخ می‌دهد یک model/runtime/configuration دقیق برای کدام task/locale/risk slice qualified است. AIE-005 آن evidence را مصرف می‌کند و درباره route تصمیم می‌گیرد. Router حق ندارد نبود qualification را با تجربه قبلی، نام مدل، benchmark عمومی یا یک پاسخ موفق جبران کند.

3. Request contract را قبل از candidateها ثابت کن

هر تصمیم با request slice شروع می‌شود: task، locale، risk، capabilityهای الزامی، latency SLO، placement/privacy و وضعیت data egress. اگر این قرارداد مبهم باشد، رتبه‌بندی candidateها فقط ظاهر تصمیم‌گیری دارد و audit نمی‌تواند بگوید چرا یک route مجاز شده است.

4. Qualification binding باید به نسخه دقیق candidate متصل باشد

QUALIFIED بدون model version، runtime/config و slice مربوط کافی نیست. اگر مدل یا runtime تعیین‌کننده تغییر کند و رکورد qualification متناظر وجود نداشته باشد، binding باید STALE یا MISSING شود. Local-first هیچ اجازه‌ای برای reuse ضمنی qualification قدیمی نمی‌دهد.

5. Capability یک hard gate مستقل است

یک candidate ممکن است از نظر کیفیت qualified باشد ولی capability لازم، مثلاً structured output، را نداشته باشد. این candidate INELIGIBLE است؛ router نباید field را حذف کند، prompt را تغییر دهد یا قرارداد application را ضعیف کند تا مسیر local باقی بماند.

6. Placement و egress بعد از qualification همچنان hard gate هستند

Remote candidate ممکن است بهترین quality و latency را داشته باشد، اما وقتی egress_allowed=false است مجاز نیست. برعکس، local بودن به‌خودی‌خود privacy proof نیست؛ فقط نشان می‌دهد مسیر اجرای محلی است و باید با policy و environment evidence همان deployment ارزیابی شود.

7. Availability و latency evidence را از folklore جدا کن

Qualified بودن به معنی available بودن نیست. Candidate محلی که unavailable است یا latency evidence آن SLO را رد می‌کند، برای همان request eligible نیست. Router باید وضعیت را با evidence ثبت کند، نه اینکه چون route محلی «معمولاً سریع» است آن را انتخاب کند.

8. Cost signal را مصرف کن ولی مالک budget enforcement نشو

AIE-005 می‌تواند cost signal نسخه‌دار را در record نگه دارد و برای preference/ordering استفاده کند، اما quota، retry amplification و circuit state مالک AIE-008 هستند. Router نباید یک budget failure را به تخمین شخصی تبدیل کند یا enforcement آن درس را دور بزند.

9. ترتیب تصمیم: hard gates → eligible set → local preference

الگوی قابل ممیزی این است: qualification binding → capability → placement/egress → availability/latency → eligible candidate set. فقط بعد از این مراحل، local-first preference و route priority اجرا می‌شوند. یک score خوب حق ندارد candidate مردود در hard gate را دوباره وارد رقابت کند.

10. Worked example: چرا remote-alpha انتخاب می‌شود

در fixture پایه، local-ollama-q4 برای فارسی qualification ندارد؛ local-vllm-fp16 برای فارسی qualified است ولی unavailable است؛ remote-alpha برای فارسی/ریسک موردنظر qualified و با egress مجاز available است. نتیجه درست ROUTE به remote است، نه شکستن qualification برای حفظ local-first.

11. Negative case: structured output محلی غایب است

اگر local-vllm-fp16 available و qualified باشد اما requirement اجباری structured output را نداشته باشد، مسیر local مردود می‌شود. اگر remote واجد همه gateهاست، remote انتخاب می‌شود؛ اگر egress نیز بسته باشد، نتیجه باید REJECT باشد، نه silent degradation.

12. Stale binding: نسخه جدید مدل به qualification جدید نیاز دارد

فرض کن model version محلی عوض شده ولی qualification record هنوز به نسخه قبلی bind است. حتی اگر endpoint سالم باشد، latency خوب باشد و مدل همان نام را داشته باشد، candidate فعلی qualified محسوب نمی‌شود. اگر route جایگزین مجاز نداریم، تصمیم DEFER تا requalification قابل دفاع‌تر است.

13. Route provenance بخشی از خروجی است

خروجی فقط selected_route نیست. record باید policy version، request slice، candidate versionها، gate resultها، rejection reasonها و دلیل انتخاب نهایی را نگه دارد. بدون provenance، downstream فقط یک نام route می‌بیند و نمی‌تواند بفهمد چه evidenceای آن را مجاز کرده است.

14. Lab: هشت fixture deterministic

در Lab هشت حالت را اجرا می‌کنی: baseline remote fallback، local qualified/available، capability missing، egress blocked، stale qualification، latency breach، remote unavailable و transfer با local جدید ولی capability ناقص. evaluator باید hard gateها را قبل از preference اعمال کند و 8 state خروجی برای هر case بسازد.

15. Exit checklist و transfer

قبل از خروج بررسی کن: request contract نسخه‌دار است؛ qualification دقیق slice و version را پوشش می‌دهد؛ capability و egress hard gate هستند؛ unavailable/slow route eligible نمی‌شود؛ local preference فقط روی eligible set اجرا می‌شود؛ rejection reason و policy version ثبت می‌شوند. در transfer، egress_allowed=false و local جدید بدون structured output را از صفر دوباره ارزیابی کن؛ تصمیم قبلی را کپی نکن.

ارزیابی

پاسخ‌نامه‌ی این درس در بسته‌ی آموزش وجود ندارد؛ خودت جواب بده و صادقانه علامت بزن. «نیاز به مرور» درس را به صف تکرار می‌فرستد.

Q1 retrieval

When may local-first preference influence route selection?

lesson ✗AI ✗notes ✗

Q2 application

A local model is qualified for English low-risk classification but the request is Persian medium-risk. Is locality enough to route to it?

lesson ✗AI ✗notes ✗

Q3 diagnosis

A qualified local route lacks mandatory structured output while a qualified remote route passes all gates and egress is allowed. What is the bounded decision?

lesson ✗AI ✗notes ✗

Q4 evidence

The model version changes but the qualification record remains bound to the old version. What happens?

lesson ✗AI ✗notes ✗

Q5 transfer

Egress becomes false and a newly qualified local route meets latency but lacks required structured output. May the prior remote decision be copied?

lesson ✗AI ✗notes ✗
ملاک‌های ارزیابی (rubric)

A sufficient submission makes the owned routing boundary explicit, binds qualification to the exact task/locale/risk and candidate version, preserves capability/placement/availability/latency failures as typed states, applies local preference only after hard gates, records provenance and rejection reasons, and rebuilds the transfer decision from changed evidence. A submission fails if locality, cost, one endpoint success, or a stale qualification overrides a hard gate.

منابع و تازگی

Ollama API — Introduction
·
Current Ollama local/cloud API availability and base-surface facts; not proof of task quality, privacy, cost superiority, or MAKNOW qualification.
vLLM — Stable Documentation
·
Current vLLM serving feature/capability overview used only as candidate-route evidence; not product qualification for a specific model/server configuration.

مطالعهٔ موارد (case studies)

تصاویر درس

AIE005-V1

فایل‌های آزمایشگاه

Implement evaluate(case) in starter.py. The function must return at least these eight auditable fields: qualified_eligible_count, capability_eligible_count, placement_eligible_count, operational_eligible_count, final_eligible_count, selected_route, final_decision, and reason_class.

Apply hard gates in order. Qualification must match the exact request task/locale/risk and candidate model version. Required capabilities must be present. Remote placement must respect egress_allowed. Availability must be AVAILABLE, and measured latency must be within the request SLO. Only after those gates may local-first preference influence selection. Do not invent qualification, capability, latency, availability, or cost evidence.

Run python run_checks.py for learner-visible structural checks. The hidden evaluator tests deterministic states and changed-context transfer.

رسانه و اسلایدهای درس

MAKNOW_AIE-005_DECISION_EVIDENCE_TABLE_v1.0.svg
DECISION EVIDENCE TABLE v1.0.svg
MAKNOW_AIE-005_FAILURE_REPAIR_v1.0.svg
FAILURE REPAIR v1.0.svg
MAKNOW_AIE-005_PRIMARY_MODEL_v1.0.svg
PRIMARY MODEL v1.0.svg
MAKNOW_AIE-005_WORKED_EXAMPLE_v1.0.svg
WORKED EXAMPLE v1.0.svg

فایل‌های آموزشی (دانلود)

XLSXLocal first Model Route Policy Qualification Binding Record v1 v1.0.0.xlsxفایل‌های آموزشی (دانلود)
DOCXLocal first Model Route Policy Qualification Binding Record v1 WORKSHEET v1.0.0.docxفایل‌های آموزشی (دانلود)
PDFLocal first Model Route Policy Qualification Binding Record v1 WORKSHEET v1.0.0.pdfفایل‌های آموزشی (دانلود)