1단계 : 작업 및 성과 기준 정의: 가장 먼저 클로드가 수행할 특정 작업을 명확하게 정의하기
엔터티 추출, 질문 응답, 텍스트 요약부터 코드 생성이나 창의적 글쓰기와 같이 더 복잡한 작업을 수행할 수 있습니다. 작업을 명확히 정의한 후, 평가 및 최적화 과정을 이끌어 나갈 성과 기준을 수립해야 합니다. 처음부터 명확하고 측정 가능한 성과 기준을 설정해줄 경우, 프로세스 전반에서 정보를 기반으로 결정을 내려 올바른 목표를 위해 최적화 할 수 있습니다.
2단계 : 테스트 케이스 개발: 다양한 테스트 케이스 만들기
기준을 수립한 후에는, 응용 프로그램의 의도된 사용 사례를 커버하는 다양한 테스트 케이스 세트를 만들어야합니다. 이때, 일반적인 예제와 엣지 케이스 모두를 포함해 프롬프트가 견고하도록 만드는 것이 핵심입니다.
3단계 : 초기 프롬프트 설계: 표준 입력 및 출력 정의하기
작업 정의, 좋은 응답의 특징, 그리고 클로드가 따를 수 있는 표준 입력 및 출력을 예시에 정의합니다.
4단계 : 테스트 케이스에 대한 프롬프트 테스트: 일관된 평가기준으로 테스트 케이스 비교 평가하기
테스트 케이스를 사용하여 클로드에 초기 프롬프트를 입력하고 예상 출력과 성공 기준을 비교하여 평가합니다. 성능을 평가할 때 가장 중요한 것은 일관된 평가기준을 적용하는 것입니다.
5단계 : 프롬프트 테스트 케이스 반복 수행 및 클로드 수정하기
테스트 케이스에서의 성능을 개선하고 성과 기준을 더 잘 충족시키기 위해 4단계의 과정을 반복적으로 수행하고 수정합니다. 이 과정에서 클로드의 행동에 설명, 예시 또는 제약 조건이 추가될 수 있습니다. 하지만 집약적인 입력 세트 추가는 능력 저하로 이어질 수 있으니 주의해야합니다.
6단계 : 프롬프트 출시- 최종 프롬프트를 배치하고 모니터링 하기
최종 프롬프트를 응용 프로그램에 배치합니다. 초기 테스트 세트에서 예상하지 못한 극단적인 경우가 발생할 수 있기 때문에 모델의 성능을 계속해서 모니터링하고 필요한 경우 추가적인 개선을 준비해야 합니다.
이 과정을 통해 능력이 뛰어난 모델과 제약없는 프롬프트를 시작할 수 있습니다. 원하는 풀력 품질을 달성했다면 필요에 따라 지연 시간과 비용을 줄이기 위해 더 짧은 프롬프트나 더 작은 모델과 같은 최적화를 도전할 수 있습니다.
하지만, 이렇게 프롬프트 엔지니어링으로 잘 개발해도, 할루시네이션 때문에 AI 서비스 개발에 어려움이 있을 수 있습니다. 할루시네이션의 원인은 AI가 학습하지 않는 데이터는 대답하지 못해, 제공되는 정보가 부족하면 정확도가 떨어지는 답을 할 수 밖에 없기 때문인데요. 그래서 요즘 빅테크 기업들은 이 할루시네이션을 해결하기 위해서, 기업용 내부 데이터를 학습시키거나 실시간 외부 데이터를 가져올 수 있게 하는 기술인 ‘RAG(검색 증강 생성)’을 필수로 사용해 할루시네이션 현상을 최소화하고 있습니다.
검색-보강 생성(RAG)은 사용자가 프롬프트를 제출하고 LLM이 출력을 생성하는 사이에 중간 단계가 포함된 프롬프트 엔지니어링 기술입니다. 이 단계에서, LLM 기반 애플리케이션은 훈련에 포함되지 않았던 더 관련성 높고 품질이 높은 추가 정보를 검색합니다. 예를 들어 최근 검색 엔진 결과의 데이터(예: ChatGPT의 “Bing으로 탐색” 기능)와 기업의 지식 베이스에서 검색하는 맞춤형 GPT와 같은 독점 데이터셋입니다.
결과적으로, RAG를 활성화한 애플리케이션은 재교육 없이도 더 관련성 높은 출력을 생성할 수 있으며, 발생할 수 있는 오류를 줄일 수 있습니다.
여기서 그치지 않고 이왕 AI 서비스 만드는데, 앵무새같은 챗봇이 아닌 스스로 생각하고 행동하는 AI 에이전트를 만드는게 좋겠죠? 이러한 AI에이전트와 관련해서 빌게이츠는 “인공지능 Agent는 기술 업계와 사회 전반에 엄청난 영향을 미칠 것이며, 결국 미래는 AI 비서를 만드는 기업이 승리할 것이라고 말했습니다. 이렇듯 생성 AI기술이 끝없이 발전하면서 단순 채팅만 가능한 AI/LLM 서비스를 개발하는 것으론 경쟁력이 떨어지는 시대가 도래했습니다.
Agent 기반 AI서비스에는 여러 구현 방식이 있는데, 그중에서도 OpenAI에서 제공하는 ChatGPT API의 ‘Function Calling’ 기능이 핵심 방식 중 하나입니다! Function Calling은 AI 에이전트가 특정 기능이나 서비스를 실행하기 위해 외부 프로그램이나 라이브러리의 함수를 호출하는 과정을 말합니다. 이 과정을 통해 AI 에이전트는 다양한 데이터를 처리하거나, 외부 시스템의 정보를 가져오거나, 필요한 작업을 수행할 수 있습니다.
예를 들어, AI 에이전트가 날씨 정보를 기반으로 사용자에게 옷차림을 추천하는 서비스를 제공한다고 가정해 봅시다. 이 경우, AI 에이전트는 날씨 정보를 제공하는 외부 API의 Function을 호출하여 현재 날씨 정보를 얻은 후, 그 정보로 사용자에게 적절한 옷차림을 추천할 수 있습니다.
Function Calling을 통해 AI 에이전트는 자신의 기능을 확장하고, 다양한 작업을 보다 효율적으로 수행할 수 있게 됩니다. 이는 AI 에이전트가 보다 복잡한 문제를 해결하고, 사용자에게 보다 풍부한 서비스를 제공할 수 있게 하는 핵심 요소 중 하나입니다.
이렇게 2024년 LLM기반 AI서비스 개발 고도화의 핵심인 프롬프트 엔지니어링, RAG, Function Calling에 대해 알아보았는데요! 이러한 기술들 이왕 배울거면 프롬프트 엔지니어링부터 Function Calling까지 고도화해서 배우는게 중요하겠죠?
프롬프트 엔지니어링으로 시작하는 AI/LLM 서비스 개발을 9개 프로젝트로 알려주어 ‘네카라쿠배당토야’급 AI 서비스를 만들게 해주는 강의가 있습니다!
[프롬프트 엔지니어링으로 시작하는 AI/LLM 서비스 개발 : 9개 프로젝트로 챗봇부터 AI에이전트까지]
이 강의는 무려 카카오 GenAI파트 리드가 메인 강사님이며 챗봇부터 ai 에이전트까지 모두 개발하실 수 있게 프롬프트 엔지니어링부터 RAG, Function Calling까지 모두 알려드립니다. 더불어 현직자분들이 자사 회사에 바로 만들어본 AI 서비스를 바로 도입할 수 있도록 API화해서 알려드리니 안배워볼 수 없겠죠? 쉽고 빠르게 AI 서비스를 개발할 수 있는 모든 것을 담았으니, 기회를 놓치지 마세요!