사실 프롬프트 엔지니어링은 앞장에서 언급한 원리와 원칙을 이해하고 사용하면 왠만큼은 LLM 을 다룰 수 있다. 그런데 이를 좀 더 체계적으로 분류하면 다음과 같은 기법으로 분류할 수 있다.
* 참고문헌: 프롬프트엔지니어링교과(저자: 서승완 대표)
위와 같은 프롬프트 엔지니어링 기법들은 많은 프롬프트 엔지니어들이 시행착오와 실험을 거쳐 발견하고 체계화된 것들이다. 이중 구글과 같은 빅테크 기업 엔지니어들도 이러한 연구를 통해 논문으로 작성한 것이 있는데 바로 Chain of Thought 기법이다.
위 그림처럼 Chain of Thought는 Model이 복잡한 문제를 해결하기 위해, 문제를 갈라서 생각함으로써 중간 추론단계(intermediate reasoning step)를 거쳐 최종적인 답을 구할 수 있도록 도와준다.
또한 위에서 할루시네이션을 유도해서 활용하는 기법을 소개 하였지만, 실제 실무에서는 할루시네이션을 예방하는 것이 더 중요한 주제이며 간략히 소개하면 아래와 같은 방법들이 있다.
* 할루시네이션을 예방하는 방법
LLM이 학습한 데이터는 방대한 인터넷 데이터를 포함하는데, 사실 학습데이터가 충분하지 않거나 일부 검증되지 않은 데이터로 학습되어 있기 때문에 할루시네이션을 100프로 없애기는 쉽지 않다. 이를 최대한 예방하기 위해서 할루시네이션이 적은 LLM을 선택하는 것이 중요하고 RAG(Retrieval Augmented Generation), 파인 튜닝 등 기술적인 방법을 사용하거나 프롬프트 상에서는 다음과 같은 방법들도 사용한다.
다음 편에서는 LLM을 프로그래밍 개발 시 다루는 기술들에 대해서 소개하고자 한다.