LogLLM: Log-based Anomaly Detection Using Large Language Models

김현우·2025년 7월 24일
0

thesis

목록 보기
8/9

최근 대규모 언어 모델(LLM)을 활용한 방법들이 등장했지만, 이들 역시 다음과 같은 문제점을 가집니다:

  • 프롬프트 엔지니어링 기반 방법: LLM의 내장된 지식에만 의존하여 특정 데이터셋에서는 성능이 떨어집니다.
  • 미세 조정 기반 방법: LLM을 특정 데이터에 맞게 조정하지만, 의미 이해가 제한적이거나 메모리 초과 같은 기술적 문제에 부딪힙니다.

이 논문은 대규모 언어 모델(LLM)을 활용하여 소프트웨어 시스템 로그에서 이상 징후를 탐지하는 새로운 프레임워크인 'LogLLM'을 제안합니다. 기존의 딥러닝 방법들은 자연어로 구성된 로그 데이터의 의미적 정보(semantic information)를 효과적으로 포착하는 데 어려움을 겪었지만, LogLLM은 이 문제를 해결하고자 합니다.

주요 특징 및 아키텍처

  1. 듀얼 LLM 아키텍처: 이 연구는 로그 기반 이상 탐지를 위해 인코더 기반 LLM(BERT)과 디코더 기반 LLM(Llama)을 동시에 활용한 첫 시도입니다.
    • BERT (인코더): 각 로그 메시지를 개별적으로 분석하여 의미적 정보를 담은 벡터(semantic vector)를 추출하는 역할을 합니다.
    • Llama (디코더): BERT가 추출한 로그 시퀀스 전체의 벡터를 입력받아, 해당 시퀀스가 '정상'인지 '비정상'인지를 분류합니다.
  2. 프로젝터 (Projector): BERT와 Llama는 서로 다른 벡터 공간을 사용하기 때문에, 이 둘을 연결하기 위한 '프로젝터'라는 선형 계층을 도입했습니다. 프로젝터는 BERT가 생성한 의미 벡터를 Llama가 이해할 수 있는 토큰 임베딩 벡터로 변환하여 두 모델 간의 의미적 일관성을 보장합니다.
  3. 간소화된 전처리: 전통적인 방법들이 로그 템플릿을 추출하기 위해 로그 파서(log parser)를 사용하는 것과 달리, LogLLM은 정규 표현식(regular expressions)을 사용하여 로그 메시지 내의 동적 파라미터(IP 주소, 디렉터리 경로 등)를 <*>와 같은 일관된 토큰으로 대체합니다. 이 방식은 파서의 오류 가능성을 줄이고 전체 프로세스를 간소화합니다.
  4. 독창적인 3단계 훈련 절차: 모델의 성능과 적응성을 극대화하기 위해 다음과 같은 3단계 훈련 절차를 제안했습니다.
    • 1단계: Llama가 "이 시퀀스는 정상/비정상입니다"와 같은 정해진 답변 형식을 학습하도록 미세 조정(fine-tuning)합니다.
    • 2단계: BERT와 프로젝터로 구성된 임베더(embedder)를 훈련하여, 각 로그 메시지를 Llama가 가장 잘 이해할 수 있는 임베딩으로 변환하도록 합니다.
    • 3단계: 모델의 모든 구성 요소(BERT, 프로젝터, Llama)를 통합하여 전체적으로 미세 조정함으로써 일관되고 정확한 성능을 확보합니다.

LogLLM 처리 과정 요약

  1. 전처리 단계

    • 원본 로그 시퀀스에 포함된 IP 주소나 숫자처럼 계속 변하는 값들을 정규 표현식을 사용하여 <*>와 같은 일관된 토큰으로 변경합니다.
  2. 임베딩 단계 (의미 벡터 추출)

    • BERT가 전처리된 각 로그 메시지를 분석하여 문맥적 의미가 담긴 벡터로 변환합니다.
    • 프로젝터(Projector)가 BERT가 만든 벡터를 Llama가 이해할 수 있는 형태의 벡터로 조정하는 다리 역할을 합니다.
  3. 프롬프트 구성 및 최종 분류 단계

    • 로그의 의미 벡터들 앞뒤에 "다음은 시스템 로그 시퀀스입니다:"와 같은 안내 문장과 "이 시퀀스는 정상인가요, 비정상인가요?"와 같은 질문을 벡터 형태로 조합하여 Llama에게 보낼 하나의 완전한 프롬프트(질문서)를 구성합니다.
    • 최종적으로 Llama가 이 프롬프트를 전체적으로 이해하고, 해당 로그 시퀀스가 정상인지 비정상인지 판단하는 답변을 생성합니다.

실험 및 결과

LogLLM의 성능을 검증하기 위해 HDFS, BGL, Liberty, Thunderbird 등 4개의 공개 데이터셋을 대상으로 광범위한 실험을 수행했습니다.

  • 성능: LogLLM은 실험에 사용된 모든 데이터셋에서 기존의 최신 기술(state-of-the-art)들을 능가하는 가장 높은 F1점수를 기록했습니다. 특히 기존 최고 성능 모델인 NeuralLog보다 평균적으로 6.6% 더 높은 F1 점수를 달성하며 그 효과성을 입증했습니다.

  • 안정성: LogLLM은 오탐(false alarm)을 낮게 유지하면서도 이상 징후를 놓치지 않는, 즉 정밀도(Precision)와 재현율(Recall) 사이의 균형을 잘 맞추는 모습을 보였습니다.

  • 전처리 및 아키텍처의 효과: 실험을 통해 정규 표현식을 사용한 전처리 방식이 다른 방식(로그 파서 사용 등)보다 우수함을 확인했습니다. 또한, BERT와 프로젝터로 구성된 임베더를 사용하는 것이 단순히 로그 전체를 Llama에 직접 입력하는 것보다 메모리 문제를 피하고 성능을 향상시키는 데 필수적임을 증명했습니다.

  • 훈련 절차의 중요성: 3단계 훈련 절차 중 어느 한 단계라도 생략하면 성능이 저하되었으며, 특히 1단계(Llama 답변 형식 학습)를 건너뛰었을 때 성능이 가장 크게 하락했습니다. 이는 제안된 훈련 절차의 각 단계가 모델 최적화에 필수적임을 보여줍니다.

  • 계산 비용: LogLLM은 최고의 성능을 보였지만, 모델의 규모가 큰 만큼 다른 방법들에 비해 훈련 시간이 가장 오래 걸렸습니다.

결론

LogLLM은 인코더와 디코더 LLM을 결합하고, 이 둘을 효과적으로 연결하는 프로젝터를 도입하였으며, 독창적인 3단계 훈련 절차를 통해 로그 데이터의 의미적 정보를 깊이 있게 이해하고 이상 징후를 매우 정확하게 탐지하는 새로운 프레임워크입니다. 실험 결과는 LogLLM이 기존 방법들보다 월등한 성능을 보임을 명확히 입증했습니다.

추가 지식

BERT (Bidirectional Encoder Representations from Transformers)

BERT는 구글이 개발한 언어 모델로, 문장의 전체 문맥을 파악하여 의미를 이해하는 데 특화되어 있습니다. 이름의 'Bidirectional(양방향)'이 가장 큰 특징입니다.

  • 작동 방식: BERT는 문장을 처음부터 끝까지 한 번에 읽습니다. 특정 단어의 의미를 파악하기 위해 그 단어의 앞뒤에 있는 모든 단어를 동시에 고려합니다. 이는 마치 우리가 문장에서 빈칸에 들어갈 단어를 맞힐 때 문장 전체를 읽고 추론하는 것과 같습니다.

  • 구조 (인코더): BERT는 트랜스포머(Transformer) 아키텍처의 인코더(Encoder) 부분만을 사용합니다. 인코더는 입력된 텍스트의 의미를 압축하여 풍부한 정보가 담긴 숫자 벡터(vector)로 만드는 역할을 합니다.

Llama (Large Language Model Meta AI)

Llama는 메타(구 페이스북)가 개발한 언어 모델로, 주어진 내용을 바탕으로 다음 내용을 자연스럽게 생성하는 데 특화되어 있습니다.

작동 방식: Llama는 이전에 나온 단어들을 기반으로 다음에 올 단어를 예측하는 방식으로 작동합니다. 마치 스마트폰의 자동 완성 기능처럼, "고양이가 소파 위에..."라고 입력하면 "앉았습니다."라는 단어를 예측하여 문장을 이어 나갑니다.

구조 (디코더): Llama는 트랜스포머 아키텍처의 디코더(Decoder) 부분만을 사용합니다. 디코더는 주어진 정보를 바탕으로 새로운 텍스트를 순차적으로 생성하는 역할을 합니다.

profile
학생

0개의 댓글