소소한 컴퓨터 이야기

LLMOps 살펴보기, 3일차

by Cori

AI

LLMOps 살펴보기는 "LLMOps: Managing Large Language Models in Production" 라는 서적을 읽고 관련 내용을 풀어쓴 시리즈이다.


A2A(Agent-to-Agent Protocol)

언어 모델이 하나의 에이전트로 동작하며 툴과 메모리, 외부 로직을 연결하는 시대를 연 게 바로 이전 포스트에서 다룬 MCP(Model Context Protocol)다. 하지만 세상은 그렇게 단순하지 않은데, 어떤 에이전트는 회의 일정을 잡고, 또 다른 에이전트는 이메일 요약을 만들고, 다른 하나는 항공편 정보를 조회한다. 이제는 이들이 함께 대화하고 협력해야 하는 시대가 왔다고 할 수 있다. 각 에이전트마다 제각각의 대화 방식, 핸드셰이크, 데이터 포맷을 쓰면, brittle(깨지기 쉬운), vendor lock-in(특정 벤더 종속) 문제 가 발생한다. A2A는 이런 문제를 없애고, 표준화된 언어를 제공하기 때문에, 에이전트들은 서로 내부 구조를 몰라도, “넌 뭘 할 수 있니?” “이건 내가 할 수 있어” 같은 협업이 가능해진다.

 

A2A는 구글이 제안한 오픈 스탠더드로, 에이전트들이 서로를 인식하고, 소통하고, 작업을 협상하고, 결과를 공유하는 방법을 정의한다. A2A의 구성 요소는 다음과 같다. 

 

1. Agent Identity (에이전트 정체성)

  - 모든 메시지는 암호 서명되기 때문에, 상대가 누구인지 검증할 수 있다. 

 

2. Agent Cards (에이전트 카드)

  - “나는 누구이고, 무엇을 할 수 있으며, 어떻게 연결할 수 있고, 어떤 보안 정책을 따른다”를 정의한 JSON 기반 문서

 

3. Capability Discovery (기능 발견)

  - 에이전트끼리 서로 지원 가능한 작업/기능을 질의하고 확인한다. 

 

4. Task Negotiation (작업 협상)

  - 일을 위임하거나, 계획을 제안하거나, 워크플로우를 비동기적으로 조율할 수 있다. 

 

5. Secure Messaging (보안 메시징)

  - 모든 통신은 인증·암호화되고, 감사 로그를 남길 수 있다. 

 

6. Extensibility (확장성)

  - 스키마 확장이 가능하며, 새로운 에이전트 역할이나 도메인 특화 로직을 정의할 수 있다. 

 

A2A 상호작용 과정은 인간 사회의 명함 교환 과정과 비슷하다. 우선 에이전트가 서로 Agent Card를 교환하고, 서로의 기능을 파악하고 호환성을 확인한다. 협력이 가능하면, 작업 위임·계획 공유·병렬 협력 과정을 진행한다. 

 

The Rise of vLLMs and Multimodal LLMs

이제까지 다뤄온 대부분의 LLM(대규모 언어 모델) 워크플로우는 “텍스트” 중심으로, 언어를 이해하고 -> 변환하고 -> 다시 언어로 내놓는 과정에 불과했다. 하지만 현실 세계는 단어만으로 이루어져 있지 않고, 우리는 보고, 듣고, 행동한다. 바로 여기서 멀티모달 모델(Multimodal Model)이 등장하는데, 이는 단순히 텍스트만 읽는 게 아니라, 텍스트, 이미지, 오디오, 비디오, 코드, 표 형식 데이터까지 여러 가지 형태의 데이터를 동시에 이해하고 생성할 수 있다. 

 

멀티모달 LLM이 현실화될 수 있었던 데에는 다음 3가지 요소가 결정적 역할을 했다.

1. Transformer의 일반화 능력

  - Transformer 아키텍처는 토큰이 글자든 픽셀이든 상관하지 않고, 일단 적절히 임베딩되면 모두 같은 데이터 스트림으로 처리할 수 있다. 

 

2. 훈련 규모 확대

  - 이미지-텍스트 쌍 데이터세트 (LAION, COCO 등)으로 대규모 학습이 가능해졌고, 덕분에 모델이 시각과 언어를 자연스럽게 정렬할 수 있게 되었다. 

 

3. 도구와 오픈 액세스 

  - CLIP, Flamingo, BLIP, LLaVA 같은 프로젝트 덕분에 구글이나 오픈AI 같은 빅테크가 아니어도 모델을 학습·튜닝할 수 있다.

 

멀티 모달은 다음과 같은 과정을 거쳐 동작한다.

Step 1. 입력 임베딩 (Input Embeddings)

  - 텍스트는 토크나이저를 통해, 이미지는 비주얼 인코더(보통 ViT, Vision Transformer)를 거쳐 벡터로 임베딩한다. 이 둘은 같은 벡터 공간에 임베딩된다.

 

Step 2. 퓨전 (Fusion)

  - 모델이 텍스트와 이미지 임베딩을 동시에 어텐션(attention)으로 결합한다. 이 단계에서 “보고 있는 것”과 “설명하는 것”을 정렬하며, 진짜 추론이 이루어지는 단계라 할 수 있다.

 

Step 3. 출력 (Output)

  - 최종적으로 텍스트를 생성한다.  e.g) 캡션 생성, 설명, 질의응답

 

멀티 모달에는 대표적으로 다음과 같은 모델들이 있다. 

Model 1. CLIP

  - 텍스트와 이미지를 공동 임베딩 공간에 매핑하는 모델. 생성형 모델이 아니기에, 텍스트를 만들지는 않고, “이 문장에 맞는 이미지” “이 이미지에 맞는 문장” 을 찾아주는 매칭 기반 모델이다.

 

Model 2. BLIP & BLIP-2

  - 비전-언어 모델(VLM)로, 이미지를 설명하거나 추론하는 데 최적화 되어 있다. BLIP-2는 고정(frozen) 이미지 인코더와 쿼리 트랜스포머(Query Transformer)를 결합해 효율적으로 학습한다. 

 

Model 3. MiniGPT-4

  - 비주얼 인코더 + 고정된 LLM을 연결한 모델로, 최소한의 학습으로 두 표현 공간을 맞추어 사실상 시각 챗봇처럼 동작한다. 이미지 기반 대화를 할 수 있다.

 

Model 4. LLaVA

  - LLaMA + CLIP 스타일 인코더 조합으로, 비주얼 대화와 VQA(Visual Question Answering)에 강점을 보인다. 사용자가 이미지를 보여주고 질문하면 대화형으로 답변할 수 있다. 

 

Model 5. Flamingo (by DeepMind)

  - 강력한 비공개(Closed-source) 모델로, Few-shot 멀티모달 추론에서 새로운 기준을 세운 모델이다.

 

멀티모달 모델의 발전은 모달리티 간 경계를 허무는 과정이라 할 수 있다. 입력은 멀티모달 (예: 음성 명령 + 카메라 피드) 출력도 멀티모달 (예: 텍스트 요약 + 시각적 마크업). 결국 멀티모달 LLM은 단순 업그레이드가 아니라, 언어 모델의 본질적 구조 변화를 의미한다. 과거에는 추상적 대화 기계에 불과했다면, 미래에는 현실을 이해하고 행동하는 실체적 에이전트가 탄생할 수 있다. 

 

Measuring a Consumer LLM Application's Performance

정밀도(Precision)와 재현율(Recall)은 기본적인 이진 분류 문제에서 자주 사용되는 지표이지만, 실제 LLM 애플리케이션은 훨씬 더 다양하고 복잡하다. 특히 추천 시스템, 검색, 코드 생성 같은 분야에서는 다른 평가 지표들이 필요하며, 대표적으로 다음과 같은 지표들을 주로 사용한다. 

 

1. MAP (Mean Average Precision)

  - 랭킹 품질을 평가할 때 사용하는 평가 지표로, 각 쿼리마다 평균 정밀도를 계산하고, 전체 평균을 구한다. 관련 항목이 상위에 노출될수록 높은 점수를 얻는다

e.g) 이커머스 검색 -> 사용자가 원하는 상품이 검색 결과 상단에 나올수록 MAP 점수가 높음.

 

2. NDCG (Normalized Discounted Cumulative Gain)

  - 결과의 관련성 + 위치를 함께 고려하는 평가 지표. 순위가 낮을수록 할인(discount)되어 점수가 줄어들기 때문에, 따라서 가장 관련성 높은 결과가 상단에 오도록 모델을 유도한다. 

e.g) 뉴스 추천 -> 관련 뉴스가 상위에 배치될수록 NDCG가 높음.

 

3. Hit Rate (또는 Top-k Accuracy)

  - 상위 k개의 추천 결과 중에 하나라도 관련 항목이 포함되었는가를 측정하는 평가 지표. 모델이 얼마나 일관되게 관련 콘텐츠를 추천하는지 보여준다.

e.g) 스트리밍 서비스 -> 추천 상위 10개 중에 사용자가 관심 있을 만한 영화가 포함될 확률.

 

4. Coverage (커버리지)

  - 전체 카탈로그 중 "얼마나 다양한 항목이 추천되었는가"를 측정하는 평가 지표. 추천이 인기 콘텐츠에만 쏠리지 않고, 폭넓은 선택지를 제공하는지 확인한다.

e.g) 활용 예시: 음악 추천 시스템 -> 매번 같은 인기곡만 추천하는 대신, 다양한 장르와 아티스트를 보여주는 경우 Coverage가 높음.

 

LLM 애플리케이션은 정답(ground truth)이 주관적인 경우가 많기 때문에, 성능 측정이 더욱 까다롭다. 코드 생성 태스크의 경우, 코드가 돌아가긴 하지만, 비효율적이거나 읽기 어려울 수도 있기에 단순 실행 여부만으로는 품질을 평가하기 어렵다. 이에  LLMOps 팀은 종종 사용자 행동 기반 지표를 성능 평가에 활용한다.

 

1. CTR (Click-Through Rate)

  - 추천된 항목 중 실제 클릭된 비율   

e.g) 추천 제품 중 몇 %가 클릭되었는가?

 

2. Conversion Rate (전환율)

  - 추천이 구매·가입·다운로드 같은 행동으로 이어진 비율

e.g) 추천된 코드 스니펫을 사용자가 실제로 “accept” 눌렀는가?

 

3. 사용자 수정량

  - 추천된 코드나 문서를 사용자가 얼마나 많이 수정했는지  

e.g) 이메일 생성 앱 -> 사용자가 그대로 보내는 비율, 수정 후 발송 비율, 수신자 반응(읽음/답장)까지 분석 가능.

블로그의 정보

코딩하는 오리

Cori

활동하기