๐Ÿ“บ ์˜์ƒ ์š”์•ฝ ์•„์นด์ด๋ธŒ
โ† ๋ชฉ๋ก

AI Evals for Cross-Functional Teams โ€” Nachiket Paranjape & Swaroop Chitlur Haridas, DoorDash

AI Engineer ยท 2026-08-29 00:00 ยท 16:11

ํ•œ ์ค„ ํ•ต์‹ฌ

DoorDash๋Š” AI ํ’ˆ์งˆ ๊ด€๋ฆฌ๋ฅผ ์—”์ง€๋‹ˆ์–ด๋ง ๋ณด์กฐ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ ์ „์‚ฌ์  ํ‰๊ฐ€ ์ฒด๊ณ„๋กœ ์žฌ์ •์˜ํ•ด, APIยท์›Œํฌํ”Œ๋กœยท์ž๊ธฐ์„œ๋น™ UI๋ฅผ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ฃผ์„ ๋น„์šฉ๊ณผ ํ’ˆ์งˆ ๊ฒ€์ฆ ์†๋„๋ฅผ ๋™์‹œ์— ๊ฐœ์„ ํ–ˆ๋‹ค.

์‹œ๊ฐ„๋ณ„ ์š”์•ฝ

  1. 0:00
    GenAI ํ”Œ๋žซํผ ํŒ€๊ณผ ์„ธ ๊ฐ€์ง€ ํž˜ DoorDash์˜ GenAI ํ”Œ๋žซํผ ํŒ€์€ ์—ฌ๋Ÿฌ ์ œํ’ˆํŒ€์ด ๊ณตํ†ต ์ธํ”„๋ผ ์œ„์—์„œ ์ผํ•˜๋„๋ก ๋•๋Š” ์ˆ˜ํ‰ ์กฐ์ง์ด๋ฉฐ, ํ•ต์‹ฌ ๊ฐ€์น˜๋Š” accuracy, latency, cost์˜ ๊ท ํ˜•์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด LLM gateway, agent gateway, open weights ๋ชจ๋ธ ํ˜ธ์ŠคํŒ… ๊ฐ™์€ ๊ณตํ†ต ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ œ๊ณตํ–ˆ๊ณ , ์ด ์ฒด๊ณ„ ์œ„์—์„œ eval์ด ๋„ค ๋ฒˆ์งธ ์ถ•์œผ๋กœ ๋ถ€์ƒํ–ˆ๋‹ค.
  2. 2:05
    eval์ด ๋„ค ๋ฒˆ์งธ ์ถ•์ด ๋œ ์ด์œ  ํŒ€๋งˆ๋‹ค ํ•„์š”ํ•œ ํ’ˆ์งˆ ํŒ๋‹จ์ด ๋‹ฌ๋ผ ๋‹จ์ผ ๋ฐฉ์‹์œผ๋กœ๋Š” ๋Œ€์‘ํ•  ์ˆ˜ ์—†์—ˆ๊ณ , ์„ธ์…˜ ๋‹จ์œ„ ํ‰๊ฐ€, ์ธ๊ฐ„ ํŒ๋‹จ ํ™•์žฅ, trajectory ๊ธฐ๋ฐ˜ ํ‰๊ฐ€์ฒ˜๋Ÿผ ์š”๊ตฌ๊ฐ€ ๋‹ค์–‘ํ–ˆ๋‹ค. ๊ฒฐ๊ตญ ํ‰๊ฐ€ ์ฒด๊ณ„๋Š” ๋„๋ฉ”์ธ ์ „๋ฌธ๊ฐ€์ธ ์ „๋žตยท์šด์˜, PM, ๋ผ๋ฒจ๋ง ํŒŒํŠธ๋„ˆ๊นŒ์ง€ ์ฐธ์—ฌํ•˜๋Š” ํ˜‘์—… ๋ฌธ์ œ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค.
  3. 3:05
    UI ์šฐ์„ , ๊ทธ๋‹ค์Œ API ์šฐ์„ , ๊ทธ๋ฆฌ๊ณ  ์›Œํฌํ”Œ๋กœ ์šฐ์„  ์ฒ˜์Œ์—๋Š” ๋น„๊ฐœ๋ฐœ์ž๋„ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก UI๋ฅผ ๋จผ์ € ๋งŒ๋“ค๊ณ , ์ดํ›„ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์ค‘์•™ ํ”Œ๋žซํผ์— ๋ง‰ํžˆ์ง€ ์•Š๋„๋ก API๋ฅผ ์šฐ์„ ์‹œํ–ˆ๋‹ค. ์ง€๊ธˆ์€ coding agents์˜ ํ™•์‚ฐ์œผ๋กœ S&O์™€ PM๋„ ํ”Œ๋žซํผ์—์„œ ์ง์ ‘ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” workflow first ๋‹จ๊ณ„๋กœ ์ง„ํ™”ํ–ˆ๋‹ค.
  4. 4:01
    ์—”์ง€๋‹ˆ์–ด๋ง ํ•˜๋„ค์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ํŒ€ ์Šคํฌ์ธ ๋กœ์„œ์˜ eval ํ‰๊ฐ€๋Š” ๋‹จ์ˆœํ•œ ์—”์ง€๋‹ˆ์–ด๋ง ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ํŒ€์ด ํ•จ๊ป˜ ํ’ˆ์งˆ์„ ์ •์˜ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๋Š” ๊ณต๋™ ์ž‘์—…์ด๋‹ค. ์ „๋žตยท์šด์˜์€ ๋ชฉํ‘œ ํ’ˆ์งˆ ๊ธฐ์ค€์„ ์ •ํ•˜๊ณ , ์ œํ’ˆํŒ€์€ rubric๊ณผ workflow๋กœ ๋ฒˆ์—ญํ•˜๋ฉฐ, ์šด์˜ํŒ€์€ annotation์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ์—”์ง€๋‹ˆ์–ด๋งํŒ€์€ APIยทtelemetryยทdatasetยทjudge๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  5. 4:57
    ํ’ˆ์งˆ์˜ ๊ฐ ๋ถ€๋ถ„์„ ๋ˆ„๊ฐ€ ๋งก๋Š”๊ฐ€ ํ’ˆ์งˆ ๊ฐœ์„ ์€ trace ์ˆ˜์ง‘์—์„œ ์‹œ์ž‘ํ•ด sampling, annotation, golden dataset ์ƒ์„ฑ, calibrate, monitoring์œผ๋กœ ์ด์–ด์ง€๋Š” ๋ฐ˜๋ณต ๋ฃจํ”„๋กœ ์ •๋ฆฌ๋œ๋‹ค. ์ด ๊ตฌ์กฐ์—์„œ ํ”Œ๋žซํผ์€ telemetry์™€ workflow๋ผ๋Š” ๋‘ ํ‘œ๋ฉด์„ ์ œ๊ณตํ•˜๊ณ , ๊ฐ ํŒ€์€ ์ž์‹ ์˜ ์—ญํ• ์— ๋งž์ถฐ ํ’ˆ์งˆ ํ–ฅ์ƒ์— ๊ธฐ์—ฌํ•œ๋‹ค.
  6. 5:53
    trace, sample, annotate, calibrate์˜ ์—ฐ์† ๋ฃจํ”„ ํ”Œ๋žซํผ์€ traces, scores, observations๋ฅผ ๋ชจ์œผ๋Š” telemetry layer์™€ annotation ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” workflow layer๋กœ ๋‚˜๋‰œ๋‹ค. ๊ณตํ†ต API์™€ SDK, MCP ์ ‘๊ทผ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ , golden dataset๊ณผ judge calibration์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ํ’ˆ์งˆ์„ ์ง€์†์ ์œผ๋กœ ์˜ฌ๋ฆฐ๋‹ค.
  7. 7:42
    telemetry์™€ ์›Œํฌํ”Œ๋กœ๋ผ๋Š” ๋‘ ๊ฐœ์˜ ํ‘œ๋ฉด telemetry์—์„œ๋Š” ์„ธ์…˜๊ณผ ์ ์ˆ˜๋ฅผ ๋ณด๊ณ , workflow์—์„œ๋Š” ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฃผ์„ํ• ์ง€ ์ •ํ•˜๊ณ  ๊ฒ€ํ† ํ•œ๋‹ค. ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋„ˆ๋ฌด ๋‹ค์–‘ํ•ด ์ค‘์•™ํŒ€์ด ๋ชจ๋“  UI๋ฅผ ๋งŒ๋“ค๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์—, API ์ค‘์‹ฌ ์„ค๊ณ„๋กœ ๊ฐ ํŒ€์ด ์ž๊ธฐ ์ƒํ™ฉ์— ๋งž๋Š” ํ๋ฆ„์„ ๊ตฌ์„ฑํ•˜๊ฒŒ ํ–ˆ๋‹ค.
  8. 9:32
    ์šด์˜์ž๊ฐ€ ์ž๊ธฐ annotation UI๋ฅผ vibe codingํ•˜๊ธฐ API๊ฐ€ ์ถฉ๋ถ„ํžˆ ์•ˆ์ •์ ์ด์–ด์„œ ์šด์˜ํŒ€์ด CodeX๋‚˜ Claude Code๋กœ ์ž์ฒด annotation UI๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋ฏธ์ง€ ์ฃผ์„๊ณผ ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์ฒ˜๋Ÿผ ์„œ๋กœ ๋‹ฌ๋ผ๋„ ํŒจํ„ด์ด ๋น„์Šทํ•œ ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ์ž๊ธฐ์„œ๋น™ UI๋กœ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ํ”Œ๋žซํผ ์˜์กด๋„๋ฅผ ์ค„์˜€๋‹ค.
  9. 11:21
    judge prompt๋ฅผ self-serve๋กœ ๋ณด์ •ํ•˜๊ธฐ LLM as a judge์˜ prompt calibration์„ ์‚ฌ๋žŒ์ด ์ง์ ‘ ์—”์ง€๋‹ˆ์–ด๋งํŒ€์— ์š”์ฒญํ•˜์ง€ ์•Š๊ณ , PM์ด๋‚˜ ์šด์˜์ž๊ฐ€ UI์—์„œ ์„ค์ •์„ ๋ฐ”๊ฟ” ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ๋‹ค. ๋˜ํ•œ ์ด์ „ prompt์™€ ๋ณด์ •๋œ prompt๋ฅผ ํ•จ๊ป˜ ๋ณด์—ฌ์ค˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ€ํ†  ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ ๋ขฐ๋ฅผ ๋†’์˜€๋‹ค.
  10. 13:10
    ํŒ€๋งˆ๋‹ค ๋‹ค๋ฅธ prompt ์†Œ์œ  ๊ตฌ์กฐ ์–ด๋–ค ํŒ€์€ ์ „๋žตยท์šด์˜์ด prompt๋ฅผ ์†Œ์œ ํ•˜๊ณ , ์–ด๋–ค ํŒ€์€ PM์ด๋‚˜ ์—”์ง€๋‹ˆ์–ด๋ง์ด ์†Œ์œ ํ•˜๋Š” ์‹์œผ๋กœ ์šด์˜ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์กŒ๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ˆ„๊ฐ€ ์†Œ์œ ํ•˜๋“  self-serve๋กœ ์„ค๊ณ„ํ•ด ํŒ€์ด ๋ง‰ํžˆ์ง€ ์•Š๊ณ  ์Šค์Šค๋กœ ์ง„ํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ์ ์ด๋‹ค.
  11. 14:04
    ์ฃผ์„ ๋น„์šฉ์— ๋ฏธ์นœ ์˜ํ–ฅ self-serve annotation platform ๋•๋ถ„์— ์ฃผ์„๋‹น ๋น„์šฉ์ด ํฌ๊ฒŒ ์ค„๊ณ , ์ˆ˜์ฒœ ํ–‰์„ ์ฃผ๋งˆ๋‹ค ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ์ž‘์—… ์†๋„์™€ ๋ฐ˜๋ณต ์ฃผ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๋นจ๋ผ์กŒ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ํŒ€๋“ค์€ ๋” ๋น ๋ฅด๊ฒŒ judge๋ฅผ ๋ณด์ •ํ•˜๊ณ , ๋” ๋†’์€ ์†๋„๋กœ ํ’ˆ์งˆ ๊ฐœ์„  ๋ฃจํ”„๋ฅผ ๋Œ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.

์‹ค๋ฌด ์ธ์‚ฌ์ดํŠธ

  • ํ‰๊ฐ€ ์ฒด๊ณ„๋ฅผ ์—”์ง€๋‹ˆ์–ด๋ง ์‚ฐ์ถœ๋ฌผ๋กœ๋งŒ ๋‘์ง€ ๋ง๊ณ , ์ „๋žตยท์šด์˜ยท์ œํ’ˆยท์šด์˜ํŒ€์ด ํ•จ๊ป˜ ์“ฐ๋Š” ๊ณต์šฉ ํ”„๋กœ์„ธ์Šค๋กœ ์„ค๊ณ„ํ•ด์•ผ ์‹ค์ œ ํ’ˆ์งˆ ๊ฐœ์„ ์ด ๋นจ๋ผ์ง„๋‹ค.
  • API๋ฅผ ๋จผ์ € ์•ˆ์ •ํ™”ํ•˜๋ฉด ๊ฐ ํŒ€์ด ์ž๊ธฐ ์—…๋ฌด์— ๋งž๋Š” UI์™€ ์›Œํฌํ”Œ๋กœ๋ฅผ ์Šค์Šค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด, ์ค‘์•™ ํ”Œ๋žซํผ์˜ ๋ณ‘๋ชฉ๊ณผ ์ฃผ์„ ๋น„์šฉ์„ ๋™์‹œ์— ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  • judge calibration์€ ํ•œ ๋ฒˆ์— ๋๋‚ด๋Š” ์ž‘์—…์ด ์•„๋‹ˆ๋ผ golden dataset๊ณผ ๊ฐ€์‹œํ™”๋œ ๋น„๊ต ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ณ„์† ๋ฐ˜๋ณตํ•ด์•ผ ์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ ํ‰๊ฐ€ ์ฒด๊ณ„๊ฐ€ ๋œ๋‹ค.