Jev을 (형편없는) 챗봇으로 만들어 봄
요약
본문은 Jev라는 새로운 AI 모델의 작동 원리와 잠재적 활용 분야에 대한 깊이 있는 분석과 개인적인 견해를 담고 있습니다. 특히, Jev가 일반 LLM과는 다른 방식으로 임베딩을 처리하고 결과를 도출하는 방식에 초점을 맞추며 기술적 궁금증을 제기합니다. 작성자는 Jev의 장점인 저렴함과 속도를 언급하면서도, 그 활용 범위와 기존 방법론(JSON 출력 강제, 앙상블 등)과의 비교를 통해 비판적인 시각을 제시하고 있습니다.
핵심 포인트
- Jev는 일반 LLM과 달리 임베딩 지시/의미를 직접 처리하여 결과를 도출하는 방식이 특징입니다.
- 작성자는 Jev가 저렴하고 빠르다는 장점에도 불구하고, 활용 범위에 한계가 있을 수 있다고 분석합니다.
- AI 기술 발전 속도가 매우 빨라 아이디어 구상부터 결과물 구현까지 걸리는 시간이 급격히 줄어들고 있습니다.
- Jev의 다음 단계로 이모지 봇이나 컴파일러 같은 형태로 확장 가능성을 제시했습니다.
죽음의 수정으로 미래를 보며 말하는 Morty의 디지털 버전 같음. https://youtu.be/YjepJlvkdKs?t=51에서 수정은 Morty가 어떻게 죽을지 보여주고, Morty는 자신이 원하는 삶을 살다 죽는 모습이 보이는지에 따라 말을 조금씩 바꿔 나감.
가끔 나도 죽음의 수정을 보며 말하는 Morty 같다고 느낌. 정작 수정은 없고, 두려운 건 삶 자체뿐임.
“짧은 이야기를 써줘”에 “이야기”라고 답하는 걸 보니, 모델의 농담인 줄 알면서 웃은 건 처음인 것 같음.
예전 text-davinci 모델이 아무 말이나 지어내던 시절에는 꽤 웃긴 문장 완성 결과가 나오곤 했음. 초기 ChatGPT도 내가 상상한 인도 커버 밴드 The Needful Dead의 곡 목록을 꽤 재미있게 만들어줌.
지금은 대화 기록에 없으니, Sam이 모델의 인종차별로 보일 만한 흔적을 전부 지워버린 게 분명함.
아주 초기 LLM이 떠오름. 초기 이미지 모델에 생물학 관련 이미지를 주문했을 때 나오던 광기 어린 공포 이미지가 가끔 그립기도 함.
Jev가 시스템 1 사고를 한다는 점을 생각하면, ADHD 성향이 아주 강한 친구에 해당할 듯함.
Jev 내부가 어떻게 돌아가는지 추측이 많은데, 그냥 임베딩 모델일 수는 없는 이유가 궁금함. 입력과 선택지를 모두 임베딩한 뒤 코사인 유사도 같은 값을 반환하는 방식이면 안 되는 걸까?
일반 임베딩 모델보다, Jev처럼 질문 100개에 대한 답을 임베딩으로 사용하는 방식이 더 유용할 수 있음. 특히 작업별 분류기를 학습할 필요 없이 답을 직접 활용할 수 있기 때문임.
다만 왜 이렇게 열광하는지는 모르겠음. 나는 2년 전부터 LLM에 JSON 토큰 출력을 강제해 같은 작업을 해왔고, 모델이 추론하게 하거나 여러 LLM을 앙상블로 묶는 것도 가능함.
Jev의 매력은 저렴하고 빠르다는 점이겠지만, 그렇다면 아주 피상적인 정보 추출 외에는 부적합함. 게임에 쓰는 것도 시간 낭비 같음. 대부분의 게임은 LLM에 상태를 주고 봇을 작성하게 하면 그 알고리즘이 더 잘할 것임.
임베딩은 토큰을 추상적인 의미 공간의 벡터로 변환할 뿐임. JEV는 한 단계 더 나아가 그 임베딩의 지시나 의미를 실제로 처리해 결과를 내놓음. 다만 결과가 일반적인 LLM처럼 토큰의 연속이 아닐 뿐임.
현재 단어의 완성 상태를 기준으로 검색해 짧은 후보 단어 목록을 반환해보면 좋겠음. 몇 차례 왕복을 줄일 수 있을 것임.
다음 단계는 Jev를 이모지 봇으로 만드는 것 같음. 이 구조와 제약은 인간 언어보다 이모지에 더 잘 맞을 듯함.
여러 이모지로 변환하는 컴파일러로도 잘 작동할 것 같음. 어떤 구절은 여러 이모지와 잘 어울리니, 구절마다 원하는 만큼 이모지를 생성할 수 있을 것임.
오늘 아침 Jev로 위저 보드 비슷한 걸 만들어봤는데 잘 작동하지 않았음. 이 구현은 어떻게 돌아가는지 읽어보고 싶음.
여기서 가장 끔찍한 건 아직도 Python 개발에 Poetry를 쓰는 사람이 있다는 것임.
Jev를 보며 벌써 세 번이나 같은 교훈을 얻음. 처음 나왔을 때 “주말에 단일 토큰 예측과 토큰 로짓 출력으로 작은 오픈소스 Jev를 만들어야지” 했는데, 막상 시작하려니 그사이에 최소 5개가 나와 있었음.
그래서 다른 구현들을 정리한 글을 썼는데, 벤치마크가 부실해서 아쉬웠음. 그런데 글을 쓰기 시작해서 마칠 때까지 훌륭한 벤치마크 두 묶음이 나와서 글에 반영할 수 있었음. 게시하고 나니 구현자 한 명은 자신이 쓰려던 정리 글을 내가 먼저 썼다고 댓글을 남김.
오늘 아침에는 “Jev에 글자나 토큰을 하나씩 주면서 챗봇으로 만들면 재미있겠다”고 생각했지만, 찾아보니 이미 두 명이 나보다 더 멀리 밀어붙여 구현해둔 상태였음. 그런데 지금 올라온 건 그 둘 중 어느 것도 아님. 조금만 더 찾아보면 이미 최소 5개는 있을 것 같음. 아이디어에서 결과물까지 걸리는 시간이 급격히 줄어듦. 정리한 글은 여기 있음. https://sgnt.ai/p/jev/.
그런 단일 토큰 예측 방식은 실제로 Jev와 비교해 어느 정도 성능을 내는지 궁금함. 지금까지 읽은 바로는 여전히 Jev가 앞서는 것 같음.
구조만 보면 Jev도 정확히 같은 방식을 쓸 수 있는데, 왜 차이가 나는지는 분명하지 않음. 그렇다면 결국 로짓의 품질, 즉 모델 크기와 학습 세부사항에서 차이가 날 것임.
이런 프로젝트 대부분이 놓치는 건 Jev가 잘 보정된 확률을 예측한다고 내세우는 부분 같음. 이는 엄청나게 가치 있는 특성이며, LLM은 이를 위해 특별히 학습하지 않으면 제공할 수 없음.
나도 비슷했음. 분명 누군가 이미 했을 거라고 생각해서, 오늘 외출했다가 집에 돌아오면 찾아보려 했음. 이렇게 빨리 Hacker News에 올라올 줄은 몰랐음!
정확히는 쓸데없는 아이디어에서 나쁜 결과물까지의 시간이 줄어든 것임. 좋은 소프트웨어가 나오는 것도 아닌데, 직접 만드는 재미와 배움이 유일한 목적이던 멋진 취미 프로젝트 아이디어까지 무의미하게 소진되고 있음.
옛것이 다시 새것이 되는 셈임. 초기 Llama 시절에도 출력 문법을 yes/no나 0/1 토큰으로 제한해 질문을 분류하곤 했음. 그런 응답에 맞춰 학습된 모델이 없어 학습 분포에서 크게 벗어났고, 대체로 성능도 형편없었음. 그런데 이후 객관식 벤치마크의 주된 실행 방식이 됐고, 모두가 그 점수를 극대화하기 시작함.
일반적인 MMLU/Pro도 출력 토큰을 하나로 제한하고, top-k=1로 설정한 뒤 선택지 문자 중 하나를 고르게 하는 것 아닌가?
Jev의 진짜 차별점은 빠른 병렬 디코딩 같음. 다만 그게 어떻게 작동하는지는 상당히 기묘하게 느껴짐.
AI 자동 생성 콘텐츠
본 콘텐츠는 RSS: GeekNews (한국어)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기