Meta가 LLM을 사용하여 사고 대응을 개선하는 방법

얼마전에 흥미로운 블로그 글이 올라왔었습니다

Meta같은 경우 회사의 service software stack이 워낙 크고 방대하니, 사소한 한가지를 고쳐도 다른 쪽에 side effect가 워낙 자주 날 것입니다. 어떤 지점을 고쳤는데, 어떤 결과가 나오는지 쉽게 알 수 없는 경우도 많을 것입니다.
이에 LLM을 이용하여, 의심이 되는 code changes를 찾아서 제공해봤는데 결과가 42% 정도 나왔다고합니다. Llama 7B를 이용했다고 합니다.
놀랍다고 생각했던 점은

  1. 성공률이 42%가 나와서 상당히 높은 수준
  2. Llama 7B 정도면 local에서 돌려도 될 수준인데, 매개변수가 더 많은 LLM을 사용했다면 성능 끌어올릴 여지가 있을 수도 있음

code review외에도 다양한 분야에 LLM이 사용될 수 있는 것을 보여주는 아주 흥미로운 예제라고 생각됩니다.


상세 내용, 기계 번역 이용됨:

Meta는 LLM을 활용하여 42%의 정확도로 문제의 원인을 분석했습니다. 그들의 방법과 이를 활용하는 방법을 알아봅시다.

저자: 윌슨 스피어맨

Meta's AI for Incident Response

Meta의 AI 기반 사고 대응

지난 6월, Meta는 엔지니어링 블로그를 통해 효율적인 사고 대응을 위한 AI 활용이라는 제목의 기사를 발표했습니다. 이 기사에서 Meta는 대형 언어 모델(LLM)을 활용하여 자사의 사고 대응 역량을 어떻게 개선했는지 설명했습니다. 이 보고서에서 가장 주목할 만한 지표는 Meta가 웹 모노레포(Web Monorepo)에서 LLM을 활용해 42%의 정확도로 사고의 원인을 분석했다는 것입니다. 이는 절반 가까운 경우에서 문제 해결까지 걸리는 평균 시간(MTTR, Mean Time to Resolution)을 몇 시간에서 몇 초로 줄일 가능성을 의미합니다. Meta처럼 대규모이고 복잡한 엔지니어링 조직이 생성형 AI를 성공적으로 활용한 사례는 다른 엔지니어링 팀들도 이를 통해 이점을 얻을 수 있다는 희망을 줍니다. 이제 Meta가 이러한 결과를 어떻게 달성했는지, 그리고 우리가 배울 수 있는 점들을 살펴보겠습니다.

Meta의 대규모 사고 관리

Meta 같은 규모의 기업에서 코드 변경이 얼마나 빠르고 방대한지 이해하기란 쉽지 않습니다. Meta는 하루에 수천 건의 변경을 거의 전적으로 단일 모노레포에서 진행하고 있습니다. Meta는 실제로 자사의 코드베이스 성장 속도를 따라잡기 위해 Mercurial을 재설계하기도 했습니다. 이런 규모에서 장애를 조사하는 것은 엄청난 작업이 됩니다. 단순히 “#engineering 채널에서 ’최근 누가 뭔가를 수정했나요?’라고 묻는 것”만으로는 문제 해결이 되지 않습니다.

Meta는 온콜 엔지니어들의 작업을 용이하게 하기 위해 정교한 사고 대응 도구를 도입했습니다. 이 모든 도구는 “무엇이 잘못되었는가?”, “왜 문제가 발생했는가?”, “어떻게 해결할 것인가?“라는 문제를 해결하려는 공통의 목표를 가지고 있습니다. 생성형 AI는 MTTR 및 사고 관리 프로세스를 개선할 잠재력을 분명히 가지고 있으며, Meta는 이를 구현하는 방법 중 하나를 보여주었습니다.

LLM을 활용한 Meta의 사고 대응 접근법

How Meta scopes down code changes with heuristics and LLMs

Meta는 LLM을 사용하여 사고 조사 시작 시 엔지니어들에게 가장 가능성 높은 원인을 제시함으로써 원인 분석(RCA, Root Cause Analysis)의 속도와 정확도를 높였습니다. 방대한 모노레포의 복잡성을 처리하기 위해 먼저 휴리스틱 기반 검색으로 코드 변경 사항을 좁히고, 이후 LLM 기반 랭킹을 통해 더욱 정교하게 분석합니다.

코드 변경 사항을 좁히는 Meta의 방법

검색 단계: 코드 소유권, 디렉토리 구조, 실행 시 코드 그래프와 같은 기준을 활용하여 잠재적 변경 사항을 필터링.

랭킹 단계: 가장 관련성이 높은 변경 사항만 LLM으로 전달해 심층 분석.

이 도구는 Meta의 기존 사고 관리 프로세스에 자연스럽게 통합됩니다. 엔지니어는 평소와 같은 방식으로 문제를 조사하지만, AI가 가장 가능성 높은 원인을 실시간으로 자동으로 제시하여 불필요한 탐색 시간을 줄여줍니다. AI는 엔지니어의 전문성을 대체하는 것이 아니라, 가능한 원인에 대한 초점을 빠르게 맞춰주는 유용한 도우미 역할을 합니다.

Llama 2 7B의 미세 조정: 문제 원인 파악

The fine-tuning process used for Llama 2 7B

Meta의 혁신적인 접근 방식 중 하나는 Llama 2 7B 모델을 문제 원인 분석에 맞춰 미세 조정한 것입니다.

  1. 단계적 미세 조정:

CPT(Continued Pre-Training): 내부 문서, 코드 저장소, Q&A 문서 등을 활용해 맥락적 기반 구축.

SFT(Supervised Fine-Tuning): Llama 2의 기존 데이터와 Meta의 원인 분석 데이터셋을 결합하여 교육.

  1. 데이터 구성: 실제 상황과 유사한 환경에서 최소한의 정보로 2~20개의 잠재적 코드 변경 사항을 분석하도록 모델 학습.

이 과정으로 모델은 가능성이 높은 원인을 순위별로 제공하며, 로그 확률을 기반으로 잠재적 원인의 관련성을 평가합니다. 이를 통해 Meta는 42%의 정확도로 문제를 유발한 코드 변경 사항을 식별할 수 있었습니다.

42% 정확도: 긍정적인가 부정적인가?

표면적으로 42%의 정확도는 낮아 보일 수 있습니다. 하지만 문제가 시작될 때 엔지니어가 원인을 바로 파악하는 경우가 절반에 달한다는 점에서 이는 엄청난 성과입니다. 이 결과는 엔지니어가 빠르게 잘못된 결과를 배제할 수 있다면 MTTR을 크게 단축시킬 수 있음을 시사합니다.

AI 기반 사고 대응의 미래

Meta의 사례는 다른 팀들이 AI를 활용하여 사고 대응 프로세스를 개선하는 데 중요한 통찰을 제공합니다. Meta처럼 풍부한 리소스를 가진 팀이 아니더라도, LLM을 활용하면 로그 분석, 코드 변경 추적, 환경 간 문제 상관관계 도출 등을 통해 문제 해결 시간을 줄일 수 있습니다.

Parity와 같은 서비스는 이러한 기술을 보다 널리 활용할 수 있도록 설계되었습니다. Parity는 AI 기반 사고 대응 시스템으로, 경고가 발생하면 문제를 조사하고 컨텍스트를 수집하여 엔지니어에게 보고합니다. 이를 통해 엔지니어가 문제 해결에 더 빠르게 착수할 수 있도록 돕습니다.

Meta와 같은 사례는 AI가 사고 대응, 나아가 사이버 보안 및 기타 분야에서도 큰 잠재력을 가지고 있음을 보여줍니다. AI와 엔지니어링의 통합은 이제 시작일 뿐이며, 더 나은 미래를 기대할 수 있습니다.

출처 : How Meta Uses LLMs to Improve Incident Response (and how you can too) - Parity

2개의 좋아요