Building Production Evaluation Systems for GitHub Copilot at Scale

github · Tech · 2023 · source Agentic: no · promotional bias: low · summary-only (no fetched source) · extracted with prompt 0.5.5 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Production AI evaluation for developer tools

GitHub needed evaluation systems for Copilot at large production scale, but evaluation tooling and practice had to fit software-engineering workflows, shipping pressure, and implicit user behavior rather than idealized data-science-style offline evals.

Constraints:

Architecture

The evaluation stack combined code-completion regression harnesses, Microsoft ExP online experimentation, implicit behavioral metrics, executive Shiproom review, and later production-first tracing/logging lessons from Quotient. Offline eval harnesses tested coding changes against repositories and existing tests, while online A/B tests and acceptance/retention metrics became the decisive production signal. The recommended architecture is progressive: ship quickly, instrument from the start, monitor real user behavior, and automate analysis of production traces as systems mature.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  copilot-product-changes["Copilot product changes"] --> code-completion-eval-harness["Code completion eval harness"]
  code-completion-eval-harness --> public-code-repository-corpus["Public code repository corpus"]
  code-completion-eval-harness --> objective-code-test-runner["Objective code test runner"]
  copilot-product-changes --> microsoft-exp-platform["Microsoft ExP platform"]
  microsoft-exp-platform --> implicit-behavior-metrics["Implicit behavior metrics"]
  microsoft-exp-platform --> shiproom-review["Shiproom review"]
  implicit-behavior-metrics --> shiproom-review
  shiproom-review --> copilot-product-changes
  engineering-product-teams["Engineering product teams"] --> production-tracing-sdk["Production tracing SDK"]
  production-tracing-sdk --> trace-and-log-store["Trace and log store"]
  trace-and-log-store --> automated-trace-analysis["Automated trace analysis"]
  automated-trace-analysis --> out-of-box-quality-metrics["Out-of-box quality metrics"]
  out-of-box-quality-metrics --> engineering-product-teams
  offline-eval-platform-prototype["Offline eval platform prototype"] --> engineering-product-teams
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Copilot product changes Prompt, model, and product changes that needed quality and regression evaluation before or after shipping. Code completion eval harness, Microsoft ExP platform, Shiproom review
Code completion eval harness Offline regression-test harness for coding-data changes, using repository tasks and executable tests where available. Public code repository corpus, Objective code test runner, Copilot product changes
Public code repository corpus Source of coding examples and repository contexts used by the harness to generate and test completions. Code completion eval harness
Objective code test runner Checks whether generated code passes existing tests, giving the code domain a more objective signal than many AI products have. Code completion eval harness
Microsoft ExP platform Enterprise experimentation layer used for online A/B testing and production decision-making. Copilot product changes, Implicit behavior metrics, Shiproom review
Implicit behavior metrics Behavioral signals such as acceptance rate and edit distance that reflect how users actually use suggestions. Microsoft ExP platform, Shiproom review
Shiproom review Weekly executive review forum where GitHub and Microsoft reviewed A/B results for model and prompt changes. Microsoft ExP platform, Implicit behavior metrics, Copilot product changes
Engineering product teams Primarily software-engineering teams that needed eval tooling to feel like CI/CD, monitoring, and alerting rather than notebook-heavy data science. Production tracing SDK, Automated trace analysis, Copilot product changes
Production tracing SDK Few-lines-of-code logging and tracing layer recommended for collecting real AI product behavior from production. Engineering product teams, Trace and log store
Trace and log store Repository of production traces, logs, user-facing issues, and agent interactions used for later analysis. Production tracing SDK, Automated trace analysis
Automated trace analysis Automated analysis layer for complex agent traces, hallucination checks, tool-use accuracy, and user-facing issue visibility. Trace and log store, Out-of-box quality metrics
Out-of-box quality metrics Reusable production metrics for hallucinations, tool-use accuracy, faithfulness, and similar operational quality issues. Automated trace analysis, Engineering product teams
Offline eval platform prototype Quotient's initial dataset-focused eval platform for comparing prompt/model combinations offline. Engineering product teams, Out-of-box quality metrics

Data flow

Model or prompt changes entered an offline code-completion evaluation harness, which generated completions on coding data and checked regressions against objective code signals where possible. Promising changes then flowed through Microsoft ExP A/B tests and weekly Shiproom review, where acceptance rate, edit-distance, and retention-style metrics informed ship decisions. In the later Quotient framing, production traces and logs become the primary data source: teams instrument AI features with a few lines of code, collect user-facing behavior, automate analysis of agent traces, and build evaluation maturity from real production data rather than expecting large offline datasets up front.

7 supporting quotes
“The evaluation infrastructure at GitHub consisted of several key components that demonstrate sophisticated LLMOps practices.”summary, stated
“The team built a comprehensive evaluation harness specifically designed for benchmarking changes on coding data”summary, stated
“The production monitoring system was built on top of Microsoft's Experimentation Platform (known internally as ExP)”summary, stated
“ratings, they focused on behavioral metrics that reflected actual product usage patterns. The core metrics included average edit distance between prompts (measuring reprompting behavior), average edit distance between LLM responses and retained content (measuring suggestion”summary, stated
“core metrics included average edit distance between prompts (measuring reprompting behavior), average edit distance between LLM responses and retained content (measuring suggestion acceptance and retention), and most importantly, the acceptance rate of Copilot suggestions, which”summary, stated
“between LLM responses and retained content (measuring suggestion acceptance and retention), and most importantly, the acceptance rate of Copilot suggestions, which hovered around 30% at the time. This approach to metrics represents a mature understanding of LLMOps evaluation,”summary, stated
“Key elements of this approach include providing few-lines-of-code tracing and logging, automating analysis of complex agent traces”summary, stated

Why this architecture

The architecture balances objective code-domain evals with the production reality that successful AI product decisions were driven by online behavior and fast iteration. It keeps offline regression tests where they help, but makes production tracing, A/B testing, implicit usage metrics, and workflow alignment central because those are the signals engineers actually adopt and act on.

4 supporting quotes
“This harness leveraged publicly available code repositories and generated completions that could be objectively tested”summary, stated
“This approach to metrics represents a mature understanding of LLMOps evaluation, recognizing that explicit feedback mechanisms introduce bias”summary, stated
“The lessons learned led to a production-first evaluation philosophy that prioritizes online evaluation over offline testing.”summary, stated
“successful evaluation systems need to integrate seamlessly into existing deployment and monitoring workflows. The emphasis on automation acknowledges that manual trace review doesn't scale as AI systems become more complex, requiring sophisticated tooling to”summary, stated

Models used: GitHub Copilot models · OpenAI models · Prompt/model combinations

Scale

Alternatives considered (roads not taken)

Use explicit thumbs-up/down ratings as the primary feedback signal

Rejected because: Explicit feedback introduces bias, self-selection, and inconsistency, so the team favored implicit behavior signals.

“Rather than relying on thumbs up/down ratings, they focused on behavioral metrics that reflected actual product usage patterns.”summary, stated
“explicit feedback mechanisms introduce bias, self-selection issues, and inconsistency problems. By focusing on implicit signals, the team could obtain more reliable indicators of product performance that reflected genuine user satisfaction and utility rather”summary, stated

Make offline dataset evals the center of LLMOps tooling

Rejected because: Quotient observed engineering teams resisted dataset-focused offline evals and often preferred intuition, custom tooling, or production behavior.

“provides additional insights into LLMOps evaluation challenges across the broader industry. When they attempted to build an evaluation platform focused on "offline evals" - throwing prompt/model combinations at datasets to generate metrics like similarity or faithfulness - they encountered”summary, stated
“prompt/model combinations at datasets to generate metrics like similarity or faithfulness - they encountered consistent resistance from engineering teams. The pattern they observed was teams either shipping based on intuition ("vibe-shipping"), running minimal manual evaluations,”summary, stated

Force engineers into data-science-style evaluation workflows

Rejected because: The summary says most AI product development is done by engineers whose workflows center on CI/CD, monitoring, and alerting.

“most evaluation tools and methodologies are designed by and for data scientists, but most AI product development is done by software engineers”summary, stated
“Engineers are accustomed to unit tests, CI/CD pipelines, and monitoring/alerting systems rather than notebooks, spreadsheets, and statistical analysis workflows.”summary, stated

Require comprehensive evaluation before initial product validation

Rejected because: The recommended approach starts with rapid vibes-based validation and adds monitoring/eval maturity as the product proves users care.

“The strategy begins with "vibes-based" validation - shipping quickly to see what works and whether users care - before gradually adding more systematic monitoring and evaluation capabilities. This progressive approach acknowledges that evaluation systems”summary, stated
“evaluation systems need to evolve alongside product development rather than being implemented comprehensively from the start.”summary, stated

Patterns

eval-driven-development (evaluation)

GitHub built offline code-completion harnesses, A/B testing processes, and production metrics so prompt/model changes could be evaluated before and after release.

“The team built a comprehensive evaluation harness specifically designed for benchmarking changes on coding data”summary, stated
“the reality was that "if something passed A/B testing, we shipped it."”summary, stated

canary-rollout (release)

Microsoft ExP A/B testing served as the primary production decision mechanism for Copilot prompt and model changes.

“Microsoft's Experimentation Platform (known internally as ExP), providing A/B testing capabilities”summary, stated
“researchers presented A/B test results for model and prompt changes”summary, stated

observability-tracing (operations)

The production-first recommendation emphasizes lightweight tracing/logging, automated trace analysis, and visibility into user-facing issues.

“providing few-lines-of-code tracing and logging, automating analysis of complex agent traces”summary, stated
“agent traces, providing out-of-the-box metrics for critical issues like hallucinations and tool use accuracy, and focusing on visibility into user-facing issues. This production-first philosophy represents a mature understanding of LLMOps realities. Rather than trying to convince teams to adopt”summary, stated

data-quality-loop (evaluation)

The recommended strategy collects production data early so teams can understand their AI systems over time and later add more systematic analysis.

“The emphasis on monitoring and data collection from the beginning enables teams to build understanding of their systems over time”summary, stated
“The recommendation to "chase users but save the data" reflects the reality that user feedback often provides more valuable signals than sophisticated offline metrics, while data collection ensures that more systematic analysis becomes possible as products mature.”summary, stated

llm-as-judge (evaluation)

The later eval-platform framing includes metrics such as similarity, faithfulness, hallucination detection, and tool-use accuracy, which imply automated model-based or metric-based review over traces.

“throwing prompt/model combinations at datasets to generate metrics like similarity or faithfulness”summary, stated
“providing out-of-the-box metrics for critical issues like hallucinations and tool use accuracy”summary, stated

Tradeoffs

Prioritize implicit behavior metrics.

Chose Acceptance rate, edit distance, retained content, and usage behavior over Thumbs up/down and explicit user ratings.

Rationale: Behavioral signals are less exposed to bias and self-selection than explicit feedback mechanisms.

“they focused on behavioral metrics that reflected actual product usage patterns.”summary, stated
“explicit feedback mechanisms introduce bias, self-selection issues, and inconsistency problems.”summary, stated

Use online A/B testing as the decisive shipping signal.

Chose ExP-backed online experimentation over Relying only on offline eval harness outcomes.

Rationale: A/B testing reflected real production behavior and became the practical decision mechanism for shipping.

“A/B testing infrastructure, and implicit user behavior metrics like acceptance rates.”summary, stated
“Despite having sophisticated evaluation infrastructure, the reality was that "if something passed A/B testing, we shipped it." This highlights a common tension in LLMOps between comprehensive evaluation and the pressure to ship quickly in competitive markets.”summary, stated

Build production-first evaluation tooling.

Chose Tracing, logging, automated production analysis, and user-facing issue visibility over Dataset-first offline evals as the initial product.

Rationale: Most teams were already testing in production, so tooling needed to meet them there instead of prescribing an idealized workflow.

“This approach recognizes that most teams are "testing in prod" whether they admit it or not”summary, stated
“evaluation tools should meet teams where they are rather than where evaluation experts think they should be.”summary, stated

Start with rapid validation before heavy eval investment.

Chose Vibes-based validation followed by monitoring and systematic eval maturity over Comprehensive up-front evaluation frameworks.

Rationale: The product has to prove that users care before a large evaluation stack is worth slowing development.

“The strategy begins with "vibes-based" validation - shipping quickly to see what works and whether users care”summary, stated
“before gradually adding more systematic monitoring and evaluation capabilities.”summary, stated

Leverage existing enterprise experimentation infrastructure.

Chose Microsoft ExP for production monitoring and A/B tests over Building an isolated evaluation decision stack from scratch.

Rationale: Existing organizational experimentation infrastructure gave the eval system credibility and a route into shipping decisions.

“This integration with enterprise-grade experimentation infrastructure highlights the importance of leveraging existing organizational capabilities”summary, stated
“enterprise-grade experimentation infrastructure highlights the importance of leveraging existing organizational capabilities rather than building evaluation systems in isolation. Metrics and Measurement Philosophy The team developed a sophisticated metrics framework that prioritized implicit user”summary, stated

Gotchas (what bit them)

Offline eval tools did not match how engineering teams wanted to build.

Root cause: Evaluation experts designed dataset-centric workflows, while product engineers worked through code, CI/CD, monitoring, and deployment loops.

Resolution: Align eval tooling with existing engineering workflows and production monitoring rather than forcing notebook/spreadsheet practices.

“the mismatch between what evaluation experts believe teams should do and what engineering teams are actually willing and able to adopt.”summary, stated
“successful evaluation systems need to integrate seamlessly into existing deployment and monitoring workflows.”summary, stated

Sophisticated evaluation can still be dominated by shipping pressure.

Root cause: Competitive product environments and A/B-test success can make online experiment results the decisive gate even when broader eval systems exist.

Resolution: Treat production evaluation and monitoring as first-class rather than assuming offline rigor will drive decisions by itself.

“Despite having sophisticated evaluation infrastructure, the reality was that "if something passed A/B testing, we shipped it."”summary, stated
“a common tension in LLMOps between comprehensive evaluation and the pressure to ship quickly in competitive markets.”summary, stated

Explicit feedback can mislead evaluation.

Root cause: Thumbs up/down and survey-style feedback have bias, self-selection, and inconsistent usage problems.

Resolution: Use implicit behavior signals such as acceptance and retention as more reliable indicators of product utility.

“Rather than relying on thumbs up/down ratings, they focused on behavioral metrics that reflected actual product usage patterns.”summary, stated
“By focusing on implicit signals, the team could obtain more reliable indicators of product performance”summary, stated

Evaluation rigor degraded as Copilot expanded to more teams.

Root cause: New teams had different skill sets and were primarily engineers rather than data scientists, making the old eval approach harder to maintain uniformly.

Resolution: Build evaluation systems that scale across teams by fitting engineering workflows and automating trace analysis.

“As Copilot expanded to additional teams in mid-2023, particularly with Copilot Chat, the evaluation approach became more "vibes-based."”summary, stated
“maintaining evaluation rigor as products scale across different teams with varying skill sets and domain expertise.”summary, stated

Manual review of complex agent traces does not scale.

Root cause: Multi-step AI agents produce increasingly complex trace structures that are too expensive for humans to inspect exhaustively.

Resolution: Automate analysis of production traces and provide out-of-the-box metrics for common failure modes.

“The emphasis on automation acknowledges that manual trace review doesn't scale as AI systems become more complex”summary, stated
“requiring sophisticated tooling to parse and analyze the increasingly complex data structures that emerge from multi-step AI agent interactions.”summary, stated

Evaluation

The case itself is about evaluation: GitHub used offline coding regression harnesses, ExP A/B testing, implicit behavioral metrics, Shiproom review, and later production-first trace monitoring lessons. The evaluation philosophy is progressive and pragmatic: validate quickly, collect production data from the beginning, then automate deeper analysis as the system and user base mature.

Metrics: Average edit distance between prompts · Average edit distance between LLM responses and retained content · Copilot suggestion acceptance rate · A/B test lift/regression through Microsoft ExP · Code-completion regression tests against public repositories · Hallucination and tool-use accuracy metrics in production traces · User-facing issue visibility from production monitoring

6 supporting quotes
“relying on thumbs up/down ratings, they focused on behavioral metrics that reflected actual product usage patterns. The core metrics included average edit distance between prompts (measuring reprompting behavior), average edit distance between LLM responses and retained content (measuring”summary, stated
“average edit distance between LLM responses and retained content”summary, stated
“edit distance between LLM responses and retained content (measuring suggestion acceptance and retention), and most importantly, the acceptance rate of Copilot suggestions, which hovered around 30% at the time. This approach to metrics represents a mature understanding of LLMOps evaluation,”summary, stated
“The production monitoring system was built on top of Microsoft's Experimentation Platform”summary, stated
“leveraged publicly available code repositories and generated completions that could be objectively tested by checking whether the generated code would pass existing tests - a key advantage of working in the code domain where objective evaluation is more feasible than in many other AI”summary, stated
“providing out-of-the-box metrics for critical issues like hallucinations and tool use accuracy”summary, stated

Outcomes

The case centers on Copilot serving 100 million developers, a 2022-2023 evaluation team, a roughly 30% suggestion acceptance rate, weekly two-hour Shiproom meetings, and later lessons from two years of eval discourse.

4 supporting quotes
“This case study examines the challenges of building evaluation systems for AI products in production”summary, stated
“Despite having sophisticated evaluation infrastructure, the reality was that "if something passed A/B testing, we shipped it." This highlights a common tension in LLMOps between comprehensive evaluation and the pressure to ship quickly in competitive markets.”summary, stated
“The pattern they observed was teams either shipping based on intuition ("vibe-shipping"), running minimal manual evaluations, or investing heavily in custom in-house tooling.”summary, stated
“This production-first philosophy represents a mature understanding of LLMOps realities.”summary, stated