{"id":1761,"date":"2026-04-02T23:01:15","date_gmt":"2026-04-02T23:01:15","guid":{"rendered":"https:\/\/wiro.ai\/blog\/?p=1761"},"modified":"2026-09-27T21:46:08","modified_gmt":"2026-09-27T21:46:08","slug":"qwen3-5-27b-6-quick-tests-on-reasoning-parsing-and-code","status":"publish","type":"post","link":"https:\/\/wiro.ai\/blog\/qwen3-5-27b-6-quick-tests-on-reasoning-parsing-and-code\/","title":{"rendered":"Qwen3.5-27B: 6 Quick Tests on Reasoning, Parsing, and Code"},"content":{"rendered":"<p><strong>Qwen3.5-27B<\/strong> was tested here as a general-purpose text model for tasks that often fail in small but costly ways: following a fixed length, extracting fields without inventing them, translating a technical sentence cleanly, and returning usable code or JSON. The six outputs below are kept intact from the original run. They do not prove a benchmark score. They show what happened on compact, inspectable prompts.<\/p>\n<nav aria-label=\"Table of contents\">\n<ul>\n<li><a href=\"#setup\">Test setup<\/a><\/li>\n<li><a href=\"#outputs\">What the six outputs show<\/a><\/li>\n<li><a href=\"#parameters\">Parameters and observability<\/a><\/li>\n<li><a href=\"#when-to-use\">When to choose Qwen3.5-27B<\/a><\/li>\n<\/ul>\n<\/nav>\n<h2 id=\"setup\">What this Qwen3.5-27B test set checks<\/h2>\n<p>The set deliberately mixes constrained prose, extraction, translation, code, a standards-shaped schema, and summarization. That combination matters in production. A model can write pleasant copy and still add a sentence when asked for four. It can identify invoice fields and still put tax into an item total. It can write valid-looking Python that misses a stated input case. These prompts are small enough to audit line by line.<\/p>\n<p><a href=\"https:\/\/wiro.ai\/models\/qwen\/qwen3-5-27b\">Qwen3.5-27B on Wiro<\/a> exposes prompt, system prompt, temperature, top_p, top_k, repetition penalty, length penalty, token limits, seed, quantization, and sampling controls. The model documentation lists a 0.7 default temperature, 0.95 default top_p, enabled sampling, seed 123456, and quantization enabled. The original six captures did not retain a per-request parameter log, so this post does not pretend that they all used a particular temperature or run time.<\/p>\n<p>The official <a href=\"https:\/\/huggingface.co\/Qwen\/Qwen3.5-27B\" target=\"_blank\" rel=\"noopener\">Qwen3.5-27B model card on Hugging Face<\/a> describes a 27B-parameter causal language model with a vision encoder, 262,144 native context tokens, and an extensible context configuration. That scale is not exercised by these short prompts. It does explain why the model is a more plausible fit for mixed document, code, and long-context work than a tiny chat model.<\/p>\n<h2 id=\"outputs\">Six Qwen3.5-27B outputs, examined<\/h2>\n<h3>1. Product copy: follows the requested shape<\/h3>\n<p><strong>Prompt:<\/strong> Write a 4 sentence product description for noise cancelling headphones. Plain language. No hype. Mention battery life and comfort.<\/p>\n<figure class=\"wp-block-group\">\n<pre><code>These headphones reduce outside sounds to help you focus on your audio. The padded ear cups are designed to stay comfortable during extended use. A single charge provides up to thirty hours of continuous listening time. They connect wirelessly to your devices for easy setup.<\/code><\/pre><figcaption>Model output 1: constrained product copy.<\/figcaption><\/figure>\n<p>This is exactly four sentences. It covers comfort and battery life without turning into marketing language. The phrase &#8220;up to thirty hours&#8221; appears because the prompt asked for battery life but supplied no specification; in a real catalog workflow, source facts should be included and the result checked before publication.<\/p>\n<h3>2. Invoice to JSON: fields are separated cleanly<\/h3>\n<p><strong>Prompt:<\/strong> Convert the following messy invoice into JSON with keys invoice_id, date, vendor, total_usd, items (array of {name, qty, unit_price_usd}). Return JSON only, no extra text.<\/p>\n<figure class=\"wp-block-group\">\n<pre><code>{\n  \"invoice_id\": \"A-1049\",\n  \"date\": \"2026\/03\/01\",\n  \"vendor\": \"Blue Finch Tools\",\n  \"total_usd\": 98.41,\n  \"items\": [\n    { \"name\": \"Torque wrench (1\/2 inch drive)\", \"qty\": 2, \"unit_price_usd\": 39.5 },\n    { \"name\": \"Safety glasses (clear)\", \"qty\": 1, \"unit_price_usd\": 12.0 }\n  ]\n}<\/code><\/pre><figcaption>Model output 2: invoice extraction as JSON.<\/figcaption><\/figure>\n<p>The item names, quantities, unit prices, vendor, and invoice identifier are correct for the supplied text. It does not add tax as an item because the schema did not request it. The date preserves the invoice format rather than normalizing it. That is sensible for extraction, but an application that needs ISO dates should ask for ISO dates and validate the response.<\/p>\n<h3>3. Turkish to English: concise and technically faithful<\/h3>\n<p><strong>Prompt:<\/strong> Translate to English. Return English only. Turkish: Bu modeli API ile denedim ama cevaplarda &lt;think&gt; bolumu geliyor. Kapatmanin yolu var mi?<\/p>\n<figure class=\"wp-block-group\">\n<pre><code>I tried this model with the API, but the &lt;think&gt; section appears in the responses. Is there a way to disable it?<\/code><\/pre><figcaption>Model output 3: short Turkish-to-English translation.<\/figcaption><\/figure>\n<p>The result preserves the question and the literal technical marker. It also obeys the &#8220;English only&#8221; instruction. For UI copy, support replies, and short localization handoffs, that restraint is useful. It is still a single sentence, not evidence of broad translation quality across languages or specialized terminology.<\/p>\n<h3>4. Python utility: compact code with a known boundary<\/h3>\n<p><strong>Prompt:<\/strong> Write a Python function parse_duration(s) that accepts strings like 2h 15m, 90m, 45s, 1h and returns total seconds as an int. Handle spaces. Assume lowercase h m s only. Include 4 example calls as comments. Return code only.<\/p>\n<figure class=\"wp-block-group\">\n<pre><code>import re\n\ndef parse_duration(s):\n    total_seconds = 0\n    for num_str, unit in re.findall(r\"(\\d+)([hms])\", s):\n        num = int(num_str)\n        if unit == 'h':\n            total_seconds += num * 3600\n        elif unit == 'm':\n            total_seconds += num * 60\n        elif unit == 's':\n            total_seconds += num\n    return total_seconds\n\n# print(parse_duration(\"2h 15m\"))  # 8100\n# print(parse_duration(\"90m\"))     # 5400\n# print(parse_duration(\"45s\"))     # 45\n# print(parse_duration(\"1h\"))      # 3600<\/code><\/pre><figcaption>Model output 4: Python duration parser.<\/figcaption><\/figure>\n<p>The code handles every requested example and returns integers. It quietly accepts unmatched characters because <code>re.findall<\/code> only extracts matching pairs. That is fine for trusted input and a poor choice for strict validation. Ask for rejected malformed input, duplicate-unit rules, and tests before using this pattern in a parser that receives user data.<\/p>\n<h3>5. JSON Schema: the basic contract is usable<\/h3>\n<p><strong>Prompt:<\/strong> Create a minimal JSON Schema (draft 2020-12) for an event object with fields: id, startTime, endTime, title, optional location, and optional attendees. Return JSON only.<\/p>\n<figure class=\"wp-block-group\">\n<pre><code>{\n  \"$schema\": \"https:\/\/json-schema.org\/draft\/2020-12\/schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"id\": { \"type\": \"string\" },\n    \"startTime\": { \"type\": \"string\", \"format\": \"date-time\" },\n    \"endTime\": { \"type\": \"string\", \"format\": \"date-time\" },\n    \"title\": { \"type\": \"string\" },\n    \"location\": { \"type\": \"string\" },\n    \"attendees\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } }\n  },\n  \"required\": [\"id\", \"startTime\", \"endTime\", \"title\"]\n}<\/code><\/pre><figcaption>Model output 5: minimal event schema.<\/figcaption><\/figure>\n<p>It names the requested draft, marks the four required fields, and leaves location and attendees optional. It does not constrain endTime to follow startTime, because JSON Schema cannot express that comparison without extensions or application logic. This is a good starting contract, not a finished business rule set.<\/p>\n<h3>6. Summary: useful, but verify unsupported claims<\/h3>\n<p><strong>Prompt:<\/strong> Summarize the text in 5 bullet points, then add a one-line Best for statement. Keep it short.<\/p>\n<figure class=\"wp-block-group\">\n<pre><code>- Qwen3.5-27B uses a thinking stage before final answers.\n- Thinking content appears in a separate block by default.\n- Direct responses require API flags to disable thinking.\n- The model supports very long context windows (262K tokens).\n- Context can be extended further depending on serving stack.\n\nBest for: complex reasoning tasks that need very long context windows.<\/code><\/pre><figcaption>Model output 6: short technical summary.<\/figcaption><\/figure>\n<p>The structure matches the request: five bullets plus one recommendation. The 262K context claim aligns with the model card&#8217;s 262,144 native context length. The statements about a default thinking block and disabling it were not documented in the Wiro parameter reference used for this update. Treat those as output text that needs implementation-specific verification, not as a configuration guide.<\/p>\n<h2 id=\"parameters\">Parameters, run time, and cost<\/h2>\n<p>For repeatable extraction, translation, schemas, and code, use <code>do_sample: false<\/code> and a low temperature. A follow-up invoice run was submitted on Wiro with temperature 0, top_p 0.95, seed 123456, quantization enabled, sampling disabled, and a 500-token cap. The completed task did not expose a downloadable output, elapsed-time field, or cost field in its result. No Wiro run time or price is claimed here rather than filling the gap with an estimate.<\/p>\n<p>For exploratory writing, the documented defaults of temperature 0.7 and top_p 0.95 are a reasonable starting point, then adjust one variable at a time. Keep the prompt explicit about output shape. The invoice and schema examples show why: &#8220;JSON only&#8221; helps, but client-side parsing and schema validation remain necessary.<\/p>\n<h2 id=\"when-to-use\">When to pick Qwen3.5-27B<\/h2>\n<p>Choose Qwen3.5-27B when a task mixes natural language with structured output, code, document fields, or large context. The examples show clean compliance with compact format requests. The documented long context and multimodal architecture make it more suitable for long reports, document pipelines, and agent-style workflows than this six-prompt set alone can demonstrate.<\/p>\n<p>Choose a smaller or simpler model when requests are short, repetitive, and latency matters more than context or reasoning depth. Choose a dedicated parser when the failure cost of a wrong field is high. This model can draft structure; the application should still validate JSON, test code, and ground factual copy in supplied data.<\/p>\n<h2>Related Wiro reading<\/h2>\n<ul>\n<li><a href=\"https:\/\/wiro.ai\/blog\/glm-4-7-flash-6-quick-tests-json-code-translation\/\">GLM-4.7-Flash: 6 Quick Tests (JSON, Code, Translation)<\/a><\/li>\n<li><a href=\"https:\/\/wiro.ai\/blog\/qwen3-5-4b-vs-qwen3-5-4b-heretic-5-side-by-side-tests\/\">Qwen3.5-4B vs Qwen3.5-4B-heretic: 5 Side-by-Side Tests<\/a><\/li>\n<li><a href=\"https:\/\/wiro.ai\/blog\/seed-v2-lite-6-constraint-tests\/\">Seed V2 Lite: 6 Constraint Tests<\/a><\/li>\n<\/ul>\n<h2>Try Qwen3.5-27B<\/h2>\n<p>Run the same prompts, keep the parameters fixed, and inspect the output against an application-level validator: <a href=\"https:\/\/wiro.ai\/models\/qwen\/qwen3-5-27b\">Qwen3.5-27B on Wiro<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Qwen3.5-27B was tested here as a general-purpose text model for tasks that often fail in small but costly ways: following a fixed&hellip;<\/p>\n","protected":false},"author":4,"featured_media":1764,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[52],"tags":[70,145,100],"class_list":["post-1761","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-model-reviews","tag-llm","tag-multimodal","tag-qwen"],"_links":{"self":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/comments?post=1761"}],"version-history":[{"count":2,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1761\/revisions"}],"predecessor-version":[{"id":4290,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/posts\/1761\/revisions\/4290"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media\/1764"}],"wp:attachment":[{"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/media?parent=1761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/categories?post=1761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiro.ai\/blog\/wp-json\/wp\/v2\/tags?post=1761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}