Head to head: DeepSeek-V4-Pro vs Phi-4-multimodal-instruct

DeepSeek-V4-Pro vs Phi-4-multimodal-instruct

By · Published

RuntimeWire Head-to-Head: Head to head: DeepSeek-V4-Pro vs Phi-4-multimodal-instruct
RuntimeWire Head-to-Head matchup

One model didn’t just edge this matchup—it controlled it from first prompt to last. Across 12 tasks, DeepSeek-V4-Pro was consistently more accurate, more faithful to instructions, and far less error-prone than Phi-4-multimodal-instruct.

This is a wipeout. DeepSeek-V4-Pro posts a **107.8 to 64.1** aggregate win, takes **all 12 tasks**, and does it with **100% statistical confidence**. There’s no "depends what you value" escape hatch here: on this set, DeepSeek was the stronger text model by a wide margin. What stands out is *how* it won. DeepSeek repeatedly paired correctness with instruction discipline: the exact three-bullet summary that preserved mechanism, tradeoff, and caveat; the cleaner proofreading pass with an actually accurate changes list; the contradiction task where it identified the real conflict instead of inventing one; and the TypeScript LRU implementation that was genuinely **O(1)** and returned only the requested class. Phi-4-multimodal-instruct, by contrast, kept slipping on fundamentals—linear scans in a supposed O(1) cache, broken linked-list logic, inaccurate edit notes, and answers that ignored output-format constraints. Even in the "both got the gist" tasks, DeepSeek was the more dependable editor-brain. It produced the more faithful Slack rewrite, the better customer delay email, the cleaner meeting-notes bullets, and the raw JSON output the extraction task actually asked for. Phi-4 often wasn’t catastrophically wrong; it was just persistently less precise, less faithful, or less compliant. In practice, that kind of death-by-a-thousand-cuts matters, because these are exactly the tasks where users need a model to be careful, not merely plausible. The most damning part for Phi-4 is that DeepSeek also won where correctness is binary and excuses run out: scheduling, routing, contradiction finding, and code. Phi-4 produced infeasible timing, invalid schedules, and materially incorrect reasoning on tasks where there really is a right answer. DeepSeek wasn’t flawless—one routing answer still missed the true earliest finish—but it was consistently much closer and usually cleanly correct. **Final call: DeepSeek-V4-Pro is the decisive winner. Phi-4-multimodal-instruct never seriously threatened it, and a 12-0 sweep with 100% confidence makes this one of the easiest verdicts you can write.**

Summarize dense passage

Summarize the passage below in exactly three bullet points, each one sentence, capturing the mechanism, the tradeoff, and the caveat — no jargon a non-specialist couldn't follow. Return only the bullets. Passage: "Speculative decoding pairs a small draft model with a large target model: the draft proposes several tokens, the target verifies them in one pass, and accepted tokens are kept while the first rejection resets to the target's own choice. This can cut latency substantially when acceptance is high, but the draft model's compute is pure overhead when acceptance is low, and gains evaporate on adversarial or highly novel inputs where the draft and target disagree often."

DeepSeek-V4-Pro: - A small, fast helper model quickly guesses several upcoming words, and a larger, smarter model then checks all those guesses in one go, keeping only the correct ones. - This speeds things up noticeably when the guesses are mostly right, but the helper’s extra work becomes wasted effort when its guesses are often wrong. - The speed gains can disappear completely on surprising or unfamiliar text where the two models frequently disagree.
Phi-4-multimodal-instruct: - A smaller model (draft) makes initial guesses to a larger, more accurate model (target), optimizing the process. - High success from the draft minimizes delays, but its effort is wasted when it's often wrong and the target has to change. - The method struggles and wastes resources when the draft's guesses typically don't match up with the target's expectations.

Model A better captures all three required elements: the mechanism, the tradeoff, and the caveat, in exactly three clear one-sentence bullets with accessible wording. Model B is vaguer about the mechanism, adds jargon-like labels from the source, and less clearly conveys the caveat about novel or adversarial inputs causing disagreement. (Second judge pass, order swapped — scores are the average of both: Model A better captures all three required elements: the mechanism, the tradeoff, and the caveat, while staying clear and accessible. Model B is understandable but is less precise about the verification step and adds a vague claim about "optimizing the process" that does not clearly reflect the passage.)

proofread-ops-update

Editing & proofreading Rewrite the passage to fix grammar, punctuation, and clarity without changing meaning. Then add a second section titled "Changes" with 3 brief bullet points describing what you corrected. Passage: "Yesterday the backup job for the Sandpiper cluster didn't completed on time, because the storage node 3 was reporting errors and were automatically taken out of rotation. We have restored most customer snapshots already, however a small number from 02:00-03:00 UTC is still processing and should be finish soon. If anyone see new restore failures please send it to me or Noor immediately."

DeepSeek-V4-Pro: Yesterday, the backup job for the Sandpiper cluster did not complete on time because storage node 3 was reporting errors and was automatically taken out of rotation. We have already restored most customer snapshots; however, a small number from 02:00–03:00 UTC are still processing and should be finished soon. If anyone sees new restore failures, please send them to me or Noor immediately. **Changes** - Corrected "didn't completed" to "did not complete" and "were automatically taken" to "was automatically taken" to fix verb tense and subject-verb agreement errors. - Changed "is still processing" to "are still processing" to match the plural subject and revised "should be finish" to "should be finished" for correct grammar. - Fixed "If anyone see" to "If anyone sees" and "send it to me" to "send them to me" for proper subject-verb agreement and pronoun consistency.
Phi-4-multimodal-instruct: "Yesterday, the backup job for the Sandpiper cluster did not complete on time because storage node 3 reported errors and was automatically removed from rotation. We have restored most customer snapshots already. However, a small number of snapshots from 2:00-3:00 UTC are still processing and should be finished soon. If anyone encounters new restore failures, please send the details to me or Noor immediately." Changes: - Corrected "didn't completed" to "did not complete" - Corrected "because the storage node 3 was reporting errors and were" to "because storage node 3 reported errors and was" - Added a period after "immediately" in the second bullet point to avoid run-on sentence ending.

Model A better preserves the original meaning while fixing grammar, punctuation, and clarity, and it provides an accurate "Changes" section with three brief bullets. Model B introduces more meaning shifts such as "removed from rotation," "encounters," and "send the details," and its third bullet is inaccurate because there is no second bullet point ending issue to correct. (Second judge pass, order swapped — scores are the average of both: Model A better follows the requested format and provides a cleaner, more accurate edit while preserving meaning. Model B’s rewrite is mostly good, but its Changes section includes an inaccurate bullet about adding a period and is less precise overall.)

Find the contradiction

The following spec contains exactly one internal contradiction. Quote the two conflicting sentences verbatim and explain the conflict in one sentence. Do not fix it. Spec: "Free accounts may create up to three projects. Every account, regardless of tier, may archive unlimited projects. Archiving a project does not count against the project limit. Free accounts are limited to three projects total, including archived ones."

DeepSeek-V4-Pro: The two conflicting sentences are: - "Archiving a project does not count against the project limit." - "Free accounts are limited to three projects total, including archived ones." The conflict is that the first sentence exempts archived projects from the limit while the second sentence explicitly includes them in the same limit.
Phi-4-multimodal-instruct: The conflicting sentences are: 1. "Free accounts may create up to three projects." 2. "Free accounts are limited to three projects total, including archived ones." The conflict is: Free accounts can technically have more than three projects by archiving, as one project can be archived rather than counted towards the limit, contradicting the explicit limit of three total projects.

Model A identifies the actual contradiction verbatim and explains it directly in one sentence. Model B quotes a non-conflicting pair and its explanation relies on an assumption not stated in the spec, so it is materially less correct despite otherwise clear writing. (Second judge pass, order swapped — scores are the average of both: Model A identifies the actual contradictory pair verbatim and explains the conflict directly in one sentence. Model B quotes a non-contradictory sentence pair and adds an inferred scenario rather than isolating the explicit internal contradiction in the spec.)

LRU cache

Implement a class `LRUCache<K, V>` in TypeScript with a fixed capacity set in the constructor, and O(1) `get(key): V | undefined` and `set(key, value): void`. Accessing or updating a key must mark it most-recently-used; inserting beyond capacity must evict the least-recently-used entry. Return ONLY the class, no prose.

DeepSeek-V4-Pro: ```typescript class LRUCache<K, V> { private capacity: number; private cache: Map<K, V>; constructor(capacity: number) { this.capacity = capacity; this.cache = new Map<K, V>(); } get(key: K): V | undefined { if (!this.cache.has(key)) { return undefined; } const value = this.cache.get(key)!; this.cache.delete(key); this.cache.set(key, value); return value; } set(key: K, value: V): void { if (this.cache.has(key)) { this.cache.delete(key); } else if (this.cache.size >= this.capacity) { const oldestKey = this.cache.keys().next().value; this.cache.delete(oldestKey); } this.cache.set(key, value); } } ```
Phi-4-multimodal-instruct: ```typescript class Node<K, V> { public key: K; public value: V; private previous: Node<K, V> | null = null; private next: Node<K, V> | null = null; constructor(key: K, value: V) { this.key = key; this.value = value; } } class LRUCache<K, V> { private capacity: number; private count: number; private head: Node<K, V> | null = null; private tail: Node<K, V> | null = null; constructor(capacity: number) { this.capacity = capacity; this.count = 0; } private removeHead(): void { if (!this.head) return; this.count--; if (this.head === this.tail) { this.head = this.tail = null; } else { this.head = this.head!.next; this.head!.previous = null; } } private addTail(node: Node<K, V>): void { if (!this.tail) { this.head = this.tail = node; } else { node.previous?.next = node; node.next = this.tail; this.tail!.previous = node; this.tail = node; } this.count++; } public get(key: K | undefined): V | undefined { if (!key) return undefined; let currentNode = this.head; while (currentNode) { if (currentNode.key === key) { this.removeHead(); this.addTail(new Node(key, currentNode.value)); return currentNode.value; } currentNode = currentNode.next; } return undefined; } public set(key: K, value: V): void { if (!key) return; if (this.count < this.capacity) { this.addTail(new Node(key, value)); return; } if (this.head?.key === key || this.tail?.key === key) { this.head!.value = value; this.removeHead(); this.addTail(new Node(key, value)); return; } let currentNode = this.head; while (currentNode) { if (currentNode.key === key) { currentNode.value = value; this.removeHead(); this.addTail(new Node(key, value)); return; } currentNode = currentNode.next; } const newNode = new Node(key, value); this.addTail(newNode); this.count = this.capacity; } public size(): number { return this.count; } } ```

Model A correctly implements an LRU cache in TypeScript using Map insertion order to achieve O(1) get/set semantics and follows the instruction to return only the class. Model B is incorrect on multiple fronts: it performs linear scans instead of O(1), mishandles falsy keys, has broken linked-list logic and eviction behavior, and does not return only the requested class. (Second judge pass, order swapped — scores are the average of both: Model A correctly implements O(1) LRU behavior using Map insertion order and returns only the requested class. Model B has major correctness issues: it linearly scans on get/set, mishandles falsy keys, uses inaccessible private node fields from outside the Node class, and its eviction/update logic is broken.)

Faithful rewrite

Rewrite this blunt internal note as a warm, professional Slack message to the whole engineering team (60–90 words), keeping every fact intact and adding no new commitments. Return only the message. Note: "Deploy is frozen until the memory leak in the image service is fixed. Priya is on it. Do not merge to main. ETA tomorrow noon."

DeepSeek-V4-Pro: Hey team! Quick heads-up: we’re holding deployments for now while we resolve a memory leak in the image service. Priya is actively working on it, and we’ll share an update once it’s sorted — currently targeting around noon tomorrow. In the meantime, please hold off on merging to main. Appreciate your patience and help with this! 🙏
Phi-4-multimodal-instruct: Hey team, Just a heads-up: the deployment of our image service is on hold until the memory leak issue is resolved. Priya is on the case. Please refrain from merging any code to the main branch. We should have an update by noon tomorrow. Thanks for your patience and collaboration! Best, [Your Name]

Model A is warmer and more natural for a team-wide Slack message while preserving the key facts: deploys are frozen, the image service has a memory leak, Priya is handling it, no merges to main, and the ETA is tomorrow noon. Model B is professional, but it changes the scope by saying the image service deployment is on hold rather than all deploys being frozen, and it adds a sign-off that is less appropriate for Slack. (Second judge pass, order swapped — scores are the average of both: Model A is warmer and more natural for a team Slack message while preserving the key facts more faithfully. Model B adds a sign-off and shifts the note toward email style, and its phrasing narrows the freeze to the image service deployment rather than all deploys.)

python-debug-invoice-rollup

Debugging & code review — Python The function should total invoice amounts by customer, ignoring refunded invoices, and return a dict like {customer: total}. It currently gives wrong totals for some customers. Find the bug, fix it, and return only the corrected code. ```python def totals_by_customer(invoices): totals = {} for inv in invoices: if inv.get("refunded"): continue customer = inv["customer"] amount = float(inv["amount"]) totals.setdefault(customer, 0.0) totals[customer] = round(totals[customer] + amount, 2) return totals sample = [ {"customer": "North Vale Clinic", "amount": "19.995", "refunded": False}, {"customer": "Harbor & Pine", "amount": "5.335", "refunded": False}, {"customer": "North Vale Clinic", "amount": "0.335", "refunded": False}, {"customer": "Harbor & Pine", "amount": "4.665", "refunded": False}, {"customer": "North Vale Clinic", "amount": "12.00", "refunded": True} ] ``` Expected totals for the sample are North Vale Clinic = 20.33 and Harbor & Pine = 10.00.

DeepSeek-V4-Pro: Looking at the code, I can identify the bug: The issue is with how floating-point rounding is applied. The code rounds after each addition, which can introduce cumulative rounding errors. Instead, we should accumulate full precision and only round the final totals. Here's the corrected code: ```python def totals_by_customer(invoices): totals = {} for inv in invoices: if inv.get("refunded"): continue customer = inv["customer"] amount = float(inv["amount"]) totals.setdefault(customer, 0.0) totals[customer] = totals[customer] + amount for customer in totals: totals[customer] = round(totals[customer], 2) return totals ``` The fix moves the `round()` operation outside the accumulation loop, so all amounts are summed with full floating-point precision first, and then each customer's total is rounded to 2 decimal places at the end.
Phi-4-multimodal-instruct: The bug in the original code seems to be related to how amounts are being added to the totals. Specifically, the rounding happens after each addition, which can lead to inaccuracies or incorrect totals. To correct this, we should round the total in one step after summing all amounts for a customer. Here is the corrected code: ```python def totals_by_customer(invoices): totals = {} for inv in invoices: if inv.get("refunded"): continue customer = inv["customer"] amount = float(inv["amount"]) if customer not in totals: totals[customer] = 0.0 totals[customer] += amount for customer in totals: totals[customer] = round(totals[customer], 2) return totals sample = [ {"customer": "North Vale Clinic", "amount": "19.995", "refunded": False}, {"customer": "Harbor & Pine", "amount": "5.335", "refunded": False}, {"customer": "North Vale Clinic", "amount": "0.335", "refunded": False}, {"customer": "Harbor & Pine", "amount": "4.665", "refunded": False}, {"customer": "North Vale Clinic", "amount": "12.00", "refunded": True} ] print(totals_by_customer(sample)) ``` With this corrected code, the expected totals for the sample are North Vale Clinic = 20.33 and Harbor & Pine = 10.00.

Model A is better because it fixes the main bug and returns a cleaner corrected function, though it still violates the instruction to return only code by adding explanation. Model B makes the same partial fix but follows instructions worse by including explanation, the sample data, and a print statement instead of only the corrected code. (Second judge pass, order swapped — scores are the average of both: Model A is better because it provides the corrected function only, whereas Model B includes explanation, sample data, and a print call despite the instruction to return only corrected code. Both models identify the rounding bug, but neither fully addresses decimal-precision correctness for currency values; still, Model A adheres more closely to the requested output format.)

messy-order-extraction

Information extraction From the messy text below, extract all shipped line items into a JSON array. Include one object per shipped item with exactly these keys: order_id, sku, qty, ship_date, carrier, tracking. Exclude canceled items and items marked pending. Text: "Ops dump 11/14 — Order AX-491 | customer: Luma Dental - SKU QN-4402 qty 3 — shipped 2026-11-13 via RedPost, tracking RP118204 - SKU QN-1188 qty 1 — CANCELED 2026-11-12 Order BX-203 / Brookmere School: * item: TT-900 qty=12 status shipped on 2026-11-14 carrier FleetJet trk FJ-77291 * item: TT-901 qty=4 status pending misc note: BX-203 gift wrap approved. Order CZ-778 customer Velon Spa sku AA-77 x2 shipped 2026-11-12 by RedPost tracking RP118155 sku AA-78 x1 shipped 2026-11-12 by RedPost tracking RP118156 Order DX-010 cust. Neralis Farm — sku PK-5 qty 9 refunded after cancel, do not ship. "

DeepSeek-V4-Pro: [ { "order_id": "AX-491", "sku": "QN-4402", "qty": 3, "ship_date": "2026-11-13", "carrier": "RedPost", "tracking": "RP118204" }, { "order_id": "BX-203", "sku": "TT-900", "qty": 12, "ship_date": "2026-11-14", "carrier": "FleetJet", "tracking": "FJ-77291" }, { "order_id": "CZ-778", "sku": "AA-77", "qty": 2, "ship_date": "2026-11-12", "carrier": "RedPost", "tracking": "RP118155" }, { "order_id": "CZ-778", "sku": "AA-78", "qty": 1, "ship_date": "2026-11-12", "carrier": "RedPost", "tracking": "RP118156" } ]
Phi-4-multimodal-instruct: ```json [ { "order_id": "AX-491", "sku": "QN-4402", "qty": 3, "ship_date": "2026-11-13", "carrier": "RedPost", "tracking": "RP118204" }, { "order_id": "BX-203", "sku": "TT-900", "qty": 12, "ship_date": "2026-11-14", "carrier": "FleetJet", "tracking": "FJ-77291" }, { "order_id": "CZ-778", "sku": "AA-77", "qty": 2, "ship_date": "2026-11-12", "carrier": "RedPost", "tracking": "RP118155" }, { "order_id": "CZ-778", "sku": "AA-78", "qty": 1, "ship_date": "2026-11-12", "carrier": "RedPost", "tracking": "RP118156" } ] ```

Model A and Model B extract the same four shipped items correctly and exclude canceled or pending items. Model A is better because it returns exactly the requested JSON array, while Model B wraps the JSON in a Markdown code fence, which is a minor instruction-following issue. (Second judge pass, order swapped — scores are the average of both: Model B and Model A both correctly extract the four shipped items and exclude the canceled and pending entries. Model B wraps the JSON in a code block while Model A presents raw JSON, but both otherwise follow the requested schema exactly and are equally strong on the task itself.)

Unit-aware math

A pump moves 3.5 liters every 8 seconds. A tank holds 0.9 cubic meters. Starting empty, how long to fill it, in minutes and seconds (mm:ss), rounded to the nearest second? Show the key steps, then give the final answer on its own line.

DeepSeek-V4-Pro: Let’s go step-by-step. --- **Step 1: Convert the tank volume to liters.** 1 cubic meter = 1000 liters. Tank volume = \( 0.9 \, \text{m}^3 \times 1000 = 900 \, \text{liters} \). --- **Step 2: Find the pump’s flow rate in liters per second.** The pump moves 3.5 liters in 8 seconds. Flow rate = \( \frac{3.5}{8} = 0.4375 \, \text{L/s} \). --- **Step 3: Calculate the time to fill the tank in seconds.** Time (seconds) = \( \frac{900}{0.4375} = 2057.142857\ldots \) seconds. --- **Step 4: Convert seconds to minutes and seconds.** - Minutes: \( 2057 \div 60 = 34\) full minutes (since \(34 \times 60 = 2040\)). - Remaining seconds: \( 2057.142857 - 2040 = 17.142857 \) seconds. - Rounded to nearest second: \( 17 \) seconds. --- **Step 5: Final result in mm:ss format.** \( 34\) minutes and \( 17\) seconds. --- **34:17**
Phi-4-multimodal-instruct: To find out how long it will take to fill the tank, we first need to convert the tank's volume from cubic meters to liters, as the pump's rate is given in liters per 8 seconds. 1 cubic meter equals 1000 liters, so: Volume of the tank in liters = 0.9 cubic meters * 1000 liters/cubic meter = 900 liters The pump moves 3.5 liters every 8 seconds, so the pump's rate in liters per second is: Pump rate = 3.5 liters / 8 seconds = 0.4375 liters/second Now, we calculate how many seconds it will take to fill the tank with this rate: Time (seconds) = Volume of the tank (liters) / Pump rate (liters/second) Time (seconds) = 900 liters / 0.4375 liters/second ≈ 2057.14 seconds Since we need the time in minutes and seconds, we convert seconds into minutes and remaining seconds. Total minutes = 2057.14 seconds / 60 seconds/minute ≈ 34.285 minutes Remaining seconds = 2057.14 seconds % 60 seconds/minute ≈ 17.14 seconds When rounding to the nearest second, we get: minutes = 34 minutes seconds = 17 seconds The final answer is 34 minutes and 17 seconds (34:17).

Model A and Model B both compute the correct result, but Model A better matches the requested format by clearly showing key steps and placing the final answer on its own line in mm:ss form. Model B is also correct, but its final answer is embedded in a sentence rather than presented cleanly on its own line. (Second judge pass, order swapped — scores are the average of both: Model A is slightly better because it is fully correct, clearly structured, and ends with the final answer cleanly on its own line in the requested mm:ss format. Model B is also correct, but its final answer is embedded in a sentence rather than presented as a standalone final line, so it follows the formatting instruction a bit less precisely.)

customer-delay-email

Professional writing Write a customer email to Mira Solano at Alder Peak Studio. Context: her custom signage order #SP-1847 was promised for Aug 29, but production found a color-calibration issue on the cobalt panels during final inspection. Reprinting will add 3 business days. We can either ship the full corrected order on Sep 3, or split-ship the non-cobalt items now and the rest on Sep 3 at no extra charge. Audience: customer. Tone: apologetic, clear, professional, and human. Length: 140–180 words.

DeepSeek-V4-Pro: Subject: Update on Your Order #SP-1847 – Alder Peak Studio Dear Mira, I’m reaching out with an update on your custom signage order and, frankly, an apology. During our final quality inspection, our production team discovered a color-calibration issue specifically affecting the cobalt panels. I know you were counting on the original August 29th delivery, and I’m truly sorry for this delay. Because we’ll never ship work that falls short of our standards, we need to reprint those pieces, which adds three business days. We will have the complete, corrected order ready to ship on September 3rd. In the meantime, I’d like to offer a solution: we can split your shipment at no extra charge. We’ll send the non-cobalt items immediately so you can begin installation, and the reprinted cobalt panels will follow separately on September 3rd. Alternatively, we can hold everything and ship one complete package on that date. Please let me know which option works best for you, and rest assured this is receiving my full attention. Warm regards, [Your Name]
Phi-4-multimodal-instruct: Subject: Custom Signage Order #SP-1847 Update Dear Mira Solano, I hope this message finds you well. I wanted to personally reach out regarding your custom signage order #SP-1847. We deeply regret that we have encountered a color-calibration issue with the cobalt panels during our final inspection. As a result, we will add an additional three business days to our production process. I sincerely apologize for any inconvenience this may cause. To express our apologies and ensure your satisfaction, we are considering two options: either shipping the entire corrected order on Sep 3th, or shipping the non-cobalt items now with the cobalt parts arriving on Sep 3rd. Both options are without any extra charge. We hope that our client relationship with your studio will grow stronger through attentiveness and dedication to excellence. Your understanding and patience in this process would mean a lot to us. We look forward to your valuable feedback. Thank you for your continued partnership. Warm regards, [Your Name] [Your Position] Alder Peak Studio

Model A is clearer, more natural, and more complete: it accurately explains the issue, gives the two requested options, and maintains an apologetic, professional, human tone within the target length. Model B includes awkward phrasing, a date error ("Sep 3th"), and less polished customer-facing language, which weakens both correctness and writing quality. (Second judge pass, order swapped — scores are the average of both: Model A is clearer, more natural, and more customer-focused while accurately presenting both shipping options and the reason for the delay. Model B includes awkward phrasing, an incorrect date format ("Sep 3th"), and less polished, less human language that weakens its professionalism.)

meeting-notes-bullets

Summarization Summarize the meeting notes below into exactly 4 bullet points. Each bullet must be one sentence, 12–18 words, and must not invent anything. Notes: "Tuesday sync, 09:30. Priya said the mobile app crash affecting Android 13 happens only after users switch accounts twice; a hotfix is ready for QA today. Emilio reported checkout latency improved from 2.8s median to 1.9s after disabling the promo-banner experiment, but p95 is still above target in Brazil. Dana confirmed legal approved the revised data-retention wording, except for the line about biometric templates, which needs external counsel review. Leon said the warehouse scanner rollout in Reno is delayed to next Wednesday because 14 devices arrived with dead batteries; procurement is requesting replacements. Team agreed to pause the referral campaign email until crash telemetry is reviewed on Friday."

DeepSeek-V4-Pro: - Priya reported the Android 13 app crash occurs after switching accounts twice and a hotfix is ready for QA. - Emilio noted checkout latency improved to 1.9s median after disabling promo banners, but p95 still exceeds targets in Brazil. - Dana confirmed legal approved revised data-retention wording except the biometric templates line needing external counsel review. - The warehouse scanner rollout in Reno is delayed to next Wednesday due to 14 devices arriving with dead batteries.
Phi-4-multimodal-instruct: - Hotfix for mobile app crash on Android 13 is ready for QA testing today. - Checkout latency improved but p95 in Brazil still exceeds the target. - Legal approved all except the biometric templates line in data-retention wording. - Referral campaign paused until the mobile app crash issue is resolved post-review.

Model A is more faithful to the notes and captures more key specifics without inventing outcomes, while Model B omits important details and changes the final point by saying the referral campaign is paused until the issue is resolved rather than until telemetry is reviewed on Friday. Both provide exactly four bullets, but Model A better satisfies the content constraints overall. (Second judge pass, order swapped — scores are the average of both: Model A is better because all four bullets stay faithful to the notes and meet the sentence-length requirement, while Model B omits key specifics, changes the approval scope, and says the referral campaign is paused until the crash is resolved rather than until telemetry is reviewed on Friday. Model A does omit the referral-campaign decision, but its included bullets are more accurate overall than Model B's.)

warehouse-pickup-scheduling

Step-by-step reasoning A courier leaves depot at 08:00 and must make 4 pickups: Juno Metals, Kestrel Labs, Maple Print, and Oriel Foods. Travel times (minutes): depot→Juno 18, depot→Kestrel 26, depot→Maple 14, depot→Oriel 22; Juno→Kestrel 11, Juno→Maple 9, Juno→Oriel 15; Kestrel→Maple 13, Kestrel→Oriel 8; Maple→Oriel 12. Travel times are symmetric. Pickup service times: Juno 7, Kestrel 9, Maple 6, Oriel 8. Time windows: Juno 08:20–09:10, Kestrel 08:40–09:30, Maple 08:10–08:50, Oriel 08:35–09:20. The courier may wait if early. What is the earliest possible time all 4 pickups can be completed, and what route achieves it? Give the final answer as: Route: ... ; Finish: HH:MM

DeepSeek-V4-Pro: Alright, let’s break this down step-by-step. --- ## **Step 1 – Data setup** **Pickup points:** - **J** – Juno Metals - **K** – Kestrel Labs - **M** – Maple Print - **O** – Oriel Foods **Service times (minutes):** - J: 7 - K: 9 - M: 6 - O: 8 **Time windows:** - M: 08:10–08:50 - J: 08:20–09:10 - O: 08:35–09:20 - K: 08:40–09:30 **Travel times (symmetric):** | From/To | Depot | J | K | M | O | |---------|-------|-----|-----|-----|-----| | Depot | - | 18 | 26 | 14 | 22 | | J | 18 | - | 11 | 9 | 15 | | K | 26 | 11 | - | 13 | 8 | | M | 14 | 9 | 13 | - | 12 | | O | 22 | 15 | 8 | 12 | - | --- ## **Step 2 – Start from depot at 08:00** We must choose the first pickup. Let’s check earliest time windows: - M opens 08:10 (travel 14 min) → arrive 08:14 → OK. - J opens 08:20 (travel 18 min) → arrive 08:18, wait 2 min. - O opens 08:35 (travel 22 min) → arrive 08:22, wait 13 min. - K opens 08:40 (travel 26 min) → arrive 08:26, wait 14 min. M has earliest window, minimal waiting, makes sense to start there. --- ## **Step 3 – First pickup: Depot → M** - Depart 08:00 - Travel 14 min → arrive 08:14 (window open, no wait) - Service (6 min) → finish at 08:20 --- ## **Step 4 – Next possible pickups** At 08:20 from M: 1. **M → J**: travel 9 min → arrive 08:29 (window open), service ends 08:36 2. **M → O**: travel 12 min → arrive 08:32 (window not open until 08:35) → wait 3 min, service ends 08:43 3. **M → K**: travel 13 min → arrive 08:33 (window not open until 08:40) → wait 7 min, finish 08:49 J seems best for early continuation. --- ## **Step 5 – Second pickup: M → J** - Depart 08:20 - Travel 9 min → arrive 08:29 - Service 7 min → finish 08:36 --- ## **Step 6 – Third pickup options** From J at 08:36: 1. **J → O**: travel 15 min → arrive 08:51 (window open), finish service 08:59 2. **J → K**: travel 11 min → arrive 08:47 (window open at 08:40), finish 08:56 O has later closing time (09:20) than K (09:30), so both safe. Let's try K first because earlier finish. --- ## **Step 7 – Third pickup: J → K** - Depart 08:36 - Travel 11 min → arrive 08:47 (window open) - Service 9 min → finish 08:56 --- ## **Step 8 – Last pickup: K → O** - Depart 08:56 - Travel 8 min → arrive 09:04 (window closes 09:20, OK) - Service 8 min → **finish 09:12** --- **Route:** Depot → Maple Print → Juno Metals → Kestrel Labs → Oriel Foods **Final finish time:** 09:12 --- **Final answer:** Route: Depot → Maple Print → Juno Metals → Kestrel Labs → Oriel Foods ; Finish: 09:12
Phi-4-multimodal-instruct: To find the earliest possible time to complete all pickups, we'll evaluate the permutations of the routes and pick up the ones that fit within their respective time windows. We'll start with the earliest pickup and consider subsequent pickups that occur later. **Time windows and pickup times:** - Juno Metals: 08:20 - 09:10 (7 min service after pickup) - Kestrel Labs: 08:40 - 09:30 (9 min service after pickup) - Maple Print: 08:10 - 08:50 (6 min service after pickup) - Oriel Foods: 08:35 - 09:20 (8 min service after pickup) **Travel times (in minutes):** - Depot → Juno: 18 - Depot → Kestrel: 26 - Depot → Maple: 14 - Depot → Oriel: 22 - Juno → Kestrel: 11 - Juno → Maple: 9 - Juno → Oriel: 15 - Kestrel → Maple: 13 - Kestrel → Oriel: 8 - Maple → Oriel: 12 ### Step-by-Step Calculation: 1. **Start at 08:00 (Depot):** - Positional interpretation: - Juno’s possible time bracket: \( \text{Time arrived at Juno} \geq 08:20 - 7 = 08:13 \) \( 08:13 \leq 08:00 + 18 \leq 08:20 \) - Kestrel’s possible time bracket: \( \text{Time arrived at Kestrel} \geq 08:40 - 9 = 08:31 \) \( 08:31 \leq 08:00 + 26 \leq 08:40 \) - Maple’s possible time bracket: \( \text{Time arrived at Maple} \geq 08:10 - 6 = 08:04 \) \( 08:04 \leq 08:00 + 14 \leq 08:10 \) - Oriel’s possible time bracket: \( \text{Time arrived at Oriel} \geq 08:35 - 8 = 08:27 \) \( 08:27 \leq 08:00 + 22 \leq 08:35 \) If we match Maple Print as this earliest interval structures: 2. **Pickup Maple Print (08:04):** - Time spent = 06 minutes. - 08:10 (Arrival) - 06 minutes (Service) = 08:16. 3. **Next possible start point:** - Juno Metals (08:20) - Calculate remaining intervals that meet: - Can go Juno Metals directly: (Juno Metals next pickup after Maple Print): \( 08:00 + (14 minutes + 6 min) + (18 minutes ) = 08:38 - 08:20 = 08:28 \). 4. **Next pickup Juno Metals (08:28):** - Time spent = 7 minutes. - 08:44 (Arrival) - 7 (service) = 08:41. 5. **Next optimal paths need Juno to Kestrel, etc, track all possible intervals that finish under the last available times (maple Oriel):** Take **Kestrel at 08:31:** fits Route Juno-Kestrel-Oriel timeframe with Maple inter contingency as final pick, Route: Depot → Maple → Juno → Kestrel, Depot → Juno, Depot → Kestrel, Depot → Oriel): 6. Final Result: - The optimized sequence keeping earliest fastest times for finish: Juno 08:38, Kestrel 08:31, Oriel 08:24, Maple earliest 08:10 feasible scrutinizing proximal per indicated time windows. Thus, Route: Depot → Maple → Juno → Kestrel possible feasible latest peak 08:50, earlier contending safe small margin allowances; Finish: 08:50/Qs Final Calculation optimal: **Depot → Maple → Juno → Kestrel → Oriel (Accurate critical feasible route), Finish: 08:50 of implied correct final feasible.

Model A gives a coherent, feasible route and finish time, and its result checks out against the travel times, service times, and time windows. Model B is internally inconsistent, contains incorrect time calculations, and ends with an infeasible/unsupported finish time of 08:50. (Second judge pass, order swapped — scores are the average of both: Model A is clearly better because it provides a coherent route calculation and a properly formatted final answer, while Model B is internally inconsistent, contains arithmetic and logic errors, and gives an invalid finish time. Model A is still not fully correct—the true earliest finish is earlier than 09:12—but it is far closer and much better written.)

Constraint scheduling

Four talks (A, B, C, D) fill four 1-hour slots 9,10,11,12. Constraints: A is before D; C is not first; B is immediately after A; D is not at 12. Give the ONE valid schedule as 'slot: talk' lines, then a one-line justification. If impossible, say so and explain.

DeepSeek-V4-Pro: Let’s reason step by step. **Constraints:** 1. A is before D. 2. C is not first. 3. B is immediately after A. 4. D is not at 12. From constraint 3, A and B must be in consecutive slots: (A, B) in that order. Possible (A, B) slot pairs: - (9, 10) - (10, 11) - (11, 12) **Check each:** - If (A, B) = (9, 10): C cannot be first → 9 is A, so C could be 11 or 12. D must be after A (constraint 1) and not at 12 (constraint 4), so D could be 11. Then C = 12. This fits: A=9, B=10, D=11, C=12. - If (A, B) = (10, 11): Then D must be after A → D could be 12, but constraint 4 says D ≠ 12, so impossible. - If (A, B) = (11, 12): D must be after A, but the only later slot is 12, which is occupied by B and anyway forbidden for D. Impossible. **Thus only one valid schedule:** ``` 9: A 10: B 11: D 12: C ``` **Justification:** A and B must be consecutive with A first, which forces them into 9–10; D must follow A and cannot be at 12, so D is 11; C gets the remaining slot 12, which satisfies C not first.
Phi-4-multimodal-instruct: Slot: 9 - B Slot: 10 - A Slot: 11 - C Slot: 12 - D Justification: B is immediately after A, first and second talks B and A occupy the earliest two slots in the morning. C cannot be first, so it must be third. D cannot be at 12, leaving the last slot to D. A is before D, satisfying the remaining constraint.

Model A gives the unique valid schedule and a correct justification, fully satisfying the prompt. Model B's schedule violates multiple constraints, including placing B before A and D at 12, so it is incorrect despite being clearly written. (Second judge pass, order swapped — scores are the average of both: Model A is correct and fully satisfies the prompt by giving the unique valid schedule in the requested format with a concise justification. Model B gives an invalid schedule that violates both 'A is immediately after A' and 'D is not at 12,' so despite being formatted similarly, it fails on correctness.)

Matchup powered by OpenRouter.