ML Developer Experience

I came across a great reverse engineering of the GitHub Copilot product the other day. The takeaway: the developer experience part of Copilot is just as impressive as the machine learning part.

What are some model agnostic lessons?

Simple and familiar interfaces: Copilot works as an extension in VSCode, the editor of choice for most developers. It's simple to download and easy to authenticate to GitHub. Developers already had autocomplete and were used to having code suggestions as they typed. Copilot just did it better (and with contextual understanding).

Invoke when you can add value: Copilot answers sometimes don't make it to the user. They might be repetitive, not helpful, or not in the right context. Copilot uses cheap and easy tricks (e.g., logistic regression, simple regex) to determine whether or not to invoke the model. OpenAI surely learned this lesson with ChatGPT as well – reinforcement learning (RLHF) taught the model to discard answers it wasn't as confident about.

Fake it or reduce the scope when you can: Copilot's magic is that it gives contextual suggestions. It knows about a variable that was declared in a different file. How does it do this? Isn't it too much to send the whole repository as context? Yep, and that's why Copilot only sends the last 20 accessed files with the same suggestion as part of the prompt. Of course, that's not the whole context, but a simple enough heuristic that's right, most of the time.

Constantly be learning: Copilot sends telemetry back – what suggestions were accepted (i.e., what code blocks weren't edited "that much" after 30 seconds). This is essential to both the actual model (learning) and the human product managers. Whether or not the claims by GitHub on the effectiveness of Copilot are actually true (% of code written by Copilot), it's at least some sort of metric to judge the product's effectiveness.

Just as ChatGPT unlocked a renewed interest in GPT-3, I'll guess that the next few years will be more focused on applying the advancements in LLMs rather than increasing their understanding (although that might also happen).

要查看或添加评论,请登录

Matt Rickard的更多文章

  • Lessons from llama.cpp

    Lessons from llama.cpp

    Llama.cpp is an implementation of Meta’s LLaMA architecture in C/C++.

  • To be, or not to be; ay, there’s the point.

    To be, or not to be; ay, there’s the point.

    It doesn’t have the same ring to it as the Hamlet that we know, but this is from the first published version of Hamlet…

  • AI Agents Today

    AI Agents Today

    The term AI agent is used loosely. It can mean almost anything.

  • Norvig's Agent Definition

    Norvig's Agent Definition

    There’s no consensus on what an AI agent means today. The term is used to describe everything from chatbots to for…

    1 条评论
  • The Lucretius Problem

    The Lucretius Problem

    Just as any river is enormous to someone who looks at it and who, before that time, has not seen one greater. So, too…

    1 条评论
  • Eroom's Law

    Eroom's Law

    Despite advances in technology and increased spending, the number of new drugs approved per billion dollars spent on…

    1 条评论
  • Copilot is an Incumbent Business Model

    Copilot is an Incumbent Business Model

    The Copilot business model has been the prevailing enterprise strategy of AI. An assistant that helps you write the…

    1 条评论
  • What if Google Wasn’t The Default?

    What if Google Wasn’t The Default?

    Google has paid Apple to be the default search on their operating systems since 2002. But recent antitrust cases…

  • The Cost of Index Everything

    The Cost of Index Everything

    Many AI products today are focused on indexing as much as possible. Every meeting, every document, every moment of your…

  • Strategies for the GPU-Poor

    Strategies for the GPU-Poor

    GPUs are hard to come by, often fetching significant premiums in their aftermarket prices (if you can find them). Cloud…

社区洞察

其他会员也浏览了