Intelligent Conversational Software Development – Prompt (2/)

아래 링크 내용을 기반으로 prompt engineering에 대해 정리한다.

Prompt Engineering and LLMs with Langchain

랭체인 문서의 프롬프트 정리했던 내용이다.

http://www.umlcert.com/langchain-prompt1/
http://www.umlcert.com/langchain-prompt-2/
http://www.umlcert.com/langchain-prompt-3/
http://www.umlcert.com/langchain-prompt-4/

 

프롬프트는 다음과 같은 부분들로 이뤄진다.

– Instructions

뭘 하고 싶은지, 외부 정보가 제공된다면 어떻게 사용할지, 쿼리를 가지고 뭘 할지, 어떻게 출력을 만들어 줬으면 하는지에 대해서 작성한다.

– External information or context(s)

llm은 pre-trained되기 때문에 훈련에 사용된 데이터 수준의 정보를 갖는다. 모델이 가지고 있지 않은 정보를 사용해야 하는 경우 추가적인 소스가 필요하다. 사용자가 직접 내용을 작성할 수 도 있지만 정보를 제공할 검색과 같은 외부 도구를 사용한다. 기업이나 개인이 가지고 있는 데이터를 사용할 수 도 있다. 이러한 경우 데이터는 일반적으로 문서화되어 있고 내용이 많을 수 있음으로 검색이 가능해야 한다. 검색하려면 컴퓨터가 처리할 수 있도록 되어야 하기 때문에 내용과 질의가 벡터화 되어야 한다.

Context 레이블 사용

– User input or query

사용자가 요구하는 내용이다.

Question 레이블 사용

–  Output indicator

생성될 텍스트의 시작 부분을 나타낸다. python 코드를 생성하는 경우라면 import 부분이 된다. 대부분의 python 스크립트는 import로 시작한다.

Answer 레이블 사용

 

랭체인에서는 프롬프트 작성을 좀 더 쉽게 하도록 하려고 템플릿을 사용한다.

프롬프트는 모델에게 지식으로 전달되는 입력이다.  모델에 요청하는 작업을 이해하는데 도움이 된다면 예를 작성할 수 있다. 예가 있다는 것도 instruction에 작성해야 한다. 내용이 아니고 형식인 경우 내용과 형식을 구분해 템플릿 지원이 있으면 좋다.  입력과 출력 길이에 제한이 있을 수 있음으로 예의 개수가 조정되어야 한다. 랭체인은 이 또한 지원한다.

context window=input tokens+output tokens 이렇게 계산된 context window 크기가 제약되는 것

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*