안녕하세요.
오랜만에 글을 쓰는것 같네요.
요새 핫한 Llama3 모델에 대한 간단한 Prompt 구조에 대한 설명을 남깁니다.
저같은 경우 이것저것 모델을 테스트할때 Mistral 을 이용한 프롬프트를 만든적이 있습니다.
그런데 이 Pormpt가 그대로 Llama3에 적용이 되지는 않더군요..
그리고 찾아보니 기본적인 Special Tokens 에 대한 정의가 필요한것을 확인했습니다.
이 Special Tokens는 각 모델마다 차이가 있을수 있으며 (Mistral 의 경우 <s><inst> .... )
어떻게 사용하느냐에 따라 답변의 품질이 차이가 많습니다.
예를들어 부정화한 답변 또는 반복되는 답변 등,
이제부터 간단한 샘플로 소개합니다.
아래는 전체 Special Token에 대한 샘플입니다.
각각의 요소에 대한 역활 설명을 참고하세요.
<|begin_of_text|>
프롬프트의 시작을 지정합니다.
<|start_header_id|>system<|end_header_id|>
다음 메시지에 대한 역할을 지정합니다. (예: "system") 당신은 한국에 대한 관광정보를 제공하는 도우미입니다. 질문에 대해 한국어로 답변하세요.
<|start_header_id|>user<|end_header_id|>
다음 메시지에 대한 역할을 지정합니다(예: "user") 전통 의상에 대해 알고 싶어요
<|start_header_id|>assistant<|end_header_id|>
모델 생성을 시작하라는 메시지를 표시하기 위해 보조 헤더로 끝납니다. Llama3는 기본적으로 이 부분에 assistant를 표시합니다. 이 역활에 대한 명시 이후 Llama3에 요청시 응답을 제공합니다. 아래 샘플처럼요...
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
당신은 한국에 대한 관광정보를 제공하는 도우미 입니다. 질문에 대해 한국어로 답변하세요.
<|eot_id|><|start_header_id|>user<|end_header_id|>전통 의상에 대해 알고 싶어요
<|eot_id|><|start_header_id|>assistant<|end_header_id|>
한국의 전통 의상은 한복(Hanbok)입니다.. 한복은 한국의 역사와 문화를 반영하는 전통적인 옷차림으로, 다양한 색상과 문양, 재료를 사용하여 만들어집니다.
한복은 일반적으로 상의와 하의로 구성되어 있습니다. 상의는 저고리(Jeogori)라고 하며....
참고로 당신이 만약 RAG 기반의 어플리케이션을 고민중이고, Llama3 를 고려중이라면 아래와 같은 방식이 전체 코드로 될수 있습니다.
각각의 instruction, context, question은 prompt template에서 replace될 영역입니다.
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
{instruction}
Context
{Context}
<|eot_id|><|start_header_id|>user<|end_header_id|>
{qustion}
<|eot_id|><|start_header_id|>assistant<|end_header_id|>
모두 즐거운 하루 되세요.
'IT&컴퓨터 > IT 인터넷' 카테고리의 다른 글
sk 브로드밴드 포트포워딩 설정 (0) | 2024.08.28 |
---|---|
CSVLoader java & python version (LLM & RAG 에 활용) (0) | 2024.05.12 |
chroma database 로컬 저장 및 불러오기 ( csv 파일 로드 ) (0) | 2024.03.05 |
[Langchain/Chroma] 파이썬 개발 RuntimeError: Your system has an unsupported version of sqlite3. Chroma requires sqlite3 >= 3.35.0 (0) | 2024.02.23 |
Free Python, Web, 생성형 AI 서버 구축 (free API 서버 구축, github 연동) (1) | 2024.01.23 |