# Laya
> Model: `convaiinnovations/laya` (English checkpoint)
>
> Developer: Convai Innovations
>
> License: Apache-2.0
## 개요
Laya는 문장을 생성하지 않고 **"주어진 선택지 중 무엇이 맞는가"를 판정하는 판정형(Decision) 모델**입니다. ModernBERT-large 인코더 위에 판정용 head 블록을 얹은 구조로, 입력 상황(query)과 선택지(choices)를 한 번의 forward pass로 읽고 각 선택지의 확률을 돌려줍니다.
텍스트를 생성하지 않기 때문에 환각(hallucination)이 없고, 생성 토큰이 0개라 채팅형 LLM으로 같은 판정을 시키는 것보다 훨씬 빠르고 가볍습니다. 고객 문의 라우팅, 의도 분류, 정책 위반 판정처럼 "정해진 보기 중 하나를 고르는" 작업에 적합합니다.
## 주요 특징
* 비자기회귀(non-autoregressive) 판정 모델 — 텍스트 생성 없음, 환각 없음
* forward pass 1회로 모든 선택지 점수 계산
* 결과를 선택지별 **확률**(합계 1)로 반환 — 임계값 기반 자동화/보류 판단에 활용 가능
* 선택지 개수에 따라 다른 **보정 온도(calibrated temperature)**가 모델 파일에 내장
* 약 421M 파라미터의 작은 크기 — CPU에서도 실행 가능
* Apache-2.0 라이선스 — 상업적 사용 및 온프레미스 운영 가능
## 모델 사양
|항목|내용|
|-|-|
|Parameters|약 421M (GGUF `general.size_label`)|
|Architecture|ModernBERT 인코더 + Decision head (GGUF `modern-bert`, `decision.type = laya`)|
|Layers|인코더 30 + 판정 head 2|
|Hidden Dimension|1,024|
|Attention Heads|16|
|Vocabulary|50,368|
|Context Length (GGUF)|8,192 tokens|
|Head 길이 (질문+선택지)|192 tokens (`decision.max_head_tokens`)|
|Attention|Sliding window 128 + Global 혼합 (3층마다 Global)|
|Quantization|Q8_0 (약 449 MB)|
> GGUF 메타데이터의 context length는 8,192이지만, 제작사 문서는 영어 체크포인트를 512 tokens 기준으로 안내합니다. 긴 문서를 판정할 때는 정확도가 떨어질 수 있습니다.
## 권장 파라미터
### Cortex 생성 시
```text
n_ctx = 2048
n_batch = 2048
n_ubatch = 2048 # n_batch 와 같게
n_gpu_layers = 100 # GPU 가 없으면 0
```
* 인코더 모델이라 프롬프트 전체를 한 번에 처리합니다. `n_batch`와 `n_ubatch`는 같은 값으로 두세요.
* `temperature`/`top_p`/`top_k` 같은 샘플링 파라미터는 사용하지 않습니다(생성이 없으므로 무시됨).
### 판정 요청 시
* `temperature`는 **생략을 권장**합니다. 생략하면 모델에 내장된 보정 온도를 선택지 개수에 맞춰 자동 적용합니다.
|선택지 수|보정 온도|
|-|-|
|2|1.906|
|3 ~ 5|1.760|
|6 ~ 10|1.000|
|11 이상|0.101|
* 선택지는 2 ~ 255개까지 받지만, 질문+선택지가 192 tokens 안에 들어가야 하므로 **실용적으로는 20개 이내**를 권장합니다. 넘치면 선택지가 잘리고 응답의 `truncated`가 `true`가 됩니다.
## 최소 실행 조건
|항목|최소|권장|
|-|-|-|
|CPU|x86_64 / ARM64|-|
|메모리(RAM)|1 GB 이상 여유|2 GB 이상 여유|
|GPU|불필요(CPU 실행 가능)|CUDA / Metal GPU — 지연 시간 단축|
|디스크|약 0.5 GB|-|
|OS|FlameBox 지원 OS (Windows / Linux / macOS)|-|
> 메모리 수치는 모델 파일 크기(약 449 MB)와 컨텍스트 2,048 기준 추정치입니다. 제작사는 Tesla T4 GPU에서 질문 1개당 약 40 ms, CPU에서 약 450 ms(PyTorch 기준)를 안내합니다.
## FlameAI에서 사용하기
1. **FlameBox 설치 및 등록** — 판정 모델 지원이 포함된 최신 FlameBox를 설치하고 내 계정에 등록합니다.
2. **모델 다운로드** — My AI Console의 FlameBox 상세 화면에서 `Laya (Q8_0)` 모델을 내려받습니다.
3. **Cortex 생성** — Laya 모델로 Cortex를 만듭니다(위 권장 파라미터 참고).
4. **판정 API 호출** — `choice` 엔드포인트를 호출합니다.
```bash
curl -s -X POST "https://api-N.flameai.im/{my_base_path}/cortex/{cortexId}/choice" \
-H "Authorization: Bearer {Secret Key}" \
-H "Content-Type: application/json" \
-d '{
"instruction": "Which team should handle this ticket?",
"query": "My password reset email never arrived.",
"choices": ["billing", "account / login", "shipping", "other"]
}'
```
응답 예:
```json
{
"cortexId": "{cortexId}",
"method": "laya",
"best_choice": "account / login",
"confidence": 0.93,
"probabilities": { "billing": 0.02, "account / login": 0.93, "shipping": 0.01, "other": 0.04 },
"truncated": false,
"usage": { "input_tokens": 41, "elapsed_ms": 20, "passes": 1 }
}
```
> 위 확률·시간 값은 응답 형식을 보여주기 위한 예시입니다.
* `my_base_path`와 `Secret Key`는 My AI Console의 API 설정 화면에서 확인할 수 있습니다.
* 같은 `choice` 요청 형식은 일반 LLM Cortex에도 쓸 수 있습니다. `cortexId`만 바꾸면 LLM 판정(`method: "llm_label"`)과 Laya 판정(`method: "laya"`)을 비교할 수 있습니다.
* Laya Cortex는 판정 전용입니다. `messages`(대화 생성), `switch-conversation`, `reset` 요청은 `unsupported_cortex_type` 에러로 거절됩니다.
## 활용 분야
* 고객 문의 / 티켓 자동 라우팅
* 사용자 의도(intent) 분류
* 이메일 분류 및 우선순위 판정
* 콘텐츠 모더레이션, 정책 위반 여부 판정
* AI 에이전트의 분기 판단(다음 행동 선택)
* 근거 기반 사실 확인 — `query`에 `Reference:`(근거)와 `Claim:`(주장)을 함께 넣어 참/거짓 판정
## 제한 사항
* **한국어 등 비영어 입력에 약합니다.** 이 모델은 영어 체크포인트입니다. 한국어 판정이 중요하다면 일반 LLM Cortex의 `choice` 판정과 결과를 비교해 보세요.
* 기본 체크포인트는 **도메인 학습 없이 바로 쓰는 범용 판정기가 아닙니다.** 제작사 기준 zero-shot 정확도는 typed-decisions 벤치마크에서 0.362이며, 해당 데이터로 파인튜닝한 체크포인트가 0.766입니다. 업무 데이터로 정확도를 먼저 확인하세요.
* 근거 없이 사실 여부를 묻는 판정은 `false` 쪽으로 기우는 경향이 있습니다.
* 선택지가 많으면 선택지당 토큰이 줄어 정확도가 떨어집니다. 이때는 대분류 → 소분류의 2단계 판정으로 나누세요.
* FlameAI는 현재 `choice`(선택지 판정) 유형만 지원합니다. 원본 모델의 `score`(단계 평가), `noul`(예/아니오 확률) 유형은 아직 제공하지 않습니다.
## 참고
* Hugging Face: https://huggingface.co/convaiinnovations/laya
* GitHub: https://github.com/NandhaKishorM/laya
* 데모: https://huggingface.co/spaces/convaiinnovations/laya-demo
* 다국어 체크포인트(`laya-multilingual`, 100개 이상 언어)는 별도 모델이며, 현재 FlameAI 카탈로그에는 포함되어 있지 않습니다.