올해 마지막 서두르세요! 현업 데이터 사이언티스트가 만든 유일한 과정 마감임박
#인공지능 

LLMOps란 무엇인가? – LLMOps 정의, 예시

BERT, GPT 등 언어 모델의 등장과 함께 떠오르고 있는 LLMOps(Large Language Model Operations)에 대해 설명하고, LLMOps에는 어떤 분야가 있는지 소개합니다. (언어 모델 학습과 서빙, 그리고 prompting)

2023-01-27 | 신승연

요즘 가장 인기 있는 AI 서비스 두 가지를 고르자면 아마도 AI 그림과 ChatGPT일 것입니다. 이 서비스들의 핵심이 되는 개념 중 하나가 바로 Large Language Model (LLM) 입니다. LLM은 아주 큰 모델과 아주 많은 양의 텍스트를 사용해서 자연어를 이해하고 생성할 수 있도록 학습된 모델입니다. attention과 transformer를 기반으로 한 BERT, ELMo, GPT 시리즈 등이 있죠. LLM이 다른 머신러닝 모델과 구별되는 가장 큰 차이점은 파라미터의 수가 아주 많다는 것입니다. 예를 들어 GPT-3 모델에는 약 1750억 개의 파라미터가 존재합니다. 그렇기 때문에, 거대한 모델을 더욱 잘 학습시키고 사용하기 위한 기술이 중요해지고 있습니다. 일반적인 머신러닝 모델을 학습시키고 배포하는 과정 전반을 대상으로 하는 MLOps와 구별하여, LLM 학습/배포에 필요한 기술들을 LLMOps (Large Language Model Operations) 라고 부릅니다. LLMOps는 지난해 포브스의 “10 AI Predictions For 2023”에 선정되기도 했습니다.

LLMOps를 구성하는 요소들

LLMOps의 가장 핵심적인 내용은 LLMOps에서 다루는 모델이 아주 크다는 것입니다. MLOps와 비슷하게 데이터와 모델 학습, 모델 서빙에 관한 기술로 구성되어 있지만, 파라미터 수가 많다는 데 초점이 맞춰져 있습니다. 그리고 LLMOps에는 prompting이라는 특별한 분야가 하나 더 있는데, 바로 LLM으로 원하는 그림, 글 등을 생성하기 위해 prompt를 잘 작성하는 방법입니다.

더욱 많은 데이터

LLM의 파라미터가 많은 만큼 그것들을 학습시키기 위해 필요한 데이터 양도 많습니다. 하지만 사용할 수 있는 데이터는 무한하지 않죠. data augmentation은 가지고 있는 데이터를 변형하여 새로운 데이터를 만들어 냄으로써 데이터셋의 크기를 늘리는 방법입니다. 이미지 데이터의 경우 좌우/상하 반전, 회전, 자르기와 같은 방법들이 있습니다. data synthesis는 컴퓨터 알고리즘이나 시뮬레이션, GAN과 같은 생성 모델 등을 통해 새로운 데이터를 생성하는 방법입니다. 대표적으로 컴퓨터 비전 태스크에 사용되는 물체와 사람의 이미지, 자율주행과 로봇 연구를 위한 환경을 만드는 데 합성 데이터가 활발하게 사용되고 있습니다.

아주 큰 모델 학습

거대한 LLM은 학습시키는 것도 쉽지 않습니다. 학습되어야 할 파라미터 수가 많아서 학습 시간이 오래 걸리기도 하고, 연산을 위한 메모리 공간도 넉넉하지 않습니다. 그렇기 때문에 연산 과정을 최적화하고(computational optimization), GPU의 병렬 처리 성능을 최대한으로 활용하는 것(GPU computing, GPU acceleration)이 중요합니다. 특정 분야에 LLM을 활용하고자 할 경우, 이미 학습되어 있는 LLM을 fine-tuning하여 특정 분야의 태스크를 해결하도록 함으로써 시간과 예산을 절약할 수 있습니다. (LLM fine-tuning)

아주 큰 모델 제공하기

아무리 좋은 모델이 있다고 해도, 학습만 해놓는다면 논문 실험용으로만 사용될 수 있습니다. 학습된 모델을 실제 서비스에 올려야 많은 사람들이 모델을 사용할 수 있게 되죠. 전자 기기에 모델을 직접 심는 경우를 제외하고, 일반적으로는 모델을 웹 서버에 올려서 배포합니다. 이때 클라우드 서버를 사용할 경우 클라우드 서비스(cloud services)에 대한 이해가 필수적입니다. 그 외에도 웹 서버, 데이터베이스와 같은 데이터 엔지니어링(data engineering) 분야의 지식이 필요합니다. 그리고 LLM을 불특정 다수에게 배포하기 위해서는 LLM의 취약점과 안정성에 관한 문제도 생각을 해야 하는데요, GPT 모델을 만든 OpenAI도 이러한 주의 사항에 대해 언급한 적이 있습니다.

LLM 서비스 잘 사용하기

원래 자연어 처리(Natural Language Processing; NLP)에는 prompt engineering이라는 분야가 있었습니다. 언어 모델은 입력 프롬프트(prompt, input)가 주어지면 결과(output)를 출력하는데, 모델의 성능을 높이기 위해서 ‘모델이 어떤 태스크를 수행해야 하는지’, ‘결과가 어떤 형태가 되어야 하는지’ 등을 프롬프트에 추가하여 모델을 학습시키는 방법이 바로 prompt engineering입니다. 최근에 ChatGPT, AI 그림 등 pretrained LLM을 이용한 서비스의 인기가 많아지면서 마음에 드는 결과물을 얻기 위한 prompt의 수요가 높아졌습니다. 더 좋은 prompt를 얻기 위한 prompting에는 경험에 기반한 수칙들도 있고, 강화 학습 등을 사용해서 prompt를 학습시키는 방법도 있습니다. 이외에도 prompt가 얼마나 좋은지 평가하는 prompt evaluation, 실생활의 복잡한 태스크처럼 LLM과 대화를 주고받기 위해 여러 개의 prompt를 연결하는 prompt chaining 등의 분야가 있습니다.

마치며

최근 몇 년 동안, LLM의 파라미터 수는 매년 10배씩 증가했다고 합니다. 올해 출시될 것으로 예상되는 GPT-4 모델에는 약 100조 개의 파라미터가 있을 것이라는 추측도 있습니다. 모델의 크기가 점점 커지고 있기 때문에, 학습과 서빙에 필요한 기술들도 더욱 정교해져야 합니다. 물론 대부분의 사람들은 LLM을 처음부터 직접 학습시키거나 서빙을 할 일이 거의 없겠죠. 하지만 일반적인 사용자 입장에서도 LLMOps, 특히 prompting은 더 중요해질 것으로 예상됩니다. 흥미로운 LLM 서비스는 앞으로도 계속 출시될 것이니까요!

Reference