Meta에서 수익화 인프라·랭킹·AI 파운데이션을 맡은 Matt Steiner가 Semi Doped에 나왔다. 진행자는 Austin Lyons(이하 진행자A)이고, 광고가 어떻게 돌아가는지부터 물어 데이터센터 하드웨어 결정까지 내려간다. 이 글은 그 대화에서 Meta 한 회사의 사정이 아니라 업계에 보이는 것을 읽는다.
광고주는 소재와 목표를 올린다. 목표는 웹사이트 방문일 수도 있고, 장바구니에 담기일 수도 있고, 구매 버튼을 누르는 것일 수도 있다. 그러면 Meta는 사람마다 작은 데이터베이스를 만들어 이 사람에게 나갈 수 있는 광고를 적어 둔다. 그 목록은 아주 길다.
광고 하나가 뜨기까지
누가 앱을 열면 앞단이 뒷단에 묻는다. 다음에 보여줄 가장 좋은 광고를 달라고. 여기서 일이 둘로 나뉜다. ① 나갈 수 있는 광고를 그 긴 목록에서 건져 올리는 검색(retrieval) ② 건져 올린 것을 순서대로 세우는 랭킹. 검색을 맡은 것이 Andromeda다. 관심사와 과거 상호작용을 담은 모델로 흥미로울 만한 것만 추려 랭킹으로 넘긴다. 랭킹은 전환 확률에 광고주가 기대하는 가치를 곱한 값으로 순서를 정한다.
Andromeda가 왜 필요해졌는지도 대화에 나온다. 예전에는 한 사람에게 나갈 수 있는 광고 목록이 훨씬 짧았다. 지금은 그 목록이 아주 길어져서, 전체를 훑어 처리하려면 상당히 힘센 시스템이 있어야 한다. 그래서 Nvidia와 함께 GPU를 넣은 전용 하드웨어 SKU를 설계했고, 그 SKU 위에서 돌 기계학습 모델을 같이 설계했다. 순서를 뒤집어 읽으면 안 된다. 광고 재고가 늘어난 결과가 하드웨어 요구로 내려온 것이다.
이 전부에 붙은 제약은 시간이다. 피드와 그 안의 광고가 뜨는 데 대략 1초이고, 광고 검색 요청은 모두 1초 아래에서 끝내는 것이 목표다. 그리고 이 시스템이 상대하는 사람은 하루 30억 명이 넘는다. 업계가 볼 대목은 여기다. 광고 추천은 생성형 AI가 오기 한참 전부터 실시간 추론이었고, 지연 예산이 모델 크기의 천장을 정해 왔다.
모델을 합쳤다가 다시 줄이기까지
Meta는 목적마다 따로 서 있던 랭킹 모델을 하나로 합쳐 왔다. 그 기술 이름이 Lattice다. 합치면 좋은 이유가 둘이다. ① 비용이 준다. 한 사람의 관심사 사본을 모델 수만큼 들고 있지 않아도 되고, 같은 서브넷 계산을 모델마다 되풀이하지 않는다. ② 성능이 오른다. 더 많은 데이터와 더 다양한 목표로 훈련한 모델이 하나의 목표만 보고 훈련한 작은 모델보다 낫다. 데이터 한 조각마다 다른 목표에 쓸 신호가 얹혀 있기 때문이다.
그 방향의 끝에 세운 것이 GEM(생성형 광고 추천 모델)이다. 훈련에 쓸 수 있는 데이터를 전부 먹여 가장 크고 예측이 정확한 모델을 만든다. 그런데 이 모델은 그대로 서비스에 못 올린다. 너무 크고, 일부 구획은 효율이 좋지 않다. 그래서 증류(큰 모델이 배운 것을 작은 모델에 옮겨 담는 과정) 단계를 거쳐 올릴 수 있는 크기로 줄인다.
여기까지는 생성형 AI를 따라온 독자에게 익숙한 그림이다. 진행자A도 큰 모델은 못 올리고 작은 모델은 덜 똑똑하다는 맞바꿈으로 정리했다. 이 회차에서 새로운 것은 그다음 대목이다.
같은 예산 안에서 연산을 달리 쓴다
Meta가 최근 올린 것은 적응형 랭킹 모델이다. 그 사람의 상호작용 이력이 얼마나 긴지에 따라 모델을 한 번 돌리는 데 쓰는 연산량을 크게 바꾼다. 이력이 긴 사람에게는 훨씬 많은 연산을 쓰고, 다음에 무엇에 반응할지에 대한 예측 정확도를 끌어올린다.
왜 길이가 중요한지를 게스트는 결혼기념일로 설명한다. 어떤 사람이 해마다 9월에 특정 부류의 물건을 산다면, 그게 기념일 때문인지 몰라도 9월 예측은 훨씬 나아진다. 아이 생일이나 명절도 같은 꼴이다. 다만 조건이 둘이다. ① 긴 이력을 실제로 저장해 뒀어야 하고 ② 서비스 시점에 그 이력 전체를 처리할 연산 능력이 있어야 한다.
원래 구조에서는 그 연산이 모자랐다. 지연 예산이 빡빡해서 상호작용을 다 보지 못했다. 지금 적응형 랭킹 모델은 추론 시점 파라미터가 대략 1조이고, 그것을 1초 아래에서 끝낸다. 게스트는 이것을 Meta의 추천 모델이 LLM 규모와 복잡도에 닿은 사건으로 표현했다.
업계 쪽에서 보면 이 설계는 추론 수요의 성격을 바꾼다. 필요한 연산은 사용자 수에 요청 수를 곱한 값으로 늘지 않는다. 이력이 긴 소수에게 큰 연산이 몰린다. 요청 하나가 평균 얼마를 먹느냐가 아니라 분포의 오른쪽 끝이 하드웨어 사양을 정한다.
게스트는 이 일 전체를 중매로 요약했다. "우리는 사려는 사람과 팔 물건을 가진 광고주를 맞춰 줄 뿐이다". 진행자A도 Meta가 사용자와 사업자 사이 장터 한가운데에 앉아 있고, 연산으로 예측을 개선해 온 것이 이 사업의 역사라고 정리했다.
전에는 검색도 랭킹도 CPU에서 돌았다. 그 뒤로 작은 CPU, 중간 CPU, 큰 CPU, 커스텀 ASIC, GPU, 더 강한 GPU와 더 강한 ASIC 순서로 옮겨 왔다. 연산이 늘면 더 크고 복잡한 모델을 돌릴 수 있고, 더 긴 사용자 이력을 모델에 넣을 수 있다. 게스트는 하드웨어·네트워크·데이터센터 설계·칩·모델·소프트웨어를 함께 최적화해 온 기간을 최소 10년으로 잡았다.
Nvidia와 짠 코디자인은 이렇게 굴러갔다. 목표 연산량과 지연 예산을 들고 파트너에게 가서, 그쪽 포트폴리오의 구성 블록 중 이 용도에 맞는 SKU를 만들 수 있는지 묻는다. 게스트는 그렇게 나온 것으로 Grace Hopper 를 들었다. 검색은 연산보다 메모리에 먼저 걸리는 문제라 메모리가 많이 필요하고, GPU를 놀리지 않으려면 고대역폭 메모리 채널이 넉넉해야 한다. 그렇게 나온 SKU는 랭킹용이나 웹페이지 서빙용과 모양이 다르다.
이 조율에는 시간축이 붙는다. 하드웨어는 소프트웨어보다 리드타임이 훨씬 길다. 그래서 한쪽에서는 앞으로 몇 년 사이 소프트웨어와 AI 스택이 갈 방향을 짐작해 하드웨어 설계에 반영시키고, 다른 쪽에서는 이번 반기와 이번 분기, 올해와 내년에 들어올 하드웨어의 성능을 다 쓰도록 소프트웨어 스택을 끌고 간다. 하드웨어 돌파가 먼저 나오면 소프트웨어 스택을 거기 맞춰 발전시킨다. 섞어 쓰는 칩마다 걸리는 자리도 제각각이다. 어떤 구성은 지연에서, 어떤 구성은 비용에서, 어떤 구성은 전력에서 걸린다.
MTIA(Meta 훈련·추론 가속기)로 간 근거도 같은 자리에서 나온다. 추천 시스템은 대형 언어 모델과 문제 성격이 다르다. 언어 모델은 업계에서 임베러싱리 패럴렐(embarrassingly parallel, 나눠서 따로 돌리기 쉽고 가중치를 자주 맞출 필요가 없는 문제)이라 부르는 부류다. 문장 완성에는 영어를 아는 사람이면 대체로 같게 고를 가장 확률 높은 답이 있다. 추천에는 그런 답이 없다. 누가 그 광고 자리를 보느냐가 정답을 정한다.
예제 하나의 크기가 부품 비율을 정한다
그래서 훈련 예제마다 개인화 덩어리가 붙는다. 이 사람이 원예와 자전거를 좋아하고 유아용품과 청소용품을 많이 산다는 정보가 예제 하나하나에 실린다. 예제마다 실려 오는 데이터가 크면 칩을 굶기지 않기 위해 필요한 것이 달라진다. 더 굵은 네트워크, 더 많은 온보드 메모리, 그리고 연산 대비 메모리 비율을 낮게 잡은 구성이다. 그러니 추천 시스템 훈련에 맞는 SKU는 언어 모델 훈련용 GPU와 같지 않을 수 있다. 모든 워크로드가 그렇다는 말은 아니고, 일부 모델에 한해 표준 GPU 패키지와 다른 구성이 이치에 맞는다는 뜻이다.
이종 하드웨어를 다루는 세 갈래
여러 종류의 칩을 섞어 쓰는 것은 원래 어려운 문제다. 바이너리가 그 하드웨어에서 돌기만 해서는 안 되고, 성능과 비용까지 맞아야 하기 때문이다. 그동안 선택지는 둘이었다. ① 하드웨어별로 바이너리를 직접 최적화한다. 느리고 비싸지만 한번 해 두면 성능이 좋다. ② 번역 계층을 끼운다. 배포는 쉬워지지만 그 하드웨어만의 성능도 함께 가려진다.
여기에 최근 변화가 생겼다. 대형 언어 모델이 특정 바이너리와 특정 하드웨어 짝에 맞는 커널을 직접 짜기 시작했다. 게스트는 관련 논문을 냈다고 하면서 이름을 Alpha Evolve 또는 Alpha Kernel로 기억했다. 전에는 모델 수와 하드웨어 종류를 곱한 만큼의 칸을 전문가가 손으로 채워야 했고, 그래서 한 하드웨어에 맞춰 둔 바이너리를 다른 하드웨어로 옮기지 않았다. 비용이 이득을 넘었기 때문이다. 지금은 모델에게 커널을 시키면 되고, 비용은 사람이 붙는 것보다 훨씬 낮다.
가장 눈에 띄는 것은 이 변화가 수요에 한 일이다. 게스트의 말은 이렇다. "소프트웨어 엔지니어링 수요는 값이 내려가면서 오히려 폭증했다". 전에는 하드웨어마다 제한된 수의 최적화 커널에만 투자했는데, 지금은 하드웨어 하나당 100배 많은 커널을 원한다. 전문 성능 튜너는 최적화를 직접 쓰는 대신 모델을 감독한다. 진행자A는 앞에서 같은 자리를 소프트웨어 인건비 쪽에서 짚었다. 예전에는 실리콘 종류를 늘리면 최적화할 엔지니어가 그만큼 더 필요해서 안 늘렸다는 것이다.
업계에 보이는 것은 자체 칩 손익의 구성 항목 하나가 줄었다는 사실이다. 이종 실리콘의 비용은 칩값과 소프트웨어 인건비로 나뉘어 있었고, 뒤쪽이 가로막고 있었다. 그 항목이 작아지면 자기 워크로드 모양을 잘 아는 대형 수요처가 표준 GPU 바깥의 구성을 시도할 문턱이 낮아진다. 다만 게스트는 아직 갈 길이 멀다고 붙였다.
앞으로 2년을 물었을 때 게스트가 든 것은 새 구조가 아니라 같은 방향의 확대다. 데이터센터를 짓고 연산·메모리·저장을 대량으로 사들여 더 나은 모델을 찾는다. 성능 개선을 찾는 일 자체가 모델을 아주 많이 훈련시켜 보고, 최적화 파라미터를 바꿔 보고, 새 구조를 만들어 시험하는 과정이기 때문이다. 추론 쪽 목표도 분명하다. 서비스 시점에 쓸 수 있는 연산과 메모리를 늘려 더 긴 이력과 더 큰 컨텍스트 창을 모델에 넣는 것이다.
게스트가 여기 붙인 표현은 종단 최적화다. 데이터센터 설계, 네트워크 설계, SKU 설계, 분산 시스템 소프트웨어, 모델 인프라, 모델 자체, 모델에 들어가는 데이터를 함께 최적화한다. 잣대는 둘로 좁혀진다. ① 1달러당 결과 ② 데이터센터에서 쓴 1와트당 결과.
진행자A가 회차 끝에서 짚은 대목이 이 글에서 가장 무겁다. 광고 사업에는 풀어야 할 최적화 함수가 뚜렷하다. 얼마를 지출할 의향이 있는지, 상대는 얼마를 낼 의향이 있는지, 결과가 나아지면 그것이 더 큰 지불로 이어지거나 시장 자체가 커지는지가 다 계산에 들어온다. 진행자A는 이것을 생성형 AI 쪽 다른 참가자들의 경제성과 견줬다. 그쪽은 같은 종류의 결정을 내릴 때 셈이 이만큼 단순하지 않다.
업계에 보이는 것이 이 차이다. 같은 하드웨어를 사고 같은 종단 최적화를 말해도, 지출을 정당화하는 계산이 이미 서 있는 회사와 그 계산을 아직 세우는 중인 회사가 나뉜다. Meta에서는 연산을 더 넣으면 예측이 나아지고, 예측이 나아지면 광고주가 얻는 결과가 좋아지고, 그것이 다시 지출로 돌아온다. 이 경로가 이미 이어져 있다.
숫자가 거의 없다. 이 대화 전체에서 나온 값은 하루 사용자 30억 명 이상, 지연 예산 약 1초, 적응형 랭킹 모델 파라미터 약 1조 셋뿐이다. 진행자A가 MTIA의 사업적·경제적 근거를 물었을 때 게스트가 답한 것은 워크로드 성격의 차이였고, 비율이나 금액은 나오지 않았다. 그래서 이 회차로는 셋을 세지 못한다. ① MTIA가 Meta 전체 연산에서 차지하는 비중 ② GPU 대비 자체 칩의 원가 차이 ③ Broadcom과 짠 로드맵의 시기와 물량. 진행자A가 Broadcom 제휴와 로드맵 공개를 언급하기는 했다.
커널을 쓰는 모델이 실제로 얼마를 아꼈는지도 없다. 게스트는 "사람이 앉아서 하나씩 짚어 가는 것보다 훨씬, 훨씬 싸다"라고만 말했고, 논문 이름조차 확실히 기억하지 못했다. 생성형 AI 조직과 추천 조직의 관계도 대화·협업·공동 투자 수준에서 그쳤다. 어느 쪽 예산이 어느 쪽을 받쳐 주는지는 이 회차에 없다.
무엇이 나오면 판단이 바뀌나. ① MTIA 세대별 물량과 워크로드 배분이 공개되면, 5절에서 말한 문턱이 실제로 낮아졌는지가 확인된다. 지금은 논리만 있다. ② 적응형 랭킹 모델의 연산 분포가 나오면, 3절의 오른쪽 끝 이야기가 하드웨어 수요로 얼마나 옮겨 가는지 계산할 수 있다. ③ 커널을 쓰는 모델이 손으로 튜닝한 커널의 성능에 얼마나 근접하는지 공개되면, 이종 실리콘 확대 논거의 실제 크기가 정해진다. 근접도가 낮으면 번역 계층 시절의 맞바꿈이 이름만 바꿔 돌아온다.
하나 더. 이 전사는 유튜브 자막에서 옮긴 것이고 화자 표시가 없다. 마지막에 진행자가 게스트를 Matt으로 부르며 인사하는데, 답례에서는 진행자를 Allison으로 부른다. 앞에서는 진행자A으로 불렀다.