LeetLLM
My PlanLearnGlossaryTracksPracticeBlog
LeetLLM

Your go-to resource for mastering AI & LLM systems.

Product

  • Learn
  • Glossary
  • Tracks
  • Practice
  • Blog
  • RSS

Legal

  • Terms of Service
  • Privacy Policy

© 2026 LeetLLM. All rights reserved.

Blog
LLMsAI EngineeringDeep DiveEnterprise+1

Open-Weight vs Closed API LLMs

Separate model rights from deployment control, evaluate the complete data path, and compare cost per accepted answer rather than API tokens against GPU rent.

March 16, 2026Updated September 2, 202611 min read

“Can we use an open model so the data stays private?” sounds like one decision. It contains two. Downloadable weights determine what you can run yourself. The deployment determines who receives the prompts, where logs go, and who can inspect them.

Suppose a support assistant handles public product questions and restricted incident records. Calling a third-party endpoint that serves an open-weight model still sends data to that third party. Running the same checkpoint inside an approved environment changes the data path, even though the model and its license stay the same.

A comparison of open and closed models becomes useful once those choices are separated. Start with the rights you need and the environments you may use. Then test the candidate deployments for quality, reliability, and cost.

What does “open” actually give you?

Open-weight means the model parameters are available to download. The label alone doesn't tell you whether commercial use, modification, redistribution, or a particular application is permitted. Read the terms covering the exact checkpoint and its accompanying code.

Open-source AI is a stronger claim. Here, the term refers to the Open Source Initiative's Open Source AI Definition 1.0, not a synonym for every downloadable model. OSAID requires freedoms to use, study, modify, and share, together with parameters, complete training and inference code, and detailed training-data information under appropriate open terms.[1]Reference 1The Open Source AI Definition - 1.0https://opensource.org/ai/open-source-ai-definition

The data requirement is more precise than “publish the entire raw corpus.” It includes descriptions of unshareable data and listings of obtainable data, detailed enough for a skilled person to build a substantially equivalent system. Conversely, a short description such as “trained on web text and code” doesn't satisfy that requirement.[1]Reference 1The Open Source AI Definition - 1.0https://opensource.org/ai/open-source-ai-definition

Source-available describes inspectable artifacts whose terms restrict freedoms expected of open source. A release can be both source-available and open-weight. Closed-weight API access gives you a service interface without the parameters; it doesn't imply that every part of the provider's SDK or surrounding software is closed source.

Keep three questions separate in your evaluation notes:

QuestionEvidence to inspect
What can we access?Weights, architecture, inference code, training code, data information
What may we do with it?Exact licenses, use restrictions, attribution, redistribution and derivative terms
Who operates our deployment?Hosting contract, infrastructure account, network and storage boundaries, access controls

MIT terms on a checkpoint don't establish that its training code and data information are available. Calling it “open-weight under MIT” states the permission and access claims without claiming a reproducible training system.

Read a license before building around it

The following are representative releases checked on September 2, 2026, not a ranking or a list of the newest models. Their differences illustrate why a family name or download button is insufficient.

ReleasePublished access and termsWhat to verify for your use
Qwen3.6-35B-A3BThe official model card lists downloadable weights under Apache-2.0.[2]Reference 2Qwen3.6-35B-A3Bhttps://huggingface.co/Qwen/Qwen3.6-35B-A3BPin this checkpoint, its license files, and the code used to serve it; don't assume every Qwen release has identical terms
GLM-5.2The official model card lists downloadable weights under MIT and describes serving options.[3]Reference 3GLM-5.2 Model Cardhttps://huggingface.co/zai-org/GLM-5.2Check the released artifacts and runtime dependencies separately from claims about the openness of the entire training process
Llama 4Downloadable materials use the custom Llama 4 Community License.[4]Reference 4Llama 4 Community License Agreementhttps://github.com/meta-llama/llama-models/blob/main/models/llama4/LICENSEReview use restrictions, attribution, naming, redistribution, and the additional commercial clause
GPT-5.6 Sol APIOpenAI documents hosted model access and service pricing.[5]Reference 5GPT-5.6 Sol Modelhttps://developers.openai.com/api/docs/models/gpt-5.6-solReview service terms and data controls; API access doesn't provide a checkpoint you can deploy independently

Llama 4's license, effective April 5, 2025, shows why the distinction matters. It incorporates an acceptable-use policy, requires attribution and “Built with Llama” display in specified distribution situations, and imposes naming duties for certain distributed models built using its materials or outputs. Its additional commercial clause applies when the licensee or affiliates exceeded 700 million monthly active users in the month preceding the release date.[4]Reference 4Llama 4 Community License Agreementhttps://github.com/meta-llama/llama-models/blob/main/models/llama4/LICENSE

That is not an interchangeable substitute for MIT or Apache-2.0. Have the exact license reviewed against your planned product and distribution. A hosted service, a downloadable desktop app, and a redistributed fine-tuned checkpoint can create different obligations. This overview isn't legal clearance for any of them.

Save the license text and artifact revision with the deployment record. A model card's license badge is a starting point, not a substitute for reading the files or checking terms on adapters, datasets, and dependencies.

Deployment changes the privacy question

The support assistant could run downloadable weights on company-operated infrastructure, call an external provider serving those weights, or call an external provider serving a closed-weight model. Both external options require scrutiny of the provider's data handling; their different weight-access policies don't settle that review.

A provider may offer regional processing, private connectivity, or a dedicated deployment. Those controls have different meanings. A private network connection doesn't, by itself, remove provider access or guarantee deletion. If policy literally prohibits processing outside company-operated infrastructure, a provider contract doesn't silently change that rule.

OpenAI states that API inputs and outputs aren't used to train its models by default.[6]Reference 6Business data privacy, security, and compliancehttps://openai.com/business-data/ That answers one question. It doesn't establish zero retention, a particular processing region, or whether a given endpoint and feature meet your organization's requirements. Verify those controls separately against the current service and contract.

Self-hosting also needs a data-flow review. Prompts can escape through application traces, remote telemetry, crash reports, backups, or support tools. Record where requests, retrieved documents, outputs, and logs travel, along with who has access and how deletion works.

For the example assistant, assume restricted incident records may use only company-operated inference. Public material may use approved external services. That makes self-hosted candidates eligible for both classes and external candidates eligible only for public material. This is the example's policy, not a general law about incident data or model vendors.

Evaluate a deployment, not a model name

A checkpoint plus its precision, runtime, prompt, tools, and decoding settings is the candidate you actually deploy. A quantized checkpoint may behave differently from the full-precision release. A hosted model's managed tool implementation may differ from your own. Test that complete configuration.

Use a versioned task pack with answerable questions, missing evidence, conflicting policies, malformed inputs, and tool failures. Include rare but consequential cases instead of letting common easy questions dominate the score. Define what counts as an accepted answer before comparing systems: factual support, schema validity, permitted tool use, and whatever else the product requires.

Measure latency and quality together at the expected request mix and concurrency. A large advertised context window doesn't establish reliable retrieval from long inputs, nor does loading weights into memory establish useful serving capacity. Include KV cache, runtime buffers, warm capacity, and headroom for failures. Local LLM Deployment explains memory sizing; GPU Serving & Autoscaling covers load and queue behavior.

Open weights give you a route to checkpoint pinning and weight-level adaptation, subject to license and hardware support. They also make you responsible for validating the adapted or quantized version. Hosted services can supply managed features without transferring weights, but feature support and version guarantees need checking for the selected model. Neither ownership model guarantees better task quality.

Use LLM Benchmarks & Limitations to design comparisons. Public benchmark results can suggest candidates; they don't replace a result on your data and operating conditions.

Compare the same costs on both sides

Suppose the public workload produces 50,000 requests per day, each with 400 billable uncached input tokens and 300 billable output tokens. These counts include all tokens billed in those categories, not just text displayed to the user. Assume one attempt per request and a 30-day month.

On September 2, 2026, GPT-5.6 Sol's documented rates are $4 per million input tokens and $20 per million output tokens. The page lists higher rates for prompts above 272K input tokens, which this example doesn't use.[5]Reference 5GPT-5.6 Sol Modelhttps://developers.openai.com/api/docs/models/gpt-5.6-sol The generation-only calculation is:

  • 20 million input tokens per day at $4 per million: $80/day.
  • 15 million output tokens per day at $20 per million: $300/day.
  • Thirty days at $380/day: $11,400.

This short-input example assumes no cache reads or writes and no batch discounts. A production calculator should use returned usage, the exact rate card, reasoning-token accounting, retries, and tool charges where applicable.

Now give both deployments an application budget and an operations budget. The amounts below, except the cited API rates, are invented assumptions for an accounting exercise. The four-GPU fleet isn't a sizing recommendation for any model named above.

Monthly categoryHosted APISelf-hosted
Model execution$11,400 in API charges4 GPUs × $2.50/hour × 720 hours = $7,200
Application infrastructure and retrieval$2,000$2,000
Additional model storage and networkIncluded in this example's API charge$600
Allocated operations labor$1,000$4,000
Modeled total$14,400$13,800

Both sides use 30 days, or 720 hours. The totals exclude taxes, paid support, human review, migration, and additional resilience capacity. Add those categories when they differ; don't call this a complete production budget.

The self-hosted total is lower, but it may produce fewer acceptable answers. Assume the same grading rules accept 96% of hosted outputs and 90% of self-hosted outputs. Those acceptance rates are hypothetical, not benchmark measurements.

workload_cost_model.py
1from math import isfinite 2 3def cost_per_accepted(total: float, requests: int, acceptance: float) -> float: 4 if not isfinite(total) or total < 0: 5 raise ValueError("total must be finite and nonnegative") 6 if type(requests) is not int or requests <= 0: 7 raise ValueError("requests must be a positive integer") 8 if not isfinite(acceptance) or not 0 < acceptance <= 1: 9 raise ValueError("acceptance must be in (0, 1]") 10 return total / (requests * acceptance) 11 12days = 30 13requests = 50_000 * days 14hosted_generation = requests * (400 * 4 + 300 * 20) / 1_000_000 15hosted_total = hosted_generation + 2_000 + 1_000 16self_hosted_total = 4 * 2.50 * (24 * days) + 2_000 + 600 + 4_000 17hosted_acceptance = 0.96 18self_hosted_acceptance = 0.90 19hosted_unit = cost_per_accepted(hosted_total, requests, hosted_acceptance) 20self_hosted_unit = cost_per_accepted(self_hosted_total, requests, self_hosted_acceptance) 21# Equal cost per accepted answer, with workload and monthly budgets fixed. 22break_even_acceptance = self_hosted_total / (requests * hosted_unit) 23 24print(f"Hosted: ${hosted_total:,.0f}/month; ${hosted_unit * 1_000:.2f}/1,000 accepted") 25print(f"Self-hosted: ${self_hosted_total:,.0f}/month; ${self_hosted_unit * 1_000:.2f}/1,000 accepted") 26print(f"Self-hosted break-even acceptance: {break_even_acceptance:.0%}")
Modeled cost comparison
1Hosted: $14,400/month; $10.00/1,000 accepted 2Self-hosted: $13,800/month; $10.22/1,000 accepted 3Self-hosted break-even acceptance: 92%

At 90% acceptance, the smaller monthly bill buys fewer accepted answers and has the higher unit cost. Holding both budgets fixed, the self-hosted configuration reaches equal unit cost at 92% acceptance. This is sensitivity analysis, not a prediction that tuning can achieve that rate for free.

Hypothetical cost per thousand accepted answers as self-hosted acceptance varies from 80 to 100 percent. The self-hosted cost falls from 11.50 dollars to 9.20 dollars and crosses the fixed hosted cost of 10 dollars at 92 percent acceptance. Monthly workload and budgets stay fixed.
Only the assumed self-hosted acceptance rate changes. The crossing is conditional on unchanged workload, budgets, capacity, and grading rules.

Before using either estimate, establish that the deployment can serve the offered traffic at the required latency and reliability. An assumed fleet price proves nothing about capacity. Also apply minimum quality requirements separately: a low cost per accepted answer doesn't excuse a forbidden action or an unacceptable rejection rate. If rejected requests trigger retries, fallbacks, or human work, include their costs and count successful user tasks without double-counting attempts.

Keep fallback inside the same data policy

The support assistant could use company-operated inference for restricted records and an approved API for public documentation. It could also use the company-operated deployment for both if that proves simpler. Multiple routes are an option, not a requirement.

The subtle failure is classifying only the user's question. “Why did this upload fail?” may look public until retrieval adds a restricted customer incident. The assembled request, including conversation history, retrieved passages, tool results, and attachments, must satisfy the destination's policy.

Use trusted source labels and access-control decisions to constrain routing. A model's guess that content “looks public” shouldn't authorize an external send. Unknown classification should stop or stay within the stricter approved environment, not default to a more capable external model.

Test the outage path explicitly. If the internal model times out on a restricted request, an external fallback remains ineligible. Return a controlled failure, queue the request if the service contract allows it, or use another approved internal deployment. Redaction is a separate transformation that needs validation and authorization, not an automatic exception to the rule.

Record the destination, policy version, source classifications, eligibility result, and fallback reason without copying restricted content into an unrestricted audit system. Model Gateways, Routing, and Fallbacks develops these checks in more detail.

Write down what would change the decision

A short decision record should identify the checkpoint or API version, licenses, approved data classes, measured quality, load test, budget, and operational owner. Include a condition for reconsidering the choice: a new privacy requirement, failed latency target, changed provider terms, or sustained traffic that justifies a different capacity plan.

For the example assistant, restricted requests exclude external processing because the policy says so. Public requests leave more candidates to compare. Open weights offer independent deployment and adaptation options; managed APIs transfer much of the inference work to a provider. The useful answer names which control the product needs, what that control costs, and how the team verified it.

PreviousAI Engineer Salary Guide 2026NextMillion-Token Context Windows
Share this article
XFacebookLinkedInBlueskyRedditHacker NewsEmail
References

The Open Source AI Definition - 1.0

Open Source Initiative · 2024

https://opensource.org/ai/open-source-ai-definition

Qwen3.6-35B-A3B

Qwen Team · 2026

https://huggingface.co/Qwen/Qwen3.6-35B-A3B

GLM-5.2 Model Card

Z.AI · 2026

https://huggingface.co/zai-org/GLM-5.2

Llama 4 Community License Agreement

Meta · 2025

https://github.com/meta-llama/llama-models/blob/main/models/llama4/LICENSE

GPT-5.6 Sol Model

OpenAI · 2026

https://developers.openai.com/api/docs/models/gpt-5.6-sol

Business data privacy, security, and compliance

OpenAI · 2026

https://openai.com/business-data/