본문 바로가기
C.W.K.
Stream
Lesson 02 of 05 · published

프롬프트 조립: 한 번에 넣기, map-reduce, refine

~22 min · rag, prompts

Level 0Scout
0 XP0/41 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

상황에 따라 고르는 세 가지 방식

1. 한 번에 넣기(기본)

검색한 청크를 프롬프트 하나에 모두 넣고 LLM이 답하게 해. 단순하고 저렴하며 상위 k개 청크가 문맥 창에 여유롭게 들어갈 때 알맞아. 200K토큰 문맥을 가진 Claude라면 많은 앱을 이 방식으로 처리할 수 있어.

2. Map-reduce

각 청크에서 중간 답을 만든 뒤(map), 그 답들을 최종 응답으로 종합해(reduce). 코퍼스가 한 번에 들어가지 않거나 여러 출처를 폭넓게 종합해야 할 때 써.

3. Refine

첫 청크로 초기 답을 만들고 다음 청크를 읽을 때마다 답을 갱신해. 녹취록이나 시계열처럼 순서가 있고, 새 문맥이 이전 답을 폐기하기보다 보완해야 할 때 유용해.

고르는 법

기본은 한 번에 넣기야. 문맥 창을 넘치거나 평가에서 모델이 다섯 번째 이후 청크를 제대로 쓰지 못할 때 map-reduce로 바꿔. 순서가 중요한 콘텐츠에는 refine을 써. 한 앱에 세 방식이 모두 필요한 경우는 드물어.

Code

Map-reduce 개요·python
def rag_map_reduce(question: str, k: int = 20):
    chunks = retrieve(question, k=k)
    intermediates = [
        llm.complete(f'Answer this question using ONLY the chunk below.\n\nQuestion: {question}\n\nChunk: {c["text"]}')
        for c in chunks
    ]
    combined = '\n\n'.join(intermediates)
    final = llm.complete(
        f'Combine these answers into a single coherent response. Discard contradictory or irrelevant pieces.\n\n{combined}'
    )
    return final

External links

Exercise

청크 다섯 개 이상을 종합해야 하는 질문 열 개에 한 번에 넣기와 map-reduce를 각각 적용해. 답변 품질과 총 토큰 비용을 기록하고, 어떤 질문에서 추가 비용을 낼 가치가 있는지 결정해 검색기 코드에 주석으로 남겨.

Progress

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

댓글 0

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

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