그림 1-1.
사용자는 LLM에게 원하는 텍스트 생성을 지시합니다. 이때 사용자가 모델에 전달하는 생성 지시를 프롬프트라고 하고, LLM이 사용자의 의도를 정확하게 파악하고 기대하는 결과물을 생성하도록 프롬프트를 설계하고 다듬는 과정을 프롬프트 엔지니어링이라고 합니다.
사용자는 프롬프트 엔지니어링을 통해 작성한 프롬프트를 LLM에 입력으로 제공합니다. LLM은 이 프롬프트에 따라 텍스트를 생성하여 사용자에게 출력합니다. 하지만, 이 출력은 곧바로 사용 가능한 최종 결과물이 아닐 수 있습니다. 사용자의 요구사항에 따라 추가적인 처리, 즉 후처리가 필요한 경우가 많습니다.
후처리는 여러 형태를 취할 수 있습니다. 예를 들어, 출력된 텍스트를 특정 형식(JSON, CSV 등)으로 변환하거나, 외부 데이터베이스 또는 API와 연동하여 추가 데잍터를 가져와 통합하는 작업이 필요할 수 있습니다. 또한, LLM의 출력에 포함될 수 있는 오류를 검출하고 수정하는 과정도 후처리에 포함됩니다.
LLM 출력에 대한 후처리 과정 중 일부는 프롬프트 엔지니어링을 통해 LLM 자체의 기능을 활용하여 처리할 수 있지만, 모든 후처리가 그런 것은 아닙니다. 어떤 후처리는 LLM의 능력을 벗어나 추가적인 기능 개발을 필요로 합니다.
프롬프트로 처리 가능한 후처리:
- 텍스트 요약: LLM에게 출력된 텍스트를 요약하도록 지시하는 프롬프트를 작성할 수 있습니다. “이 텍스트를 100단어 이내로 요약해줘” 와 같은 명령을 포함한 프롬프트를 통해 LLM이 스스로 요약을 수행할 수 있습니다.
- 텍스트 변환: 특정 형식 (예: 마크다운에서 HTML로)으로 변환하는 작업을 프롬프트에 명시할 수 있습니다. “이 마크다운 텍스트를 HTML로 변환해줘” 와 같은 지시를 통해 LLM이 변환을 수행할 수 있습니다. 하지만, 복잡한 변환에는 한계가 있을 수 있습니다.
- 텍스트 필터링: 특정 단어나 문구를 제거하도록 프롬프트를 구성할 수 있습니다. “이 텍스트에서 ‘욕설’이라는 단어를 모두 제거해줘” 와 같은 지시가 가능합니다.
추가 기능 개발이 필요한 후처리:
- 외부 데이터베이스 연동: LLM이 생성한 정보를 바탕으로 외부 데이터베이스에 접근하여 추가 정보를 가져오는 작업은 LLM 자체로는 불가능합니다. 별도의 API 연동 및 데이터 처리 기능이 필요합니다.
- 복잡한 형식 변환: 단순한 형식 변환은 프롬프트로 가능하지만, 매우 복잡한 구조의 데이터 변환은 별도의 프로그램이 필요합니다.
- 오류 검출 및 수정: 문법 오류나 사실적 오류 검출 및 수정은 LLM이 어느 정도 수행할 수 있지만, 완벽한 오류 수정을 위해서는 전문적인 자연어 처리 기술과 외부 지식 베이스가 필요합니다.
- 실시간 데이터 처리: 주식 시장 정보와 같은 실시간 데이터를 처리하고 반영하는 것은 LLM 자체의 기능으로는 불가능하며, 외부 시스템과의 실시간 연동 기능이 필요합니다.
|