임베딩

Embeddings

텍스트 같은 데이터를 의미 비교에 쓸 수 있는 수치 벡터로 표현합니다.

···
html
<div class="scene"><div class="heading">EMBEDDING SPACE</div><div class="plane"><i class="dot a">고양이</i><i class="dot b">반려묘</i><i class="dot c">자동차</i><i class="dot d">엔진</i><span id="focus" class="focus">의미가 비슷한 점은 가까이</span></div></div>
css
.scene{width:min(94vw,800px);height:min(88vh,326px);padding:clamp(10px,2.7vmin,19px);border:1px solid var(--line);border-radius:13px;background:var(--surface);font:500 clamp(13px,2.4vmin,17px)/1.3 var(--font-sans,sans-serif);position:relative;overflow:hidden}.scene .mono{font-family:ui-monospace,SFMono-Regular,monospace}.scene .muted{color:var(--muted)}.scene .accent{color:var(--accent)}.scene .heading{font-weight:750;color:var(--accent);margin-bottom:clamp(5px,1.6vmin,12px)}.plane{height:76%;position:relative;border:1px solid var(--line);border-radius:8px;background:linear-gradient(90deg,transparent 49.5%,var(--line) 50%,transparent 50.5%),linear-gradient(transparent 49.5%,var(--line) 50%,transparent 50.5%)}.dot{position:absolute;padding:5px 8px;border-radius:20px;background:var(--accent);color:var(--surface);font-style:normal;transition:transform .6s}.a{left:9%;top:12%}.b{left:31%;top:27%}.c{left:64%;top:47%;background:var(--accent-2)}.d{left:78%;top:69%;background:var(--accent-2)}.plane.on .b{transform:translate(-18px,-17px)}.plane.on .d{transform:translate(-18px,-16px)}.focus{position:absolute;left:8px;bottom:5px;color:var(--muted)}
js
const plane=document.querySelector('.plane');function draw(){plane.classList.toggle('on')}draw();setInterval(draw,1450)

임베딩 모델은 문장이나 문서에 수치 벡터를 부여합니다. 비슷한 의미의 입력이 벡터 공간에서 가깝게 놓이도록 학습한 표현을 검색과 분류에 활용합니다.

데모의 2차원 점들은 고차원 벡터를 설명하려고 단순화한 그림입니다. 가까운 점이 언제나 같은 뜻을 보장하지는 않으므로 실제 데이터로 검색 품질을 평가해야 합니다.

언제 쓰나

문장·문서의 의미 유사도를 이용해 검색하거나 묶을 때 사용합니다.

페이지로 열기 ↗