짜잘한 개발들
요약
거창한 글을 쓸만한 아이디어가 없어서, 일단 최근의 작은 개발들을 정리해보려고 한다.
아이디어: llama.vim에 character prefix conditioning이 적용되어 있나?
간단히 말해서, llama.vim에 character prefix conditioning이 적용되어 있나 확인해보고, 없으면 한번 구현해볼까… 싶은거다.
뭐 대단한 아이디어는 아니고, 유저의 프롬프트에 맞는 prefix를 여러개 탐색하면서 해당 prefix에서부터 나머지 프롬프트로 시작하는 token들에 대해서만 확률을 계산해보면 될 것 같다는 식인데…
예를 들면,
Blacke
까지 유저가 입력했다면 Blacke
를 모두 tokenize한 다음 LLM 입력에 넣고
다음 token을 예측하는게 naive한 구현이라고 한다면, 거기에 더해서 Black
까지만
tokenize한 다음 LLM 입력에 넣고 e
로 시작하는 다음 token을 예측하고, 또
Blac
까지 tokenize한 다음 ke
로 시작하는 token, 이어서… 여러가지 조합을 함께
예측함으로써 더 자연스러운 token 기반 생성이 가능하지 않겠냐…는게 아이디어다.
다만 이게 얼마나 유용할지에 대한 확신이 없어서… 그냥 남들이 다들 LLM LLM
하니까 어떻게 한다리 걸쳐볼까 하는 마음으로 이걸 해보고 싶은건지 잘 모르겠다.
하여튼 Motivation이 확실하지 않으니 패스;;
매일 한번의 요청을 보내는 python script
venv 없이 python3으로만 돌아가는 무언가를 만들어봤다. 어딘가의 서버에서 까먹을때까지 돌릴 생각.
#%%
import requests
import json
import time
from datetime import datetime, timedelta
url = 'https://superduper.api.com'
body = json.dumps({ 'meh': 'blahblah' })
cookie = 'dumb'
headers = {
'accept': 'application/json, text/plain, */*',
'content-type': 'application/json;charset=UTF-8',
'cookie': cookie,
'user-agent': 'NotUser',
}
#%%
def make_request():
s = requests.Session()
r = s.post(url, headers=headers, data=body)
print(f"Request made at {datetime.now()}: {r.json()}")
def wait_until(target_time):
now = datetime.now()
target = datetime.combine(now.date(), target_time)
if now.time() >= target_time:
target += timedelta(days=1)
wait_seconds = (target - now).total_seconds()
print(f"next trigger: {wait_seconds}")
time.sleep(wait_seconds)
# Keep the script running
while True:
# Wait until 2 PM
wait_until(datetime.strptime("14:00", "%H:%M").time())
# Make the request
make_request()
# Sleep for a minute to avoid multiple executions
time.sleep(60)
# %%
블로그에서 RSS를 만들어내기
애니 자막 블로그에서 다음글을 찾아가면서 이전 화의 자막 포스팅을 찾고 싶은데 쉬운 방법이 없어서, 하나 만들어보려고 한다.
대충 블로그 포스트의 현재 주소와 전에 HTML을 복붙하면 이전화에 해당하는 글의 주소를 추출해내면 되지 않을까? 하는 수준의 아이디어. 어떻게 추출하냐고? RSS selector를 유저가 입력하는 건 하수고, 몇개 수동으로 해본 다음에 LLM에게 보여주고 이걸 학습해서 적당히 다음것도 추측해보라고 할 생각.