Head to head: Llama-4-Scout-17B-16E-Instruct vs Phi-4

Llama-4-Scout-17B-16E-Instruct vs Phi-4

By · Published

RuntimeWire Head-to-Head: Head to head: Llama-4-Scout-17B-16E-Instruct vs Phi-4
RuntimeWire Head-to-Head matchup

This matchup pits Llama’s broader competence across practical production work against Phi-4’s sharper performance on proofreading, classification, and selected extraction tasks. The deciding factor is consistency across the full workload, not one standout capability.

Llama-4-Scout-17B-16E-Instruct wins 79.5 to 73.5, taking 14 tasks to Phi-4’s 8 with 2 ties. The limited confidence verdict makes this a clear result, although the six-point margin is decisive rather than crushing. Llama built its lead where an assistant earns its keep: faithful rewrites, Python debugging, receipt-to-CSV conversion, professional email writing, localization, and both LRU-cache trials. Its strongest pattern was preserving source details while producing something usable; Phi-4 more often dropped information, chose weaker data mappings, or violated output-only instructions with explanatory prose. Phi-4 was better at narrower precision work. It won both proofreading trials by catching the crucial “we seen” error, swept nuanced classification with more specific reasons, and took selected JSON, travel-extraction, rota, and exact-format tests. But those wins did not form as broad a base, and several supposedly strict outputs from both models were marred by Markdown fences, extra text, or broken line constraints. Llama’s own victories were not spotless either: its LRU implementations missed true O(1) eviction, and its rota and outreach answers sometimes won merely by being less wrong. **Final call: Llama-4-Scout-17B-16E-Instruct is the better all-purpose model here. Phi-4 remains the stronger specialist for proofreading and compact classification, but Llama’s materially wider task coverage—and a statistically clear limited confidence win—settles the head-to-head.**

Constraint satisfaction — on-call rota

Assign one person to each on-call day Mon, Tue, Wed, Thu from this team: Aisha, Ben, Cora, Diego. Use each person exactly once. Constraints: - Aisha is unavailable on Tue and Thu. - Ben cannot do Mon. - Cora must be scheduled earlier in the week than Diego. - The person on Wed must be either Ben or Diego. - Tue must be Aisha or Cora. - Diego cannot do Thu. Return ONLY the final schedule as four lines in the format "Mon: Name" etc. There is exactly one valid solution.

Llama-4-Scout-17B-16E-Instruct: ## Step 1: Analyze the constraints for each day and person Given the constraints: - Aisha is unavailable on Tue and Thu. - Ben cannot do Mon. - Cora must be scheduled earlier in the week than Diego. - The person on Wed must be either Ben or Diego. - Tue must be Aisha or Cora. - Diego cannot do Thu. ## 2: Determine possible candidates for each day based on constraints - Mon: Not Ben, so Aisha, Cora, or Diego are possible. - Tue: Aisha or Cora, and Aisha is unavailable on Tue and Thu, so Aisha can only be on Mon or Wed, but if Aisha is on Wed, then Tue must be Cora. - Wed: Ben or Diego. - Thu: Not Diego, and not Aisha, so Ben or Cora. ## 3: Apply the constraint that Cora must be scheduled earlier than Diego This means Cora cannot be on Thu, and if Cora is on Tue, then Diego must be on a later day, which could be Wed or Thu, but Diego cannot be on Thu. ## 4: Consider the constraint that the person on Wed must be either Ben or Diego and combine with other constraints If Ben is on Wed, then Diego could be on Thu, but Diego cannot be on Thu, so this creates a conflict unless Diego is on a different day. If Diego is on Wed, then Ben must be on Thu because Aisha and Cora's availability. ## 5: Trial and error with constraints Let's start with Mon: If Aisha is on Mon, then Tue could be Cora (since Aisha is off on Tue), Wed could be Ben (because Ben can't be on Mon and Wed is a possibility for Ben), and Thu could be Diego (but we need to check all constraints). ## 6: Test a possible schedule - Mon: Aisha - Tue: Cora (since Tue must be Aisha or Cora, and Aisha is on Mon) - Wed: Ben (since Wed must be Ben or Diego, and Ben isn't on Mon) - Thu: Diego (left over, and Diego can't be on Thu, but let's see if it fits) This doesn't work because Diego is on Thu. ## 7: Try another combination - Mon: Cora - Tue: Aisha (since Tue must be Aisha or Cora) - Wed: Diego (since Cora is before Diego, and Wed can be Diego) - Thu: Ben (Ben not on Mon, and other days taken) ## 8: Verify the schedule against all constraints - Mon: Cora (okay) - Tue: Aisha (okay, Aisha not on Tue and Thu, but here on Tue) - Wed: Diego (okay, Cora before Diego, and Wed can be Diego) - Thu: Ben (okay, Ben not on Mon) ## 9: Confirm the schedule fits all given constraints - Aisha unavailable on Tue and Thu: Not on Tue or Thu, so okay. - Ben cannot do Mon: Ben on Thu, so okay. - Cora before Diego: Cora on Mon, Diego on Wed, so okay. - Wed is Ben or Diego: Diego on Wed, so okay. - Tue is Aisha or Cora: Aisha on Tue, so okay. - Diego cannot do Thu: Diego on Wed, so okay. ## 10: Write down the final schedule Mon: Cora Tue: Aisha Wed: Diego Thu: Ben The final answer is: Mon: Cora Tue: Aisha Wed: Diego Thu: Ben
Phi-4: ```plaintext Mon: Cora Tue: Aisha Wed: Ben Thu: Diego ```

OpenAI: GPT-5.6 Sol Pro: Model A is closer because its schedule violates only Aisha’s Tuesday unavailability, whereas Model B violates both Aisha’s Tuesday unavailability and Diego’s Thursday unavailability. Model A nevertheless badly violates the required output-only format and contains contradictory reasoning, while Model B is concise but still adds a code fence. (Second judge pass, order swapped — scores are the average of both: Neither is correct: the valid schedule is Mon Aisha, Tue Cora, Wed Diego, Thu Ben; Model | Anthropic: Claude Fable 5.1: The unique valid solution is Mon: Aisha, Tu…

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."

Llama-4-Scout-17B-16E-Instruct: "Hey engineering team, just a quick update on our deploy status. We're currently holding deployments due to an outstanding issue with a memory leak in the image service. Priya is actively working on a fix and we're expecting resolution by tomorrow noon. In the meantime, please refrain from merging any changes to main. Thanks for your understanding and I appreciate your help in getting this resolved!"
Phi-4: Hi Team, Just a quick update: we're pausing deployments for now until the memory leak in the image service is resolved. Priya is actively working on this, and she's aiming to have it fixed by tomorrow noon. To ensure stability, please refrain from merging any changes to `main` until further notice. Thanks for your cooperation and patience! Best, [Your Name]

OpenAI: GPT-5.6 Sol Pro: Model A preserves the deployment freeze, memory leak, Priya’s ownership, merge restriction, and noon ETA in a warm, concise Slack-appropriate message. Model B is less faithful because it attributes the ETA specifically to Priya, adds a stability rationale and “until further notice,” and includes an email-style placeholder signature. (Second judge pass, order swapped — scores are the average of both: Model A preserves the ETA as a general expectation, whereas Model B changes it into Priya’s perso | Anthropic: Claude Fable 5.1: Model A preserves all four facts, lands co…

Debugging & code review — Python dedupe bug

The following Python function is meant to return a list of orders, keeping only the latest record for each order_id based on updated_at. It currently gives wrong results for some inputs. Find the bug, fix it, and return ONLY the corrected code. ```python def latest_orders(rows): latest = {} for row in rows: oid = row["order_id"] if oid not in latest or row["updated_at"] > latest[oid]["updated_at"]: latest[oid] = row return sorted(latest.values(), key=lambda r: r["order_id"]) sample = [ {"order_id": "A12", "updated_at": "2026-2-9 08:14", "status": "packed"}, {"order_id": "A12", "updated_at": "2026-10-01 07:02", "status": "shipped"}, {"order_id": "B77", "updated_at": "2026-03-05 09:00", "status": "new"}, {"order_id": "B77", "updated_at": "2026-03-05 11:30", "status": "paid"}, ] ```

Llama-4-Scout-17B-16E-Instruct: ```python from datetime import datetime def latest_orders(rows): latest = {} for row in rows: oid = row["order_id"] # Compare datetime objects instead of strings updated_at = datetime.strptime(row["updated_at"], "%Y-%m-%d %H:%M") if oid not in latest: latest[oid] = row else: existing_updated_at = datetime.strptime(latest[oid]["updated_at"], "%Y-%m-%d %H:%M") if updated_at > existing_updated_at: latest[oid] = row return sorted(latest.values(), key=lambda r: r["order_id"]) sample = [ {"order_id": "A12", "updated_at": "2026-2-9 08:14", "status": "packed"}, {"order_id": "A12", "updated_at": "2026-10-01 07:02", "status": "shipped"}, {"order_id": "B77", "updated_at": "2026-03-05 09:00", "status": "new"}, {"order_id": "B77", "updated_at": "2026-03-05 11:30", "status": "paid"}, ] print(latest_orders(sample)) ```
Phi-4: The issue with the current implementation is that the `"updated_at"` field is being compared as a string, which can lead to incorrect comparisons. For example, the string `"2026-10-01 07:02"` might be considered smaller than `"2026-2-9 08:14"` because lexicographical comparison of strings doesn't account for date order properly. To fix this, we need to convert the `"updated_at"` strings into date objects before comparison. Here's the corrected code: ```python from datetime import datetime def latest_orders(rows): latest = {} for row in rows: oid = row["order_id"] # Convert "updated_at" to a datetime object for proper comparison updated_at = datetime.strptime(row["updated_at"], "%Y-%m-%d %H:%M") if oid not in latest or updated_at > datetime.strptime(latest[oid]["updated_at"], "%Y-%m-%d %H:%M"): latest[oid] = row return sorted(latest.values(), key=lambda r: r["order_id"]) sample = [ {"order_id": "A12", "updated_at": "2026-2-9 08:14", "status": "packed"}, {"order_id": "A12", "updated_at": "2026-10-01 07:02", "status": "shipped"}, {"order_id": "B77", "updated_at": "2026-03-05 09:00", "status": "new"}, {"order_id": "B77", "updated_at": "2026-03-05 11:30", "status": "paid"}, ] print(latest_orders(sample)) ``` This modification ensures that dates are compared correctly based on chronological order.

OpenAI: GPT-5.6 Sol Pro: Model A correctly parses timestamps and provides only a code block, though the repeated sample and print call are unnecessary. Model B is also technically correct but directly violates the requirement to return only corrected code by adding explanatory prose. (Second judge pass, order swapped — scores are the average of both: Both models correctly parse timestamps before comparison, but Model B violates the explicit requirement to return only code by adding explanatory prose. Model A follows the | Anthropic: Claude Fable 5.1: Both Model A and Model B correctly diagnos…

Data wrangling — receipts to CSV

Convert the receipt notes into CSV with EXACT header: date,vendor,category,amount_usd,payment,last4,city,notes Rules: one row per purchase; dates must be YYYY-MM-DD; amount_usd numeric with 2 decimals and no $; payment must be one of card,cash,transfer; last4 blank if not known; preserve commas in notes by quoting that field only when needed. Source notes: - 8 Jan 2026 — MetroCab / airport to client site / $46.7 / Visa ****1128 / Newark - Jan 8, 2026: Blue Kettle Cafe, team breakfast, 38 dollars even, paid cash, Newark - 2026-01-09 | Adobe renewal | software | USD 29.99 | paid via card 1128 | remote - 1/09/26 - Hudson Print Co - booth handouts - 184.00 - bank transfer - Jersey City - rush order - Jan-10-2026 / StayLite Hotel / lodging / $219.5 / Mastercard ending 7781 / Newark / 1 night - 10 Jan 2026 / MetroCab / client site to hotel / 44 / card xxxx7781 / Newark / late receipt submitted

Llama-4-Scout-17B-16E-Instruct: Here is the converted CSV data: "date","vendor","category","amount_usd","payment","last4","city","notes" "2026-01-08","MetroCab","transportation","46.70","card","1128","Newark","airport to client site" "2026-01-08","Blue Kettle Cafe","food","38.00","cash","","Newark","team breakfast" "2026-01-09","Adobe","software","29.99","card","1128","remote","renewal" "2026-01-09","Hudson Print Co","supplies","184.00","transfer","","Jersey City","booth handouts, rush order" "2026-01-10","StayLite Hotel","lodging","219.50","card","7781","Newark","1 night" "2026-01-10","MetroCab","transportation","44.00","card","7781","Newark","client site to hotel, late receipt submitted" However, to exactly follow your rules about quoting the notes field only when needed, here is the revised CSV: date,vendor,category,amount_usd,payment,last4,city,notes 2026-01-08,MetroCab,transportation,46.70,card,1128,Newark,"airport to client site" 2026-01-08,Blue Kettle Cafe,food,38.00,cash,,Newark,team breakfast 2026-01-09,Adobe,software,29.99,card,1128,remote,renewal 2026-01-09,Hudson Print Co,supplies,184.00,transfer,,Jersey City,"booth handouts, rush order" 2026-01-10,StayLite Hotel,lodging,219.50,card,7781,Newark,"1 night" 2026-01-10,MetroCab,transportation,44.00,card,7781,Newark,"client site to hotel, late receipt submitted"
Phi-4: To transform the source notes into a properly formatted CSV, follow the specified rules for headers, dates, amounts, payment methods, etc. Here is how the data should look when formatted correctly: ```csv date,vendor,category,amount_usd,payment,last4,city,notes 2026-01-08,MetroCab,transportation,46.70,card,1128,Newark,airport to client site 2026-01-08,Blue Kettle Cafe,meals and entertainment,38.00,cash,,Newark,team breakfast 2026-01-09,Adobe,renewal,29.99,card,1128,,software 2026-01-09,Hudson Print Co,office supplies,184.00,transfer,,Jersey City,rush order 2026-01-10,StayLite Hotel,lodging,219.50,card,7781,Newark,1 night 2026-01-10,MetroCab,transportation,44.00,card,7781,Newark,client site to hotel,late receipt submitted ``` ### Explanation: 1. **Date Formatting**: Use `YYYY-MM-DD` format for all dates. 2. **Amount Formatting**: Convert amounts to dollars with two decimal places (e.g., convert $46.7 to 46.70). 3. **Payment Method**: Use one of `card`, `cash`, or `transfer` based on the given information. 4. **Last Four Digits**: Include card details like `****1128` or `xxxx7781` after payment if provided. Use an empty field if not available. 5. **Notes**: Preserve commas in notes by quoting as needed and include sufficient context without excessive details. 6. **City**: Include the city name where applicable unless specified otherwise; otherwise, use an empty field if not given.

OpenAI: GPT-5.6 Sol Pro: Model A is substantially more accurate, especially in mapping the Adobe and Hudson Print fields and quoting notes containing commas, though it unnecessarily provides two CSV versions and overquotes some notes. Model B misassigns several fields, omits source details, and leaves the final comma-containing notes field unquoted, producing an invalid extra column. (Second judge pass, order swapped — scores are the average of both: Model A preserves and assigns the source information more accurately, | Anthropic: Claude Fable 5.1: Model A's final CSV has the exact header, c…

Instruction following — exact-format outreach note

Write a Slack DM to a hiring manager, Priya Nand, about a candidate interview loop. Follow EVERY rule exactly: - Exactly 5 lines, with no blank lines. - Line 1 must be: Hi Priya — quick update. - Include these facts somewhere: candidate is Omar Velasquez; role is Senior QA Analyst; panel feedback is mixed; one interviewer raised concerns about test automation depth; references are strong; propose a final 30-minute follow-up interview next week. - Line 4 must be a bullet starting with "- Proposed next step:". - Total length must be 70–90 words. - Do NOT use the words "however", "but", or "concerns". - End line 5 with exactly this question: Would you like me to schedule it?

Llama-4-Scout-17B-16E-Instruct: Hi Priya — quick update. Omar Velasquez, the Senior QA Analyst candidate, had a mixed panel feedback. One interviewer noted that his test automation depth could be improved. His references are strong, indicating a solid fit for the role. - Proposed next step: a final 30-minute follow-up interview next week to further assess his qualifications. Would you like me to schedule it?
Phi-4: Hi Priya — quick update on Omar Velasquez for Senior QA Analyst. Panel feedback is mixed: one highlighted a need for deeper test automation knowledge. Despite this, references are strong. - Proposed next step: conduct a 30-minute follow-up interview next week to explore Omar's technical skills further. Shall I set a date and time? Would you like me to schedule it?

OpenAI: GPT-5.6 Sol Pro: Model A is better because it includes the required final interview and places the proposed-next-step bullet at the start of a line. Model A and Model B both violate the five-line, exact first-line, line-4, and 70–90-word requirements; Model B also omits “final” and adds a redundant question. (Second judge pass, order swapped — scores are the average of both: Model A includes every required fact, uses the required opening text and ending question, and includes the specified bullet, though it has | Anthropic: Claude Fable 5.1: Both outputs badly miss the structural rule…

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.

Llama-4-Scout-17B-16E-Instruct: ```typescript class LRUCache<K, V> { private capacity: number; private cache: Map<K, [V, number]>; private timestamp: number; constructor(capacity: number) { this.capacity = capacity; this.cache = new Map(); this.timestamp = 0; } 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, ++this.timestamp]); 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 lruKey = this.findLRUKey(); this.cache.delete(lruKey); } this.cache.set(key, [value, ++this.timestamp]); } private findLRUKey(): K { let lruKey: K | null = null; let lruTimestamp = Infinity; for (const [key, [, timestamp]] of this.cache) { if (timestamp < lruTimestamp) { lruKey = key; lruTimestamp = timestamp; } } return lruKey as K; } } ```
Phi-4: ```typescript class LRUCache<K, V> { private capacity: number; private cache: Map<K, V>; private order: K[]; constructor(capacity: number) { this.capacity = capacity; this.cache = new Map<K, V>(); this.order = []; } get(key: K): V | undefined { if (!this.cache.has(key)) { return undefined; } this.markAsRecentlyUsed(key); return this.cache.get(key); } set(key: K, value: V): void { if (this.cache.has(key)) { this.cache.set(key, value); this.markAsRecentlyUsed(key); } else { if (this.cache.size >= this.capacity) { const leastRecentlyUsedKey = this.order.shift(); if (leastRecentlyUsedKey !== undefined) { this.cache.delete(leastRecentlyUsedKey); } } this.cache.set(key, value); this.order.push(key); } } private markAsRecentlyUsed(key: K): void { const index = this.order.indexOf(key); if (index !== -1) { this.order.splice(index, 1); } this.order.push(key); } } ```

OpenAI: GPT-5.6 Sol Pro: Model A is better because lookup and recency updates are O(1), although eviction scans the entire cache and therefore violates the required O(1) set complexity. Model B uses linear-time array searches, splices, and shifts for core operations, and it can also fail to evict when the least-recently-used key is undefined. (Second judge pass, order swapped — scores are the average of both: Model A is better because `get` and updates are O(1), whereas Model B performs linear-time array searches and mu | Anthropic: Claude Fable 5.1: Both implementations produce correct LRU b…

Strict JSON extraction

Extract every meeting from this text into a JSON array of {"title","day","start24","durationMinutes"}. Use 24-hour "HH:MM" for start24, integer minutes for duration, and title-case titles. Return ONLY valid JSON, no commentary. Text: "Standup is daily at 9am for a quarter hour. The design review runs thursday from 2:30-4pm. Payroll sync — first monday, 11:00 to noon."

Llama-4-Scout-17B-16E-Instruct: ```json [ {"title": "Standup", "day": "daily", "start24": "09:00", "durationMinutes": 15}, {"title": "Design Review", "day": "thursday", "start24": "14:30", "durationMinutes": 90}, {"title": "Payroll Sync", "day": "first monday", "start24": "11:00", "durationMinutes": 60} ] ```
Phi-4: ```json [ { "title": "Standup", "day": "daily", "start24": "09:00", "durationMinutes": 15 }, { "title": "Design Review", "day": "Thursday", "start24": "14:30", "durationMinutes": 90 }, { "title": "Payroll Sync", "day": "First Monday", "start24": "11:00", "durationMinutes": 60 } ] ```

OpenAI: GPT-5.6 Sol Pro: Model A and Model B extract all meetings and calculate the times and durations correctly, but both violate the strict requirement to return only valid JSON by wrapping the array in Markdown code fences. (Second judge pass, order swapped — scores are the average of both: Model B and Model A extract all meetings accurately with correct titles, times, and durations. Both violate the strict requirement to return only valid JSON by wrapping the array in Markdown code fences; capitalization difference | Anthropic: Claude Fable 5.1: Model A and Model B both extract all three…

Professional writing — shipping delay email

You are replying to a customer on behalf of Northline Optics. Draft a customer email to Dana Ibarra, who ordered two 'LumaDesk Pro' task lamps (order NL-58142) for her architecture studio. Facts to include: her original delivery estimate was 12 June; a supplier packaging defect delayed the shipment; the new estimated delivery date is 19 June; her card has NOT been charged yet; if she prefers, we can cancel the order or split-ship one lamp now and the second on 19 June at no extra cost; as an apology, offer a 15% discount on this order. Audience/tone: busy professional, calm, accountable, no corporate jargon. Length: 140–180 words. Do not blame the supplier explicitly or use the phrase 'valued customer'.

Llama-4-Scout-17B-16E-Instruct: Subject: Update on Your LumaDesk Pro Order (NL-58142) Dear Dana, I hope this email finds you well. I wanted to personally reach out to you regarding your recent order for two LumaDesk Pro task lamps (order NL-58142) for your architecture studio. We originally estimated delivery for June 12th, but unfortunately, we've encountered an issue with the packaging from our supplier that has delayed your shipment. We're now expecting to deliver your order on June 19th. I want to assure you that we haven't processed your payment yet, and you're not committed to keeping the order as is. If you'd prefer, we can cancel the order or split-ship one lamp now and the second on June 19th at no extra cost - just let me know. As an apology for the inconvenience, we're happy to offer a 15% discount on your order. Please let me know if there's anything else I can do to make things right. I appreciate your understanding and look forward to getting your LumaDesk Pros to you as soon as possible. Best regards, [Your Name] Northline Optics
Phi-4: Subject: Update on Your 'LumaDesk Pro' Lamp Order (NL-58142) Dear Dana, I hope this message finds you well. I wanted to provide an update regarding your order of two 'LumaDesk Pro' task lamps (order NL-58142). Due to a packaging issue with our supplier, the shipment has been delayed. Initially estimated for delivery on 12 June, your lamps are now expected to arrive on 19 June. Rest assured, we have not yet charged your card, and you have flexibility with this order. If you prefer, we can cancel the order entirely or arrange to split-ship one lamp immediately with the second following on 19 June at no additional cost to you. Additionally, as an apology for the inconvenience, we'd like to offer you a 15% discount on this order. Please let us know how you would like to proceed. We aim to ensure the process is smooth and convenient for you. Thank you for your understanding, and we appreciate the opportunity to serve you. Warm regards, [Your Name] Customer Support Northline Optics [Your Contact Information]

OpenAI: GPT-5.6 Sol Pro: Model A is more natural, accountable, and tailored to Dana’s architecture studio, while Model B uses more corporate-sounding phrasing. Both explicitly attribute the packaging issue to the supplier, contrary to the instruction, though Model A frames it somewhat less blamefully. (Second judge pass, order swapped — scores are the average of both: Model A is slightly better because it includes the architecture-studio context, takes clearer ownership, and maintains a more natural professional tone. B | Anthropic: Claude Fable 5.1: Both outputs cover every required fact wit…

Localization with tone

Translate this app onboarding line into natural, friendly European Spanish suitable for a mobile toast (keep it under 60 characters, no exclamation marks): "You're all set — your first backup starts tonight." Return only the translation, then the character count in parentheses.

Llama-4-Scout-17B-16E-Instruct: "Todo listo, tu primer respaldo comienza esta noche." (46)
Phi-4: Listo, tu primer respaldo comienza esta noche. (57)

OpenAI: GPT-5.6 Sol Pro: Model A has the more natural, friendly opening, although “respaldo” is less idiomatic than “copia de seguridad” in European Spanish; Model B’s “Listo” is terser and potentially gendered. Both give incorrect character counts—the translations are 51 and 46 characters, respectively—and Model A also adds unnecessary quotation marks. (Second judge pass, order swapped — scores are the average of both: Model A is slightly better because “Todo listo” is friendlier and gender-neutral, though Model A adds | Anthropic: Claude Fable 5.1: Model A's "Todo listo" renders "You're all…

Nuanced classification

Classify each review's sentiment as "positive", "negative", or "mixed", and give a 6-word-max reason. Return ONLY a JSON array of {"text","label","reason"} in input order. Reviews: ["Fast shipping but the fabric feels cheap.", "Absolutely love it, wearing it daily!", "It broke after a week. Refund was quick and painless though."]

Llama-4-Scout-17B-16E-Instruct: ```json [ {"text": "Fast shipping but the fabric feels cheap.", "label": "mixed", "reason": "partially positive, partially negative"}, {"text": "Absolutely love it, wearing it daily!", "label": "positive", "reason": "very happy with purchase"}, {"text": "It broke after a week. Refund was quick and painless though.", "label": "mixed", "reason": "bad product, good service"} ] ```
Phi-4: ```json [ { "text": "Fast shipping but the fabric feels cheap.", "label": "mixed", "reason": "Quick delivery, poor fabric quality" }, { "text": "Absolutely love it, wearing it daily!", "label": "positive", "reason": "User loves it and wears frequently" }, { "text": "It broke after a week. Refund was quick and painless though.", "label": "mixed", "reason": "Quality issue, refund process smooth" } ] ```

OpenAI: GPT-5.6 Sol Pro: Model A and Model B classify all reviews correctly and keep every reason within six words, but both improperly wrap the JSON in Markdown fences. Model B is better because its reasons are more specific and directly grounded in each review. (Second judge pass, order swapped — scores are the average of both: Model B and Model A classify every review correctly and keep reasons within six words, but Model B provides slightly more specific, informative reasons; Model B and Model A also include Markdow | Anthropic: Claude Fable 5.1: Model A and Model B assign identical, corr…

Precise proofreading

Correct ONLY the grammar, spelling, and punctuation errors in the sentence below without changing wording, tone, or meaning, then on a second line list each change as 'was -> now'. Sentence: "Its been a long time since we seen there new office, and me and him was suprised how quite it was."

Llama-4-Scout-17B-16E-Instruct: Here is the corrected sentence: "It's been a long time since we seen their new office, and he and I were surprised how quiet it was." Here are the changes: * Its -> It's * seen there -> seen their * me and him -> he and I * was -> were * suprised -> surprised * quite -> quiet
Phi-4: "It's been a long time since we've seen their new office, and he and I were surprised how quiet it was." Its -> It's been -> been we seen -> we've seen there -> their me and him -> he and I was -> were suprised -> surprised quite -> quiet

OpenAI: GPT-5.6 Sol Pro: Model B correctly repairs the ungrammatical “we seen,” whereas Model A leaves that error unchanged. Model B nevertheless lists a nonexistent “been -> been” change and does not place all changes on a single second line; Model A also misses the requested two-line format and includes unnecessary headings. (Second judge pass, order swapped — scores are the average of both: Model B correctly fixes all grammatical, spelling, and punctuation errors, though it unnecessarily lists “been -> been” as a cha | Anthropic: Claude Fable 5.1: Model B fixes every genuine error, includi…

Information extraction — conference travel details

Extract the travel facts below into structured data. Return ONLY JSON with this schema: {"traveler":"","trip_id":"","outbound":{"date":"YYYY-MM-DD","from":"","to":"","flight":"","depart_local":"HH:MM","arrive_local":"HH:MM"},"return":{"date":"YYYY-MM-DD","from":"","to":"","flight":"","depart_local":"HH:MM","arrive_local":"HH:MM"},"hotel":{"name":"","check_in":"YYYY-MM-DD","check_out":"YYYY-MM-DD"},"conference_days":["YYYY-MM-DD"],"dietary_requests":[...],"emergency_contact":{"name":"","phone":""}}. Messy source text: "FYI for Maren Cho / trip ref TRV-8831: speaking at the Coastal Grid Summit in Tampa. She flies out Mon 2026/04/13 on SunJet SJ 441, BOS -> TPA, dep 07:05, lands 10:31. Return leg is Thu Apr 16, TPA to BOS on SJ442 leaving 18:40 and arriving 21:58. Hotel: Harbor Nine Tampa, check-in 4/13, check-out 4/16 (3 nts). Summit badge pickup on the 13th; conference sessions she needs to attend are Apr 14 and Apr 15 only. Meal notes from registration: no shellfish, vegetarian if possible. If plans go sideways call her brother, Eli Cho, at +1 617 555 0199."

Llama-4-Scout-17B-16E-Instruct: ``` { "traveler": "Maren Cho", "trip_id": "TRV-8831", "outbound": { "date": "2026-04-13", "from": "BOS", "to": "TPA", "flight": "SunJet SJ 441", "depart_local": "07:05", "arrive_local": "10:31" }, "return": { "date": "2026-04-16", "from": "TPA", "to": "BOS", "flight": "SJ442", "depart_local": "18:40", "arrive_local": "21:58" }, "hotel": { "name": "Harbor Nine Tampa", "check_in": "2026-04-13", "check_out": "2026-04-16" }, "conference_days": [ "2026-04-14", "2026-04-15" ], "dietary_requests": [ "no shellfish", "vegetarian if possible" ], "emergency_contact": { "name": "Eli Cho", "phone": "+1 617 555 0199" } } ```
Phi-4: ```json { "traveler": "Maren Cho", "trip_id": "TRV-8831", "outbound": { "date": "2026-04-13", "from": "BOS", "to": "TPA", "flight": "SJ 441", "depart_local": "07:05", "arrive_local": "10:31" }, "return": { "date": "2026-04-16", "from": "TPA", "to": "BOS", "flight": "SJ 442", "depart_local": "18:40", "arrive_local": "21:58" }, "hotel": { "name": "Harbor Nine Tampa", "check_in": "2026-04-13", "check_out": "2026-04-16" }, "conference_days": [ "2026-04-14", "2026-04-15" ], "dietary_requests": [ "no shellfish", "vegetarian if possible" ], "emergency_contact": { "name": "Eli Cho", "phone": "+1 617 555 0199" } } ```

OpenAI: GPT-5.6 Sol Pro: Model B more cleanly and consistently represents the flight identifiers, while Model A includes the airline name in one flight field and uses inconsistent spacing. Model A and Model B otherwise extract all facts correctly, though both wrap the JSON in Markdown fences despite the requirement to return only JSON. (Second judge pass, order swapped — scores are the average of both: Model B more consistently represents the flight values as carrier codes and flight numbers, whereas Model A inconsisten | Anthropic: Claude Fable 5.1: Both outputs extract every fact accurately…

Matchup powered by OpenRouter.