Post

LLM Course - Let's start to make Simple LLM!

Step-by-Step Guide to Building LLM Apps Basic to Advanced Components Created


 gantt
  title Gant Chart to represent LLM Study
  Simple LLM App ( Prompt + LLM ) :crit, a, 2024-05-08, 2w
  Chaining Prompt ( Prompt Chains + LLM ) :active, b, after a, 2w
  Adding External Knowledge Base-RAG :c, after b, 2w
  Adding Memory to LLMs : d, after c, 2w
  Using External Tool with LLM : e, after d, 2w
  LLMs Making Decision-Agent : f, after e, 2w
  Fine-Tuning LLM : crit,g, after f, 2w
  • Step.1
  • Step.2
    • Chaining Prompt ( Prompt Chains + LLM )
  • Step.3
    • Adding External Knowledge Base : RAG ( Retrieval Augmented Generation)
      • 1
        
        ๋‹ต๋ณ€์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋จผ์ € ์ฐพ์•„์„œ LLM์—๊ฒŒ ์งˆ๋ฌธ๊ณผ ํ•จ๊ป˜ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ์‹
        
      • ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ๋ฌธ์„œ๋‚˜ ์„œ๋น„์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ์ •๋ณด์— ๊ธฐ๋ฐ˜ํ•ด์„œ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. RAG
  • Step.4
    • Adding Memory to LLMs
  • Step.5
    • Using External Tool with LLM
  • Step.6
    • LLMs Making Decision : Agent
      • ์—์ด์ „ํŠธ๋Š” ํˆด, ์‹คํ–‰ ์ฝ”๋“œ, ์ž„๋ฒ ๋”ฉ, ๋ฒกํ„ฐ ์ €์žฅ์†Œ์˜ ์กฐํ•ฉ์„ ํ†ตํ•ด ๋Œ€ํ™”ํ˜• LLM์˜ ๊ฐœ๋…์„ ํ™•์žฅํ•œ๋‹ค. ์ฆ‰, ์—์ด์ „ํŠธ๋Š” RAG์— ๋ถ€๊ฐ€์ ์ธ ๋‹จ๊ณ„๋ฅผ ๋”ํ•œ ๊ฒƒ
      • ์—์ด์ „ํŠธ๋Š” LLM์„ ํŠน์ • ๋„๋ฉ”์ธ์— ์ „๋ฌธํ™”ํ•˜๊ณ  LLM์˜ ์ถœ๋ ฅ์„ ๋งž์ถค ์„ค์ •ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. LLM๊ณผ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ์„œ๋น„์Šค์˜ ํ†ตํ•ฉ์„ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ, ํ”„๋ ˆ์ž„์›Œํฌ, ๋ชจ๋ธ์ด ์žˆ๋‹ค.
  • Step.7
    • Fine-Tuning LLM

Understand the overall structure of the project

Workflow for Concept

How to consist of LLM

๋ชจ๋ธ ์„ ํƒ

  • LLM์€ ๊ฑฐ์˜ ๋งค์ผ ๊ฐœ์„ ๋˜๋ฏ€๋กœ ๊ธˆ๋ฐฉ ๋’ค์ณ์ง€๊ฑฐ๋‚˜ ๊ตฌ์‹์ด ๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์— ๋ฌถ์ด์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€์ฒ˜ํ•˜๋ ค๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒค๋”์—์„œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ชจ๋ธ์„ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค
  • ์ง€์†์ ์ธ ์ถ”๋ก  ๋น„์šฉ๋„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ์„œ๋น„์Šค๋กœ ์ œ๊ณต๋˜๋Š” ๋ชจ๋ธ์„ ์„ ํƒํ•˜๋ฉด ์ถ”๋ก ๋ณ„๋กœ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ํŠธ๋ž˜ํ”ฝ์ด ๋‚ฎ์„ ๊ฒฝ์šฐ ๋น„์šฉ์ด ๋œ ๋“ ๋‹ค. ํ”Œ๋žซํผํ˜• ๋ชจ๋ธ์„ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๋น„์ €๋‹ํ•˜๋Š” VM์— ๋Œ€ํ•ด ์›” ๊ณ ์ •๋น„๊ฐ€ ์ง€์ถœ๋œ๋‹ค.
  • ํ˜„์žฌ ์—„๊ฒฉํ•œ ์˜คํ”ˆ์†Œ์Šค์ด๋ฉด์„œ ์ข‹์€ ์ƒ์„ฑํ˜• AI ๋ชจ๋ธ์€ ๋ฉ”ํƒ€ ๋ผ๋งˆ(Llama) ๋ชจ๋ธ์„ ํฌํ•จํ•ด ์†Œ์ˆ˜

ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง

  • ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์€ LLM์„ ๋งž์ถค ์„ค์ •ํ•˜๋Š” ๊ฐ€์žฅ ์‰ฝ๊ณ  ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์˜คํ”ˆAI๊ฐ€ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์„ ์œ„ํ•ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ œ์•ˆํ•˜๋Š” โ€œ๋ช…ํ™•ํ•œ ์ง€์นจ์„ ์“ธ ๊ฒƒโ€๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ธ๋ถ€์ ์ธ ์ „์ˆ ์€ ์ด์ฒ˜๋Ÿผ ๋ถ„๋ช…ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง ํฌ์ธํ„ฐ

  • ๋ชจ๋ธ์ด ์›ํ•˜๋Š” ๊ธธ์ด์˜ ๋‹ต์„ ์ œ๊ณตํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ง€์‹œํ•˜๊ณ , ์‚ฌ์‹ค์— ๊ทผ๊ฑฐํ•˜๊ณ  ๋ฉ‹๋Œ€๋กœ ๋ง๋ถ™์ด์ง€ ๋ง๋„๋ก ๋ช…์‹œ์ ์œผ๋กœ ์ง€์‹œํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ด๋ฅผ ์œ„ํ•œ ์œ ์šฉํ•œ ํ”„๋กฌํ”„ํŠธ ์ค‘ ํ•˜๋‚˜๋Š”(ํ•ญ์ƒ ํ†ตํ•˜์ง€๋Š” ์•Š์ง€๋งŒ) โ€œ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ด์„œ ๋‹ตํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๊ทธ๋ ‡๋‹ค๊ณ  ๋ง ํ•ดโ€๋ผ๋Š” ๊ฒƒ์ด๋‹ค.
  • ํ”„๋กฌํ”„ํŠธ/์‘๋‹ต ์Œ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ ๊ฑฐ์˜ ํ•ญ์ƒ ๋„์›€์ด ๋œ๋‹ค.

์‹œ์Šคํ…œ ๋ฉ”์‹œ์ง€

  • ์‹œ์Šคํ…œ ๋ฉ”์‹œ์ง€ ๊ฐ€์ด๋“œ(ํ•„ํ„ฐ) ์˜ˆ์ œ
    • ๋„ˆ๋Š” ์…ฐ์ต์Šคํ”ผ์–ด ์Šคํƒ€์ผ๋กœ ๋งํ•˜๋Š” ์…ฐ์ต์Šคํ”ผ์–ด ์ž‘๋ฌธ ๋„์šฐ๋ฏธ๋‹ค.
    • ๋„ˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์˜› ๋‹จ์–ด๋ฅผ ํฌํ•จํ•œ ์œŒ๋ฆฌ์—„ ์…ฐ์ต์Šคํ”ผ์–ด์˜ ๊ธ€์“ฐ๊ธฐ ์Šคํƒ€์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด์•ผ๊ธฐ, ์‹œ, ๋…ธ๋ž˜์™€ ๊ฐ™์€ ์ฐฝ์˜์ ์ธ ์•„์ด๋””์–ด์™€ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค.
  • ํญ์–ธ์„ ์š”์ฒญํ•œ๋‹ค ํ•ด๋„ ๋ชจ๋ธ(๋˜๋Š” ํ”Œ๋žซํผ)์— ๋‚ด์žฅ๋œ ํ•„ํ„ฐ๊ฐ€ ์…ฐ์ต์Šคํ”ผ์–ด์˜ ์Šคํƒ€์ผ ์ค‘์—์„œ๋„ ๊ฑฐ์นœ ์š•๋ณด๋‹ค๋Š” ์ข‹์€ ๋งํˆฌ๋ฅผ ์ƒ์‚ฐํ•˜๋ ค ์‹œ๋„ํ•˜๊ธฐ ๋•Œ๋ฌธ.

ํ”„๋กฌํ”„ํŠธ์— ๋ฌธ์„œ ์‚ฌ์šฉํ•˜๊ธฐ

  • ๋˜ ๋‹ค๋ฅธ ์œ ์šฉํ•œ ์ „๋žต์€ ๋ฌธ์„œ๋ฅผ ํ”„๋กฌํ”„ํŠธ์˜ ์ผ๋ถ€๋กœ ์ œ๊ณตํ•˜๊ณ  ๋ชจ๋ธ์— ๊ทธ ๋ฌธ์„œ๋ฅผ ๊ทผ๊ฑฐ๋กœ ๋‹ต์„ ์ž‘์„ฑํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ผ๋ถ€ ๋ชจ๋ธ์€ ๋ฌธ์„œ์˜ URL์—์„œ ์›น ํŽ˜์ด์ง€๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ณ , ์ผ๋ถ€๋Š” ํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•  ๊ฒƒ์„ ์š”๊ตฌํ•œ๋‹ค. ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ง€์นจ๊ณผ ๋ชจ๋ธ์ด ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋ ค๋Š” ๋ฌธ์„œ์˜ ํ…์ŠคํŠธ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•˜๋ฉฐ, ์š”์•ฝ๊ณผ ๊ฐœ์ฒด ์ถ”์ถœ ์ž‘์—…์˜ ๊ฒฝ์šฐ ์‘๋‹ต์ด ์ œ๊ณต๋œ ํ…์ŠคํŠธ์—๋งŒ ์˜์กดํ•ด์•ผ ํ•จ์„ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.
  • ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌธ์„œ๊ฐ€ ์งง์„ ๋•Œ๋Š” ๋Œ€์ฒด๋กœ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ๋ฌธ์„œ๊ฐ€ ๋ชจ๋ธ์˜ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋ณด๋‹ค ๊ธด ๊ฒฝ์šฐ ๋ฌธ์„œ์˜ ๋’ท๋ถ€๋ถ„์ด ์ฝํžˆ์ง€ ์•Š๋Š”๋‹ค.
    • ์ƒ์„ฑํ˜• AI ๋ชจ๋ธ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ชจ๋ธ์˜ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋ฅผ ๊ณ„์†ํ•ด์„œ ๋Š˜๋ฆฌ๊ณ  ์žˆ๋Š” ์ด์œ ๋‹ค.
  • ์ œ๋ฏธ๋‚˜์ด(Gemini) 1.5 ํ”„๋กœ๋Š” ๊ตฌ๊ธ€ ๋ฒ„ํ…์Šค AI ์ŠคํŠœ๋””์˜ค(Vertex AI Studio)์—์„œ ์ผ๋ถ€ ์„ ๋ณ„๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ๋Œ€ 100๋งŒ ํ† ํฐ์˜ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
    • ๋‹ค๋งŒ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต๋˜๋Š” ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋Š” 12๋งŒ 8,000 ํ† ํฐ์— โ€œ๋ถˆ๊ณผโ€ํ•˜๋‹ค. ๋‚˜์ค‘์— ๋‹ค์‹œ ์–ธ๊ธ‰ํ•˜๊ฒ ์ง€๋งŒ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ ์ œํ•œ์„ ์šฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” RAG๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • LLM์— ๊ธด ๋ฌธ์„œ์˜(์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋ฅผ ์ดˆ๊ณผํ•  ์ •๋„๋กœ ๊ธธ์ง€๋Š” ์•Š์Œ) ์š”์•ฝ์„ ์š”์ฒญํ•˜๋ฉด LLM์ด ๋‹ค๋ฅธ ์†Œ์Šค์—์„œ ๊ฐ€์ ธ์˜จ, โ€œ์‚ฌ์‹คโ€์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฐ„ํ˜น ์žˆ๋‹ค.
    • ์š”์•ฝ์ด ์•„๋‹Œ ๋ฌธ์„œ๋ฅผ ์••์ถ•ํ•˜๋„๋ก ์š”์ฒญํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„ ๋‚ด์šฉ ์ถ”๊ฐ€ ์—†์ด ์š”์ฒญ์— ์‘ํ•œ๋‹ค.

๋ฐ€๋„์˜ ์‚ฌ์Šฌ ํ”„๋กฌํ”„ํŠธ ์‚ฌ์šฉ

  • ์š”์•ฝ์„ ๊ฐœ์„ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ์ปฌ๋Ÿผ๋น„์•„, ์„ธ์ผ์ฆˆํฌ์Šค, MIT ํŒ€์ด 2023๋…„์— GPT-4 ์ „์šฉ์œผ๋กœ ์ œ์•ˆํ•œ ๋ฐ€๋„์˜ ์‚ฌ์Šฌ(CoD: Chain-of-Density) ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค(๋…ผ๋ฌธ).
    • KD๋„ˆ๊ฒŸ(KDnuggets)๊ธฐ์‚ฌ๋Š” ์ด ๋…ผ๋ฌธ์˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋” ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ๋ถ€๊ฐ€์ ์ธ ์„ค๋ช…์„ ๋”ํ–ˆ๋‹ค. ๋…ผ๋ฌธ๊ณผ ๊ธฐ์‚ฌ ๋ชจ๋‘ ์ฝ์–ด๋ณผ ๊ฒƒ์„ ๊ถŒํ•œ๋‹ค.
  • ๊ฐ„๋‹จํžˆ ์š”์•ฝํ•˜๋ฉด CoD ํ”„๋กฌํ”„ํŠธ๋Š” ๋ชจ๋ธ์— ๊ธฐ๋ณธ ๋ฌธ์„œ์˜ ์š”์•ฝ์„ 5๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๊ฐ ๋‹จ๊ณ„์—์„œ ์ •๋ณด ๋ฐ€๋„๋ฅผ ๋†’์ด๋„๋ก ์š”์ฒญํ•œ๋‹ค.
  • ๋…ผ๋ฌธ์— ๋”ฐ๋ฅด๋ฉด ์‚ฌ๋žŒ๋“ค์€ ๋Œ€์ฒด๋กœ 5๋ฒˆ์˜ ์š”์•ฝ ์ค‘์—์„œ ์„ธ ๋ฒˆ์งธ๋ฅผ ๊ฐ€์žฅ ์ข‹์•„ํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ๋…ผ๋ฌธ์—์„œ GPT-4์šฉ์œผ๋กœ ๋‚˜์˜จ ํ”„๋กฌํ”„ํŠธ๋Š” ๋‹ค๋ฅธ ๋ชจ๋ธ์—์„œ๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์•„์˜ˆ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

์ƒ๊ฐ์˜ ์‚ฌ์Šฌ ํ”„๋กฌํ”„ํŠธ ์‚ฌ์šฉ

  • 2022๋…„์— ๋‚˜์˜จ ์ƒ๊ฐ์˜ ์‚ฌ์Šฌ(Chain-of-Thought) ํ”„๋กฌํ”„ํŠธ(๋…ผ๋ฌธ)๋Š” LLM์— ์ผ๋ จ์˜ ์ค‘๊ฐ„ ์ถ”๋ก  ๋‹จ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ โ€œ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ์˜ ๋ณต์žกํ•œ ์ถ”๋ก  ์ˆ˜ํ–‰ ๋Šฅ๋ ฅ์„ ๋Œ€ํญ ๊ฐœ์„ โ€ํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด ์ƒ๊ฐ์˜ ์‚ฌ์Šฌ ํ”„๋กฌํ”„ํŒ…๋Š” ์ดˆ๋“ฑํ•™๊ต ์ˆ˜์ค€์˜ ์ˆ˜ํ•™์ด์ง€๋งŒ LLM์ด ์ œ๋Œ€๋กœ ํ‘ธ๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๋Š” ์‚ฐ์ˆ  ๋‹จ์–ด ๋ฌธ์ œ๋ฅผ ์ž˜ ํ‘ผ๋‹ค.
  • ๋…ผ๋ฌธ์—์„œ ์ €์ž๋“ค์€ ์ƒ๊ฐ์˜ ์‚ฌ์Šฌ ์‹œํ€€์Šค ์˜ˆ์ œ๋ฅผ ํ“จ์ƒท ํ”„๋กฌํ”„ํŠธ์— ํ†ตํ•ฉํ–ˆ๋‹ค.
    • ์ƒ๊ฐ์˜ ์‚ฌ์Šฌ ํ”„๋กฌํ”„ํŒ…์„ ์œ„ํ•œ ์•„๋งˆ์กด ๋ฒ ๋“œ๋ก ์˜ˆ์ œ๋Š” โ€œ๋„ˆ๋Š” ํƒ์›”ํ•œ ๋น„ํŒ์  ์‚ฌ๊ณ  ๋Šฅ๋ ฅ์„ ๊ฐ€์ง„ ๋งค์šฐ ์ง€๋Šฅ์ ์ธ ๋ด‡โ€์ด๋ผ๋Š” ์‹œ์Šคํ…œ ์ง€์นจ๊ณผ โ€œ๋‹จ๊ณ„๋ณ„๋กœ ์ƒ๊ฐํ•ด ๋ณด์žโ€๋Š” ์‚ฌ์šฉ์ž ์ง€์นจ์„ ํ†ตํ•ด ๋ผ๋งˆ 2 ์ฑ— 13B์™€ 70B ๋ชจ๋ธ์—์„œ ๋‹ค๋‹จ๊ณ„ ์ถ”๋ก ์„ ์ด๋Œ์–ด๋‚ธ๋‹ค.

์ƒ๊ฐ์˜ ๋ผˆ๋Œ€ ํ”„๋กฌํ”„ํŠธ ์‚ฌ์šฉ

  • ์ƒ๊ฐ์˜ ๋ผˆ๋Œ€(Skeleton-of-thought) ํ”„๋กฌํ”„ํŠธ(๋…ผ๋ฌธ)๋Š” 2023๋…„์— ์ œ์‹œ๋์œผ๋ฉฐ, โ€œ๋จผ์ € ์‘๋‹ต์˜ ๋ผˆ๋Œ€๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก LLM์„ ์ด๋ˆ ๋‹ค์Œ ๋ณ‘๋ ฌ API ํ˜ธ์ถœ ๋˜๋Š” ์ผ๊ด„ ๋””์ฝ”๋”ฉ์„ ์ˆ˜ํ–‰ํ•ด์„œ ๊ฐ ๋ผˆ๋Œ€ ํฌ์ธํŠธ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์™„์„ฑโ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ LLM์˜ ์ง€์—ฐ์„ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์ด ๋…ผ๋ฌธ๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๊ถŒ์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ณ€ํ˜•์ธ SoT-R์„ ์‚ฌ์šฉํ•˜๊ณ (RoBERTa ๋ผ์šฐํ„ฐ ํฌํ•จ), ํŒŒ์ด์ฌ์—์„œ LLM(GPT4, GPT-3.5 ๋˜๋Š” ํด๋กœ๋“œ)์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์€ ๊ถ๊ทน์ ์œผ๋กœ๋Š” ๋ชจ๋ธ ์ž์ฒด์— ์˜ํ•ด ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฏธ ์ด์™€ ๊ด€๋ จ๋œ ์—ฐ๊ตฌ๋„ ์ง„ํ–‰๋œ ๋ฐ” ์žˆ๋‹ค. ํ•ต์‹ฌ์€ ๋ชจ๋ธ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋Ÿ‰์  ์„ฑ๊ณต ์ง€ํ‘œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ดˆ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ •

  • ์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜ ์กฐ์ •์€ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ ํ•™์Šต ๋ชป์ง€์•Š๊ฒŒ LLM ํ”„๋กฌํ”„ํŠธ์—์„œ๋„ ์ค‘์š”ํ•˜๋‹ค.
  • LLM ํ”„๋กฌํ”„ํŠธ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ค‘์š”ํ•œ ์ดˆ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ€์ž… :
    • ์˜จ๋„, ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ, ์ตœ๋Œ€ ํ† ํฐ ์ˆ˜, ์ค‘์ง€ ์‹œํ€€์Šค ( ๋ชจ๋ธ๋งˆ๋‹ค ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ )
  • ์˜จ๋„๋Š” ์ถœ๋ ฅ์˜ ๋ฌด์ž‘์œ„์„ฑ์„ ์ œ์–ดํ•œ๋‹ค. ๋ชจ๋ธ์— ๋”ฐ๋ผ ์˜จ๋„ ๋ฒ”์œ„๋Š” 0~1 ๋˜๋Š” 0~2๋‹ค. ์˜จ๋„ ๊ฐ’์ด ๋†’์„์ˆ˜๋ก ๋” ๋†’์€ ๋ฌด์ž‘์œ„์„ฑ์„ ์š”์ฒญํ•œ๋‹ค.
    • 0์€ ๋ชจ๋ธ์— ๋”ฐ๋ผ โ€œ์˜จ๋„๋ฅผ ์ž๋™์œผ๋กœ ์„ค์ •โ€ํ•˜๋ผ๋Š” ์˜๋ฏธ์ธ ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , โ€œ๋ฌด์ž‘์œ„์„ฑ ์—†์Œโ€์„ ์˜๋ฏธํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.
  • ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋Š” ๋ชจ๋ธ์ด ๋‹ต๋ณ€์„ ์œ„ํ•ด ๊ณ ๋ คํ•˜๋Š” ์„ ํ–‰ ํ† ํฐ(๋‹จ์–ด ๋˜๋Š” ํ•˜์œ„ ๋‹จ์–ด)์˜ ์ˆ˜๋ฅผ ์ œ์–ดํ•œ๋‹ค.
  • ์ตœ๋Œ€ ํ† ํฐ ์ˆ˜๋Š” ์ƒ์„ฑ๋œ ๋‹ต๋ณ€์˜ ๊ธธ์ด๋ฅผ ์ œํ•œํ•œ๋‹ค.
  • ์ค‘์ง€ ์‹œํ€€์Šค๋Š” ์ถœ๋ ฅ์—์„œ ๋ชจ์š•์ ์ด๊ฑฐ๋‚˜ ๋ถ€์ ์ ˆํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ์–ต์ œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

๊ฒ€์ƒ‰ ์ฆ๊ฐ• ์ƒ์„ฑ

  • ๊ฒ€์ƒ‰ ์ฆ๊ฐ• ์ƒ์„ฑ(RAG)์€ LLM์„ ํŠน์ • ์†Œ์Šค์— ๊ทธ๋ผ์šด๋”ฉํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.
    • RAG์˜ 3๋‹จ๊ณ„
      • ์ง€์ •๋œ ์†Œ์Šค์—์„œ ๊ฒ€์ƒ‰ํ•˜๊ธฐ
      • ์†Œ์Šค์—์„œ ๊ฒ€์ƒ‰ํ•œ ์ปจํ…์ŠคํŠธ๋กœ ํ”„๋กฌํ”„ํŠธ ์ฆ๊ฐ•ํ•˜๊ธฐ
      • ๋ชจ๋ธ๊ณผ ์ฆ๊ฐ•๋œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•˜๊ธฐ
  • RAG ์ ˆ์ฐจ๋Š” ์ž„๋ฒ ๋”ฉ์„ ์‚ฌ์šฉํ•ด์„œ ๊ธธ์ด๋ฅผ ์ œํ•œํ•˜๊ณ  ๊ฒ€์ƒ‰๋œ ์ปจํ…์ŠคํŠธ์˜ ๊ด€๋ จ์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž„๋ฒ ๋”ฉ ๊ธฐ๋Šฅ์€ ๋‹จ์–ด ๋˜๋Š” ๊ตฌ๋ฅผ ๊ฐ€์ ธ์™€ ์ด๋ฅผ ๋ถ€๋™์†Œ์ˆ˜์  ์ˆซ์ž์˜ ๋ฒกํ„ฐ์— ๋งคํ•‘ํ•œ๋‹ค.
    • ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ์ธ๋ฑ์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ๋‹ค.
  • ๊ฒ€์ƒ‰ ๋‹จ๊ณ„์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์งˆ์˜์˜ ์ž„๋ฒ ๋”ฉ๊ณผ ์ €์žฅ๋œ ๋ฒกํ„ฐ ์‚ฌ์ด ๊ฐ๋„์˜ ์ฝ”์‚ฌ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ์˜๋ฏธ๋ก ์  ์œ ์‚ฌ์„ฑ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•ด์„œ ์ฆ๊ฐ•๋œ ํ”„๋กฌํ”„ํŠธ์— ์‚ฌ์šฉํ•  โ€œ์ธ์ ‘ํ•œโ€ ์ •๋ณด๋ฅผ ์ฐพ๋Š”๋‹ค.
    • ๊ฒ€์ƒ‰ ์—”์ง„๋„ ๋ณดํ†ต ์ด์™€ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด ๋‹ต์„ ์ฐพ๋Š”๋‹ค.

์—์ด์ „ํŠธ

  • ์—์ด์ „ํŠธ(๋Œ€ํ™”ํ˜• ๊ฒ€์ƒ‰ ์—์ด์ „ํŠธ)๋Š” ํˆด๊ณผ ์‹คํ–‰ ์ฝ”๋“œ, ์ž„๋ฒ ๋”ฉ, ๋ฒกํ„ฐ ์ €์žฅ์†Œ์˜ ์กฐํ•ฉ์œผ๋กœ ๋Œ€ํ™”ํ˜• LLM์˜ ๊ฐœ๋…์„ ๋” ํ™•์žฅํ•œ๋‹ค.
  • ์—์ด์ „ํŠธ๋Š” ํŠน์ • ๋„๋ฉ”์ธ์œผ๋กœ LLM์„ ์ „๋ฌธํ™”ํ•˜๊ณ  LLM์˜ ์ถœ๋ ฅ์„ ๋งž์ถค ์„ค์ •ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
    • ์• ์ € ์ฝ”ํŒŒ์ผ๋Ÿฟ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์—์ด์ „ํŠธ๋‹ค.
    • ๊ตฌ๊ธ€๊ณผ ์•„๋งˆ์กด์€ โ€œ์—์ด์ „ํŠธโ€๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋žญ์ฒด์ธ(LangChain)๊ณผ ๋žญ์Šค๋ฏธ์Šค(LangSmith)๋Š” RAG ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์—์ด์ „ํŠธ ๊ตฌ์ถ•์„ ๊ฐ„์†Œํ™”ํ•œ๋‹ค.

๋ชจ๋ธ ๋ฏธ์„ธ์กฐ์ •

  • ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM) ๋ฏธ์„ธ ์กฐ์ •์€ ํŠน์ • ์ž‘์—…์— ๋งž๊ฒŒ ๋ชจ๋ธ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์กฐ์ ˆํ•˜๋Š” ์ง€๋„ ํ•™์Šต ํ”„๋กœ์„ธ์Šค๋‹ค.
    • ๋ฏธ์„ธ ์กฐ์ •์—์„œ๋Š” ๋Œ€์ƒ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ์˜ˆ์ œ๋กœ ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋œ ๋” ์ž‘์€ ์ž‘์—…๋ณ„ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•ด ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚จ๋‹ค.
  • LoRA(Low-Rank-Adaptation)๋Š” ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์„ ๋‘ ๊ฐœ์˜ ๋” ์ž‘์€ ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ๋กœ ๋ถ„ํ•ดํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์ „์ฒด ๊ฐ๋… ๋ฏธ์„ธ ์กฐ์ •์— ๊ฐ€๊น์ง€๋งŒ ๋งค๊ฐœ๋ณ€์ˆ˜ ํšจ์œจ์„ฑ์ด ๋” ๋†’์Œ.
    • ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ ์ฒซ LoRA ๋…ผ๋ฌธ์€ 2021๋…„์— ๋ฐœํ‘œ๋๋‹ค. 2023๋…„์— ๋‚˜์˜จ LoRA์˜ ์–‘์žํ™”๋œ ๋ณ€ํ˜•์ธ QLoRA๋Š” ์กฐ์ • ํ”„๋กœ์„ธ์Šค์— ํ•„์š”ํ•œ GPU ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ์ค„์˜€๋‹ค.
      • ์ผ๋ฐ˜์ ์œผ๋กœ LoRA์™€ QLoRA๋Š” ํ‘œ์ค€ ๋ฏธ์„ธ ์กฐ์ •์— ๋น„ํ•ด ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ ์˜ˆ์ œ์˜ ์ˆ˜์™€ ํ•„์š”ํ•œ ์‹œ๊ฐ„์„ ์ค„์—ฌ์ค€๋‹ค.

์ง€์†์ ์ธ ๋ชจ๋ธ ์‚ฌ์ „ ํ•™์Šต

  • ์‚ฌ์ „ ํ•™์Šต์€ ๋ฐฉ๋Œ€ํ•œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ๋น„์ง€๋„ ํ•™์Šต ํ”„๋กœ์„ธ์Šค๋กœ, LLM์— ์–ธ์–ด์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ๊ฐ€๋ฅด์น˜๊ณ  ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋ณธ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•œ๋‹ค.
  • ํ™•์žฅ ๋˜๋Š” ์ง€์†์ ์ธ ์‚ฌ์ „ ํ•™์Šต์€ ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋˜์ง€ ์•Š์€ ๋„๋ฉ”์ธ๋ณ„ ๋˜๋Š” ์ž‘์—…๋ณ„ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์ด ๊ธฐ๋ณธ ๋ชจ๋ธ์— ์ถ”๊ฐ€ํ•ด์„œ ์˜ˆ๋ฅผ ๋“ค์–ด ์–ธ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์˜ํ•™๊ณผ ๊ฐ™์€ ์ „๋ฌธ ๋ถ„์•ผ๋ฅผ ์œ„ํ•œ ์šฉ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋“ฑ ๋ชจ๋ธ์„ ์ „๋ฌธํ™”ํ•œ๋‹ค.
  • ์ง€์†์ ์ธ ์‚ฌ์ „ ํ•™์Šต(๋น„์ง€๋„ ํ•™์Šต ์‚ฌ๋™) ๋’ค์—๋Š” ๋ณดํ†ต ๋ฏธ์„ธ ์กฐ์ •(์ง€๋„ ํ•™์Šต ์‚ฌ์šฉ)์ด ์‹คํ–‰๋œ๋‹ค.
How to consist of LLM for application

๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ(LLM)์˜ ๋“ฑ์žฅ์œผ๋กœ ์ธํ•ด ์ถ”๋ก  ์ฟผ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋” ๊ธด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ํ•„์š”์„ฑ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์ผ๋ จ์˜ ์ด๋ฒคํŠธ๋กœ ๋” ๋ณต์žกํ•œ ์‚ฌ์šฉ์ž ์ฟผ๋ฆฌ๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž๊ฐ€ ๋” ๊ธด ๋Œ€ํ™”๋ฅผ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ๋Œ€ํ™” ํ„ด์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กฌํ”„ํŠธ ์ฒด์ด๋‹์„ ์ˆ˜์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ํ”Œ๋กœ์šฐ ์—”์ง€๋‹ˆ์–ด๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

LLM Agents to Chains

์ฒด์ธ

ํ”„๋กฌํ”„ํŠธ ์ฒด์ด๋‹์€ ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋ฐ˜ AI ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ๋กœ, ํ•˜๋‚˜์˜ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํŠน์ • ๊ฒฐ๊ณผ๋‚˜ ์ž‘์—…์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ์†์ ์œผ๋กœ ๋‹ค๋ฅธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ AI ๋ชจ๋ธ์ด ์›ํ•˜๋Š” ์‘๋‹ต์ด๋‚˜ ํ–‰๋™์„ ์œ ๋„ํ•˜๋„๋ก ์•ˆ๋‚ดํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ฒด์ธ์˜ ์ผ๋ถ€ ๋…ธ๋“œ๋Š” ํŠน์ • ์‹œ์ ์—์„œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์–ด ๋Œ€ํ™”ํ˜• UI๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์–ธ์–ด ์ƒ์„ฑ์˜ ๋งฅ๋ฝ์—์„œ ์ดˆ๊ธฐ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์ œ๋‚˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์†Œ๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ชจ๋ธ์—์„œ ์ƒ์„ฑ๋œ ์‘๋‹ต์„ ๋‹ค์Œ ํ”„๋กฌํ”„ํŠธ๋กœ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์—ฌ ๋Œ€ํ™”๋ฅผ ๋” ๋ฐœ์ „์‹œํ‚ค๊ฑฐ๋‚˜ ์ถœ๋ ฅ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์€ ์˜์‚ฌ ๊ฒฐ์ • ์ง€์ ์ด ์žˆ๋Š” ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์ผ๋ จ์˜ ์ด๋ฒคํŠธ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค๋Š” ์ ์„ ๋ช…ํ™•ํžˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ƒํƒœ ๊ธฐ๊ณ„์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ

์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ํ˜„์žฌ ๊ฐ„๊ณผ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์ž์œจ AI ์—์ด์ „ํŠธ๋Š” ๊ธฐ์ˆ ์˜ ์ค‘์š”ํ•œ ๋ฐœ์ „์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ๋Š” ์ธ๊ณต ์ง€๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

  • ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™
  • ๊ฒฐ์ • ๋‚ด๋ฆฌ๊ธฐ
  • ์ง€์†์ ์ธ ์ธ๊ฐ„์˜ ๊ฐœ์ž… ์—†์ด ํ–‰๋™ํ•˜๊ธฐ ๋ฏธ๋ž˜์—๋Š” ์ž์œจ AI ์—์ด์ „ํŠธ๊ฐ€ ์˜๋ฃŒ, ๊ธˆ์œต, ์ œ์กฐ, ์šด์†ก ๋“ฑ ๋‹ค์–‘ํ•œ ์‚ฐ์—…์„ ํ˜์‹ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜์‚ฌ ๊ฒฐ์ •์˜ ์ฑ…์ž„์„ฑ, ํˆฌ๋ช…์„ฑ, ์œค๋ฆฌ ๋ฐ ์ฑ…์ž„๊ณผ ๊ด€๋ จ๋œ ๊ณ ๋ ค ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋„์ „์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์ž์œจ AI ์—์ด์ „ํŠธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฏธ๋ž˜๋Š” ์—„์ฒญ๋‚œ ๊ฐ€๋Šฅ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ด ๊ณ„์† ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ์—์ด์ „ํŠธ๋Š” ์šฐ๋ฆฌ์˜ ์ผ์ƒ ์ƒํ™œ์— ์ ์  ๋” ํ†ตํ•ฉ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Unlocking GPT-4 Summarization with Chain of Density Prompting - KDnuggets

Lilys AI : https://lilys.ai/digest/684251

1. GPT-4 Summarization ์ƒˆ๋กœ์šด ๊ธฐ๋ฒ• CoD์˜ ์ •๋ณด ๋ฐ€์ง‘๋„ ์กฐ์ ˆ

  • Chain of Density (CoD)์€ GPT-4์™€ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ์—์„œ ์š”์•ฝ ์ž‘์—…์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง ๊ธฐ์ˆ ์ด๋‹ค.
  • ์ด ๊ธฐ์ˆ ์€ ์ƒ์„ฑ๋œ ์š”์•ฝ๋ฌผ์˜ ์ •๋ณด ๋ฐ€์ง‘๋„๋ฅผ ์กฐ์ ˆํ•จ์œผ๋กœ์จ, ๋„ˆ๋ฌด ํฌ๋ฐ•ํ•˜์ง€๋„ ๋„ˆ๋ฌด ๋ฐ€๋„ ์žˆ์ง€๋„ ์•Š์€ ๊ท ํ˜• ์žกํžŒ ๊ฒฐ๊ณผ๋ฌผ์„ ์ œ๊ณตํ•œ๋‹ค.
  • CoD๋Š” ๋ฐ์ดํ„ฐ ๊ณผํ•™ ๋ถ„์•ผ์—์„œ ์‹ค์šฉ์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”๋ฐ, ํŠนํžˆ ๊ณ ํ’ˆ์งˆ์ด๊ณ  ๋งฅ๋ฝ์— ์ ํ•ฉํ•œ ์š”์•ฝ๋ฌผ์„ ํ•„์š”๋กœ ํ•˜๋Š” ์ž‘์—…์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.
  • โ€œ์˜ฌ๋ฐ”๋ฅธโ€ ์–‘์˜ ์ •๋ณด๋ฅผ ์š”์•ฝ์— ํฌํ•จํ•˜๋Š” ๊ฒƒ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šด ์ž‘์—…์ด๋‹ค.

2. AI ์ง„๋ณด๋ฅผ ์œ„ํ•œ ํ”„๋กฌํ”„ํŒ… ์—”์ง„์˜ ์ค‘์š”์„ฑ

  • ๊ธฐ์กด์˜ Chain-of-Thought ๋ฐ Skeleton-of-Thought๊ณผ ๊ฐ™์€ ์—”์ง„์€ ๊ตฌ์กฐํ™”๋˜๊ณ  ํšจ์œจ์ ์ธ ๊ฒฐ๊ณผ์— ์ดˆ์ ์„ ๋งž์ถฐ์™”๋‹ค.
  • ์ตœ๊ทผ์˜ Chain of Density (CoD) ๊ธฐ์ˆ ์€ ํ…์ŠคํŠธ ์š”์•ฝ์˜ ํ’ˆ์งˆ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค.
  • ์ด ๊ธฐ์ˆ ์€ ์š”์•ฝ์— โ€œ์ ์ ˆํ•œโ€ ์ •๋ณด ์–‘์„ ์„ ํƒํ•˜๋Š” ๊ณผ์ œ์— ๋Œ€์‘ํ•˜์—ฌ, ๋„ˆ๋ฌด ํฌ์†Œํ•˜์ง€๋„, ๋„ˆ๋ฌด ๋ฐ€๋„ ๋†’์ง€๋„ ์•Š๋„๋ก ๋ณด์žฅํ•œ๋‹ค.

3.๋ฐ€๋„ ์ฒด์ธ์˜ ์ดํ•ด

  • ๋ฐ€๋„ ์ฒด์ธ์€ GPT-4์™€ ๊ฐ™์€ ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ์˜ ์š”์•ฝ ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋˜์—ˆ๋‹ค.
  • ์ด๋Š” ์ƒ์„ฑ๋œ ์š”์•ฝ๋ฌผ์˜ ์ •๋ณด ๋ฐ€๋„๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ˜๋‹ค.
  • ์ž˜ ๊ท ํ˜• ์žกํžŒ ์š”์•ฝ๋ฌผ์€ ๋ณต์žกํ•œ ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•˜๋ฉฐ, ๋ฐ€๋„ ์ฒด์ธ์€ ์ด๋Ÿฌํ•œ ๊ท ํ˜•์„ ์ด๋ฃจ๋ ค๊ณ  ํ•œ๋‹ค.
  • ๋ฐ€๋„ ์ฒด์ธ์€ AI ๋ชจ๋ธ์ด ํ•„์ˆ˜์ ์ธ ํฌ์ธํŠธ๋ฅผ ํฌํ•จํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ์€ ํ”ผํ•˜๋„๋ก ์•ˆ๋‚ดํ•˜๋Š” ํŠน๋ณ„ํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๊ทธ๋ฆผ 1: ์˜ˆ์ œ๋ฅผ ํ™œ์šฉํ•œ ๋ฐ€๋„ ์ฒด์ธ ๊ณผ์ • (์ถœ์ฒ˜: Sparse to Dense: GPT-4 Summarization with Chain of Density Prompting) (ํ™•๋Œ€ํ•˜๋ ค๋ฉด ํด๋ฆญ)

4.๋ฐ€๋„ ์ฒด์ธ ์‹คํ–‰

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

5.๋ฐ€๋„ ์ด‰์ง„ ๊ณผ์ •์˜ ๋‹จ๊ณ„

  • ํ…์ŠคํŠธ ์‹๋ณ„: ์š”์•ฝํ•˜๊ณ  ์‹ถ์€ ๋ฌธ์„œ, ๊ธฐ์‚ฌ ๋˜๋Š” ํ…์ŠคํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ์ดˆ๊ธฐ ํ”„๋กฌํ”„ํŠธ ์ž‘์„ฑ: ์„ ํƒํ•œ ํ…์ŠคํŠธ์— ๋งž๋Š” ์ดˆ๊ธฐ ์š”์•ฝ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ดˆ๊ธฐ ์š”์•ฝ๋ถ„์„: ์ดˆ๊ธฐ ํ”„๋กฌํ”„ํŠธ์—์„œ ์ƒ์„ฑ๋œ ์š”์•ฝ์„ ๊ฒ€ํ† ํ•˜๊ณ , ๋„ˆ๋ฌด ํฌ๋ฐ•ํ•˜๊ฑฐ๋‚˜ ๋ถˆํ•„์š”ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ์ด ๋‹ด๊ฒจ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ฒด์ธ๋“œ ํ”„๋กฌํ”„ํŠธ ์„ค๊ณ„: ์ดˆ๊ธฐ ์š”์•ฝ์˜ ๋ฐ€๋„์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์ถ”๊ฐ€์ ์ธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์š”์•ฝ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์ด โ€˜์ฒด์ธ๋“œ ํ”„๋กฌํ”„ํŠธโ€™์ด๋ฉฐ ๋ฐ€๋„ ์ฒด์ธ ๊ธฐ์ˆ ์˜ ์ค‘์‹ฌ์ž…๋‹ˆ๋‹ค.
  • ์ฒด์ธ๋“œ ํ”„๋กฌํ”„ํŠธ ์‹คํ–‰: ์ด๋Ÿฌํ•œ ์ฒด์ธ๋“œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋‹ค์‹œ LLM์— ๊ณต๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค ํ”„๋กฌํ”„ํŠธ๋Š” ํ•„์ˆ˜ ์„ธ๋ถ€์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฐ€๋„๋ฅผ ๋†’์ด๊ฑฐ๋‚˜ ๋น„ํ•„์ˆ˜์ ์ธ ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ฐ€๋„๋ฅผ ์ค„์ด๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์กฐ์ •๋œ ์š”์•ฝ ๊ฒ€ํ† : ์ฒด์ธ๋“œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ƒ์„ฑ๋œ ์ƒˆ๋กœ์šด ์š”์•ฝ์„ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ•„์ˆ˜์ ์ธ ํฌ์ธํŠธ๋ฅผ ํฌ์ฐฉํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ์„ ํ”ผํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ํ•„์š” ์‹œ ๋ฐ˜๋ณต: ์š”์•ฝ์ด ์—ฌ์ „ํžˆ ์›ํ•˜๋Š” ์ •๋ณด ๋ฐ€๋„ ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ, ๋‹จ๊ณ„ 4๋กœ ๋Œ์•„๊ฐ€ ์ฒด์ธ๋“œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์ข… ์š”์•ฝ ์™„๋ฃŒ: ์š”์•ฝ์ด ์›ํ•˜๋Š” ์ •๋ณด ๋ฐ€๋„ ์ˆ˜์ค€์„ ์ถฉ์กฑํ•˜๋ฉด ์™„๋ฃŒ๋˜์–ด ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

6.์š”์•ฝ ๋ฐ€๋„ ์ฒด์ธ ์ œ์•ˆ

  • ์š”์•ฝ์˜ ๊ธธ์ด๋ฅผ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ˆ„๋ฝ๋œ Entity(๋“ค)์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐ€์ง‘๋„ ๋†’์€ ๊ฐœ์š”๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.
  • ์ด์ „ Summary๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ์ถ”๊ฐ€ Entity์— ๊ณต๊ฐ„์„ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์œผ๋กœ ์š”์•ฝ์„ ๋‹ค์‹œ ์“ฐ์„ธ์š”.
  • ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์žฅ์„ ์žฌ๊ตฌ์„ฑํ•˜๊ณ  ์•ž์„  Summary์— ๋‚˜์˜จ Entity์— ๋Œ€ํ•œ ์ž๋ฆฌ๋ฅผ ๋งŒ๋“œ์„ธ์š”.
  • Entity๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋œ ๋ฐ€์ง‘๋„ ๋†’์€ ์ƒˆ๋กœ์šด ์š”์•ฝ์„ ์ž‘์„ฑํ•˜๋˜, ๋ฌธ์žฅ์ด ์ž์ฒด ํฌ๊ด„์ ์ด๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฑฐ์ฐฝํ•œ ์–ธ์–ด๋‚˜ ์“ธ๋ฐ์—†๋Š” ๊ตฌ๋ฌธ์„ ์ค„์ž„์œผ๋กœ์จ ์š”์•ฝ์„ ๋ฐ€์ง‘ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“œ์„ธ์š”.

7.๊ฒฐ๋ก 

  • Chain of Density (CoD)๋Š” ํ…์ŠคํŠธ ์š”์•ฝ ์ž‘์—…์„ ๊ฐœ์„ ํ•˜๋Š” ์ƒˆ๋กœ์šด ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.
  • CoD๋Š” ์š”์•ฝ๋ฌธ์˜ ์ •๋ณด ๋ฐ€๋„๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์–ด, ์ค‘์š”ํ•œ ๋‚ด์šฉ์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋‹ด์€ ๊ณ ํ’ˆ์งˆ ์š”์•ฝ๋ฌธ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.
  • ์ด ๊ธฐ์ˆ ์„ ํ”„๋กœ์ ํŠธ์— ํ™œ์šฉํ•˜๋ฉด ์ตœ์‹  ์–ธ์–ด ๋ชจ๋ธ์˜ ๊ฐ•๋ ฅํ•œ ์š”์•ฝ ๊ธฐ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Trial & Error

Streamlit & Code spaces

Trial : Streamlit ์œผ๋กœ ์ œ์ž‘๋œ Simple LLM ( model : gpt-3.5-turbo )

ํ…Œ์ŠคํŠธ์™„๋ฃŒ


  • github : https://github.com/streamlit/llm-examples
  • Openapi api-key์— ๋Œ€ํ•ด์„œ, gpt-3.5 ๋Š” ์›น์œผ๋กœ๋Š” ๋ฌด๋ฃŒ์ธ๋ฐ api๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‹ ์šฉ์นด๋“œ ๋“ฑ๋ก ๋˜๋Š” ์ƒˆ๋กœ์šด ๊ณ„์ •์„ ๋งŒ๋“ค์–ด์„œ ๋ฌด๋ฃŒ ์ด์šฉ๊นŒ์ง€ ์‚ฌ์šฉํ•˜๋Š” ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐฉ๋ฒ•์ด๋‹ค. ( ์• ์ดˆ์— Openaip api-key ์ •์ฑ…์ด ๊ทธ๋ ‡๊ฒŒ ๋˜์–ด์žˆ๋‹ค!! )
  • API-key๋ฅผ ์ž˜ ๋ฐ›์œผ๋ฉด ์œ„์˜ ์ฝ”๋“œ๋Š” ์ž˜ ๋™์ž‘ํ•  ๋“ฏ ํ•œ๋ฐ(์‚- ์ •๋‹ต์ž…๋‹ˆ๋‹ค.), ์œ„์˜ Chatbot์„ ์ด์šฉํ•ด ๋น„์ •ํ˜•๋ฐ์ดํ„ฐ( ์ž…๋ ฅ๊ฐ’ )๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹น๊ทผ์—์„œ ์‚ฌ์šฉํ•œ ๋ชจ์ž„,์ถ”์ฒœ,๋ถ€๋™์‚ฐ ๋“ฑ๋“ฑ์— ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž„์„ ์•Œ ๊ฒƒ ๊ฐ™๋‹ค.
    • Billing : 5$ ๊ฒฐ์ œ ํ›„ ์ฑ—๋ด‡ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ ํ™•์ธ  Simple llm test

Error

VSCode๋ฅผ ์ด์šฉํ•ด์„œ, ๋””๋ฒ„๊น…์‹œ์Šคํ…œ์œผ๋กœ ์ง„ํ–‰ํ•ด๋ณด๋‹ˆ ์•„๋ž˜์™€๊น‰์€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์˜จ๋‹ค? ์—ฅ? ๋ญ์ง€ ์ฐพ์•„๋ณด์ž. ์ฐพ์•„๋ณด๋‹ˆ๊นŒ ์ด๊ฒƒ์€ Streamlit ์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ž˜๋ชป๋๋‹ค.

์˜ค๋ฅ˜ํ•ด๊ฒฐ ๋‚ด์šฉ : [OpenAI] Chatgpt ์—๋Ÿฌ ํ•ด๊ฒฐ - openai.RateLimitError: Error code: 429 - {โ€˜errorโ€™: {โ€˜messageโ€™: โ€˜You exceeded your current quota, please check your plan and billing details.

Streamlit ์ด ๋ฌด์—‡์ธ๊ณ ?


Reference : Python Streamlit ์‚ฌ์šฉ๋ฒ• - ํ”„๋กœํ† ํƒ€์ž… ๋งŒ๋“ค๊ธฐ

  • ์„ค๋ช…
    • Streamlit is an open-source Python framework to create custom web applications. It is specifically designed for machine learning and data science, but it is in no way limited to those use cases. The underlying Python code is executed server-side, and the resulting outputs rendered to the user.
    • Streamlit์€ ์‚ฌ์šฉ์ž ์ •์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํŒŒ์ด์ฌ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ๋จธ์‹  ๋Ÿฌ๋‹๊ณผ ๋ฐ์ดํ„ฐ ๊ณผํ•™์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋˜์—ˆ์ง€๋งŒ, ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์—๋งŒ ๊ตญํ•œ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ Python ์ฝ”๋“œ๋Š” ์„œ๋ฒ„์ธก์—์„œ ์‹คํ–‰๋˜๊ณ  ๊ฒฐ๊ณผ ์ถœ๋ ฅ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค.
    • ๊ธฐํƒ€
      • ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•
      • ์•ฑ์„ ๋งŒ๋“œ๋Š” ๋ฏธ๋‹ˆ๋ฉ€ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ
      • 21๋…„ 2์›” ๊ธฐ์ค€ Github Star 13K
  • ์ด์ 
    • ๊ฐ„๋‹จํ•˜๊ฒŒ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ์•ฑ์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Œ
    • ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ ๊ธฐ๋Šฅ ์ œ๊ณต(๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ด๋‚˜ HTTP ์š”์ฒญ ๊ตฌํ˜„ํ•  ํ•„์š” ์—†์Œ)
    • ๋‹ค์–‘ํ•œ ์˜ˆ์‹œ ์ œ๊ณต
    • ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ฐœ๋ฐœํ•œ Component๋„ ์กด์žฌ
    • Streamlit์—์„œ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ ์ œ๊ณต(๋‹จ, ์‹ ์ฒญ ํ•„์š”)
    • ํ™”๋ฉด์„ ๋…นํ™”ํ•  ์ˆ˜ ์žˆ๋Š” Record ๊ธฐ๋Šฅ๋„ ์ œ๊ณต
    • app์„ ๋นŒ๋“œํ•œ ํ›„, ์˜ค๋ฅธ์ชฝ โ˜ฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด Record a screencast๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
  • ๋„ํ๋จผํŠธ : Working with Streamlitโ€™s execution model

Code spaces ๋ž€?


Reference : GitHub Codespaces ๊ฐœ์š”

Code space diagram

์†Œ๊ฐœ

  • codespace๋Š” ํด๋ผ์šฐ๋“œ์—์„œ ํ˜ธ์ŠคํŠธ๋˜๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ codespace ๊ตฌ์„ฑ์„ ๋งŒ๋“œ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ(์ข…์ข… Configuration-as-Code๋ผ๊ณ ๋„ ํ•จ)์— ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•˜์—ฌ GitHub Codespaces์— ๋Œ€ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ โ€œ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ ์†Œ๊ฐœโ€์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.
  • ๋งŒ๋“œ๋Š” ๊ฐ codespace๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๋Š” Docker ์ปจํ…Œ์ด๋„ˆ์˜ GitHub์— ์˜ํ•ด ํ˜ธ์ŠคํŒ…๋ฉ๋‹ˆ๋‹ค. 2๊ฐœ ์ฝ”์–ด, 8GB RAM ๋ฐ 32GB ์Šคํ† ๋ฆฌ์ง€, ์ตœ๋Œ€ 32๊ฐœ ์ฝ”์–ด, 64GB RAM ๋ฐ 128GB ์Šคํ† ๋ฆฌ์ง€์˜ ๊ฐ€์ƒ ๋จธ์‹  ์œ ํ˜• ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ codespace ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ์ธ๊ธฐ ์–ธ์–ด ๋ฐ ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋œ Ubuntu Linux ์ด๋ฏธ์ง€์—์„œ ๋งŒ๋“ค์–ด์ง€์ง€๋งŒ ์„ ํƒํ•œ Linux ๋ฐฐํฌํŒ์— ๋”ฐ๋ผ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. codespace๋Š” ๋กœ์ปฌ ์šด์˜ ์ฒด์ œ์— ๊ด€๊ณ„์—†์ด Linux ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. Windows ๋ฐ macOS๋Š” ์›๊ฒฉ ๊ฐœ๋ฐœ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด ์ง€์›๋˜์ง€ ์•Š๋Š” ์šด์˜ ์ฒด์ œ์ž…๋‹ˆ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €, Visual Studio Code, JetBrains Gateway ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋˜๋Š” GitHub CLI์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ codespace์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐํ•  ๊ฒฝ์šฐ Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ Linux ๊ฐ€์ƒ ๋จธ์‹  ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub Codespaces์˜ ์ด์ 

codespace์—์„œ ์ž‘์—…ํ•˜๋„๋ก ์„ ํƒํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฏธ๋ฆฌ ๊ตฌ์„ฑ๋œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์‚ฌ์šฉ - ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์šฉ์œผ๋กœ ํŠน๋ณ„ํžˆ ๊ตฌ์„ฑ๋œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ, ์–ธ์–ด ๋ฐ ๊ตฌ์„ฑ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. codespace์—์„œ ํ•ด๋‹น ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•ด ์ž‘์—…ํ•˜๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋™์ผํ•œ ํ™˜๊ฒฝ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋””๋ฒ„๊ทธํ•˜๊ธฐ ์–ด๋ ค์šด ํ™˜๊ฒฝ ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ๊ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—๋Š” ๊ธฐ์—ฌ์ž์—๊ฒŒ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์šฉ๋„์— ๋งž๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ์„ค์ •์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋กœ์ปฌ ์ปดํ“จํ„ฐ์˜ ํ™˜๊ฒฝ์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šค - ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ํ•˜๊ธฐ์— ๋กœ์ปฌ ์ปดํ“จํ„ฐ์˜ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ์Šคํ† ๋ฆฌ์ง€ ๊ณต๊ฐ„์ด ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub Codespaces์„(๋ฅผ) ์‚ฌ์šฉํ•˜๋ฉด ์ ์ ˆํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ์ปดํ“จํ„ฐ์—์„œ ์›๊ฒฉ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์–ด๋””์„œ๋‚˜ ์ž‘์—… - ์›น ๋ธŒ๋ผ์šฐ์ €๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ์ปดํ“จํ„ฐ, ์นœ๊ตฌ์˜ ๋…ธํŠธ๋ถ ๋˜๋Š” ํƒœ๋ธ”๋ฆฟ์˜ codespace์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. codespace๋ฅผ ์—ด๊ณ  ๋‹ค๋ฅธ ๋””๋ฐ”์ด์Šค์—์„œ ์ค‘๋‹จํ•œ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์ž‘์—…์„ ์žฌ๊ฐœํ•ฉ๋‹ˆ๋‹ค.
  • ํŽธ์ง‘๊ธฐ ์„ ํƒ - VS Code ์›น ํด๋ผ์ด์–ธํŠธ์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘์—…ํ•˜๊ฑฐ๋‚˜ ์›ํ•˜๋Š” ๋ฐ์Šคํฌํ†ฑ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ ์ž‘์—… - ์—ฌ๋Ÿฌ codespace๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ๋™์ผํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋‹ค๋ฅธ ๋ถ„๊ธฐ์— ๋Œ€ํ•ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž‘์—… ์ค‘ ๋‹ค๋ฅธ ์ž‘์—…์— ์‹ค์ˆ˜๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋„๋ก ์ž‘์—…์„ ๊ตฌํšํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒ€์›๊ณผ ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ˆ˜ํ–‰ - VS Code์˜ codespace์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ Live Share๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒ€์˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์™€ ๊ณต๋™์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ โ€œCodespace์—์„œ ๊ณต๋™ ์ž‘์—…โ€์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.
  • codespace์—์„œ ์›น์•ฑ ๊ฒŒ์‹œ - codespace์—์„œ ํฌํŠธ๋ฅผ ์ „๋‹ฌํ•œ ๋‹ค์Œ URL์„ ๊ณต์œ ํ•˜์—ฌ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์—์„œ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ œ์ถœํ•˜๊ธฐ ์ „์— ํŒ€์›์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ - GitHub Codespaces์€(๋Š”) ์ƒˆ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์•Œ์•„๋ณด๋ ค๋Š” ๊ฒฝ์šฐ ์„ค์น˜ ์‹œ๊ฐ„์„ ์ค„์—ฌ ์ค๋‹ˆ๋‹ค. ๋น ๋ฅธ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ ์ค‘ ํ•˜๋‚˜์—์„œ codespace๋ฅผ ๋งŒ๋“ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
This post is licensed under CC BY 4.0 by the author.