RAINA — LAYA모델 기술 보고서
v5 · 2026.10.08
모델 아키텍처 · 실제 구현 · 연구 근거

MuQ 시간 표현 기반
계층형 음악 판별 모델

원본 MuQ의 층별 1,024차원 시간 표현을 읽고, 동결된 백본 뒤의 소형 트랜스포머를 학습합니다. 통과 여부를 먼저 판단한 뒤 A/S 등급을 나누며, 경계의 곡은 거부합니다. 이 보고서는 실행 설정·체크포인트 텐서·평가 기록을 대조해 현재 구현을 설명합니다.

MuQ 원본 표현 · 1,024차원/층현재 최고 모델 · L10 + L9코드 발췌와 가중치 근거 포함
소리 읽기학습되는 판단결과 결정
현재 최고 모델의 표현 흐름14세대 · epoch 50
원본 MuQ의 층별 1024차원에서 계층 판정까지 MuQ의 10층과 9층 표현은 각각 1024차원입니다. 현재 최고 모델은 두 층을 2048차원으로 연결하고 256차원으로 투영합니다. 두 층 트랜스포머가 세 질문 토큰으로 관문과 조건부 점수를 만듭니다. 동결 MuQ · MuQ-large-msd-iter 12개 인코더 층 · 각 숨은 상태의 폭 1,024 L10 · 1,024 L9 · 1,024 시간 구간 평균 → 연결 2,048 → 선형 투영 256 질문 3개 + 음악 N개 → 트랜스포머 2층 → (f, p, c) 관문 m = p − f → Fail / 거부 / Pass → A 또는 S

원본 표현의 폭과 선택한 층을 연결한 판단부 입력 폭을 구분합니다.

MuQ 원본 층별 차원
1,024
MuQ 설정의 encoder_dim
현재 최고 판단부 입력
2,048
L10 + L9 · 가중치로 확인
판단부 내부 표현
256
음악·질문 토큰 공통 폭
트랜스포머 층 / 주의 집중 머리
2 / 4
학습 상태 원소 2,172,931개
근거 수집: 2026-10-08 00:18:26 KST · 코드 2277622고정된 연구 기록: champ-g014-r0005-dst_a05 / epoch-0050최고 모델 재확인: 2026-10-08 00:37:18 KST · 추가 코드 발췌: 2026-10-08 00:35:03 KST
00 / 백본 식별과 차원 검증

원본 MuQ의 1,024차원 표현을 사용합니다.

백본이 만드는 표현, 사용하는 층의 수, 판단부의 입력 차원을 각각 확인하실 수 있습니다. 기본 설정뿐 아니라 실행된 후보의 가중치 형태까지 대조했습니다.

설정 + 코드 + 텐서 확인

사용하는 소리 인코더는 MuQ입니다.

설치된 적재 코드의 내부 모델은 MuQ 클래스이며, 모델 구성은 OpenMuQ/MuQ-large-msd-iter입니다. 인코더 12층의 숨은 상태는 각각 1,024차원입니다. 반환 목록에는 입력 단계까지 포함해 인덱스 0~12의 13개 상태가 있습니다.

실제 특징은 내부 MuQ의 hidden_states를 직접 읽습니다. MuLan의 512차원 투영 벡터나 텍스트 임베딩은 이 입력으로 사용하지 않습니다.

적재 객체와 사용하는 표현을 구분합니다.

저장소의 적재 진입점에는 MuQMuLan.from_pretrained가 남아 있습니다. 그 객체 안의 mulan.audio.model을 추출해 사용하므로, 적재 컨테이너 이름만으로 백본이나 입력 차원을 설명하면 부정확합니다.

MuQMuLan.from_pretrained(...)
↓ root.mulan.audio.model → MuQ
↓ output_hidden_states=True
↓ hidden_states[layer] · 1,024

MuQMuLan 체크포인트 전체를 적재하는 경로이므로, 독립 MuQ 배포본과 가중치가 완전히 같은지는 별도 대조 없이는 확정하지 않습니다. 이 보고서의 원본 MuQ 설명은 확인된 클래스·구성·시간 표현을 뜻합니다.

실행된 두 입력 구성을 비교해 보세요.

1,024 / layer
MuQ 시간 표현

각 층이 동일한 폭으로 출력합니다.

1,024 × 2
L10 + L9를 연결

약 2초 구간마다 층별 평균을 남깁니다.

2,048 → 256
학습되는 선형 투영

가중치 형태 [256, 2048]

N + 3 → 3
트랜스포머와 점수 계산

곡 전체에서 질문 3개의 출력을 읽습니다.

고정된 최고 모델: champ-g014-r0005-dst_a05 · epoch 50. 두 층의 1,024차원을 연결한 입력이며, 실제 투영 가중치는 [256, 2048]입니다.
판단부에 들어온 이후의 텐서 흐름
단계텐서 형태수행하는 계산
시간 특징[B, N, 2048]선택 층의 구간 평균 · FP32 저장
정규화와 투영[B, N, 256]L2 정규화 → Linear → LayerNorm
음악 토큰 구성[B, N, 256]시간 위치 + 유효 비율 + 토큰 종류
질문·음악 토큰 결합[B, N + 3, 256]학습되는 질문 3개를 앞에 연결
트랜스포머 2층[B, N + 3, 256]주의 집중 머리 4개 · 내부 확장 폭 1,024
질문 출력 점수화[B, 3]공유 계산부 + 출력별 편향 → (f, p, c)
B 한 번에 처리하는 곡 수N 곡별 시간 구간 수 · 채움 포함f / p / c Fail / Pass / S|Pass 점수

음악 토큰 전체를 단순 평균해 판정하지 않습니다. 세 질문 토큰이 전체 시간 구간을 참조하고, 그 질문 출력으로 점수를 만듭니다. 채움 구간은 주의 집중의 참조 대상에서 가립니다.

01 / 전체 구조

한 곡이 결과가 되기까지

동결 MuQ의 특징 추출부터 학습되는 시간 트랜스포머, 계층 점수, 선택적 거부까지 이어집니다. 상자를 누르면 각 단계의 입력·출력과 계산 근거를 확인하실 수 있습니다.

읽는 순서 →
각 상자를 눌러 보세요
단계 01 · 입력 준비

같은 형식으로 음악을 읽습니다.

음악 파일을 숫자로 된 소리의 파형으로 읽습니다. 여러 채널의 소리를 모노로 합치고, 초당 24,000개의 표본으로 맞춥니다. 그런 다음 10초 길이의 문맥 창으로 곡을 살펴봅니다.

직관적인 설명크기가 다른 사진을 같은 규격으로 맞춘 뒤, 일정한 크기의 돋보기로 차례차례 보는 과정입니다.
들어오는 것
한 곡의 음악 파일
나가는 것
모노 · 24 kHz(킬로헤르츠) 파형
10초 문맥 창
왜 필요한가요?
입력 형식이 달라도 같은 소리 읽기 기준을 적용하기 위해서입니다.
기술 설명과 예외 살펴보기

채널 평균 → 24,000 Hz 리샘플링 → 10초 문맥입니다. 10초보다 짧으면 뒤를 0으로 채우되 실제 소리가 있는 부분을 구분합니다. 끝부분은 마지막 10초가 들어오도록 창을 옮길 수 있습니다. 이 단계의 형식 통일은 파형의 음량 정규화와는 별개입니다.

단계 02 · 동결 MuQ

MuQ의 층별 시간 표현을 읽습니다.

원본 MuQ 소리 인코더는 각 시간 위치를 1,024개의 숫자로 표현합니다. 12개 인코더 층의 중간 상태를 선택해 사용하며, 이 백본의 가중치는 동결합니다. 음악 등급을 배우는 동안 뒤에 붙인 판단부만 갱신합니다.

직관적인 설명경험 많은 청취자가 음악을 듣고 메모를 남기는 역할입니다. 이번 학습에서는 이 청취자의 귀를 다시 훈련하지 않습니다.
들어오는 것
10초 소리 문맥
나가는 것
여러 층에서 얻은 시간별 숫자 표현
무엇이 고정되나요?
MuQ의 가중치입니다. 숫자 표현은 입력 음악에 따라 달라집니다.
기술 설명과 층의 의미 살펴보기

내부 모델 구성은 OpenMuQ/MuQ-large-msd-iter입니다. MuQMuLan은 적재 컨테이너이며, 사용하는 출력은 그 안의 MuQ 시간별 숨은 상태입니다. 512차원 MuLan 투영 출력은 사용하지 않습니다. 반환되는 숨은 상태는 0~12의 13개, 각 폭은 1,024입니다. 추출·저장은 FP32(32비트 부동소수점), eval 모드이며 모든 백본 매개변수는 requires_grad=False입니다.

단계 03 · 시간 특징

곡 전체를 시간별 메모로 정리합니다.

MuQ가 만든 표현을 곡의 약 2초 구간마다 평균 내어 요약합니다. 사용할 층이 여러 개라면 같은 시간의 숫자들을 이어 붙입니다. 곡 안에서 언제 나온 메모인지도 함께 보관합니다. 학습할 때는 이 특징을 캐시에 저장해 반복 사용합니다.

직관적인 설명영화 전체를 한 줄로 요약하는 대신, 장면별 메모와 시간표를 함께 만드는 과정입니다.
들어오는 것
MuQ의 시간별 표현 + 선택한 층
나가는 것
약 2초마다 한 특징 벡터
구간 중심 시각과 유효 비율
고정된 최고 모델의 입력
L10 + L9 → 2,048차원
L11 단일 층 실행 후보 → 1,024차원
기술 설명과 구간 병합 살펴보기

각 구간 안의 유효 프레임을 층별로 평균 내고 선택 순서대로 연결합니다. 한 층은 1,024차원이며 k개 층의 연결은 1,024 × k입니다. 고정된 14세대 최고 모델은 [10, 9], 함께 실행된 단일 층 후보는 [11]을 사용했습니다. 문맥이 겹쳐도 각 구간은 가장 이른 포함 창에 한 번만 배정합니다. 0.5초 미만의 꼬리나 프레임이 없는 구간은 인접 구간과 병합합니다.

단계 04 · 시간 흐름 판단

앞뒤 장면을 함께 보고 판단합니다.

각 시간 메모의 크기를 정규화하고 작은 표현으로 바꾼 뒤, 시간 정보와 함께 트랜스포머에 넣습니다. 트랜스포머는 곡의 여러 구간을 서로 참조합니다. 함께 넣은 세 개의 학습된 질문 토큰이 곡 전체의 정보를 받아 판단에 필요한 표현을 만듭니다.

직관적인 설명장면별 메모를 펼쳐 놓고, 세 개의 질문 카드가 필요한 장면을 서로 연결해 읽는 모습입니다.
들어오는 것
시간별 특징 + 시간 정보
학습된 질문 토큰 3개
나가는 것
곡을 참조한 질문 토큰 3개의 표현
학습되는 부분
특징 변환, 질문 토큰, 트랜스포머와 점수 계산부입니다.
판단부 안쪽 구조 · 시간 메모와 세 질문을 함께 읽습니다
시간 특징 N개구간별 크기 정규화
L2 정규화
음악 토큰 N개256차원으로 투영
시간·유효 비율·종류 정보
질문 토큰 3개음악 토큰 앞에 붙입니다
학습되는 질문 표현
트랜스포머N + 3개를 함께 처리
최고 모델 2층 · 머리 4개
질문 출력 → 점수Fail 관문 / Pass 관문
Pass일 때 S 점수
기술 구조 자세히 살펴보기

구간별 L2 정규화 → 선형 투영 → LayerNorm(층 정규화) 뒤에 절대 구간 중심 시각의 사인·코사인 표현, 유효 비율과 토큰 종류 정보를 더합니다. 질문 3개를 음악 N개 앞에 붙여 한 시퀀스로 처리합니다. 고정된 모델은 폭 256, 주의 집중 머리 4개, 깊이 2층, 내부 확장 폭 1,024, dropout(일부 값을 비워 학습하는 비율) 0.3입니다. 질문 출력은 LayerNorm → Linear(256→256) → GELU → Linear(256→1)를 공유해 사용하고, 출력별 편향 3개를 더합니다. 채움 토큰은 참조 대상에서 제외합니다.

단계 05 · 계층형 점수

통과 여부를 먼저 묻습니다.

첫 질문은 ‘이 곡이 Pass인가요, Fail인가요?’입니다. 두 관문 점수의 차이가 통과 쪽으로 얼마나 기우는지 나타냅니다. 두 번째 질문은 ‘Pass라고 할 때 A인가요, S인가요?’입니다. 실제 결과는 이 순서를 따라 결정합니다.

직관적인 설명먼저 입장 자격을 확인하고, 입장한 사람에게 어떤 좌석을 줄지 결정하는 두 단계입니다.
들어오는 것
질문 토큰들의 표현
나가는 것
Fail 관문 점수 · Pass 관문 점수
Pass일 때 S인지 나타내는 점수
알아둘 점
Pass는 A와 S를 합친 말입니다.
S는 통과 곡 안의 상위 등급입니다.
점수와 확률 관계 살펴보기

출력 (f, p, c)의 의미는 Fail 관문, Pass 관문, S|Pass입니다. 관문 점수 m = p − f, q = sigmoid(m), r = sigmoid(c)입니다. 확률은 Fail = 1 − q, A = q(1 − r), S = qr입니다. 최종 등급은 세 확률의 최대값을 고르는 방식이 아니라 관문 → 조건부 A/S 순서로 정합니다.

단계 06 · 단일 모델 또는 앙상블

여러 판단부의 점수를 평균 낼 수 있습니다.

모델 하나의 점수를 사용할 수도 있고, 여러 판단부의 관문 점수와 조건부 점수를 각각 평균 낼 수도 있습니다. 고정된 최고 모델은 16개 구성원 교사로 학습한 단일 학생 모델입니다. 추론할 때 교사 16개를 함께 실행하는 구성은 아닙니다.

직관적인 설명한 명의 심사 결과를 쓸 수도 있고, 여러 심사자의 점수를 평균 낼 수도 있습니다. 이 프로젝트의 앙상블은 점수 평균을 사용합니다.
들어오는 것
하나 또는 여러 판단부의 점수
나가는 것
관문 점수 평균
조건부 A/S 점수 평균
서빙에서의 연결
MuQ 특징 추출 결과를 함께 사용하고, 각 구성원이 필요한 층을 읽습니다.
앙상블 계산 방식 살펴보기

구성원 i의 mᵢ = pᵢ − fᵢ와 cᵢ를 각각 산술 평균합니다. 평균 점수에 sigmoid를 적용합니다. 이는 최종 등급의 다수결이나 최종 확률 평균과 다릅니다. 단일 모델은 구성원 1개인 경우로 이해하실 수 있습니다. 앙상블을 학생 하나로 옮겨 배우는 증류는 별도의 학습 방법입니다.

단계 07 · 거부와 최종 결과

애매한 곡은 판정하지 않습니다.

관문 점수가 하한 이하이면 Fail, 상한 이상이면 Pass입니다. 그 사이의 곡은 판정을 거부해 제외합니다. Pass인 곡만 조건부 점수로 A와 S를 나눕니다. 거부는 등급을 붙이지 않는 결과이며, 원본 음원을 삭제한다는 뜻은 아닙니다.

직관적인 설명확실한 쪽에만 도장을 찍고, 경계에 있는 신청서는 판정 대상에서 제외하는 규칙입니다.
들어오는 것
관문 점수 + 조건부 점수
검증에서 정한 거부 구간
나가는 것
Fail / A / S 등급
또는 거부(등급 없음)
거부 구간을 끄면
관문 점수 > 0이면 Pass입니다.
0 동률은 Fail입니다.
경계와 반환값 살펴보기

lo < hi인 구간에서 m ≤ lo는 Fail, lo < m < hi는 거부, m ≥ hi는 Pass입니다. Pass이면 조건부 c > 0은 S, c ≤ 0은 A입니다. 거부 결과는 grade=null, passed=null입니다. 추론용 모델 패키지는 가중치, 선택한 층과 판정 구간 등의 정보를 보관하며, 서빙 런타임이 이를 읽습니다. 예외적으로 명시된 구간 (0, 0)은 m=0에서 상한 비교가 먼저 적용되어 Pass가 됩니다. 구간을 아예 끈 경우의 m=0 → Fail과 구분해야 합니다.

01 / 07
02 / 시간 흐름

10초로 듣고, 약 2초로 정리합니다.

10초 문맥에서 얻은 MuQ 프레임을 곡 전체의 약 2초 구간으로 평균합니다. 문맥 창을 선택하면 그 창이 담당하는 구간을 확인하실 수 있습니다.

시간 배치의 설명용 그림
곡 길이를 바꿔 보세요
① MuQ가 듣는 10초 문맥 창 · 눌러 보세요
② 곡 전체의 약 2초 시간 메모 · 파란색은 선택한 창의 메모입니다
시간 메모+질문 3개→
트랜스포머

각 메모에는 언제 나온 특징인지 알려 주는 시간 정보가 붙습니다.

파형의 모양은 설명용입니다. 실제 음원이나 실제 모델의 주의 집중 값을 표시한 그림은 아닙니다.

같은 소리를 중복 집계하지 않습니다.

01
주변 맥락까지 읽습니다.

한 구간의 특징을 얻을 때 그 구간이 포함된 10초 소리를 함께 읽습니다.

02
메모는 곡 전체에 한 번씩 남깁니다.

문맥이 겹쳐도 각 2초 구간은 가장 이른 포함 창에 배정합니다.

03
끝부분도 다룹니다.

짧은 곡은 빈 소리로 채웁니다. 0.5초 미만의 꼬리 메모는 앞 구간에 합칩니다.

23초 예시에서는 0~10초, 10~20초, 13~23초를 읽습니다. 마지막 창에서 새로 남기는 메모는 20~22초와 22~23초입니다.

3분 곡이라면, 대략 90개의 시간 메모입니다.

기본 2초 배치로 계산한 예입니다. 여기에 질문 토큰 3개를 붙입니다. 실제 프레임이 없는 구간의 병합 등으로 최종 개수는 달라질 수 있습니다. 각 메모를 곡 전체와 연결해 읽으므로, 처음부터 끝까지 하나의 단순 평균으로만 압축하지 않습니다.

03 / 판정 체험

점수를 움직여 결과를 확인해 보세요.

출력은 (Fail 관문, Pass 관문, S|Pass) 세 점수입니다. 관문 차이와 조건부 점수를 바꾸며 확률 분해와 거부 구간의 경계를 확인하실 수 있습니다. 아래 값은 설명용이며 실제 최고 모델의 구간은 연구 결과 절에 있습니다.

가상 점수 · 실제 성능 아님

직접 바꿔 보기

+0.50
−6 · Fail 쪽+6 · Pass 쪽
+0.80
−5 · A 쪽+5 · S 쪽

0보다 크면 S, 0 이하이면 A입니다. Fail 또는 거부이면 이 값으로 등급을 정하지 않습니다.

−1.40
+2.00

이 체험의 점수와 구간은 원리를 설명하기 위한 가상 값입니다. 실제 연구에서는 모델별 검증 점수로 구간을 선택합니다. 여기서 슬라이더를 바꿔도 모델이나 운영 설정은 바뀌지 않습니다.

지금의 결과

관문 → A/S
—
거부 · 등급 없음

관문 점수가 하한과 상한 사이에 있어 판정하지 않습니다.

점수에서 계산한 등급별 확률
Fail
37.8%
A
19.3%
S
42.9%
Pass 확률 62.2%Pass일 때 S 확률 69.0%

확률 세 개는 합이 100%가 되지만, 최종 판정은 위의 관문과 거부 규칙을 따릅니다. 거부에도 점수는 존재합니다. 이 확률은 정답률을 보증하지 않습니다.

사용한 수식 살펴보기
m = Pass 관문 점수 − Fail 관문 점수 q = sigmoid(m) = 1 / (1 + exp(−m)) r = sigmoid(A/S 조건부 점수) P(Fail) = 1 − q P(A) = q × (1 − r) P(S) = q × r

거부를 끄면 m > 0은 Pass, m ≤ 0은 Fail입니다. Pass 상태에서 조건부 점수 0은 A입니다. 이 체험은 하한이 음수, 상한이 양수인 설명용 구간을 사용합니다.

실제 거부 구간은
검증 집합에서 정합니다.

현재 연구에서는 실제 Pass(A/S) 곡 중 거부된 비율을 최대 70%로 허용합니다. 이는 검증 집합에서 구간을 고를 때의 상한이며, 전체 곡의 거부율이나 새 곡 집합의 거부율을 뜻하지 않습니다. 실제 Pass를 Fail로 판정한 오류와도 구분합니다.

또한 판정한 실제 Pass 곡의 Fail 오판 비율이 거부 없는 0 경계보다 나빠지지 않도록 제한합니다. 그 안에서 Fail→Pass 오류 수, Pass→Fail 오류 수, 거부 수 순으로 최소화합니다. 실제 Fail을 통과시키지 않는 것이 연구의 첫 번째 우선순위입니다.

Fail→Pass · 실패 곡을 통과시키는 오류

실제 Fail 곡을 A/S로 판정한 경우입니다. 거부 적용 후 비율은 ‘A/S로 오판한 실제 Fail 수 ÷ 거부되지 않은 실제 Fail 수’입니다.

Pass→Fail · 통과 곡을 놓치는 오류

실제 A/S 곡을 Fail로 판정한 경우입니다. 거부 적용 후 비율은 ‘Fail로 오판한 실제 A/S 수 ÷ 거부되지 않은 실제 A/S 수’입니다. 거부된 곡은 별도로 보고합니다.

평가 보고에서는 거부 없는 전체 곡 기준과 거부 적용 후 판정 곡 기준을 함께 제시합니다. 거부된 곡을 정답으로 센 결과는 아닙니다.

04 / 여러 모델의 협력

추론 앙상블과 학습 증류를 구분합니다.

앙상블과 증류는 서로 연결되지만 사용 시점이 다릅니다. 앙상블은 판정할 때 여러 모델을 사용하고, 증류는 학습할 때 교사의 점수를 배웁니다. 고정된 최고 모델은 교사 16개의 관문 확률을 정답과 α=0.5로 섞어 배운 단일 판단부입니다.

앙상블 · 점수 모으기

판정할 때

여러 판단부가 같은 곡을 읽습니다. 관문 점수와 A/S 조건부 점수를 각각 평균 낸 뒤, 한 번의 판정 규칙을 적용합니다.

점수를 각각 평균

관문 평균 · 조건부 평균
↓
거부 구간 → A/S 판정

표시되는 구성원 점수는 가상 예시입니다. 구성원을 늘린다고 성능 향상이 보장되지는 않습니다. 실제 구성원은 검증으로 정하고 다른 집합에서 확인합니다.

증류 · 교사의 판단 배우기

학습할 때

앙상블을 교사로 사용해 학습 곡의 관문 점수 16개를 먼저 평균하고, 그 평균에 sigmoid(시그모이드)를 적용해 Pass 확률을 만듭니다. 학생은 이 확률과 정답을 α=0.5로 섞어 배웁니다.

앙상블 교사학습 곡의 관문 점수
학생 판단부하나의 모델로 학습

교사는 학습 곡에 대해서만 목표를 제공합니다. 검증·작업용 평가·예비 평가 곡을 학생의 학습 목표로 넣지 않습니다. 현재 증류는 Pass/Fail 관문 목표에 적용하며, A/S는 실제 Pass의 등급으로 학습합니다.

증류 비율의 뜻 살펴보기
학생의 Pass 목표 = (1 − α) × 정답 Pass 여부 + α × 교사의 Pass 확률 α = 0 → 정답 관문 목표만 사용 α = 1 → 교사 관문 목표만 사용

학생 모델을 사용하면 추론 시 교사가 함께 실행될 필요는 없습니다. 학생을 다시 앙상블 구성원으로 사용할 수도 있습니다.

05 / 학습과 연구

실행된 학습 목적과 선택 절차를 확인합니다.

기존 음원과 사람이 붙인 등급을 사용합니다. 학습할 곡, 설정을 고를 곡, 성능을 비교할 곡, 별도로 점검할 곡의 역할을 나눕니다.

새 곡 판정과 연결되는 학습 경로
  1. 01

    기존 음악과 정답

    음원과 사람의 S/A/Fail 라벨을 준비합니다.

  2. 02

    특징 캐시와 분할

    MuQ 특징을 저장하고 집합의 역할을 나눕니다.

  3. 03

    판단부 학습

    통과 여부와 실제 Pass의 A/S를 배웁니다. 교사 점수도 쓸 수 있습니다.

  4. 04

    검증에서 선택

    검증으로 후보 목록·층·구성원·거부 구간을 정합니다.

  5. 05

    평가와 예비 점검

    작업용 test로 후보를 승격하고 예비 test로 악화를 점검합니다.

  6. 06

    패키지와 서빙

    선택 모델과 판정 정보를 묶어 추론 런타임이 읽게 합니다.

학습 집합 · 판단 기준을 바꿉니다.

특징과 정답 등급을 보면서 판단부의 가중치를 갱신합니다. 증류를 쓸 때도 이 집합의 곡만 교사 목표로 사용합니다.

직관적인 설명수업과 연습 문제입니다. 틀린 답을 보고 풀어내는 방법을 바꾸는 단계입니다.

검증 집합 · 설정을 고릅니다.

학습 중 저장된 여러 시점의 가중치, 층 조합, 앙상블 구성원과 거부 구간을 고르는 데 씁니다. 이 곡의 정답으로 가중치를 직접 갱신하지는 않습니다.

직관적인 설명어떤 공부 방법과 교재가 좋은지 확인하는 모의고사입니다.

작업용 평가 집합 · 후보를 비교합니다.

검증에서 정한 후보를 같은 곡들에 적용해 Fail→Pass와 Pass→Fail을 비교합니다. 연구 루프는 이 결과로 최고 모델과 파레토 후보를 관리합니다. 반복 비교가 쌓이면 이 집합에 익숙해질 수 있습니다.

직관적인 설명방법이 정해진 뒤 치르는 비교 시험입니다. 같은 시험을 계속 보면 점수에 맞춘 공부가 될 수 있어 별도 점검이 필요합니다.

예비 평가 집합 · 다른 곡에도 통하는지 봅니다.

현재 연구 세대의 학습과 설정 선택에 쓰지 않은 곡으로 점검합니다. 오류율이 유의하게 나빠지면 분할과 재학습을 검토합니다. 이 점검을 통과했다고 과적합이 없다고 확정할 수는 없습니다.

직관적인 설명같은 방식으로 풀 수 있는지 확인하는 별도의 시험입니다. 한 번의 통과는 모든 상황을 보증하지 않습니다.

현재 연구 세대는 학습 / 검증 / 작업용 평가 / 예비 평가를 약 70% / 10% / 10% / 10%로 나눕니다. 연구 세대가 바뀌면 분할도 바뀔 수 있습니다. ‘현재 세대에서 안 쓴 곡’은 프로젝트의 모든 과거 학습에서도 안 썼다는 뜻은 아닙니다. 사용자 평가 원칙은 시험 점수에 맞춰 층·학습 시점·앙상블 구성원·거부 구간을 고른 결과를 성과로 인정하지 않는 것입니다. 작업용 평가를 반복 비교에 쓰는 구현은 별도의 예비 점검과 함께 해석해야 합니다.

무엇을 배우나요?

가중치를 고정합니다MuQ 소리 읽기
가중치를 갱신합니다작은 판단부

고정된 최고 모델은 실제 Fail의 관문 손실을 8배로 가중하며, 실제 Pass 곡에만 A/S 손실을 적용합니다. 교사 16개가 만든 학습 곡의 Pass 확률과 정답을 절반씩 섞습니다. MuQ 가중치는 갱신하지 않습니다.

현재 연구는 Fail→Pass 0을 먼저 지향하면서 Pass→Fail도 줄이는 방향입니다. 모든 곡을 Fail로 내리는 후보를 걸러내고, 여러 오류 사이의 교환관계도 보존해 비교합니다.

현행 v5와 이전 설계 구분하기

실행 설정은 계층 관문 교차 엔트로피 + 조건부 이진 교차 엔트로피이며 rl_weight=0입니다. AdamW, 학습률 1.5×10⁻⁴(최소 10⁻⁶), warmup(초기 학습률 증가) 5%, 코사인 감소, weight decay(가중치 감쇠) 0.03, 배치 256, 누적 1회, 최대 50회 학습과 patience(개선 대기) 12입니다. fail_miss 선택의 Pass 재현율 하한은 0.40입니다. 생성 설정에 남은 maximum_fail_to_pass_rate=0.05는 이 선택 분기에서 적용되지 않으며 목표를 5%로 제한하지 않습니다.

패키지는 추론에 필요한 가중치와 메타데이터를 담습니다. 서빙 코드는 v5 단일·앙상블을 지원합니다. 이 설명은 특정 패키지의 실제 배포 상태를 증명하는 자료는 아닙니다.

학습 목표 · 관문과 조건부 분해

q = sigmoid(p − f), r = sigmoid(c)
L_gate = −[t log q + (1 − t) log(1 − q)]
L_song = k_y L_gate + 1[y ≠ Fail] BCE(r, 1[y = S])
L_batch = mean(a_y × L_song)
k_y = 8 (Fail), 1 (A/S)
a_y = 0.9411 (Fail), 1.1170 (A/S)

관문은 모든 곡의 통과 여부를 배웁니다. A/S 항은 실제 A 또는 S 곡에서만 계산합니다. 실제 Fail의 관문 비용 k_y=8은 사람의 라벨로 정하며, 교사 점수로 바뀌지 않습니다. 학습 빈도에서 구한 외부 클래스 가중치 a_y는 관문과 조건부 항 모두에 적용합니다.

증류 목표 · 정답 50% + 교사 50%

m_teacher = (m₁ + … + m₁₆) / 16
t = (1 − α) 1[y ≠ Fail] + α sigmoid(m_teacher)
α = 0.5

교사는 관문 목표만 부드럽게 만듭니다. 정답 라벨, 실제 Fail 가중치, A/S 정답은 유지됩니다. 학생의 추론은 교사 없이 수행할 수 있습니다. 이 실행에서는 강화학습 항의 가중치가 0입니다.

클래스 가중치: Fail 0.9411, A/S 1.1170 · 빈도 지수 0.25. 추출·저장 FP32(32비트), 판단부 연산 BF16(16비트) 자동 혼합 정밀도, 매개변수 FP32입니다.

06 / 현재 연구 결과

동일 모델의 오류와 거부 비용을 함께 봅니다.

근거 수집 시점의 최고 모델을 고정해 설명합니다. 실행 중인 연구가 이후 갱신되어도 아래 기록의 체크포인트·평가 시점·분모는 바뀌지 않습니다.

14세대 · dst_a05 · epoch 50 단일 증류 학생

champ-g014-r0005-dst_a05
패키지 raina-laya-v5-g014-champ-g014-r0005-dst_a05-e0050
작업용 test 완료: 2026-10-07 23:53:01 KST
동일 모델 예비 test 완료: 2026-10-07 23:58:28 KST

검증에서 고른 거부 구간: (−3.633650, +4.551338) · 실제 Pass 거부 상한 70% · 패키지 생성: 2026-10-07 23:53:20 KST

분모를 바꿔 비교해 보세요.

Fail→Pass 오류율
0.00%
0 / 1,536
실제 Fail 중 A/S로 판정
Pass→Fail 오류율
29.18%
89 / 305
실제 A/S 중 Fail로 판정
실제 Pass 거부율
69.86%
707 / 1,012
전체 실제 A/S가 분모
전체 실제 Pass 중 통과
21.34%
216 / 1,012
거부·Fail 처리도 손실에 포함

작업용 test · 거부 적용: 전체 3,019곡 중 1,841곡 판정(60.98%), 1,178곡 거부(39.02%).

작업용 test의 0%를 전체 곡이나 새 곡의 무오류로 해석하지 않습니다. 거부가 없으면 실제 Fail 2,007곡 중 91곡을 통과시킵니다. 거부 적용 후 작업용 test에서는 0/1,536이지만 같은 체크포인트의 예비 test에는 3/1,495의 오류가 있습니다. 작업용 test의 판정 곡 Pass 재현율 70.82%는 남은 실제 Pass 305곡의 기준입니다. 전체 실제 Pass 1,012곡 중 통과한 비율은 21.34%입니다.
두 집합·두 판정 기준의 전체 기록
집합기준Fail→PassPass→Fail전체 거부전체 실제 Pass 중 통과
작업용 test거부 없음91/2,007
4.53%
418/1,012
41.30%
0/3,019
0.00%
594/1,012
58.70%
작업용 test거부 적용 · 판정 곡0/1,536
0.00%
89/305
29.18%
1,178/3,019
39.02%
216/1,012
21.34%
예비 test거부 없음81/2,007
4.04%
427/1,012
42.19%
0/3,019
0.00%
585/1,012
57.81%
예비 test거부 적용 · 판정 곡3/1,495
0.20%
94/305
30.82%
1,219/3,019
40.38%
211/1,012
20.85%

거부 없음은 관문 경계 0으로 모든 곡을 판정합니다. 거부 적용의 오류율은 거부된 실제 Fail/Pass를 각각 분모에서 뺍니다. 마지막 열은 두 기준 모두 전체 실제 Pass를 분모로 사용합니다.

평가 원칙과 실제 승격 경로의 차이검증 단일 선택 기록 selection.json은 epoch 20을 고릅니다. 실제 최고 모델은 검증 파레토 후보 목록에 포함된 epoch 50이며, 연구 루프가 작업용 test의 판정 곡 오류 개수로 승격했습니다. 따라서 이 기록을 ‘체크포인트 선택이 전부 검증에서만 끝난 독립 test 성과’로 설명할 수 없습니다. 검증만으로 선택해야 한다는 사용자 원칙과 실제 구현의 차이를 공개합니다.

예비 점검은 구현의 유의 수준 0.01에서 유의한 악화를 검출하지 않아 통과했습니다(Fail→Pass p=0.03950, Pass→Fail p=0.32933). 이는 과적합이 없거나 새 곡 오류가 0이라는 증명은 아닙니다.

14세대 분할 · 전체 30,179곡
역할곡 수FailAS
학습21,12214,0456,480597
검증3,0192,00792686
작업용 test3,0192,00792686
예비 test3,0192,00792686

수치 대조: 평가 파일·패키지 provenance(출처 기록)·체크포인트의 식별과 분모를 확인하고 오류율을 다시 계산했습니다. 연구 근거 JSON에는 32개 검증 항목, 파일별 SHA-256(파일 내용 식별값), 정확한 평가 시점을 보관했습니다. 실제 backend 배포 여부는 이 패키지 기록만으로 확인되지 않습니다.

07 / 용어와 코드 근거

낯선 말은 여기서 펼쳐 보세요.

쉬운 설명과 원문 근거를 함께 제공합니다. 코드 근거 버튼은 파일의 줄 번호와 수집한 발췌를 표시하므로 이 HTML만 복사해도 근거를 읽으실 수 있습니다.

특징 · 소리를 숫자로 적은 메모

모델이 읽을 수 있게 바꾼 숫자 표현입니다. 사람이 직접 붙인 ‘리듬 점수’나 ‘멜로디 점수’와 같다고 단정할 수는 없습니다.

동결 · 이미 배운 가중치 고정

학습 중 그 모델의 가중치를 바꾸지 않는다는 뜻입니다. 동결된 MuQ도 서로 다른 음악에는 서로 다른 특징을 만듭니다.

토큰 · 한 번에 다루는 정보 조각

여기서는 주로 약 2초 구간의 특징을 하나의 토큰으로 다룹니다. 질문 토큰은 음악 정보를 모아 읽도록 학습되는 별도 조각입니다.

트랜스포머 · 정보끼리 연결해 읽기

곡의 여러 구간을 서로 참조해 표현을 바꾸는 모델입니다. 시간 정보가 붙어 있어 메모가 언제 나왔는지도 함께 사용합니다.

관문 · 통과 여부를 먼저 판단

A/S를 정하기 전에 Pass와 Fail을 구분하는 첫 단계입니다. Pass 점수에서 Fail 점수를 뺀 값이 관문 점수입니다.

조건부 · 통과했다고 할 때의 판단

‘이 곡이 Pass라고 가정할 때 S일 확률’이라는 뜻입니다. 이 값을 전체 S 확률로 바로 해석하면 안 됩니다. 전체 S 확률에는 Pass 확률도 곱합니다.

체크포인트 · 저장된 학습 시점

어느 시점의 판단부 가중치를 보관한 것입니다. 가장 나중 시점이 항상 가장 좋지는 않아 검증에서 선택합니다.

파레토 후보 · 서로 장단점이 있는 모델

한 후보는 Fail→Pass가 더 적고 다른 후보는 Pass→Fail이 더 적으면 둘 다 보존할 수 있습니다. 두 오류를 모두 줄이는 후보가 나오면 우위로 봅니다.

거부 · 자동 등급을 붙이지 않음

관문 점수가 정해진 애매한 구간 안에 있는 경우입니다. Fail 등급과 별도이며, 원본 파일을 삭제하는 작업이 아닙니다. 거부 곡과 판정 곡을 구분해 성능을 보고합니다.

설명의 근거

근거 묶음 내려받기: 백본·가중치 근거 · 학습·평가 근거. 파일 SHA-256은 수집 시점의 내용 식별값이며, 실행 중인 state·ledger 파일은 이후 달라질 수 있습니다.

코드·가중치 수집: 2026-10-08 00:17:00 KST · 연구 기록 수집: 2026-10-08 00:18:26 KST · 커밋 2277622. 원문 발췌는 이 HTML 안에 보관했습니다. 저장소 파일 링크는 상대 경로입니다.

설명 범위현재 근거 파일
최신 연구 목적과 70% 제약AGENTS.md §1-1 · 최신 HANDOFF 후반 절
소리 준비와 시간 배치audio.py · bins.py
동결 MuQ와 층별 특징features.py · build_cache.py
정규화와 질문 토큰model.py · TemporalGradeHead · v4_model.py · 공유 점수 계산부
현행 계층 판정과 손실hierarchical.py · 챔피언 후보 오버라이드
앙상블과 거부 구간v4_choice_ensemble.py · v4_evaluate.py · select_reject_band
학습·검증·평가·패키징champion_loop.py · package_champion.py · 증류와 앙상블 연구 기록
실제 추론 경로serving/application/runtime.py · serving/domain/decision.py

실제 적재 경로, 생성된 실행 설정과 체크포인트를 우선 근거로 삼았습니다. 이름에 v4가 남은 공유 파일도 raina_laya_hierarchical_v5를 처리합니다. 예전 v2 강화학습 설계나 기본 설정의 5%·55%를 현행 연구 목표로 사용하지 않습니다. 수집 이후 바뀐 연구 상태와 이 보고서의 고정된 평가 기록은 구분해 해석해 주십시오.

코드 근거