Evaluating LLM Systems: Essential Metrics, Benchmarks, and Best Practices”란 article의 상세 번역으로, 이 article은 LLM(대형 언어 모델) 시스템 평가의 중요성과 다양한 평가 지표, 벤치마크, 그리고 최선의 실천 방법에 대해 설명하고 있습니다.
Evaluating LLM System: 필수 지표, 벤치마크, 그리고 최선의 실천 방법

LLM 시스템을 수동으로 평가하는 것은 매우 번거롭고 시간이 많이 들며, 좌절감을 줄 수 있습니다. 수많은 프롬프트에 대한 LLM 출력을 일일이 확인해야 했다면, 이번 글은 여러분이 LLM 평가에 대해 알아야 할 모든 것을 설명하여, 여러분의 LLM 응용 프로그램이 더 오래 지속될 수 있도록 도와줄 것입니다.
LLM 평가란 LLM의 출력물이 인간의 기대에 얼마나 부합하는지를 평가하는 과정입니다. 이에는 윤리적이고 안전한 고려 사항뿐만 아니라 출력의 정확성과 관련성 등 실질적인 기준도 포함됩니다. 엔지니어링 관점에서 LLM 출력은 종종 유닛 테스트 케이스의 형태로 나타나며, 평가 기준은 LLM 평가 지표의 형태로 제공될 수 있습니다.
LLM vs LLM 시스템 평가
LLM(Large Language Model, 대형 언어 모델)은 인간의 언어를 이해하고 생성하도록 훈련된 모델을 의미합니다(GPT-4와 같은 모델). 반면, LLM 시스템은 LLM 자체뿐만 아니라 함수 호출, RAG(검색 및 생성) 시스템, 응답 캐싱 등 다양한 추가 구성 요소로 이루어진 완전한 설정을 포함합니다. 이러한 시스템은 고객 지원 챗봇, 자동화된 영업 에이전트, Text-SQL 생성기와 같은 실제 응용 프로그램에 유용합니다.
Evaluating LLM System (LLM 시스템의 평가)는 LLM 자체를 평가하는 것보다 더 복잡할 수 있습니다. 여러 구성 요소가 상호 작용하기 때문에, 시스템의 각 부분을 세밀하게 평가하여 문제나 장점을 파악하는 것이 중요합니다. 예를 들어, Text-SQL 시스템의 검색 파이프라인은 컨텍스트 회수 지표로 평가할 수 있습니다. SQL 생성 파이프라인은 SQL 정확성 지표로 평가할 수 있습니다.
오프라인 평가: 테스트 케이스, 평가 데이터셋, LLM 지표 및 벤치마크
오프라인 평가는 로컬 개발 환경에서 LLM 시스템을 평가하는 것을 의미합니다. 이는 Python 스크립트, Colab/Jupyter 노트북 또는 Github Actions의 CI/CD 파이프라인 등 다양한 환경에서 실행될 수 있습니다. 이 방법은 LLM 시스템의 성능을 정량적으로 개선하고, 이상적인 하이퍼파라미터를 조정하는 데 유용합니다.
벤치마킹은 LLM 시스템 성능을 특정 기준에 맞추어 정량화하는 과정입니다. 이는 표준화된 평가 데이터셋을 사용하여 이루어지며, 각각의 LLM 평가 지표가 테스트 케이스에 적용됩니다. LLM 시스템의 각 부분을 세부적으로 평가하기 위해 여러 지표를 사용하여 성능을 검토합니다.
평가 데이터셋과 테스트 케이스
평가 데이터셋은 여러 테스트 케이스로 구성됩니다. 각 테스트 케이스에는 다음과 같은 매개변수가 포함됩니다:
- 입력: LLM 시스템에 전달된 입력.
- 실제 출력: LLM 시스템이 생성한 텍스트 응답.
- 기대 출력: 해당 입력에 대한 이상적인 응답.
- 검색 컨텍스트: 검색 파이프라인에서 검색된 문서나 정보.
평가 데이터셋을 만들 때, 각 테스트 케이스의 실패 가능성이 높은 부분을 찾아내는 것이 중요합니다.
LLM 평가 지표
LLM 평가 지표는 LLM 시스템을 자동으로 평가하는 데 사용됩니다. 기존에 사용되던 BERT나 ROUGE 같은 전통적인 지표는 LLM 출력이 너무 복잡하여 통계적 방법으로는 정확한 평가가 어렵습니다. 그래서 LLM을 평가하는 데에는 LLM-as-a-judge 방식을 사용하는 것이 더 적합합니다.
이 방식은 LLM을 사용하여 테스트 케이스를 점수화하는 방식입니다. 예를 들어, 정확성(Correctness), 관련성(Relevancy), 일관성(Coherence), 편향성(Bias) 등의 지표를 사용하여 LLM 시스템의 성능을 평가할 수 있습니다.
실시간 평가
실시간 평가는 실제 운영 환경에서 LLM 시스템의 성능을 평가하는 방법입니다. 운영 중 발생하는 데이터를 수집하여 벤치마크 데이터셋을 개선할 수 있습니다. 이를 통해 사용자와의 상호작용 중 발생할 수 있는 문제를 빠르게 파악하고 대응할 수 있습니다.
[용어설명]
- LLM (Large Language Model): 대규모 언어 모델. 자연어를 이해하고 생성할 수 있는 인공지능 모델.
- RAG (Retrieval-Augmented Generation): 검색된 문서나 정보를 기반으로 텍스트를 생성하는 시스템. 검색과 생성의 조합. 즉, 필요한 정보를 먼저 검색한 다음, 그 정보를 바탕으로 대답을 생성하는 기능. 사용자가 원하는 정보를 더 정확하게 제공하는 것을 지원.
- 하이퍼파라미터 (Hyperparameter): 모델 학습 과정에서 사용자가 직접 설정해야 하는 매개변수. 예를 들어, 학습률이나 배치 크기 등.
- 유닛 테스트 (Unit Test): 소프트웨어 개발에서 개별 구성 요소가 제대로 작동하는지 확인하기 위한 테스트.
- 벤치마킹 (Benchmarking): 성능을 평가하고 비교하기 위해 표준화된 기준에 따라 시스템을 테스트하는 과정.
- SQL: 데이터베이스에서 데이터를 관리하고 쿼리하는 데 사용되는 구조화된 질의 언어.
- BERT (Bidirectional Encoder Representations from Transformers): 문장의 전후 맥락을 모두 고려하여 자연어를 처리하는 모델.
- ROUGE (Recall-Oriented Understudy for Gisting Evaluation): 텍스트 요약의 품질을 평가하는 데 사용되는 지표
- 함수호출: LLM이 특정한 작업을 할 때, 프로그램 내에서 필요한 함수나 명령을 호출하는 기능
- 응답캐싱: 자주 물어보는 질문에 대해 미리 준비된 답변을 저장해 두었다가 같은 질무닝 들어오면 빠르게 답변을 제공하는 기능.
- LLM 시스템: LLM을 실생활에 적용할 수 있도록 다양한 기능을 추가한 시스템(예: 고객지원 챗봇, Text-SQL 생성기 등)
- 고객지원챗봇: 고객의 질문을 이해하고 적절한 답변을 자동으로 제공하는 시스템
- Text-SQL 생성기: 사용자의 질문을 데이터베이스 언어인 SQL로 변환해서 원하는 정보를 데이터베이스에서 자동으로 찾아주는 시스템.
- 검색 파이프라인: 사용ㅈ의 질문에 맞는 정보를 제대로 검색했는지 평가. 컨텍스트 회수 지표라고도 함.
- SQL 생성 파이프라인: 검색된 정보에 기반하여 올바른 SQL(데이터베이스 지르이어)를 생성했는지 평가. SQL 정확성 지표
LLM Evaluation Metrics: The Ultimate LLM Evaluation Guide
LLM Testing in 2024 & Unit test cases
Synthetic data generation using LLMs
LLM as a Judge: 자동화 및 확장 가능한 평가 방법 – 모두의 팬! MOFAN
Empowering Large Language Models to Follow Complex Instructions
LLM Benchmarks: Everything on MMLU, HellaSwag, BBH, and Beyond