Ryotta's Basic

LLM
๐Ÿค– LLM ๊ฒ€์ฆ์™„๋ฃŒ

Semantic Caching Analysis

Semantic Caching ์‹ฌ์ธต ๋ถ„์„

์˜๋ฏธ ๊ธฐ๋ฐ˜ ์‘๋‹ต ์žฌ์‚ฌ์šฉ ยท ์ž„๋ฒ ๋”ฉ ์œ ์‚ฌ๋„ ยท ์ž„๊ณ„๊ฐ’ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ ยท GPTCache ยท ๋‹ค์ธต ์บ์‹œ ยท ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ๊ณผ์˜ ๋Œ€๋น„

์‹œ๋งจํ‹ฑ ์บ์‹ฑ(semantic caching)์€ ์˜๋ฏธ๊ฐ€ ๋น„์Šทํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ์ด์ „์— ์ƒ์„ฑํ•œ ์‘๋‹ต ์ž์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•ด LLM ํ˜ธ์ถœ์„ ์ค„์ด๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ๋ฌธ์ž์—ด์ด ์ผ์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ์กด ์บ์‹œ์™€ ๋‹ฌ๋ฆฌ, ์งˆ๋ฌธ์„ ์ž„๋ฒ ๋”ฉํ•ด ์˜๋ฏธ์  ์œ ์‚ฌ๋„๋กœ ๋งค์นญํ•˜๋ฏ€๋กœ ํ‘œํ˜„๋งŒ ๋‹ค๋ฅธ ๊ฐ™์€ ์งˆ๋ฌธ("ํ™˜๋ถˆ ์ •์ฑ…์ด ๋ญ”๊ฐ€์š”?" vs "์–ด๋–ป๊ฒŒ ๋ฐ˜ํ’ˆํ•˜๋‚˜์š”?")์„ ํ•œ ๋ฒˆ์˜ ์ƒ์„ฑ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ์ด ์ •ํ™•ํžˆ ๊ฐ™์€ ํ† ํฐ์˜ KV๋ฅผ ๋ฌด์†์‹ค ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ, ์‹œ๋งจํ‹ฑ ์บ์‹ฑ์€ ๊ทผ์‚ฌ์ ์ด๋ผ ํ‹€๋ฆฐ ๋‹ต์„ ๋ฐ˜ํ™˜ํ•  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž„๊ณ„๊ฐ’ ๊ด€๋ฆฌ, ๋ฌดํšจํ™”, ์ปจํ…์ŠคํŠธ ๋ถ„๋ฆฌ๊ฐ€ ํ•ต์‹ฌ์ด๋ฉฐ, FAQยท๊ณ ๊ฐ์ง€์›ยท๋ฐ˜๋ณต ์งˆ์˜๊ฐ€ ๋งŽ์€ ์›Œํฌ๋กœ๋“œ์—์„œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

1. ํ•ต์‹ฌ ์•„์ด๋””์–ด - ์˜๋ฏธ๊ฐ€ ๋น„์Šทํ•œ ์งˆ๋ฌธ์˜ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉ

ํ”„๋กœ๋•์…˜ LLM ์„œ๋น„์Šค์—์„œ๋Š” ๊ฐ™์€ ์˜๋„์˜ ์งˆ๋ฌธ์ด ํ‘œํ˜„๋งŒ ๋ฐ”๋€Œ์–ด ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค. ์ˆœ์ง„ํ•˜๊ฒŒ๋Š” ๋งค๋ฒˆ LLM์„ ํ˜ธ์ถœํ•ด ๊ฐ™์€ ๋‹ต์„ ๋‹ค์‹œ ์ƒ์„ฑํ•˜์ง€๋งŒ, ๊ทธ๊ฒƒ์€ ๋‚ญ๋น„์ž…๋‹ˆ๋‹ค. ์‹œ๋งจํ‹ฑ ์บ์‹ฑ์€ ์งˆ๋ฌธ์˜ ์˜๋ฏธ๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋น„์Šทํ•˜๋ฉด ์ €์žฅ๋œ ์‘๋‹ต์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

llm_0050_semantic_caching_analysis

๊ทธ๋ฆผ 1. ๊ฐ™์€ ์˜๋„ยท๋‹ค๋ฅธ ํ‘œํ˜„ โ†’ ๊ฐ™์€ ๋‹ต, ๊ทธ๋ฆฌ๊ณ  ์ž„๋ฒ ๋”ฉโ†’์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰โ†’hit/miss ํ๋ฆ„

์‹œ๋งจํ‹ฑ ์บ์‹ฑ๊ณผ ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ

  • ๋™์ž‘ - ์งˆ๋ฌธ์„ ์ž„๋ฒ ๋”ฉํ•ด ์บ์‹œ๋œ ์งˆ๋ฌธ ์ž„๋ฒ ๋”ฉ๋“ค๊ณผ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๋ฅผ ๋น„๊ตํ•˜๊ณ , ์ž„๊ณ„๊ฐ’์„ ๋„˜์œผ๋ฉด ๊ทธ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์บ์‹œ ํžˆํŠธ ์‹œ LLM์„ ์•„์˜ˆ ํ˜ธ์ถœํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ง€์—ฐ๊ณผ ๋น„์šฉ์„ ํ•จ๊ป˜ ์ค„์ž…๋‹ˆ๋‹ค.

  • ์ธํ”„๋ผ - RAG์™€ ๊ฐ™์€ ๊ตฌ์„ฑ์š”์†Œ(์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ + ๋ฒกํ„ฐ DB + ANN ๊ฒ€์ƒ‰)๋ฅผ ์”๋‹ˆ๋‹ค. GPTCache๋„ ์ž„๋ฒ ๋”ฉ ํ•จ์ˆ˜, ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ, ์œ ์‚ฌ๋„ ํ‰๊ฐ€ ๋ชจ๋“ˆ์„ ์กฐํ•ฉํ•ด ์ด๋Ÿฐ ํ๋ฆ„์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ๊ณผ์˜ ๊ฒฐ์ •์  ์ฐจ์ด - ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ์€ ์ •ํ™•ํžˆ ๊ฐ™์€ ํ† ํฐ์˜ KV๋ฅผ ์žฌ์‚ฌ์šฉํ•ด ๋ฌด์†์‹ค์ด๊ณ  KV ๋ ˆ๋ฒจ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋งจํ‹ฑ ์บ์‹ฑ์€ ์˜๋ฏธ๊ฐ€ ๋น„์Šทํ•œ ์งˆ๋ฌธ์˜ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•ด ๊ทผ์‚ฌ์ ์ด๊ณ  ์‘๋‹ต ๋ ˆ๋ฒจ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ์‹ ๋งค์นญ ๊ธฐ์ค€ ์žฌ์‚ฌ์šฉ ๋Œ€์ƒ ์žฅ์  ์ฃผ์˜์ 
์ •ํ™• ๋ฌธ์ž์—ด ์บ์‹œ ์ž…๋ ฅ ๋ฌธ์ž์—ด ๋™์ผ ์‘๋‹ต ๋‹จ์ˆœํ•˜๊ณ  ์•ˆ์ „ํ•จ ํ‘œํ˜„์ด ์กฐ๊ธˆ๋งŒ ๋‹ฌ๋ผ๋„ ๋ฏธ์Šค
ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ ๋™์ผ ํ† ํฐ ํ”„๋ฆฌํ”ฝ์Šค KV ๋ฌด์†์‹ค, TTFT ์ ˆ๊ฐ ํ•œ ํ† ํฐ๋งŒ ๋‹ฌ๋ผ๋„ ๋ฏธ์Šค
์‹œ๋งจํ‹ฑ ์บ์‹ฑ ์ž„๋ฒ ๋”ฉ ์œ ์‚ฌ๋„ ์‘๋‹ต ํ‘œํ˜„์ด ๋‹ฌ๋ผ๋„ ์žฌ์‚ฌ์šฉ ์˜คํƒ ์œ„ํ—˜, ๋ฌดํšจํ™” ํ•„์š”

2. ๋™์ž‘ ๋ฉ”์ปค๋‹ˆ์ฆ˜ - ๊ตฌ์„ฑ์š”์†Œ์™€ hit/miss ์‚ฌ์ดํด

์‹œ๋งจํ‹ฑ ์บ์‹œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ LLM ์‚ฌ์ด์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์งˆ๋ฌธ์ด ๋จผ์ € ์บ์‹œ๋ฅผ ๊ฑฐ์น˜๊ณ , ์ถฉ๋ถ„ํžˆ ์œ ์‚ฌํ•œ ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์—†์œผ๋ฉด LLM์„ ํ˜ธ์ถœํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹œ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

Semantic Caching Analysis

๊ทธ๋ฆผ 2. ์บ์‹œ ๋ฏธ์Šค/ํžˆํŠธ ์‚ฌ์ดํด๊ณผ ๋„ค ๊ฐ€์ง€ ๊ตฌ์„ฑ์š”์†Œ

์‹œ๋งจํ‹ฑ ์บ์‹œ ์กฐํšŒ (GPTCache ๊ฐœ๋…)

def query(q):
    e = embed(q)
    hit, score = vector_store.search(e)
    if score >= tau:
        return hit.response
    r = llm(q)
    vector_store.add(e, r)
    return r

๋„ค ๊ฐ€์ง€ ๊ตฌ์„ฑ์š”์†Œ

  • ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ - ์งˆ๋ฌธ์„ ์˜๋ฏธ๋ฅผ ๋‹ด์€ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜๋ฏธ๋ฅผ ์ œ๋Œ€๋กœ ๋ชป ์žก์œผ๋ฉด ๊ฒ€์ƒ‰์ด ๋…ธ์ด์ฆˆ๊ฐ€ ๋˜์–ด ์—‰๋šฑํ•œ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ, ์บ์‹œ ํ’ˆ์งˆ์„ ์ขŒ์šฐํ•˜๋Š” ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

  • ๋ฒกํ„ฐ ์ €์žฅ์†Œ - ์ž„๋ฒ ๋”ฉ์„ ๋ณด๊ด€ํ•˜๊ณ  ANN(HNSW ๋“ฑ)์œผ๋กœ ๋น ๋ฅธ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ์œ ์‚ฌ๋„ ํ‰๊ฐ€์™€ ์ž„๊ณ„๊ฐ’ - ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๊ฐ€ ์ž„๊ณ„๊ฐ’ ฯ„ ์ด์ƒ์ด๋ฉด ํžˆํŠธ๋กœ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค. GPTCache๋Š” ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜, ๋ชจ๋ธ ๊ธฐ๋ฐ˜, ์ •ํ™• ์ผ์น˜ํ˜• ์œ ์‚ฌ๋„ ํ‰๊ฐ€๋ฅผ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์บ์‹œ ์ €์žฅ์†Œ - ์งˆ๋ฌธ-์‘๋‹ต ์Œ์„ ๋ณด๊ด€ํ•˜๊ณ (Redis ๋“ฑ) ์ถ•์ถœ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. GPTCache์™€ Redis ๊ธฐ๋ฐ˜ ์‹œ๋งจํ‹ฑ ์บ์‹œ๊ฐ€ ๋Œ€ํ‘œ์ ์ด๋ฉฐ, ๋ชจ๋“ˆ์‹์ด๋ผ ๊ฐ ์š”์†Œ๋ฅผ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ ์—ญํ• 
์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์งˆ๋ฌธ์„ ์˜๋ฏธ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜
๋ฒกํ„ฐ ์ €์žฅ์†Œ ์ž„๋ฒ ๋”ฉ์„ ๋ณด๊ด€ํ•˜๊ณ  ANN ๊ฒ€์ƒ‰ ์ˆ˜ํ–‰
์œ ์‚ฌ๋„ ํ‰๊ฐ€ ์งˆ๋ฌธ๊ณผ ์บ์‹œ ํ•ญ๋ชฉ์˜ ๊ฑฐ๋ฆฌ/์œ ์‚ฌ๋„ ํŒ์ •
์บ์‹œ ์ €์žฅ์†Œ ์งˆ๋ฌธ-์‘๋‹ต ์Œ๊ณผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณด๊ด€

3. ํ•ต์‹ฌ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ - ์œ ์‚ฌ๋„ ์ž„๊ณ„๊ฐ’

์‹œ๋งจํ‹ฑ ์บ์‹ฑ์˜ ๋ชจ๋“  ๊ฒƒ์€ ์œ ์‚ฌ๋„ ์ž„๊ณ„๊ฐ’ ฯ„๋กœ ๊ท€๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด ์ ˆ๊ฐ๊ณผ ์œ„ํ—˜ ์‚ฌ์ด์˜ ์Šฌ๋ผ์ด๋”์ด๋ฉฐ, ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ๊ณผ ๊ฐ€์žฅ ๋‹ค๋ฅธ ์ง€์ ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. GPTCache ์†Œ๊ฐœ ์ž๋ฃŒ๋„ hit ratio, latency, recall์„ ํ•จ๊ป˜ ๋ณด๋ฉฐ ์ด ๊ท ํ˜•์„ ๋งž์ถฅ๋‹ˆ๋‹ค.

Semantic Caching Analysis

๊ทธ๋ฆผ 3. ์ž„๊ณ„๊ฐ’ ์Šฌ๋ผ์ด๋”, ์˜คํƒ ์œ„ํ—˜, ์ •๋ฐ€๋„ vs ์žฌํ˜„์œจ

์ž„๊ณ„๊ฐ’์˜ ์–‘๋ฉด

  • ฯ„๊ฐ€ ๋‚ฎ์œผ๋ฉด - hit์œจ๊ณผ ๋น„์šฉ ์ ˆ๊ฐ์€ ์˜ฌ๋ผ๊ฐ€์ง€๋งŒ, ์˜๋ฏธ๋งŒ ๋น„์Šทํ•˜๊ณ  ๋‹ต์€ ๋‹ฌ๋ผ์•ผ ํ•  ์งˆ๋ฌธ์— ๊ฐ™์€ ๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์˜คํƒ(false positive)์ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.

  • ฯ„๊ฐ€ ๋†’์œผ๋ฉด - ์ •๋ฐ€๋„(์•ˆ์ „)๋Š” ์˜ฌ๋ผ๊ฐ€์ง€๋งŒ ํŒจ๋Ÿฌํ”„๋ ˆ์ด์ฆˆ๋ฅผ ๋†“์ณ hit์œจ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค(false negative, ์‚ฌ์‹ค์ƒ ์ •ํ™• ์ผ์น˜์— ๊ทผ์ ‘).

  • ์˜คํƒ์ด ๊ฐ€์žฅ ์น˜๋ช…์  - ์‚ฌ์šฉ์ž๋Š” 'ํ™˜๋ถˆ ์ •์ฑ…'๊ณผ 'ํ™˜๋ถˆ ์†Œ์š” ๊ธฐ๊ฐ„'์— ๋‹ค๋ฅธ ๋‹ต์„ ๊ธฐ๋Œ€ํ•˜๋ฏ€๋กœ, ํ‹€๋ฆฐ ๋‹ต์ด ๋‚˜๊ฐ€๋ฉด ๋ฐ”๋กœ ์•Œ์•„์ฑ•๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ณ ์œ„ํ—˜ FAQ๋Š” ์ •๋ฐ€๋„๋ฅผ, ๋ฏธ์Šค๊ฐ€ ๋‹จ์ง€ ๋น„์šฉ์ธ ๊ฒ€์ƒ‰ํ˜• ์งˆ์˜๋Š” ์žฌํ˜„์œจ์„ ๋” ์ค‘์‹œํ•ฉ๋‹ˆ๋‹ค.

4. ํ•œ๊ณ„์™€ ์šด์˜ - ๋ฌดํšจํ™”ยท์ปจํ…์ŠคํŠธยท๋“œ๋ฆฌํ”„ํŠธ

์‹œ๋งจํ‹ฑ ์บ์‹œ๋Š” ๊ฒฐ์ •์  ์ถœ๋ ฅ์ด ์•„๋‹ˆ๋ผ ๋ชจ๋ธ์ด ์ƒ์„ฑํ•œ ๋‹ต์„ ์ €์žฅํ•˜๋ฏ€๋กœ, ์‹œ๊ฐ„ยท๋งฅ๋ฝ์— ๋”ฐ๋ผ ์œ ํšจ์„ฑ์ด ๋ณ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ '์„ค์ •ํ•˜๊ณ  ์žŠ๋Š”' ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ ์ง€์†์ ์ธ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Semantic Caching Analysis

๊ทธ๋ฆผ 4. ๋„ค ๊ฐ€์ง€ ์‹คํŒจ ๋ชจ๋“œ์™€ ๋ฌดํšจํ™” ์ „๋žต

์‹คํŒจ ๋ชจ๋“œ

์‹คํŒจ ๋ชจ๋“œ ์„ค๋ช…
์˜คํƒ(false positive) ์˜๋ฏธ๋งŒ ๋น„์Šทํ•œ ์งˆ๋ฌธ์— ๊ฐ™์€ ๋‹ต์„ ๋ฐ˜ํ™˜ํ•ด ์˜ค๋‹ต์ด ๋‚˜๊ฐ
staleness(๋…ธํ›„ํ™”) ์„ธ์ƒ์ด ๋ฐ”๋€Œ์–ด ์บ์‹œ๋œ ๋‹ต์ด ๋” ์ด์ƒ ๋งž์ง€ ์•Š์Œ
์ปจํ…์ŠคํŠธยท๊ฐœ์ธํ™” ๊ฐ™์€ ์งˆ๋ฌธ๋„ ์‚ฌ์šฉ์žยท์„ธ์…˜ยท๋งฅ๋ฝ์— ๋”ฐ๋ผ ๋‹ต์ด ๋‹ฌ๋ผ์•ผ ํ•จ
์ž„๋ฒ ๋”ฉ ๋“œ๋ฆฌํ”„ํŠธ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๊ฐฑ์‹  ์‹œ ์œ ์‚ฌ๋„ ์ ์ˆ˜๊ฐ€ ๋ฐ”๋€Œ์–ด hit์œจ์ด ํ”๋“ค๋ฆผ

๋ฌดํšจํ™” ์ „๋žต

  • TTL(์‹œ๊ฐ„ ๋งŒ๋ฃŒ) - ์ฝ˜ํ…์ธ  ์ˆ˜๋ช…์— ๋งž์ถฐ ์ฐจ๋“ฑ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(๋‰ด์Šค ์ˆ˜์‹œ๊ฐ„, FAQ ์ˆ˜์ผ ๋“ฑ).

  • ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ - ์›๋ณธ ์ฝ˜ํ…์ธ ๊ฐ€ ๊ฐฑ์‹ ๋˜๋ฉด ๊ด€๋ จ ์บ์‹œ๋ฅผ ๋ฌดํšจํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • staleness ํƒ์ง€ - ์ฃผ๊ธฐ์ ์œผ๋กœ ์žฌ์งˆ์˜ํ•ด ์บ์‹œ๋œ ๋‹ต์˜ ์ •ํ™•์„ฑ์„ ์ ๊ฒ€ํ•ฉ๋‹ˆ๋‹ค.

  • ์Šค์ฝ”ํ”„ ๋ถ„๋ฆฌ - ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธยท๋ชจ๋ธยท์‚ฌ์šฉ์ž ์œ ํ˜•๋ณ„๋กœ ์บ์‹œ ๋ฒ„ํ‚ท์„ ๋‚˜๋ˆ  ์ž˜๋ชป๋œ ๊ต์ฐจ ๋งค์นญ์„ ๋ง‰์Šต๋‹ˆ๋‹ค. ํ™•์‹ ์ด ๋‚ฎ์€ ํ•ญ๋ชฉ์€ ์บ์‹œํ•˜์ง€ ์•Š๊ณ  LLM์„ ํ˜ธ์ถœํ•ด ์šฐ์•„ํ•œ ์ €ํ•˜๋ฅผ ํƒํ•ฉ๋‹ˆ๋‹ค.

5. ๋‹ค์ธต ์บ์‹œ์—์„œ์˜ ์œ„์น˜์™€ ํšจ๊ณผ

Semantic Caching Analysis

๊ทธ๋ฆผ 5. ๋‹ค์ธต ์บ์‹œ(์ •ํ™• ํ•ด์‹œโ†’์‹œ๋งจํ‹ฑโ†’ํ”„๋ฆฌํ”ฝ์Šคโ†’์ถ”๋ก )์™€ ๋ณด๊ณ ๋œ ํšจ๊ณผ

๋‹ค์ธต ์บ์‹œ์—์„œ์˜ ์œ„์น˜

ํ”„๋กœ๋•์…˜ ์„œ๋น™์€ ์—ฌ๋Ÿฌ ์บ์‹œ ๊ณ„์ธต์„ ๋‘ก๋‹ˆ๋‹ค. ์š”์ฒญ์€ ์ •ํ™• ํ•ด์‹œ ๋งค์นญ(๋ฐ”์ดํŠธ ๋™์ผ) โ†’ ์‹œ๋งจํ‹ฑ ์บ์‹œ(์˜๋ฏธ ์œ ์‚ฌยท์‘๋‹ต ์žฌ์‚ฌ์šฉ) โ†’ ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹œ(KV ์žฌ์‚ฌ์šฉ) โ†’ ์ „์ฒด ์ถ”๋ก ์˜ ์ˆœ์œผ๋กœ ๊ฑฐ์น˜๋ฉฐ, ์œ„ ๊ณ„์ธต์—์„œ ๋ง‰์„์ˆ˜๋ก ์ ˆ๊ฐ์ด ํฝ๋‹ˆ๋‹ค. ์‹œ๋งจํ‹ฑ ์บ์‹ฑ๊ณผ ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ์€ ์ง๊ตยท์ƒ๋ณด์ ์ด์–ด์„œ, ํ•จ๊ป˜ ์Œ“์œผ๋ฉด ๋ฐ˜๋ณต ํŠธ๋ž˜ํ”ฝ์„ ๋‹จ๊ณ„์ ์œผ๋กœ ํก์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

๊ณ„์ธต ๋ง‰๋Š” ๋Œ€์ƒ ํšจ๊ณผ
์ •ํ™• ํ•ด์‹œ ์™„์ „ ๋™์ผ ์š”์ฒญ ์‘๋‹ต์„ ์ฆ‰์‹œ ์žฌ์‚ฌ์šฉ
์‹œ๋งจํ‹ฑ ์บ์‹œ ์˜๋ฏธ ์œ ์‚ฌ ์š”์ฒญ LLM ํ˜ธ์ถœ ์ž์ฒด๋ฅผ ์ƒ๋žต
ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹œ ๋™์ผ ํ”„๋ฆฌํ”ฝ์Šค KV ์žฌ์‚ฌ์šฉ
์ „์ฒด ์ถ”๋ก  ์ƒˆ๋กœ์šด ์š”์ฒญ ์ •์ƒ ์ƒ์„ฑ

๋ณด๊ณ ๋œ ํšจ๊ณผ

์ถœ์ฒ˜ ํšจ๊ณผ
GPTCache README LLM API ๋น„์šฉ์„ 10x ์ค„์ด๊ณ  ์†๋„๋ฅผ 100x ๋†’์ด๋Š” ๋ชฉํ‘œ๋ฅผ ์ œ์‹œ
MeanCache: User-Centric Semantic Caching for LLM Web Services contextual query์—์„œ F-score +17%, precision +20%, storage -83%, decision time -11%

6. ์žฅ๋‹จ์ 

์žฅ์ 

  • ๋ฐ˜๋ณต ์งˆ์˜๊ฐ€ ๋งŽ์€ FAQ, ๊ณ ๊ฐ์ง€์›, ๋‚ด๋ถ€ ์ง€์‹ ๊ฒ€์ƒ‰์—์„œ LLM ํ˜ธ์ถœ ์ž์ฒด๋ฅผ ์ƒ๋žตํ•ด ๋น„์šฉ๊ณผ ์ง€์—ฐ์„ ํ•จ๊ป˜ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ •ํ™• ๋ฌธ์ž์—ด ์บ์‹œ๋ณด๋‹ค hit ๋ฒ”์œ„๊ฐ€ ๋„“์–ด, ํ‘œํ˜„์ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅธ ํŒจ๋Ÿฌํ”„๋ ˆ์ด์ฆˆ ์š”์ฒญ๋„ ํ•œ ๋ฒˆ์˜ ์‘๋‹ต์œผ๋กœ ํก์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ž„๋ฒ ๋”ฉ, ๋ฒกํ„ฐ ์ €์žฅ์†Œ, Redis ๊ฐ™์€ ์บ์‹œ ์ €์žฅ์†Œ๋ฅผ ์กฐํ•ฉํ•˜๋ฏ€๋กœ RAG ์ธํ”„๋ผ๋ฅผ ์ด๋ฏธ ์šด์˜ํ•˜๋Š” ํŒ€์€ ๊ธฐ์กด ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

๋‹จ์ 

  • ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ๊ณผ ๋‹ฌ๋ฆฌ ๊ทผ์‚ฌ์  ํŒ์ •์ด๋ฏ€๋กœ false positive๊ฐ€ ๋‚˜๋ฉด ์•„์˜ˆ ์ž˜๋ชป๋œ ๋‹ต์„ ๊ทธ๋Œ€๋กœ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • TTL, ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋ฌดํšจํ™”, ์‚ฌ์šฉ์ž/์„ธ์…˜ ์Šค์ฝ”ํ”„ ๋ถ„๋ฆฌ, ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ๋ฒ„์ „ ๊ด€๋ฆฌ ๊ฐ™์€ ์šด์˜ ๊ทœ์น™์ด ์—†์œผ๋ฉด ํ’ˆ์งˆ์ด ๋น ๋ฅด๊ฒŒ ํ”๋“ค๋ฆฝ๋‹ˆ๋‹ค.

  • ๋ฏธ์Šค๊ฐ€ ๋‚˜๋”๋ผ๋„ ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ๊ณผ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ์˜ค๋ฒ„ํ—ค๋“œ๋Š” ๋‚จ์œผ๋ฏ€๋กœ, ๋ฐ˜๋ณต์„ฑ์ด ๋‚ฎ์€ ์›Œํฌ๋กœ๋“œ์—์„œ๋Š” ์ด๋“์ด ์ž‘์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7. ๊ด€๋ จ ๊ธฐ์ˆ 

์ž๋ฃŒ ํ•ต์‹ฌ
Prefix Caching Analysis ๋ฌด์†์‹ค KV ์žฌ์‚ฌ์šฉ๊ณผ์˜ ๋Œ€๋น„
RAG Analysis ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ์‘๋‹ต ํ๋ฆ„, ์‹œ๋งจํ‹ฑ ์บ์‹œ์™€ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅ
GPTCache ์ž„๋ฒ ๋”ฉ, ๋ฒกํ„ฐ ์ €์žฅ์†Œ, ์œ ์‚ฌ๋„ ํ‰๊ฐ€, ์บ์‹œ ์ €์žฅ์†Œ๋ฅผ ๋ชจ๋“ˆ์‹์œผ๋กœ ์กฐํ•ฉํ•˜๋Š” ๋Œ€ํ‘œ ๊ตฌํ˜„
Redis LangCache Redis ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ์‹œ๋งจํ‹ฑ ์บ์‹œ ๊ตฌ์„ฑ ์˜ˆ์‹œ
MeanCache ์‚ฌ์šฉ์ž ์ค‘์‹ฌ ์‹œ๋งจํ‹ฑ ์บ์‹œ, ์ปจํ…์ŠคํŠธ ์ฒด์ธ๊ณผ federated learning ํ™œ์šฉ
  • GPTCache README: https://github.com/zilliztech/GPTCache
  • Redis LangCache overview: https://redis.io/blog/what-is-semantic-caching/
  • MeanCache paper: https://arxiv.org/abs/2403.02694

8. ํ•ต์‹ฌ ์ •๋ฆฌ

์‹œ๋งจํ‹ฑ ์บ์‹ฑ์€ ์˜๋ฏธ๊ฐ€ ๋น„์Šทํ•œ ์งˆ๋ฌธ์˜ ์‘๋‹ต์„ ์žฌ์‚ฌ์šฉํ•ด LLM ํ˜ธ์ถœ์„ ์ค„์ด๋Š” ๊ทผ์‚ฌ์  ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. GPTCache์ฒ˜๋Ÿผ ์ž„๋ฒ ๋”ฉ, ๋ฒกํ„ฐ ์ €์žฅ์†Œ, ์œ ์‚ฌ๋„ ํ‰๊ฐ€, ์บ์‹œ ์ €์žฅ์†Œ๋ฅผ ์กฐํ•ฉํ•ด ๋™์ž‘ํ•˜๋ฉฐ, ํ•ต์‹ฌ ๋‹ค์ด์–ผ์€ ์œ ์‚ฌ๋„ ์ž„๊ณ„๊ฐ’ ฯ„์ž…๋‹ˆ๋‹ค.

ํ”„๋ฆฌํ”ฝ์Šค ์บ์‹ฑ๊ณผ๋Š” ์‘๋‹ต vs KV, ๊ทผ์‚ฌ vs ๋ฌด์†์‹ค๋กœ ๋‹ค๋ฅด์ง€๋งŒ ๋ฐ˜๋ณต ํŠธ๋ž˜ํ”ฝ์„ ๋‹จ๊ณ„์ ์œผ๋กœ ํก์ˆ˜ํ•œ๋‹ค๋Š” ์ ์—์„œ ์ƒ๋ณด์ ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์˜ค๋‹ต๊ณผ ๋…ธํ›„ํ™”, ๊ฐœ์ธํ™” ์ถฉ๋Œ์„ ๋ง‰๊ธฐ ์œ„ํ•ด TTL, ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋ฌดํšจํ™”, ์Šค์ฝ”ํ”„ ๋ถ„๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.