Configuration¶
캡션 생성 설정 관리
개요¶
동일한 모델, 동일한 비디오라도 config 설정에 따라 완전히 다른 결과가 생성됩니다.
Config가 영향을 주는 요소:
- 사용할 엔진/모델
- Scene detection 방식 (fine-grained vs coarse-grained)
- Summarization 설정
- 기타 사용자 정의 파라미터
Config의 유연성
Config 파일은 사용자가 자유롭게 정의할 수 있습니다.
복잡한 파라미터가 필요하지 않으며, 핵심 설정만 간단히 작성 가능합니다.
VSS 프레임워크 설정 예시¶
VSS 프레임워크 이용 시 아래와 같이 상세한 설정이 가능합니다. 하지만 모든 항목을 복잡하게 구성할 필요는 없으며, 필요한 항목만 선택적으로 사용할 수 있습니다.
| Config | Description |
|---|---|
| prompt | 캡션 생성에 사용할 기본 prompt |
| caption_summarization_prompt | 세그먼트별 캡션/ASR 결과를 입력으로 받아 캡션 요약을 만들 때 쓰는 prompt |
| max_tokens | 캡션의 최대 토큰 수 (1-1024) |
| temperature | 캡션의 샘플링 temperature (0-1) |
| top_p | 캡션의 top-p 샘플링 질량 (0-1) |
| top_k | 캡션의 top-k 후보 토큰 수 (1-1000) |
| summarize_top_p | 요약 단계에서의 top-p (0-1) |
| summarize_temperature | 요약 단계에서의 temperature (0-1) |
| summarize_max_tokens | 요약 단계의 최대 토큰 수 |
| enable_audio | 오디오 스트림 ASR 활성화 여부 |
| enable_reasoning | 추론 모드 활성화 여부 |
| chunk_duration | 비디오를 N초 단위로 chunking |
| chunk_overlap_duration | chunk 간 겹치는 구간(초) |
| summarize_batch_size | 요약 LLM에 한 번에 입력할 batch 크기 (caption_summary 단위) |
| segment_source | 세그먼트 생성 기준 (start/end을 외부에서 지정) |
[!TIP] Gemini 예시와 같이 실제로는 매우 간단하게 구성하여 사용할 수 있습니다.
Config 파일 관리¶
저장 위치¶
/gpfs/public/artifacts/feature_store/vss_feature_store/config/
├── gemini_coarse.yaml
├── gemini_fine.yaml
└── custom_config.yaml
Feature Store 연동¶
register_captions 호출 시 config 파라미터로 절대 경로를 입력합니다. 시스템은 해당 파일을 관리 경로(/gpfs/public/artifacts/feature_store/vss_feature_store/config)로 자동 복사하며, Feature Store에는 파일명만 저장됩니다.
# 1. 등록 시: 절대 경로 입력 (자동 복사 발생)
api.register_captions(
uuid='...',
model='gemini-2.5-pro',
config='/gpfs/public/my_configs/gemini_fine.yaml', # ← 절대 경로 입력
...
)
# 2. 조회 시: 저장된 파일명으로 조회
captions = api.get_captions(
uuid='...',
model='gemini-2.5-pro',
config='gemini_fine.yaml' # ← 파일명만으로 조회
)
자동 복사 메커니즘
입력된 절대 경로의 파일이 관리 디렉토리에 없으면 자동으로 복사됩니다. 이미 존재하는 경우 기존 파일을 사용합니다. 이를 통해 모든 설정 파일이 중앙에서 체계적으로 관리됩니다.
Config 예시¶
gemini_fine.yaml (Fine-grained)¶
세밀한 scene detection
main_engine:
name: gemini
scene_detection:
type: fine-grained
method: gemini-2.5-pro
summarization:
llm: gemini-2.5-pro
특징: - Fine-grained scene detection - 더 많은 세그먼트 생성 - 세밀한 분석
gemini_coarse.yaml (Coarse-grained)¶
넓은 범위 scene detection
main_engine:
name: gemini
scene_detection:
type: coarse-grained
method: gemini-2.5-pro
summarization:
llm: gemini-2.5-pro
특징: - Coarse-grained scene detection - 적은 수의 세그먼트 - 고수준 요약
gpt4_custom.yaml (커스텀 설정)¶
사용자 정의 설정 예시
main_engine:
name: openai
model: gpt-4o
scene_detection:
type: fine-grained
fps: 1
processing:
max_segments: 50
overlap: true
output:
format: detailed
특징: - 사용자가 필요한 파라미터만 정의 - 간단하게 또는 복잡하게 작성 가능
Config 비교 예시¶
동일한 비디오(uuid=abc123), 동일한 모델(gemini-2.5-pro)로 처리했을 때:
| Config | Scene Detection | 세그먼트 수 | 특징 |
|---|---|---|---|
| gemini_fine | fine-grained | 45개 | 세밀한 분석 |
| gemini_coarse | coarse-grained | 15개 | 고수준 요약 |
동일 시점, 서로 다른 결과¶
# 2024-12-01 10:00:00에 등록된 2가지 버전
metadata = api.search_metadata(
uuid='abc123',
model='gemini-2.5-pro',
time_after='2024-12-01T09:00:00',
time_before='2024-12-01T11:00:00'
)
# 출력:
# config segment_count
# gemini_fine.yaml 45
# gemini_coarse.yaml 15
Config 선택 가이드¶
Fine-grained¶
사용 사례: - 상세한 행동 분석 - 프레임별 변화 추적 - 교육용 콘텐츠
장점: 높은 정밀도
단점: 많은 세그먼트, 긴 처리 시간
Coarse-grained¶
사용 사례: - 영상 전체 요약 - 빠른 프리뷰 - 장면 전환 중심 분석
장점: 빠른 처리, 적은 세그먼트
단점: 세부 정보 손실 가능
Config 등록 및 조회¶
등록 시¶
# Fine config로 등록
result = api.register_captions(
feature_view='caption_summary',
uuid='abc123',
model='gemini-2.5-pro',
config='gemini_fine.yaml', # ← 명시
segments=[...]
)
# Coarse config로 등록 (동일 비디오)
result = api.register_captions(
feature_view='caption_summary',
uuid='abc123',
model='gemini-2.5-pro',
config='gemini_coarse.yaml', # ← 다른 config
segments=[...]
)
조회 시¶
# Fine 버전 조회
captions_fine = api.get_captions(
feature_view='caption_summary',
uuid='abc123',
model='gemini-2.5-pro',
config='gemini_fine.yaml'
)
# Coarse 버전 조회
captions_coarse = api.get_captions(
feature_view='caption_summary',
uuid='abc123',
model='gemini-2.5-pro',
config='gemini_coarse.yaml'
)
# 비교
print(f"Fine segments: {len(captions_fine)}") # 45
print(f"Coarse segments: {len(captions_coarse)}") # 15
Best Practices¶
1. 명확한 네이밍¶
2. Config 버전 관리¶
# Git으로 config 파일 관리
cd /gpfs/public/artifacts/feature_store/vss_feature_store/config/
git init
git add *.yaml
git commit -m "Initial configs"
3. 주석 추가¶
# Gemini Fine-grained Config
# Created: 2024-12-01
# Purpose: Detailed scene-by-scene analysis
main_engine:
name: gemini
# 세밀한 분석을 위한 fine-grained 설정
scene_detection:
type: fine-grained
method: gemini-2.5-pro
4. Config 문서화¶
각 config 파일에 대한 설명을 별도 README로 관리:
주요 포인트¶
중요
- Config는 사용자가 자유롭게 정의
- 간단한 구조도 충분 (3-5개 필드만으로도 가능)
- 동일 비디오 + 동일 모델이라도 config에 따라 완전히 다른 결과