개발자를 위한 ChatGPT 프롬프트 엔지니어링 과정에 오신 것을 환영합니다. 이번 강의에 저와 함께 Iza Fulford가 동참합니다. 그녀는 OpenAI의 기술 스태프 중 한 명으로 인기 있는 ChatGPT Retrieval 플러그인을 개발했습니다. 또한 주로 대규모 언어 모델(Large Language Model) 기술을 제품에 사용하는 방법을 가르치는 업무를 맡았습니다. 그녀는 프롬프트를 가르치는 OpenAI Cookbook에도 기여한 바 있습니다. 이번 기회에 프롬프트 사용의 모범 사례를 여러분과 함께 공유하게 되어 기쁩니다.
인터넷 상에서는 "모두가 알아야 할 30가지 프롬프트"와 같은 많은 글이 있지만, 대부분이 ChatGPT 웹 사용자 인터페이스에 초점을 맞추고 있습니다. 이는 주로 특정한 일회성 작업을 수행하는 데 사용됩니다. 하지만 개발자로서, 대규모 언어 모델을 활용하여 API 호출을 통해 소프트웨어 애플리케이션을 빠르게 구축하는 것이 더 중요한 부분이라고 생각합니다. 이 점은 아직도 과소평가되고 있다고 생각합니다.
실제로, Deep Learning.AI의 자매 회사인 AI Fund에서는 다양한 애플리케이션에 이러한 기술을 적용하는 많은 스타트업과 협업하고 있습니다. 또한 대규모 언어 모델 API를 활용하여 개발자들이 어떤 것들을 신속하게 구축할 수 있는지에 대한 실익을 경험하고 있습니다.이 과정에서는 가능한 일들과 그것들을 수행하는 데 있어 모범 사례들을 여러분과 공유해 드리겠습니다. 굉장히 많은 내용들을 다뤄야 합니다. 먼저 소프트웨어 개발을 위한 프롬프트 모범 사례들을 배우실 것입니다. 그 다음에는 일반적인 사용 사례들을 다루겠습니다. 요약, 추론, 변형, 확장 등의 내용이 포함되며, 마지막으로는 LLM을 사용해 챗봇을 만들어 보실 것입니다. 이를 통해 여러분이 만들어낼 수 있는 새로운 애플리케이션들에 대한 상상력을 자극 하고자 합니다.
따라서 대규모 언어 모델, 즉 LLM 개발에서 두 가지 유형의 모델이 등장하게 되었습니다. 기본 LLM과 인스트럭션 튜닝 LLM이라는 것입니다. 기본 LLM은 텍스트 학습 데이터를 기반으로 다음 단어를 예측하도록 학습되었습니다. 대부분 인터넷과 다른 소스에서 얻은 방대한 양의 데이터를 활용하여, 어떤 단어가 다음으로 나올 가능성이 가장 높은지를 알아내게 됩니다. 예를 들어 "옛날 옛적에 유니콘이 있었어요"라는 문장을 주면 이어서 "마법의 숲에서 유니콘 친구들과 함께 살았습니다"라고 예측할 수 있습니다.그러나 프랑스의 수도가 무엇인지 묻는다면 인터넷에 있는 기사를 기반으로 한 기본 LLM은 프랑스에서 가장 큰 도시가 무엇인지, 프랑스 인구가 얼마인지 등으로 완성할 가능성이 높습니다. 인터넷에 있는 기사는 프랑스와 관련된 퀴즈 문제 목록일 수 있기 때문입니다. 대조적으로, 많은 발전이 명령어에 예민한 LLM에서 이루어지고 있습니다.
지시에 따라 튜닝된 LLM은 지시 사항을 따르도록 훈련되어 있습니다. 그래서 프랑스의 수도가 어디냐고 묻는다면, 프랑스의 수도는 파리라고 대답할 가능성이 훨씬 높습니다. 지시에 따라 튜닝된 LLM을 학습시키는 일반적인 방식은 대량의 텍스트 데이터로 학습된 기본 LLM으로 시작하여, 입력 및 출력이 지시 사항과 그에 따른 정확한 시도로 구성된 데이터를 통해 추가적으로 학습하여 미세 조정하는 것입니다. 그 다음에는 인간의 피드백으로부터 강화 학습인 RLHF(Reinforcement Learning from Human Feedback) 기법을 사용하여 시스템이 보다 도움이 되고 지시사항을 잘 따르도록 개선합니다. 따라서, 지시에 따라 튜닝된 LLM은 도움이 되고 정직하며 무해하게 작동하도록 훈련되었습니다.예를 들어, 기본 LLM에 비해 독성 출력과 같은 문제가 있는 텍스트가 출력될 가능성이 적습니다. 많은 실제 사용 시나리오가 명령어 조정된 방향으로 바뀌고 있습니다.
인터넷에서 찾을 수 있는 모범 사례 중 일부는 기본 LLM에 더 적합할 수도 있지만, 오늘날 대부분의 실제 애플리케이션에서는 사용하기 더 쉽고 OpenAI 및 기타 LLM 회사의 작업으로 인해 더욱 안전하고 정렬된 명령어 조정된 LLM에 초점을 맞추는 것이 좋습니다. 따라서 이 강좌에서는 대부분의 애플리케이션에 사용할 것을 권장하는 명령어 조정된 LLM의 모범 사례에 초점을 맞출 것입니다. 계속 진행하기 전에 Yizi와 제가 발표할 자료에 기여한 OpenAI와 DeepLearning.ai의 팀에 감사의 말씀을 전하고 싶습니다. 이 단기 강좌의 커리큘럼을 구성하기 위해 자료를 검토하고 브레인스토밍하는 데 많은 도움을 준 OpenAI의 Andrew Main, Joe Palermo, Boris Power, Ted Sanders, Lilian Wang에게 매우 감사합니다. 또한 딥러닝 분야의 Jeff Ludwig, Eddie Hsu의 작업에도 감사드립니다,
토미 넬슨.따라서 명령어를 최적화한 LLM을 사용할 때는 똑똑하지만 작업의 세부 사항을 모르는 사람에게 지시를 내린다고 생각하세요. 때로는 LLM이 작동하지 않는 이유는 지침이 충분히 명확하지 않기 때문입니다. 예를 들어, 앨런 튜링에 대한 글을 써달라고 요청한다면, 그의 과학적 업적이나 개인적인 삶, 역사적 역할 등에 초점을 맞출지 명확히 하는 것이 좋습니다. 또한, 텍스트의 어조를 전문 기자의 기사처럼 혹은 친구에게 보내는 쉬운 형태로 지정하면 LLM이 원하는 결과물을 생성하는 데 도움이 됩니다. 그리고, 대학 신입생을 대신 우리가 원하는 작업을 수행하게 할 수 있다면, 어떤 텍스트를 읽어야 할지도 함께 지정해주면 더 잘 준비할 수 있습니다. 다음 비디오에서는 LLM 프롬프팅의 중요한 원칙인 명확하고 구체적인 지시 방법과, DLM에게 생각할 시간을 부여하는 두 번째 프롬프팅 원칙을 배울 수 있습니다.그러니까, 다음 동영상으로 넘어가겠습니다.