Prompt evaluation

Prompt evaluation

ํด๋กœ๋“œ์™€ ํ•จ๊ป˜ ์ผํ•  ๋•Œ ์ข‹์€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ์‹œ์ž‘์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋ ค๋ฉด prompt engineering๊ณผ prompt evaluation๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • prompt engineering:

    • ๋” ๋‚˜์€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ์ˆ ์„ ์ œ๊ณต

  • prompt evaluation

    • ์ด๋Ÿฌํ•œ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์‹ค์ œ๋กœ ์–ผ๋งˆ๋‚˜ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ์ธก์ •ํ•˜๋Š” ๋ฐ ๋„์›€

Prompt Engineering vs Prompt Evaluation

prompt engineering์€ ํšจ๊ณผ์ ์ธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋„๊ตฌ๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ์ด ํฌํ•จ

  • ๋ฉ€ํ‹ฐ์ƒท ํ”„๋กฌํ”„ํŠธ

  • XML ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ ๊ตฌ์กฐํ™”

  • ๋‹ค๋ฅธ ๋งŽ์€ ๋ชจ๋ฒ” ์‚ฌ๋ก€

์ด ๊ธฐ์ˆ ๋“ค์€ ํด๋กœ๋“œ๊ฐ€ ๋‹น์‹ ์ด ๋ฌด์—‡์„ ์š”๊ตฌํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ๋ฐ˜์‘ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š”์ง€ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€

prompt evaluation๋Š” ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ์ดˆ์ ์„ ๋งž์ถ”๋Š” ๋Œ€์‹  ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ํ”„๋กฌํ”„ํŠธ์˜ ํšจ๊ณผ๋ฅผ ์ธก์ •

  • ์˜ˆ์ƒ๋œ ๋‹ต๋ณ€์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ

  • ๋™์ผํ•œ ํ”„๋กฌํ”„ํŠธ์˜ ๋‹ค์–‘ํ•œ ๋ฒ„์ „ ๋น„๊ต

  • ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ์ถœ๋ ฅ ๊ฒ€ํ† 

.

Three Paths After Writing a Prompt

ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•œ ํ›„์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ์— ์ˆ˜ํ–‰ํ•  ์ž‘์—…์— ์„ธ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • Option 1: ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ•œ ๋ฒˆ ํ…Œ์ŠคํŠธํ•œ ํ›„ ์ถฉ๋ถ„ํžˆ ์ข‹๋‹ค๊ณ  ํŒ๋‹จ. ์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ž…๋ ฅ์„ ์ œ๊ณตํ•˜๋ฉด ์ƒ์‚ฐ์— ์ฐจ์งˆ์ด ์ƒ๊ธธ ์œ„ํ—˜์ด ํผ.

  • Option 2: ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ช‡ ๋ฒˆ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์ฝ”๋„ˆ ์ผ€์ด์Šค ํ•œ๋‘ ๊ฐœ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์กฐ์ •. ์˜ต์…˜ 1๋ณด๋‹ค๋Š” ๋‚ซ์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ ๋ คํ•˜์ง€ ์•Š์€ ๋งค์šฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.

  • Option 3: ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ ์ˆ˜๋ฅผ ๋งค๊ธด ๋‹ค์Œ ๊ฐ๊ด€์ ์ธ ์ง€ํ‘œ์— ๋”ฐ๋ผ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ฐ˜๋ณต. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋” ๋งŽ์€ ์ž‘์—…๊ณผ ๋น„์šฉ์ด ํ•„์š”ํ•˜์ง€๋งŒ ํ”„๋กฌํ”„ํŠธ์˜ ์‹ ๋ขฐ์„ฑ์— ๋Œ€ํ•œ ์‹ ๋ขฐ๋„๊ฐ€ ํ›จ์”ฌ ๋†’์Œ

.

Why Most Engineers Fall Into Testing Traps

์˜ต์…˜ 1๊ณผ 2๋Š” ๋ชจ๋“  ์—”์ง€๋‹ˆ์–ด๊ฐ€ ํ”ํžˆ ์ ‘ํ•˜๋Š” ํ•จ์ •. ์ง„์ง€ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ถฉ๋ถ„ํžˆ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋‹น์—ฐ. ์šฐ๋ฆฌ๋Š” ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์—ฃ์ง€ ์ผ€์ด์Šค๋ฅผ ๋งˆ์ฃผํ•˜๊ฒŒ ๋ ์ง€ ๊ณผ์†Œํ‰๊ฐ€ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Œ.

์‹ค์ œ๋กœ ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กฌํ”„ํŠธ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œํ•œ๋œ ํ…Œ์ŠคํŠธ ์ค‘์— ๊ฒฌ๊ณ ํ•œ ํ”„๋กฌํ”„ํŠธ์ฒ˜๋Ÿผ ๋ณด์˜€๋˜ ๊ฒƒ์€ ๋‹ค์–‘ํ•œ ์‹ค์ œ ์ž…๋ ฅ์— ์ง๋ฉดํ•˜๋ฉด ๋น ๋ฅด๊ฒŒ ๋ฌด๋„ˆ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.

The Evaluation-First Approach

์˜ต์…˜ 3์€ ์‹ ์†ํ•œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋ณด๋‹ค ์ฒด๊ณ„์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹. ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€์—์„œ ํ”„๋กฌํ”„ํŠธ์˜ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ๊ฐ๊ด€์ ์ธ ์ง€ํ‘œ๋ฅผ ํš๋“. ์ด ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์ด ์กด์žฌ:

  • ์ƒ์‚ฐ ๋ฌธ์ œ๊ฐ€ ๋˜๊ธฐ ์ „์— ์•ฝ์  ํŒŒ์•…ํ•˜๊ธฐ

  • ๋‹ค์–‘ํ•œ ํ”„๋กฌํ”„ํŠธ ๋ฒ„์ „์„ ๊ฐ๊ด€์ ์œผ๋กœ ๋น„๊ตํ•˜๊ธฐ

  • ์ธก์ • ๊ฐ€๋Šฅํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž์‹  ์žˆ๊ฒŒ ๋ฐ˜๋ณต

  • ๋” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•

์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์‹œ๊ฐ„๊ณผ ํ…Œ์ŠคํŠธ ์ธํ”„๋ผ์— ๋” ๋งŽ์€ ์„ ๋ถˆ ํˆฌ์ž๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, ์ตœ์ข… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹ ๋ขฐ์„ฑ๊ณผ ๊ฒฌ๊ณ ์„ฑ์— ๋Œ€ํ•œ ๋ฐฐ๋‹น๊ธˆ์„ ์ง€๊ธ‰. ๋ชฉํ‘œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์ œ๋ฅผ ์ ‘ํ•œ ํ›„๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ ์ค‘์— ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ.

A typical eval workflow

์ผ๋ฐ˜์ ์ธ ํ”„๋กฌํ”„ํŠธ ํ‰๊ฐ€ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๊ฐ๊ด€์ ์ธ ์ธก์ •์„ ํ†ตํ•ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋‹ค์„ฏ ๊ฐ€์ง€ ์ฃผ์š” ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฆ„

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

.

Step 1: Draft a Prompt

๊ฐœ์„ ํ•  ์ดˆ๊ธฐ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘. ์ด ์˜ˆ์ œ์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉ:

์ด ๊ธฐ๋ณธ ํ”„๋กฌํ”„ํŠธ๋Š” ํ…Œ์ŠคํŠธ ๋ฐ ๊ฐœ์„ ์˜ ๊ธฐ์ค€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

.

Step 2: Create an Eval Dataset

ํ‰๊ฐ€ ๋ฐ์ดํ„ฐ์…‹์—๋Š” ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ”„๋กœ๋•์…˜์—์„œ ์ฒ˜๋ฆฌํ•  ์งˆ๋ฌธ ๋˜๋Š” ์š”์ฒญ ์œ ํ˜•์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒ˜ํ”Œ ์ž…๋ ฅ์ด ํฌํ•จ. ๋ฐ์ดํ„ฐ์…‹์—๋Š” ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ์— ๋ณด๊ฐ„๋  ์งˆ๋ฌธ์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ์…‹์—๋Š” ์„ธ ๊ฐ€์ง€ ์งˆ๋ฌธ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • 2+2๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

  • ์˜คํŠธ๋ฐ€์€ ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋‚˜์š”?

  • ๋‹ฌ์€ ์–ผ๋งˆ๋‚˜ ๋ฉ€๋ฆฌ ์žˆ๋‚˜์š”?

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

.

Step 3: Feed Through Claude

๋ฐ์ดํ„ฐ์…‹์—์„œ ๊ฐ ์งˆ๋ฌธ์„ ๊ฐ€์ ธ์™€ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ๊ณผ ๋ณ‘ํ•ฉํ•˜์—ฌ ์™„์ „ํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ ์งˆ๋ฌธ์„ ํด๋กœ๋“œ์—๊ฒŒ ๋ณด๋‚ด ์‘๋‹ต์„ ์–ป์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฒซ ๋ฒˆ์งธ ์งˆ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

ํด๋กœ๋“œ๋Š” ์ˆ˜ํ•™ ๋ฌธ์ œ์— ๋Œ€ํ•ด "2 + 2 = 4"๋กœ ๋Œ€๋‹ตํ•˜๊ณ , ๋‘ ๋ฒˆ์งธ ์งˆ๋ฌธ์—๋Š” ์˜คํŠธ๋ฐ€ ์š”๋ฆฌ ์ง€์นจ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์„ธ ๋ฒˆ์งธ ์งˆ๋ฌธ์—๋Š” ๋‹ฌ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.

Step 4: Feed Through a Grader

์ฑ„์ ์ž๋Š” ์›๋ž˜ ์งˆ๋ฌธ๊ณผ ํด๋กœ๋“œ์˜ ๋‹ต๋ณ€์„ ๋ชจ๋‘ ๊ฒ€ํ† ํ•˜์—ฌ ํด๋กœ๋“œ์˜ ๋‹ต๋ณ€์˜ ํ’ˆ์งˆ์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 1์—์„œ 10๊นŒ์ง€์˜ ์ฒ™๋„๋กœ ๊ฐ๊ด€์ ์ธ ์ ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, 10์ ์€ ์™„๋ฒฝํ•œ ๋‹ต๋ณ€์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์ ์ˆ˜๊ฐ€ ๋‚ฎ์„์ˆ˜๋ก ๊ฐœ์„ ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์˜ˆ์‹œ์—์„œ, ์ฑ„์ ์ž๋Š” ๋‹ค์Œ์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์ˆ˜ํ•™ ๋ฌธ์ œ: 10 (์™„๋ฒฝํ•œ ๋‹ต)

  • ์˜คํŠธ๋ฐ€ ์งˆ๋ฌธ: 4 (๊ฐœ์„  ํ•„์š”)

  • ๋ฌธ ์งˆ๋ฌธ: 9 (๋งค์šฐ ์ข‹์€ ๋‹ต๋ณ€)

๋ชจ๋“  ์งˆ๋ฌธ์˜ ํ‰๊ท  ์ ์ˆ˜๋Š” ๊ฐ๊ด€์ ์ธ ์ธก์ •์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค: (10 + 4 + 9) รท 3 = 7.66

.

Step 5: Change Prompt and Repeat

์ด์ œ ๊ธฐ๋ณธ ์ ์ˆ˜๋ฅผ ์–ป์—ˆ์œผ๋‹ˆ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํ”„๋กฌํ”„ํŠธ์— ๋” ๋งŽ์€ ์•ˆ๋‚ด๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

๋™์ผํ•œ ํ‰๊ฐ€ ๊ณผ์ •์„ ํ†ตํ•ด ๊ฐœ์„ ๋œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹คํ–‰ํ•œ ํ›„, ํ‰๊ท  ์ ์ˆ˜๊ฐ€ 8.7์  ๋” ๋†’์•„์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์ถ”๊ฐ€ ์ง€์นจ์ด ํด๋กœ๋“œ๊ฐ€ ๋” ๋‚˜์€ ์‘๋‹ต์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

.

Prompt Scoring

์ด ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์ฃผ์š” ์ด์ ์€ ์‹ ์†ํ•œ ์„ฑ๋Šฅ์„ ๊ฐ๊ด€์ ์œผ๋กœ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ 

  • ๋‹ค์–‘ํ•œ ํ”„๋กฌํ”„ํŠธ ๋ฒ„์ „์„ ์ˆ˜์น˜์ ์œผ๋กœ ๋น„๊ตํ•˜๊ธฐ

  • ๊ฐ€์žฅ ์ข‹์€ ์ ์ˆ˜๋ฅผ ๋ฐ›์€ ๋ฒ„์ „ ์‚ฌ์šฉํ•˜๊ธฐ

  • ๋” ๋‚˜์€ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ณ„์† ๋ฐ˜๋ณตํ•˜๊ธฐ

์ด ์ฒด๊ณ„์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์‹ ์†ํ•œ ์—”์ง€๋‹ˆ์–ด๋ง์—์„œ ์ถ”์ธก์„ ์ œ๊ฑฐํ•˜๊ณ , ๋‹น์‹ ์˜ ๋ณ€ํ™”๊ฐ€ ๋‹จ์ˆœํ•œ ๋‹ค์–‘ํ•œ ๋ณ€ํ˜•์ด ์•„๋‹ˆ๋ผ ์˜คํžˆ๋ ค ๊ฐœ์„ ๋œ ๊ฒƒ์ด๋ผ๋Š” ํ™•์‹ ์„ ์ค๋‹ˆ๋‹ค.

Generating test datasets

์‚ฌ์šฉ์ž ์ง€์ • ํ”„๋กฌํ”„ํŠธ ํ‰๊ฐ€ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ๊ฒฌ๊ณ ํ•œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์–ผ๋งˆ๋‚˜ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘. ์‚ฌ์šฉ์ž๊ฐ€ AWS ์ „์šฉ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ”„๋กฌํ”„ํŠธ ํ‰๊ฐ€ ์‹œ์Šคํ…œ์„ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์„ ์‚ดํŽด๋ณด์ž.

.

Setting Up the Goal

ํ”„๋กฌํ”„ํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ AWS ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋Œ€ํ•œ ์„ธ ๊ฐ€์ง€ ํŠน์ • ์œ ํ˜•์˜ ์ถœ๋ ฅ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ํ•„์š”

  • ํŒŒ์ด์ฌ ์ฝ”๋“œ

  • JSON ๊ตฌ์„ฑ ํŒŒ์ผ

  • ์ •๊ทœ ํ‘œํ˜„์‹

ํ•ต์‹ฌ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์— ๋Œ€ํ•œ ๋„์›€์„ ์š”์ฒญํ•  ๋•Œ ์ถ”๊ฐ€ ์„ค๋ช…, ํ—ค๋” ๋˜๋Š” ๋ฐ”๋‹ฅ๊ธ€ ์—†์ด ๋‹ค์Œ ํ˜•์‹ ์ค‘ ํ•˜๋‚˜๋กœ ๊นจ๋—ํ•œ ์ถœ๋ ฅ์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ

์‹œ์ž‘ ํ”„๋กฌํ”„ํŠธ(๋ฒ„์ „ 1)

.

Creating an Evaluation Dataset

ํ‰๊ฐ€ ๋ฐ์ดํ„ฐ์…‹์—๋Š” ํ”„๋กฌํ”„ํŠธ์— ์ž…๋ ฅํ•  ์ž…๋ ฅ์ด ํฌํ•จ

  • ํ”„๋กฌํ”„ํŠธ์™€ ์ž…๋ ฅ์˜ ๊ฐ ์กฐํ•ฉ์— ๋Œ€ํ•ด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์„

์šฐ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ์…‹์€ JSON ๊ฐ์ฒด๋“ค์˜ ๋ฐฐ์—ด

  • ๊ฐ ๊ฐ์ฒด๋Š” Claude๊ฐ€ ๋ฌด์—‡์„ ์„ฑ์ทจํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๋Š” "์ž‘์—…" ์†์„ฑ์„ ํฌํ•จ

  • ์šฐ๋ฆฌ๋Š” ์ด ๋ฐ์ดํ„ฐ์…‹์„ ์†์œผ๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ Claude๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅ

ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ํด๋กœ๋“œ ๋ชจ๋ธ ๋Œ€์‹  Haiku์™€ ๊ฐ™์€ ๋” ๋น ๋ฅธ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์™„๋ฒฝํ•œ ๊ธฐํšŒ

.

Generating Test Data with Code

ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์…‹์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž. ๋จผ์ € ํด๋กœ๋“œ์™€ ํ•จ๊ป˜ ์ž‘์—…ํ•˜๋ ค๋ฉด ๋„์šฐ๋ฏธ ํ•จ์ˆ˜๊ฐ€ ํ•„์š”:

๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ฑ ํ•จ์ˆ˜ ์ƒ์„ฑํ•˜๊ธฐ

JSON ์‘๋‹ต์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋ ค๋ฉด prefilling ๋ฐ ์ค‘์ง€ ์‹œํ€€์Šค๋ฅผ ์‚ฌ์šฉ

.

Testing the Dataset Generation

๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜์—ฌ ์–ด๋–ค ์ข…๋ฅ˜์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์ž.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Python ํ•จ์ˆ˜, JSON ๊ตฌ์„ฑ, AWS ์ „์šฉ ์ž‘์—…์— ๋Œ€ํ•œ ์ •๊ทœ ํ‘œํ˜„์‹ ๋“ฑ ๋ชฉํ‘œ ์ถœ๋ ฅ์„ ๋‹ค๋ฃจ๋Š” ์„ธ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋ฐ˜ํ™˜

.

Saving the Dataset

๋ฐ์ดํ„ฐ์…‹์ด ํ™•๋ณด๋˜๋ฉด ๋‚˜์ค‘์— ํ‰๊ฐ€ ์ค‘์— ์‰ฝ๊ฒŒ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํŒŒ์ผ์— ์ €์žฅ

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋…ธํŠธ๋ถ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— data.json ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋ฉฐ, ์‹ ์†ํ•œ ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด ์ค€๋น„๋œ ์ž‘์—… ๋ชฉ๋ก์ด ํฌํ•จ

์ด ๊ธฐ๋ฐ˜์ด ๋งˆ๋ จ๋จ์— ๋”ฐ๋ผ ์ด์ œ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ AWS ๊ด€๋ จ ์ฝ”๋”ฉ ์ž‘์—…์—์„œ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž˜ ์ˆ˜ํ–‰๋˜๋Š”์ง€ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Running the eval

์ด์ œ ํ‰๊ฐ€ ๋ฐ์ดํ„ฐ์…‹์ด ์ค€๋น„๋˜์—ˆ์œผ๋‹ˆ ํ•ต์‹ฌ ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•  ์ฐจ๋ก€

  • ์—ฌ๊ธฐ์—๋Š” ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๊ฐ€์ ธ์™€ ํ”„๋กฌํ”„ํŠธ์™€ ๋ณ‘ํ•ฉํ•œ ๋‹ค์Œ, ํด๋กœ๋“œ์—๊ฒŒ ๊ณต๊ธ‰, ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ฑ„์ ํ•˜๋Š” ์ž‘์—…์ด ํฌํ•จ

ํ‰๊ฐ€ ๊ณผ์ •์€ ๋ช…ํ™•ํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค:

  • ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋ฐ์ดํ„ฐ์…‹์„ ๊ฐ€์ ธ์™€์„œ ๊ฐ ๋ฐ์ดํ„ฐ์…‹์„ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ๊ณผ ๊ฒฐํ•ฉํ•œ ๋‹ค์Œ ํด๋กœ๋“œ์—๊ฒŒ ์ „์†กํ•˜์—ฌ ์ฒ˜๋ฆฌ

  • ๊ทธ ํ›„, grader system์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ์„ ํ‰๊ฐ€

.

Building the Core Functions

ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ์€ ๊ฐ๊ฐ ํŠน์ • ์ฑ…์ž„์ด ์žˆ๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ธฐ๋Šฅ์œผ๋กœ ๊ตฌ์„ฑ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ์ธ ๊ฐœ๋ณ„ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด์ž.

.

The run_prompt Function

์ด ํ•จ์ˆ˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๊ฐ€์ ธ์™€์„œ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ๊ณผ ๋ณ‘ํ•ฉ

์ง€๊ธˆ์€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜•์‹ ์ง€์ • ์ง€์นจ์„ ํฌํ•จํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํด๋กœ๋“œ๋Š” ํ•„์š” ์ด์ƒ์˜ ์žฅํ™ฉํ•œ ์ถœ๋ ฅ์„ ๋ฐ˜ํ™˜ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‚˜์ค‘์— ํ”„๋กฌํ”„ํŠธ ๋””์ž์ธ์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๊ฐœ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

.

The run_test_case Function

์ด ํ•จ์ˆ˜๋Š” ๋‹จ์ผ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰

ํ˜„์žฌ๋กœ์„œ๋Š” ํ•˜๋“œ์ฝ”๋”ฉ๋œ 10์ ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฑ„์  ๋…ผ๋ฆฌ๋Š” ๋‹ค๊ฐ€์˜ค๋Š” ์„น์…˜์—์„œ ์ƒ๋‹นํ•œ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด placeholder๋ฅผ ํ†ตํ•ด ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.

The run_eval Function

์ด ๊ธฐ๋Šฅ์€ ์ „์ฒด ํ‰๊ฐ€ ๊ณผ์ •์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค:

์ด ๊ธฐ๋Šฅ์€ ๋ฐ์ดํ„ฐ์…‹์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜์˜ ๋ชฉ๋ก์œผ๋กœ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

.

Running the Evaluation

ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ์…‹์„ ๋กœ๋“œํ•˜๊ณ  ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

์ฒ˜์Œ ์‹คํ–‰ํ•  ๋•Œ๋Š” ํด๋กœ๋“œ ํ•˜์ด์ฟ ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์ „์ฒด ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์•ฝ 30์ดˆ ์ •๋„ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ ํ™” ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

.

Examining the Results

ํ‰๊ฐ€๋Š” ๊ฐ ๊ฐ์ฒด๊ฐ€ ํ•˜๋‚˜์˜ ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ตฌ์กฐํ™”๋œ JSON ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค:

๊ฐ ๊ฒฐ๊ณผ์—๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • output: ํด๋กœ๋“œ์˜ ์™„์ „ํ•œ ์‘๋‹ต

  • test_case: ์ฒ˜๋ฆฌ๋œ ์›๋ž˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค

  • score: ํ‰๊ฐ€ ์ ์ˆ˜(ํ˜„์žฌ ํ•˜๋“œ์ฝ”๋”ฉ๋จ)

์ถœ๋ ฅ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ํด๋กœ๋“œ๋Š” ์•„์ง ๊ตฌ์ฒด์ ์ธ ํ˜•์‹ ์ง€์ • ์ง€์นจ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์žฅํ™ฉํ•œ ์‘๋‹ต์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ๋ฅผ ์„ธ๋ถ„ํ™”ํ•˜๋ฉด์„œ ๋ฐ”๋กœ ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

.

What We've Accomplished

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

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

๋‹ค์Œ์œผ๋กœ, ์šฐ๋ฆฌ๋Š” ํ•™์ƒ๋“ค์˜ ์ค‘์š”ํ•œ ์ฃผ์ œ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ๋Š” ์šฐ๋ฆฌ์˜ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์ ์ˆ˜๋ฅผ ํด๋กœ๋“œ์˜ ์„ฑ๊ณผ์— ๋Œ€ํ•œ ์˜๋ฏธ ์žˆ๋Š” ํ‰๊ฐ€๋กœ ๋ณ€ํ™˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Model based grading

์‹ ์†ํ•œ ํ‰๊ฐ€ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ, ์ฑ„์  ์‹œ์Šคํ…œ์€ ์ถœ๋ ฅ ํ’ˆ์งˆ์— ๋Œ€ํ•œ ๊ฐ๊ด€์ ์ธ ์‹ ํ˜ธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฑ„์ ์ž๋Š” ๋ชจ๋ธ ์ถœ๋ ฅ์„ ๋ฐ›์•„ ์ธก์ • ๊ฐ€๋Šฅํ•œ ํ”ผ๋“œ๋ฐฑ(์ผ๋ฐ˜์ ์œผ๋กœ 1 ~ 10 ์‚ฌ์ด์˜ ์ˆซ์ž)์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ 10์€ ๋†’์€ ํ’ˆ์งˆ์„, 1์€ ๋‚ฎ์€ ํ’ˆ์งˆ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

Types of Graders

๋ชจ๋ธ ์ถœ๋ ฅ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • Code graders: ๋งž์ถคํ˜• ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ํ‰๊ฐ€

  • Model graders: ๋‹ค๋ฅธ AI ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’ˆ์งˆ์„ ํ‰๊ฐ€

  • Human graders: ์‚ฌ๋žŒ๋“ค์ด ์ˆ˜๋™์œผ๋กœ ๊ฒฐ๊ณผ๋ฌผ์„ ๊ฒ€ํ† ํ•˜๊ณ  ์ฑ„์ 

Code graders

Code graders๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒ€์‚ฌ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์šฉ๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ์ถœ๋ ฅ ๊ธธ์ด ํ™•์ธ

  • ์ถœ๋ ฅ์— ํŠน์ • ๋‹จ์–ด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ

  • JSON, Python ๋˜๋Š” regex์— ๋Œ€ํ•œ ๊ตฌ๋ฌธ ๊ฒ€์ฆ

  • ๊ฐ€๋…์„ฑ ์ ์ˆ˜

์œ ์ผํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์ฝ”๋“œ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‹ ํ˜ธ(๋ณดํ†ต 1 ~ 10 ์‚ฌ์ด์˜ ์ˆซ์ž)๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Model Graders

Model Graders๋Š” ์›๋ณธ ์ถœ๋ ฅ๋ฌผ ํ‰๊ฐ€๋ฅผ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ API ํ˜ธ์ถœ์— ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ํ‰๊ฐ€์— ์—„์ฒญ๋‚œ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ์‘๋‹ต ํ’ˆ์งˆ

  • ๊ต์œก ํ’ˆ์งˆ ํŒ”๋กœ์šฐ

  • ์™„์ „์„ฑ

  • ์œ ์šฉ์„ฑ

  • ์•ˆ์ „

Human Graders

Human Graders๋Š” ์œ ์—ฐ์„ฑ์„ ๊ฐ€์žฅ ๋งŽ์ด ์ œ๊ณตํ•˜์ง€๋งŒ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ณ  ์ง€๋ฃจํ•ฉ๋‹ˆ๋‹ค. ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค:

  • ์ผ๋ฐ˜ ์‘๋‹ต ํ’ˆ์งˆ

  • ํฌ๊ด„์„ฑ

  • ๊นŠ์ด

  • ๊ฐ„๊ฒฐํ•จ

  • ๊ด€๋ จ์„ฑ

Defining Evaluation Criteria

์ฑ„์ ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— ๋ช…ํ™•ํ•œ ํ‰๊ฐ€ ๊ธฐ์ค€์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์ƒ์„ฑ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ณด๋ ค๋ฉด ๋‹ค์Œ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • Format: ์„ค๋ช… ์—†์ด Python, JSON ๋˜๋Š” Regex๋งŒ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

  • Valid Syntax: ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ์œ ํšจํ•œ ๊ตฌ๋ฌธ์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค

  • Task Following: ์‘๋‹ต์€ ์‚ฌ์šฉ์ž์˜ ์ž‘์—…์„ ์ •ํ™•ํ•œ ์ฝ”๋“œ๋กœ ์ง์ ‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

์ฒ˜์Œ ๋‘ ๊ฐ€์ง€ ๊ธฐ์ค€์€ Code graders์™€ ์ž˜ ์ž‘๋™ํ•˜๋ฉฐ, Task Following๋Š” ์œ ์—ฐ์„ฑ ๋•๋ถ„์— Model Graders์—๊ฒŒ ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

Implementing a Model Grader

Model Grader ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

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

Integrating Grading into Your Workflow

๋งˆ์ง€๋ง‰์œผ๋กœ, ๋ชจ๋“  ์‹œํ—˜ ์‚ฌ๋ก€์—์„œ ํ‰๊ท  ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค:

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ๊ด€์ ์ธ ์ง€ํ‘œ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Model Graders์€ ๋‹ค์†Œ ๋ณ€๋•์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐœ์„  ์‚ฌํ•ญ์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ผ๊ด€๋œ ๊ธฐ์ค€์„ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Code based grading

์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” AI ๋ชจ๋ธ์„ ํ‰๊ฐ€ํ•  ๋•Œ๋Š” ๋‹จ์ˆœํžˆ ์‘๋‹ต์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ ์ด์ƒ์˜ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒ์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ์‹ค์ œ๋กœ ์œ ํšจํ•œ ๊ตฌ๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฝ”๋“œ ๊ธฐ๋ฐ˜ ๋“ฑ๊ธ‰์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

How Code Grading Works

Code grading๋Š” AI ์ƒ์„ฑ ์‘๋‹ต์˜ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์ธก๋ฉด์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

Format

  • ์‘๋‹ต์€ ์„ค๋ช… ์—†์ด ์š”์ฒญ๋œ ์ฝ”๋“œ ์œ ํ˜•(ํŒŒ์ด์ฌ, JSON ๋˜๋Š” Regex)๋งŒ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

Valid Syntax

  • ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ์‹ค์ œ๋กœ ์˜๋„ํ•œ ์–ธ์–ด๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ๋ฌธ ๋ถ„์„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

Task Following

  • ์‘๋‹ต์€ ์š”์ฒญ๋œ ๋‚ด์šฉ์„ ์ง์ ‘ ๋‹ค๋ฃจ๊ณ  ์ •ํ™•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

์ฒ˜์Œ ๋‘ ๊ฐ€์ง€ ๊ธฐ์ค€์€ ์ฝ”๋“œ ์ฑ„์ ์ž๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ , Task Following๋Š” ๋ชจ๋ธ ์ฑ„์ ์ž๊ฐ€ ํ‰๊ฐ€ํ•˜์—ฌ ํ•จ๊ป˜ ์ข…ํ•ฉ์ ์ธ ํ‰๊ฐ€๋ฅผ ์ œ๊ณต

Syntax Validation Functions

์ƒ์„ฑ๋œ ์ฝ”๋“œ์— ์œ ํšจํ•œ ๊ตฌ๋ฌธ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์ถœ๋ ฅ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ๋„์šฐ๋ฏธ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ํ•จ์ˆ˜๋Š” ํ…์ŠคํŠธ๋ฅผ ๊ฐ์ž์˜ ํ˜•์‹์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ ๋ถ„์„์— ์„ฑ๊ณตํ•˜๋ฉด 10์  ๋งŒ์ ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•˜๋ฉด ๊ตฌ๋ฌธ์ด ์ž˜๋ชป๋˜์–ด 0์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Dataset Format Requirements

code grader๊ฐ€ ์–ด๋–ค ๊ฒ€์ฆ๊ธฐ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ์˜ˆ์ƒ ์ถœ๋ ฅ ํ˜•์‹์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์ถœ๋ ฅ ๊ตฌ์กฐ์— ์ด ํ˜•์‹ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ž๋™์œผ๋กœ ํฌํ•จํ•˜๋„๋ก ๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ฑ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Improving Prompt Clarity

AI ๋ชจ๋ธ์—์„œ ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์œผ๋ ค๋ฉด ์˜ˆ์ƒ ์ถœ๋ ฅ ํ˜•์‹์— ๋Œ€ํ•œ ํ”„๋กฌํ”„ํŠธ ์ง€์นจ์„ ๋ณด๋‹ค ๊ตฌ์ฒด์ ์œผ๋กœ ์ž‘์„ฑํ•˜์„ธ์š”:

์ฝ”๋“œ ๋ธ”๋ก์ด ํฌํ•จ๋œ ๋ฏธ๋ฆฌ ์ฑ„์›Œ์ง„ ์–ด์‹œ์Šคํ„ดํŠธ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์ด ์›์‹œ ์ฝ”๋“œ๋งŒ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์œ ๋„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค:

์ด๊ฒƒ์€ ํด๋กœ๋“œ์—๊ฒŒ ๋ฏธ๋ฆฌ ํŒŒ์ด์ฌ์ธ์ง€ JSON์ธ์ง€ Regex์ธ์ง€ ์ง€์ •ํ•  ํ•„์š” ์—†์ด ์ฝ”๋“œ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ์„ ์‹œ์ž‘ํ•˜๋ผ๊ณ  ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

Combining Scores

๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„๋Š” ๋ชจ๋ธ ์ฑ„์ ์ž ์ ์ˆ˜์™€ ์ฝ”๋“œ ์ฑ„์ ์ž ์ ์ˆ˜๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค:

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

Testing Your Implementation

code grading์„ ๊ตฌํ˜„ํ•œ ํ›„์—๋Š” ํ‰๊ฐ€๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๊ธฐ๋ณธ ์ ์ˆ˜๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

  • ์ ์ˆ˜ ์ž์ฒด๊ฐ€ ๋ณธ์งˆ์ ์œผ๋กœ ์ข‹๊ฑฐ๋‚˜ ๋‚˜์œ ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ, ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ ์ ์ˆ˜๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

  • ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฃผ๊ด€์ ์ธ ํ‰๊ฐ€์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ์‹ ์†ํ•œ ์—”์ง€๋‹ˆ์–ด๋ง ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ •๋Ÿ‰์ ์œผ๋กœ ์ธก์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Exercise on prompt evals

๋ชจ๋ธ ์ฑ„์ ์ž์—๊ฒŒ ์ข‹์€ ์†”๋ฃจ์…˜์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ๋ฌธ๋งฅ์„ ์ œ๊ณตํ•˜๊ธฐ

  • Step #1: ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— "solution_criteria"์ด ํฌํ•จ๋˜๋„๋ก ๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ฑ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—…๋ฐ์ดํŠธ

  • Step #2: ํ•ด๋‹น ์†”๋ฃจ์…˜ ๊ธฐ์ค€์„ ํฌํ•จํ•˜๋„๋ก 'grade_by_model' ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—…๋ฐ์ดํŠธ

์š”์•ฝ

์„น์…˜ ์ œ๋ชฉ

์š”์•ฝ ๋‚ด์šฉ

Prompt evaluation

Prompt engineering๊ณผ evaluation์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…. Engineering์€ ๋” ๋‚˜์€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ์ˆ , Evaluation์€ ํ”„๋กฌํ”„ํŠธ์˜ ํšจ๊ณผ๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ณผ์ •.

Prompt Engineering vs Prompt Evaluation

Prompt engineering์€ ํšจ๊ณผ์ ์ธ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ , Evaluation์€ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ํ”„๋กฌํ”„ํŠธ์˜ ์„ฑ๋Šฅ์„ ์ธก์ •.

Three Paths After Writing a Prompt

ํ”„๋กฌํ”„ํŠธ ์ž‘์„ฑ ํ›„ ํ…Œ์ŠคํŠธ ์˜ต์…˜ 3๊ฐ€์ง€: 1) ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ, 2) ์ฝ”๋„ˆ ์ผ€์ด์Šค ์ฒ˜๋ฆฌ, 3) ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•œ ์ฒด๊ณ„์  ๋ฐ˜๋ณต.

Why Most Engineers Fall Into Testing Traps

์ œํ•œ๋œ ํ…Œ์ŠคํŠธ๋กœ ์ธํ•ด ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ž…๋ ฅ์— ์ทจ์•ฝํ•œ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ”„๋กœ๋•์…˜์—์„œ ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ.

The Evaluation-First Approach

ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ํ”„๋กฌํ”„ํŠธ์˜ ์•ฝ์ ์„ ์‚ฌ์ „์— ํŒŒ์•…ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋ฒ„์ „์„ ๋น„๊ตํ•˜๋ฉฐ, ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•.

A typical eval workflow

ํ”„๋กฌํ”„ํŠธ ํ‰๊ฐ€ ์›Œํฌํ”Œ๋กœ์šฐ์˜ 5๋‹จ๊ณ„: 1) ์ดˆ๊ธฐ ํ”„๋กฌํ”„ํŠธ ์ž‘์„ฑ, 2) ํ‰๊ฐ€ ๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ฑ, 3) Claude์— ์ž…๋ ฅ, 4) ์ฑ„์ , 5) ํ”„๋กฌํ”„ํŠธ ์ˆ˜์ • ๋ฐ ๋ฐ˜๋ณต.

Generating test datasets

ํ‰๊ฐ€ ๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ฑ ๋ฐฉ๋ฒ•: Claude๋ฅผ ์‚ฌ์šฉํ•ด ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , JSON ํ˜•์‹์œผ๋กœ ์ €์žฅํ•˜์—ฌ ํ‰๊ฐ€์— ํ™œ์šฉ.

Running the eval

ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰: ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ํ”„๋กฌํ”„ํŠธ์™€ ๋ณ‘ํ•ฉํ•ด Claude์— ์ž…๋ ฅํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ฑ„์ ํ•˜์—ฌ ๊ตฌ์กฐํ™”๋œ JSON์œผ๋กœ ๋ฐ˜ํ™˜.

Model based grading

๋ชจ๋ธ ๊ธฐ๋ฐ˜ ์ฑ„์ : Claude์˜ ์ถœ๋ ฅ๋ฌผ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ AI ๋ชจ๋ธ์„ ์‚ฌ์šฉ. ๊ฐ•์ , ์•ฝ์ , ์ ์ˆ˜๋ฅผ ํฌํ•จํ•œ ๊ตฌ์กฐํ™”๋œ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต.

Code based grading

์ฝ”๋“œ ์ฑ„์ : ์ƒ์„ฑ๋œ ์ฝ”๋“œ์˜ ํ˜•์‹, ๊ตฌ๋ฌธ ์œ ํšจ์„ฑ, ์ž‘์—… ์ค€์ˆ˜ ์—ฌ๋ถ€๋ฅผ ํ‰๊ฐ€. Python, JSON, Regex์— ๋Œ€ํ•œ ๊ตฌ๋ฌธ ๊ฒ€์ฆ ํ•จ์ˆ˜ ์ œ๊ณต.

Exercise on prompt evals

๋ฐ์ดํ„ฐ์…‹์— "solution_criteria"๋ฅผ ์ถ”๊ฐ€ํ•ด ํ‰๊ฐ€ ๊ธฐ์ค€์„ ๋ช…ํ™•ํžˆ ํ•˜๊ณ , Claude์˜ ํ‰๊ฐ€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์„ ์ƒ์„ฑํ•˜๋„๋ก ์œ ๋„.

Last updated