๐Ÿ’ป Software Engineering/AI ์ธ๊ณต์ง€๋Šฅ

ChatGPT Prompt Engineering: ์งˆ๋ฌธ ์ž˜ ๋„ฃ์–ด์„œ ๋ง ์ž˜๋“ฃ๋Š” ์ฑ—๋ด‡ ๋งŒ๋“œ๋Š” ๋ฒ•

MayKim51 2023. 10. 8. 17:10

์ด ํฌ์ŠคํŠธ์˜ ๋” ์ ์ ˆํ•œ ์ œ๋ชฉ์€

'OpenAI์˜ LLM API์— ์•Œ๋งž์€ prompt๋ฅผ ๋„˜๊ฒจ์„œ ๋‚ด๊ฐ€ ์˜๋„ํ•œ๋Œ€๋กœ ๋Œ€๋‹ตํ•˜๋Š” ์ฑ—๋ด‡ ๋งŒ๋“œ๋Š” ๋ฒ•'

์ด๋‹ค. 

 

๋“œ๋””์–ด ์—…๋ฌด์ƒ OpenAI์˜ LLM์„ ์จ๋ณผ ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

๊ธฐ์–ต์šฉ์œผ๋กœ ๊ฐ„์ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•ด๋ณธ๋‹ค.

 

์‚ฌ์‹ค ์˜ฌ์ดˆ ChatGPT๊ฐ€ ๋“ฑ์žฅํ•˜์ž๋งˆ์ž ๊ณ ๋ง™๊ฒŒ๋„ ํšŒ์‚ฌ์—์„œ ChatGPT๋ฅผ ์ œ๊ณตํ•ด์ฃผ์—ˆ๊ณ , (Azure๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•œ๋‹ค^^)

๊ทธ๋™์•ˆ์€ ์ฃผ๋กœ syntax ์ ๊ฒ€, ๋ฆฌํŒฉํ† ๋ง, ์‹ฌ์‹ฌํ’€์ด(?)์— ์‚ฌ์šฉํ•ด์˜ค๊ธด ํ–ˆ์—ˆ๋‹ค.


์šฉ์–ด์ •๋ฆฌ

  • OpenAI: ํšŒ์‚ฌ ์ด๋ฆ„
  • ChatGPT: OpenAI์—์„œ ์ œ๊ณตํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„. ์ฆ‰ interface.
  • LLM: Large Language Model. OpenAI๊ฐ€ ๊ฐœ๋ฐœํ•œ ์–ธ์–ด ๋ชจ๋ธ๋“ค์„ ํ†ต์นญํ•œ๋‹ค. GPT-4๊ฐ€ ํ•œ ์ข…๋ฅ˜์ด๊ณ  2023๋…„ 10์›” ํ˜„์žฌ ChatGPT๊ฐ€ ์‚ฌ์šฉ์ค‘.
  • Prompt Engineering: '์งˆ๋ฌธ ์ž˜ํ•˜๋Š” ๋ฒ•'. LLM์— ๋„˜๊ธฐ๋Š” ์ฒซ input์„ prompt๋ผ๊ณ  ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ '์ฒซ ์ง€์‹œ'์ธ ์…ˆ. ์ด prompt๋ฅผ ์ „๋žต์ ์œผ๋กœ ๋งค์šฐ ์ž˜ ์จ์•ผ ์›ํ•˜๋Š” ๋‹ต๋ณ€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด prompt๋ฅผ ์ž˜ ๋งŒ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ prompt engineering์ด๋ผ๊ณ  ํ•œ๋‹ค. 

๋”ฐ๋ผ์„œ ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ์ด ํฌ์ŠคํŠธ์˜ ์ œ๋ชฉ์€ ์•ฝ๊ฐ„ ํ‹€๋ฆฐ๊ฑฐ๋‹ค. ๊ทธ๋ž˜๋„ ๊ณต๋ถ€ํ•œ ๊ฐ•์˜ ์ œ๋ชฉ์ด ChatGPT Prompt Engineering์ด๊ณ , ChatGPT ํ‚ค์›Œ๋“œ๊ฐ€ ์กฐํšŒ์ˆ˜์— ์ด๋“์ด ํด ๊ฒƒ ๊ฐ™๋‹ค.

 

 

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

  1. ๊ทธ ์–ด๋–ค Prompt๋„ ์ดˆ์•ˆ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ข‹์€ ํ”„๋กฌํ”„ํŠธ ์ž์ฒด๋ณด๋‹ค ์ข‹์€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ค‘์š”ํ•˜๋‹ค. ๋‹ต์„ ์—ฌ๋Ÿฌ๋ฒˆ ๋‚ด๋ณด๊ณ , ์—ฌ๋Ÿฌ๋ฒˆ ๊ฐœ์„ ํ•œ๋‹ค.
  2. ๋ช…ํ™•ํ•˜๊ฒŒ ์“ฐ๊ณ , specificํ•˜๊ฒŒ ์ง€์‹œ๋ฅผ ๋‚ด๋ฆฐ๋‹ค.
    1. ```, """, <>, <tag>, : ๋“ฑ์˜ ์ ์ ˆํ•œ Delimeter๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    2. Output ํ˜•์‹์„ ์ง€์ •ํ•ด์ค˜๋„ ๋œ๋‹ค. JSON, HTML ๊ฐ€๋Šฅ. Output ์˜ˆ์‹œ๋ฅผ ์•Œ๋ ค์ค˜๋„ ๋œ๋‹ค.
    3. ์˜ˆ์™ธ ์ผ€์ด์Šค๋ฅผ ์•Œ๋ ค์ค€๋‹ค. (์˜ˆ: ์‹๋‹น ์ฃผ๋ฌธ ๋ด‡์ธ๋ฐ, ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ์—†๋Š” ๋ฉ”๋‰ด๋ฅผ ๋‹ฌ๋ผํ•˜๋ฉด "Naga" ๋ผ๊ณ  ๋Œ€๋‹ตํ•ด๋ผ)
  3. ์ƒ๊ฐํ•  ์‹œ๊ฐ„์„ ์ข€ ์ค€๋‹ค. ์–˜๋„ ์‹œ๊ฐ„์ด ์ซ„๋ฆฌ๋ฉด ์˜ค๋‹ต์„ ๋‚ธ๋‹ค.
    1. ์–ด๋–ค ์ˆœ์„œ๋กœ ์ƒ๊ฐํ• ์ง€ ์•Œ๋ ค์ค˜๋„ ๋œ๋‹ค.
    2. ์ง์ ‘ ๋‹ต์„ ๋จผ์ € ๋‚ด๋ณธ ํ›„์— ๋‚ด๊ฐ€ ์ค€ ๋‹ต์•ˆ์„ ๊ฒ€ํ† ํ•˜๋ผ๊ณ  ํ•œ๋‹ค

 

์ฑ—๋ด‡ ๋งŒ๋“ค๊ธฐ

  • ์ฑ—๋ด‡์˜ ๋“ฑ์žฅ์ธ๋ฌผ(Role)์€ ์…‹์ด๋‹ค. System, Assistant(์ž๋™ ์‘๋‹ตํ•˜๋Š” ์• ), User(๋‚˜).
  • ์šฐ๋ฆฌ๊ฐ€ ๋ณด๋Š” ์ฑ—๋ด‡ ๋ฉ”์‹œ์ง€๋Š” Assistant, User๋งŒ ๋ณด๋‚ธ๋‹ค.
  • System์€ Assistant์˜†์— ๋ถ™์–ด์„œ ๊ท“์†๋ง๋กœ ์†๋‹ฅ์†๋‹ฅ ํ–‰๋™์ง€์นจ์„ ์ฃผ๋Š”์• ๋‹ค. ("์ €๋Š” ์‹๋‹น์—์„œ ์„œ๋น™ํ•˜๋Š” ์นœ์ ˆํ•œ ์•Œ๋ฐ”์ƒ์ด์•ผ.")

์ถœ์ฒ˜: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/

payload ์˜ˆ์‹œ

messages = [
	{
    	"role": "system",
        "content": "๋„ˆ๋Š” ์‹๋‹น ์ฃผ๋ฌธ๋ฐ›๋Š” ์–ด์‹œ์Šคํ„ดํŠธ์•ผ. ์นœ์ ˆํ•ด์•ผํ•˜๊ณ , ๋‚ด๊ฐ€ ์•Œ๋ ค์ฃผ์ง€ ์•Š์€ ์ •๋ณด๋Š” ๋งํ•˜๋ฉด ์•ˆ๋ผ...."
    },
    {
    	"role": "user",
        "content": "๋ฉ”๋‰ด ๋ญ๋ญ ์žˆ๋‚˜์š”?"
    },
    {
    	"role": "assistant",
        "content": "๋ฉ”๋‰ด๋Š” !@#!$ , !@#.... ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค"
    },
    {
    	"role": "user",
        "content": "!@#!$ ๋Š” ์–ผ๋งˆ์˜ˆ์š”?"
    },
]

 


์ฐธ์กฐ

ChatGPT Prompt Engineering: https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/