C.W.K.
Stream
Lesson 01 of 04 · published

모델은 위로 간다

~12 min · model-above, determinism, reliability, architecture

Level 0불 꺼진 심지
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"흔들리는 부분을, 그 실패가 어깨 으쓱이지 크래시가 아닌 곳에 둬. 나머지 전부가 그 한 배치에서 따라와."

다들 모델을 어디 두는가

기본 RAG 모양은 언어 모델을 검색 흐름 에 둬. 질문하면, 시스템이 chunk 몇 개를 검색하고, 프롬프트에 쑤셔 넣고, 모델이 답을 써. 모델이 하중을 받아: 그게 없으면 결과 자체가 없어. 검색과 생성이 한 파이프라인으로 융합되고, 그 파이프라인은 그 안에서 가장 안 믿을, 가장 느린, 가장 재현 안 되는 것 — 모델 — 만큼만 믿을 만하고, 빠르고, 재현 가능해.

Lantern 은 어디 두는가

Lantern 은 선을 한 단계 위에 그어. 엔진의 일은 찾기에서 끝나: 인용 가능한 조각을, 순위 매겨, provenance 와 함께 돌려줘. 그 자체로 완전하고 쓸모 있는 결과야 — 조각을 읽고, 인용하고, UI 에 보여줄 수 있어. 판단 — 그 조각을 답으로 바꾸고, 뜻을 정하고, 산문을 쓰는 것 — 은 API 위에서, 별도 뇌에서, 별도 단계로 일어나. 모델은 여전히 그림 안에 있어. 그냥 경로 안에 없을 뿐이야.

모델이 약한 고리인 이유

세 속성이 언어 모델을 기반으로 의존하기에 틀린 것으로 만들어:

  • 비싸. 모든 호출이 돈이나 GPU 시간을 써. 키 누를 때마다 돌리는 검색은 그걸 감당 못 해.
  • 비결정론적이야. 같은 쿼리가 다른 출력을 낼 수 있어. 매번 다른 답을 주는 기반은 기반이 아냐.
  • 가끔 안 돼. 서버가 꺼지고, rate limit 에 걸리고, 네트워크가 끊겨. 찾기가 모델에 의존하면, 모델이 꺼졌을 때 찾기도 꺼져.

그중 어느 것도 엔지니어링으로 없앨 결함이 아냐 — 그것의 본성이야. 그러니 그에 맞게 배치해.

가장 강력한 부품이 아니라 가장 믿을 부품에 의존해. 인상적인 부분(모델)이 부서지기 쉬운 부분이야. 지루하고, 결정론적이고, 항상 있는 부분들 — 인덱스, 해시, 문자열 매치 — 으로 기반을 짓고, 강력하지만-흔들리는 부분은 위에 앉혀, 거기선 그 부재가 무너뜨리는 대신 경험을 degrade 해.

보상은 믿을 수 있는 기반이야

찾기가 인덱스와 쿼리의 순수 함수가 되면, 하류 전부가 더 튼튼해져. 검색이 싸니까 키 누를 때마다 돌아. 아무것도 주사위를 안 굴리니까 결과가 재현돼. 모델 서버가 리부팅 중인 새벽 3시에도 코퍼스를 쿼리할 수 있어. 그 전부를 모델이 어디 앉는가 에 대한 단 하나의 결정으로 산 거야 — 엔진 안이 아니라, 위에.

Code

경로 안 모델(RAG) vs 경로 위 모델(Lantern)·python
# RAG default: the model is IN the path. No model, no result.
def answer_rag(question: str) -> str:
    chunks = retrieve(question)                 # find
    return model.generate(prompt(question, chunks))  # <-- fused; model is mandatory

# Lantern shape: the engine stops at finding. The model sits ABOVE, optional.
def search(query: str) -> list[Result]:
    return rank(index.match(query))             # pure fn of index + query; no model

# Judgment is a SEPARATE step, in a separate brain, above the API:
def answer_above(question: str) -> str:
    results = search(question)                   # deterministic, always works
    if brain.available():
        return brain.synthesize(question, results)  # nice-to-have
    return render_citations(results)             # graceful fallback: show the slices

External links

Exercise

AI 모델을 부르는, 네가 짓거나 쓴 시스템 아무거나 잡아. 흐름에서 모델이 어디 앉는지 그려. 이제 물어: 지금 모델이 안 되면, 뭐가 여전히 되고 뭐가 완전히 깜깜해져? 깜깜해지는 전부가 모델에 의존하는 거야. 코어가 모델 없이도 작동하게 모델을 '위로' 옮기는 법을 스케치해.
Hint
그 이동은 거의 항상: 모델 아래 레이어가 혼자서 쓸모 있는 걸 돌려주게 만드는 거야(목록, 매치, 조각). 그러면 모델이 결과를 내는 유일한 게 아니라, 이미 작동하는 결과의 향상이 돼.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.