TL;DR
- Jev의 결정 전용 모델에 단어를 하나씩 고르게 해 답변을 생성하는 실험 도구이며, 3,000개 단어 어휘를 사용함.
- 사전의 각 단어가 다음 단어일 확률을 병렬로 확인하고, 확률이 높은 단어 조합을 다시 평가해 답변을 구성함.
- 한 라운드는 요청 4회, 입력 약 11만 토큰, 약 2초이며, 20단어 답변은 약 13라운드·30초·7센트가 소요됨.
- 답변은 실제 테스트에서 나온 무편집 결과로, 파리·사랑·삶의 의미 등에 응답하지만 무관하거나 말이 되지 않는 답변도 나옴.
- 어휘 파일과 탐색 범위 등 여러 설정을 조정할 수 있으나, 이 도구는 언어 모델과 경쟁하려는 제품이 아니라 결정 전용 모델의 생성 능력을 시험하는 장난감임.
Jev Talks
- Jev의 대화 능력을 확인하는 또 하나의 실험임.
실행 방법
- 예제 환경 파일을
.env로 복사하고, 파일에 TypeSafe API 키를 입력한 뒤 질문을 인수로 지정해talk.py를 실행함. --vocab플래그로 사용자 지정 어휘 파일을 지정할 수 있으며,-v플래그로 디버그 정보를 확인할 수 있음.- 실행 중단은
Ctrl-C로 수행함.
출력 결과
- 이 버전 테스트에 사용된 실행에서 나온 실제 답변이며, 편집하지 않은 결과임.
- 프랑스의 수도를 묻는 질문에는 “paris”, 정체를 묻는 질문에는 “i am an assistant”, 의식이 있는지 묻는 질문에는 “no”라고 답함.
- 핫도그가 샌드위치인지 묻는 질문에는 “generally yes”, 하늘이 파란 이유에는 공기가 파란색 빛만 통과시키는 필터라는 취지로 답함.
- 삶의 의미에는 “앞으로 계속 나아가는 과정일 뿐”이라는 취지로 답하고, 사랑은 사람 사이의 연결감이라고 설명함.
- 죽은 뒤에 일어나는 일은 알 수 없다고 답하며, 부자가 되는 방법에는 열심히 일하고 투자할 만큼 저축해 포트폴리오를 키우라고 답함.
- 관심이 없거나 앞뒤가 맞지 않는 답변도 다수 있었지만, 실험의 특성상 허용되는 결과임.
작동 방식
- 주어진 사전의 각 단어를 대상으로, 질문과 현재까지의 문맥에서 해당 단어가 다음 단어일 확률을 병렬로 평가함.
- 프랑스의 수도를 묻는 예시에서는
the,of,paris등의 후보를 평가하며, 확률은 각각 0.02, 0.15, 0.78 등의 형태로 산출됨. - 확률이 높은 상위 단어 20개를 고르고 가능한 순열을 만든 뒤, 현재 라운드의 상태에 후보 단어를 추가함.
- 후보 단어 또는 단어 조합이 다음에 올 최선의 선택인지 다시 질문하고, 평가 결과를 바탕으로 답변에 단어를 추가함. 예시에서
paris단독 후보의 확률은 0.95임.
비용과 속도
- 한 라운드는 요청 4회와 입력 약 110,000토큰으로 구성되며, Jev의 공개 가격 기준 약 0.5센트이고 약 2초가 걸림.
- 라운드마다 단어 한두 개를 추가하므로, 20단어 답변은 약 13라운드, 30초, 7센트가량 소요됨.
- 출력 토큰은 무료임.
조정 설정
talk.py상단에서 다음 설정을 조정함.LOOKAHEAD: 기본값 3 — 단어가 다음 n개 단어 안에 들어갈 수 있는지 탐색함.TOP_WORDS: 기본값 30 — 탐색 후 조합 단계로 넘어가는 단어 수임.PHRASE: 기본값 2 — 한 번에 배치하는 최장 구문 길이이며, 값을 3으로 설정하면 라운드당 구문이 25,260개임.TAIL: 기본값 10 — 각 구문 질문에 인용하는 답변의 단어 수이며, Jev의 64k 토큰 문맥 창 안에 요청을 유지함.BATCH: 기본값 1000 — 탐색 요청당 단어 수임.MEMORY: 기본값 10 — 모델이 확인하는 최근 진행 단계 수임.MAX_ROUNDS: 기본값 50 — 최대 라운드 수임.
주의 사항
- 언어 모델보다 단어당 비용이 수백 배 저렴한 모델과 경쟁하기 위한 것이 아니라, 생성하도록 몰아붙였을 때 결정 전용 모델이 어떤 결과를 내는지 살펴보는 장난감임.
- 어휘는 웹 빈도 기반 3,000개 단어 목록으로,
php,llc,faq는 포함하지만purr는 포함하지 않음. 한 줄에 단어 하나씩 적은 파일로 교체할 수 있음. - 어휘가 소문자이며 문장 부호가 없어 답변이 전보처럼 읽힘.
- 되돌리기와 넘기기 동작도 가능하지만, 이 버전 테스트 실행에서 Jev는 둘 중 어느 것도 선택하지 않음.
- 위 답변은 모두 왼쪽에서 오른쪽으로 엄격하게 작성됐으며, 긴 답변의 마지막 단어는 대개
finish보다 근소한 차이로 선택됨.
감사의 말
- TypeSafe와 Python SDK를 기반으로 구축함.
- 850단어 목록은 Ogden의 Basic English임.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요