멀티모달 관련성(Multi modal relevance)
멀티모달 관련성(Multi modal relevance)
멀티모달 관련성은 생성된 답변이 시각적 컨텍스트와 텍스트 컨텍스트 양쪽에 대해 얼마나 관련 있는지 측정하는 지표예요. 사용자 입력, 응답, 검색된 컨텍스트(시각적·텍스트)로부터 계산돼요. 응답이 주어진 시각적 또는 텍스트 컨텍스트와 정렬되면 관련성이 있다고 보죠.
출처: 문서
본문
MultiModalRelevance
MultiModalRelevance 지표는 생성된 답변이 시각적 컨텍스트와 텍스트 컨텍스트 양쪽에 대해 얼마나 관련 있는지 측정해요. 사용자 입력, 응답, 검색된 컨텍스트(시각적·텍스트 양쪽)로부터 계산돼요. 답변은 (0,1) 범위로 환산되며, 점수가 높을수록 관련성이 더 좋다는 뜻이에요.
생성 답변이 주어진 시각적 또는 텍스트 컨텍스트와 정렬되면 관련성이 있다고 간주돼요. 이를 판단하기 위해 응답이 제공된 컨텍스트에 대해 직접 평가되며, 관련성 점수는 0 또는 1이에요.
예시(Example, 권장 - Collections API)
from openai import AsyncOpenAI
from ragas.llms.base import llm_factory
from ragas.metrics.collections import MultiModalRelevance
# Setup - use a vision-capable model
client = AsyncOpenAI()
llm = llm_factory("gpt-4o", client=client) # Vision-capable model required
# Create metric instance
metric = MultiModalRelevance(llm=llm)
# Evaluate relevance
result = await metric.ascore(
user_input="What about the Tesla Model X?",
response="The Tesla Model X is an electric SUV.",
retrieved_contexts=[
"path/to/tesla_image.jpg", # Image context
"Tesla manufactures electric vehicles." # Text context
]
)
print(f"Relevance Score: {result.value}") # 1.0 (relevant) or 0.0 (not relevant)
예시(Example, 레거시 API - 사용 중단)
Deprecated 레거시 API는 사용이 중단됐으며 향후 버전에서 제거될 예정이에요. 위에 보여준 Collections API로 마이그레이션해주세요.
from ragas.dataset_schema import SingleTurnSample
from ragas.metrics import MultiModalRelevance
sample = SingleTurnSample(
user_input="What about the Tesla Model X?",
response="Cats are cute.",
retrieved_contexts=[
"custom_eval/multimodal/images/tesla.jpg"
]
)
scorer = MultiModalRelevance()
await scorer.single_turn_ascore(sample)
계산 방법(How It's Calculated)
예시(Example) 질문: What about the Tesla Model X? 컨텍스트(시각적):
- An image of the Tesla Model X (custom_eval/multimodal/images/tesla.jpg) 높은 관련성 답변: The Tesla Model X is an electric SUV manufactured by Tesla. 낮은 관련성 답변: Cats are cute.
낮은 관련성 답변을 사용해 관련성이 어떻게 계산됐는지 살펴볼게요:
-
Step 1: 주어진 컨텍스트에 대해 생성된 응답을 평가해요.
Response: "Cats are cute."
-
Step 2: 응답이 주어진 컨텍스트와 정렬되는지 확인해요.
Response: No
-
Step 3: 결과를 사용해 관련성 점수를 결정해요.
[ \text{Relevance} = 0 ]
이 예시에서 "Cats are cute" 응답은 Tesla Model X 이미지와 정렬되지 않으므로 관련성 점수는 0이에요.
지원되는 컨텍스트 유형(Supported Context Types)
이 지표는 여러 유형의 컨텍스트 입력을 지원해요:
- 텍스트 컨텍스트(Text contexts): 일반 텍스트 문자열
- 이미지 URL(Image URLs): 이미지를 가리키는 HTTP/HTTPS URL
- 로컬 이미지 경로(Local image paths): 로컬 이미지 파일 경로 (jpg, png, gif, webp, bmp)
- Base64 데이터 URI(Base64 data URIs): 인라인 base64 인코딩 이미지
요구사항(Requirements)
- 비전 지원 LLM이 필요해요 (예:
gpt-4o,gpt-4-vision-preview,claude-3-opus,gemini-pro-vision) - Collections API에서는
llm_factory로 LLM 인스턴스를 생성해요