Logo for Anthropic
Software Engineer, Interpretability
Anthropic
Posted on 6/2/2024
Description

About the role:

When you see what modern language models are capable of, do you wonder, "How do these things work? How can we trust them?"

The Interpretability team’s mission is to reverse engineer how trained models work. We believe that a mechanistic understanding is the most robust way to make advanced systems safe. We’re looking for researchers and engineers to join our efforts. 

We're focused on mechanistic interpretability, which aims to discover how neural network parameters map to meaningful algorithms. Some useful analogies might be to think of us as trying to do "biology" or "neuroscience" of neural networks, or as treating neural networks as binary computer programs we're trying to "reverse engineer".

We recently showed that we could extract millions of meaningful features from  Anthropic’s production Claude 3.0 Sonnet model, along with an initial demonstration of how we can use these features to change the model’s behavior by creating “Golden Gate Claude”. Achieving these results required a large engineering effort including optimizing sparse autoencoders (SAEs) across many GPUs, and building tools to visualize millions of features. Work like this is central to our roadmap of using mechanistic interpretability to improve the safety of LLMs like Claude.

We collaborate with teams across Anthropic, such as Alignment Science and Societal Impacts to use our work to make Anthropic’s models safer. 

Responsibilities:

  • Implement and analyze research experiments, both quickly in toy scenarios and at scale in large models
  • Set up and optimize research workflows to run efficiently and reliably at large scale
  • Build tools and abstractions to support rapid pace of research experimentation
  • Develop and improve tools and infrastructure to support other teams in using Interpretability’s work to improve model safety

You may be a good fit if you:

  • Have 3-10+ years of experience building software
  • Are highly proficient in at least one programming language (e.g., Python, Rust, Go, Java) and productive with python
  • Have a strong ability to prioritize and direct effort toward the most impactful work and are comfortable operating with ambiguity and questioning assumptions.
  • Want to learn more about machine learning research and its applications and collaborate closely with researchers
  • Care about the societal impacts and ethics of your work

Strong candidates may also have experience with:

  • Designing a code base so that anyone can quickly code experiments, launch them, and analyze their results without hitting bugs
  • Optimizing the performance of large-scale distributed systems
  • Collaborating closely with researchers, ML engineers, or data scientists
  • Language modeling with transformers
  • GPUs or Pytorch

Representative Projects:

  • Building Garcon, a tool that allows researchers to easily access LLMs internals from a jupyter notebook
  • Setting up and optimizing a pipeline to efficiently collect petabytes of transformer activations and shuffle them.
  • Profiling and optimizing ML training, including parallelizing to many GPUs
  • Make launching ML experiments and manipulating+analyzing the results fast and easy
  • Creating an interactive visualization of attention between tokens in a language model

More Similar Roles...

Want more remote roles like this one sent to you?