설정

Aeca 서버 동작에 대한 정의는 설정 파일을 통해서 변경할 수 있습니다. 기본 설정 파일은 conf/default.yaml에 위치하며 서버 시작시 전달되는 인자(-c, --config)를 통해 변경할 수 있습니다.

다음은 항목별 설정 가능한 내용입니다.

메모리 할당

Aeca는 메모리 사용량이 억제되어 있지만 메모리는 성능과 비용의 상충관계에 있습니다. 따라서 만약 서비스시 자원이 부족한거나 개발 장비라 QPS가 중요하지 않다면 secondary_cacherow_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_encodersSentenceTransformerEncoder
cross_encodersSentenceTransformerCrossEncoder
clip_encodersSentenceTransformerCLIPEncoder
qa_encodersSentenceTransformerQAEncoder

다음은 설정 예시입니다.

설정 예시
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