하라는 랭체인 공부는 안하고 LLMOps라는 단어에 꽂혀 벨로그를 적는 나......😋(멋져)
공부할 겸 공식 사이트에서 여러가지 정보를 가져와서 정리해보려 한다.
LLMOps를 알기 전에 LLM부터 알아보자
LLM은 요즘 회사에서도 정말 핫포테이토🥔가 아닐까 싶다
회사 입사 하기 전 어쩌다보니 중간프로젝트와 최종 프로젝트 모두 LLM을 활용한 챗봇 제작이었는데, 말이 쉽지 막상 달려들면 그렇게 쉬운 녀석이 아니라는 것을 깨닫게 된다🤣
대규모 언어 모델이라고 불리는 Large Language Model(LLM)은 방대한 양의 데이터를 통해 사전에 학습된 초대형 딥 러닝 모델이다.
이 모델의 주요한 특징 중 하나는 자체 학습을 수행한다는 것이다. 이 과정을 통해 인간의 기본 문법, 언어 및 지식을 이해하는 법을 배운다.
LLM은 요악, 분류, 생성 등 다양한 곳에 활용된다👌!
아주아주 간단히 이야기하면 여러 자연어처리 기법을 활용하여 인간의 대화, 정보 등을 학습해 배운 형태대로 ouput을 내는 모델이다.
흔히 알고 있는 openai의 gpt, google의 gemini등이 LLM 을 활용한 생성형 AI에 해당한다.
LLMOps는 LLM을 관리하는 데 사용되는 운영 방법이다.(흔히 MLOps나 DevOps 처럼 -Ops는 특정분야의 운영을 의미한다.) LLM의 Lifecycle인 파인튜닝에서 유지 관리에 이르기까지 LLMOps를 통해 관리되고 자동화하는 것을 뜻한다🚄!
LLMOps를 적절히 사용한다면 LLM을 배포, 모니터링, 유지 관리하는 데 도움이 될 수 있다.
LLM이 ML의 하위 레벨이기 때문에 MLOps와도 유사한데, 차이점이 있다.
- 학습 방식
MLOps: 기존 머신러닝 모델은 데이터를 처음부터 사용해 훈련
LLMOps: 대형 언어 모델은 이미 큰 데이터를 통해 훈련된 기본 모델(FM)에서 시작하고, 특정 작업에 맞춰 성능을 더 좋게 하기 위해 추가 데이터를 사용해 세부적으로 조정됨(=미세 조정)- 조정 방식
MLOps: 모델의 정확성을 높이기 위해 하이퍼파라미터 조정
LLMOps: LLM의 경우 특정 주제나 작업에 맞춰 성능을 더 좋게 하기 위해 미세 조정과 같은 방법을 사용함. 모델의 정확성을 높이는 것 외에도 훈련 비용이나 전력 소모를 줄이는 것도 중요
또, RAG(검색 증강 생성) 라는 방법으로 외부 데이터를 검색해 더 정확한 답변을 만들도록 할 수 있음!- 피드백
MLOps: 모델의 정확도를 평가할 때 특정 수학적 메트릭 사용
LLMOps: 사용자의 피드백이 모델 개선에 중요한 역할을 하는데 이를 RLHF(인간 피드백 기반 강화 학습) 라고 부르며 사용자의 피드백을 받아 성능을 지속적으로 개선할 수 있다.- 성능 평가
MLOps: 정확도 등 명확한 성능 지표 사용
LLMOps: 번역이나 요약에서 성능을 평가할 때는 BLEU나 ROUGE 같은 지표를 사용해 언어 생성의 질을 평가하는 등 더 복잡한 성능 평가가 필요함
자료를 찾아보다 보니 생성형 AI 운영(GenAIOps)과 대규모 언어 모델 운영(LLMOps) 등 정말 많은 운영들이 있었다. 관계를 잘 보여주는 자료를 가져와봤다.
<전문화 수준에 따라 구성된 AI 유형 및 관련 작업의 계층 구조>
교육생 시절, 프로젝트 멘토링을 맡아주셨던 분이 해주신 이야기가 있다.
LLM을 만지다보면 저 말을 체감하게 되는데😅, 대표적인 문제점들은 다음과 같다
1) 언어의 모호성
2) 환영과 편견
3) 비용 및 지연 문제
4) 누락된 지식
따라서 LLM은 LLMOps를 활용해 1) 모호성을 잘 판별하기 위해 2) 할루시네이션(Hallucination)과 편견을 없애고 3) 더 저렴하고 빠르게 4) 정보를 업데이트 하며 완성도를 높여가야 한다는 이야기다
반복적인 작업이나, 얽히고 섥혀있어 가늠조차 안되는 부분을 쉽게 처리해주는 것이 Ops라고 생각한다.
(문제점? 다드루와 팍씨)
또, 나는 보안쪽에도 관심이 많은데, 이를 LLMOps에서 관리할 수 있다.
"LLMOps는 이런 대규모 언어 모델을 학습, 배포, 모니터링 및 유지 관리를 하는 방법론으로 사용되고 있어요. 프로세스마다 적절한 자동화 도구를 사용하여 LLM 모델 학습 과정을 효율적으로 만들고, 모델 배포를 표준화하여 안정적인 배포를 가능하게 합니다."
kt 블로그 글과 그림인데 정말 잘 설명되어 있어서 가져왔다😎.
정리해보자면 LLMOps는 LLM을 학습하고, 운영하고, 배포하는 등의 전반적인 관리를 하기 위한 하나의 방법이라고 할 수 있겠다.
(말이 쉽지 실제로 만져보면 겁나 어려울 것 같다)
실제로 네이버에서 LLMOps를 위해 prompt engineering 도구를 개발한 글도 있으니 한번 읽어보면 좋겠다. (나도 대충 봤는데 자세히 뜯어봐야 겠다)
https://d2.naver.com/helloworld/3344073
1) 기본 개념 이해
2) 대형 언어 모델(LLM) 구조와 작동 원리 이해
3) 프롬프트 엔지니어링 및 미세 조정
4) 검색 증강 생성(RAG) 학습
5) 데이터 관리 및 배포 기술
6) LLM 평가 및 모니터링
7) 실제 프로젝트 경험 쌓기
8) 최신 논문 및 기술 동향 팔로우
필자의 경우 프로젝트를 통해 LLM을 다루거나, RAG 방식으로 구현해 봤으나 운영 / 배포 관리는 상대적으로 부족하다😥
- 공부할 내용 📚
3) - 파인튜닝
5) - Kubeflow, Docker & Kubernetes, 클라우드 서비스
6) - BLEU, ROUGE 등 평가 매트릭
7) - 공모전, 대회 참가
을 중점으로 진행하고, 기왕이면 실제 프로젝트 경험을 많이 쌓고 싶다는 생각이 들었다 🤗!
...
공부하다보니 더 재미있는데?
역시 나는 이론 체질인가보다😗
이론을 어느정도 배웠으니 다음에는 직접 프로그램을 만져보고 싶다
그럼 삐약이는 이만 ~~