1import{r as a,j as t,ai as i,M as r}from"./index-Mp9NMuad.js";const e=({url:s})=>t.jsx("blockquote",{className:"twitter-tweet",children:t.jsx("p",{lang:"en",dir:"ltr",children:t.jsx("a",{href:s})})}),l=()=>(a.useEffect(()=>{const s=document.createElement("script");return s.src="https://platform.twitter.com/widgets.js",s.async=!0,document.head.appendChild(s),()=>{document.head.removeChild(s)}},[]),t.jsxs("div",{className:"min-h-screen flex flex-col bg-white",children:[t.jsx(i,{}),t.jsxs("div",{className:"container mx-auto px-4 py-8",children:[t.jsx("h1",{className:"text-4xl mt-12 text-left",children:"About InterProt"}),t.jsx("p",{className:"mt-6 text-left",children:"InterProt is an open-source project applying mechanistic interpretability to protein language models. The goal is to better understand these models and steer them to design new proteins."}),t.jsx("p",{className:"mt-6 text-left",children:t.jsx(r,{children:"We trained some Sparse Autoencoders (SAEs) on [ESM2](https://github.com/facebookresearch/esm), built an interactive [visualizer](/#/sae-viz), and released a [preprint](https://www.biorxiv.org/content/10.1101/2025.02.06.636901v1). If you prefer Tweetorials, check these out:"})}),t.jsxs("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:[t.jsx(e,{url:"https://twitter.com/etowah0/status/1888977417127055413"}),t.jsx(e,{url:"https://twitter.com/liambai21/status/1852765669080879108"}),t.jsx(e,{url:"https://twitter.com/liambai21/status/1857066057774567706"}),t.jsx(e,{url:"https://twitter.com/liambai21/status/1854739750692802566"})]}),t.jsx("h1",{className:"text-4xl mt-10 text-left",children:"Learning from the Community"}),t.jsx("p",{className:"mt-6 text-left",children:t.jsx(r,{children:"Since we shared InterProt on Twitter, it has been motivating and inspiring to see the community effort on interpreting SAE features. If you find a cool feature in our [visualizer](/#/sae-viz), please reach out!"})}),t.jsxs("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:[t.jsx(e,{url:"https://twitter.com/ddelalamo/status/1854785030523924882"}),t.jsx(e,{url:"https://twitter.com/dargason/status/1853220879569682506"}),t.jsx(e,{url:"https://twitter.com/atsocf/status/1857773624893047141?s=46"}),t.jsx(e,{url:"https://twitter.com/m1nj12/status/1855022505700081671"}),t.jsx(e,{url:"https://twitter.com/james_krieger/status/1855282447128117403"}),t.jsx(e,{url:"https://twitter.com/ddelalamo/status/1854925583169286497"})]})]})]}));export{l as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.