설정
Aeca 서버 동작에 대한 정의는 설정 파일을 통해서 변경할 수 있습니다. 기본 설정 파일은 conf/default.yaml
에 위치하며 서버 시작시 전달되는 인자(-c
, --config
)를 통해 변경할 수 있습니다.
다음은 항목별 설정 가능한 내용입니다.
메모리 할당
Aeca는 메모리 사용량이 억제되어 있지만 메모리는 성능과 비용의 상충관계에 있습니다. 따라서 만약 서비스시 자원이 부족한거나 개발 장비라 QPS가 중요하지 않다면 secondary_cache
와 row_cache
를 비활성화 하거나 줄이고 db.block_cache.cache_capacity
를 줄여 OOM(Out of memory)을 방지할 수 있습니다.
db:
block_cache:
enabled: true
cache_capacity: 8_GB
cache_shard_bits: 3
strict_capacity_limit: true
secondary_cache:
enabled: false
cache_capacity: 4_GB
cache_shard_bits: 2
strict_capacity_limit: true
enable_custom_split_merge: true
row_cache:
enabled: false
cache_capacity: 4_GB
cache_shard_bits: 2
strict_capacity_limit: true
storage:
write_buffer_size: 1_GB
ML Model Serving
Aeca는 ML 모델 서빙 기능을 포함하고 있습니다. transformers (opens in a new tab) 혹은 sentence_transformers (opens in a new tab)에 정의된 모델을 바로 사용할 수 있습니다. 모델 서빙을 위해서는 설정 파일에 모델명을 명시하고 서버를 재시작하면 model_name
을 통해 모델을 사용할 수 있습니다. 각 설정의 이름은 다음과 같이 API와 연결됩니다.
설정 이름 | API |
---|---|
sentence_encoders | SentenceTransformerEncoder |
cross_encoders | SentenceTransformerCrossEncoder |
clip_encoders | SentenceTransformerCLIPEncoder |
qa_encoders | SentenceTransformerQAEncoder |
다음은 설정 예시입니다.
설정 예시
model_serving:
sentence_transformers:
sentence_encoders:
- sentence-transformers/paraphrase-multilingual-mpnet-base-v2
- sentence-transformers/clip-ViT-B-32-multilingual-v1
cross_encoders:
- cross-encoder/ms-marco-TinyBERT-L-2-v2
- cross-encoder/ms-marco-MiniLM-L-4-v2"
clip_encoders:
- openai/clip-vit-base-patch32
qa_encoders:
- deepset/roberta-base-squad2