배치
LLM 스튜디오를 통해 다량의 생성 요청을 일괄로 처리할 수 있습니다. 배치 기능은 주로 아래와 같은 작업 처리에 적합합니다.
- 평가
- 미세조정을 위한 데이터 생성
- 데이터 확장
시작하기
배치 작업을 위한 데이터 파일 준비
배치 작업을 위한 데이터 파일을 준비합니다. 데이터 파일은 CSV 혹은 JSONL 파일 형식을 지원합니다.
싱글턴 답변 생성 시에는 입력 데이터 파일과 함께 프롬프트 템플릿과 시스템 메시지를 지정합니다. 프롬프트 템플릿은 변수를 입력 데이터 파일의 해당 필드값으로 치환하여 각 요청에 사용될 프롬프트를 생성합니다. 프롬프트 템플릿을 생략하면 입력 데이터 파일에서 prompt 필드 값을 요청 프롬프트로 사용합니다.
멀티턴 답변 생성을 위한 입력 데이터 파일은 /v3/chat/completions API의 messages 파라미터와 동일한 형식이어야 합니다. 미세조정 시 멀티턴 학습 데이터 형식을 참조하세요.
배치 작업 제출
1) LLM 스튜디오
배치 메뉴를 클릭합니다.
배치 실행 버튼을 클릭합니다.
이름을 입력하고 준비한 데이터 파일을 첨부합니다.
다음을 클릭합니다.
배치 작업을 위한 옵션을 설정합니다.
- 배치 작업 정보 설정
✔ 모델: 생성을 요청할 모델을 선택합니다.
✔ API KEY: 요청할 모델이 API KEY를 요구할 경우(예: GPT-4o)에 입력합니다.
✔ 검색 영역: RAG를 통해 배치 작업을 수행해야할 경우 검색영역을 설정합니다.
✔ 프롬프트: 요청할 시스템 및 사용자 프롬프트를 입력합니다. 입력 데이터 파일 내의 필드를 변수로 지정할 수 있습니다. 생략할 경우 prompt 필드값이 사용됩니다.⚠ 입력 데이터 파일이 멀티턴 JSONL 형식일 경우에는 사용되지 않습니다. 입력 데이터 파일 내에 prompt 필드가 존재할 경우 프롬프트 템플릿을 통해 확장된 실제 요청 프롬프트는 저장되지 않습니다. 입력 데이터 파일 내에 prompt 필드가 존재하지 않을 경우에는 템플릿을 통해 확장된 프롬프트 값이 결과 파일의 prompt 필드에 저장됩니다.✔ 출력필드: 생성 결과를 저장할 필드를 입력합니다. 생략할 경우 completion 필드에 저장됩니다.
✔ 출력형식: 구조화된 출력을 원할 경우에는 "json_schema"로 설정합니다. (자세한 내용은 구조화된 출력을 확인하세요.) 모델 출력이 유효한 JSON인지 확인할 경우 "json_object", 확인하지 않을 경우 "string"으로 설정합니다.
시작을 클릭합니다.
제출된 배치 작업은 배치 페이지에서 확인할 수 있습니다.
배치 작업 상태 확인
배치 페이지에서 제출된 배치 작업들의 목록과 상태를 확인할 수 있습니다.
배치 결과 파일 다운로드
배치 작업이 완료되면 결과 파일을 다운로드 받을 수 있습니다.
배치작업 속성 영역에서 출력 파일 옆에 있는 액션 [⁝] 버튼을 클릭하고 내려받기 메뉴를 선택합니다. CSV 혹은 JSONL 파일 포맷으로 결과 파일을 다운로드 받을 수 있습니다.
배치 결과 파일 열람
배치 페이지에서 해당 배치작업을 선택합니다.
오른쪽 배치작업 속성 영역에서 출력 파일 링크를 클릭합니다.
필터
필터를 통해 데이터 중 원하는 데이터만 표시하고 나머지 데이터는 숨길 수 있습니다.
필터 추가 버튼을 클릭합니다.
필터 이름과 표현식을 입력 후 확인 버튼을 클릭합니다.
이 파일로 일괄생성
배치 작업의 결과 파일을 입력으로 하여 다시 배치 작업을 실행할 수 있습니다. 예를 들어 배치를 통해 특정 모델로부터 결과를 일괄 생성하고, 해당 결과를 평가하기 위해 배치 작업을 다시 수행할 수 있습니다.
배치 예시
평가
사전학습이나 미세조정을 마친 모델의 평가, 혹은 RAG 답변 평가를 위한 데이터 파일을 준비합니다. 데이터 파일 형식은 미세조정을 위한 데이터 파일과 동일한 형식으로 준비합니다. 데이터 파일의 각행은 실제 사용자들이 사용할 프롬프트와 요구되는 답변(정답)으로 구성됩니다.
{"prompt":"지방은행과 시중은행의 차이를 설명해주세요.", "completion": "지방은행은 시중은행 대비 규모가 작고 영업 범위가 한정된..."}
...
{"prompt":"2024년에 2020년 대비 한국의 무역수지가 어떻게 변화했나요?", "completion": "2023년에는 한국이 큰 무역수지 적자를 기록하여..."}
모델 평가는 다음과 같이 두 단계로 실행됩니다.
① 평가 대상 모델로부터 지시 결과 일괄 생성
② 일괄 생성 결과와 정답 비교 결과를 평가 모델로부터 일괄 생성
각 단계는 배치 작업 제출 절차에 따라 진행합니다.
1) 평가 대상 모델로부터 지시 결과 일괄 생성
배치실행 버튼을 클릭합니다.
작업명을 입력합니다.
준비한 데이터 파일을 업로드합니다.
배치작업 정보를 입력합니다.
+ 모델: konan-llm-pro-20-custom (평가 대상 모델 예시입니다.)
+ 검색 영역: RAG 답변 평가의 경우 검색 범위도 함께 설정합니다.
+ 프롬프트: 생략할 경우 prompt 필드값이 사용됩니다.
+ 출력필드: “prediction”으로 입력합니다. (필드명은 자유롭게 설정할 수 있으며 예제에서는 prediction으로 설정합니다.)
시작 버튼을 클릭하여 작업을 시작합니다. 배치 작업이 완료되면 출력 파일을 확인합니다.
{"prompt": "지방은행과 시중은행의 차이를 설명해주세요.", "completion": "지방은행은 시중은행 대비 규모가 작고 영업 범위가 한정된...", "prediction": "시중은행과 달리 지방은행은 영업 범위가 한정되어..."}
...
{"prompt": "2023년에 2020년 대비 한국의 무역수지가 어떻게 변화했나요?", "completion": "2023년에는 한국이 큰 무역수지 적자를 기록하여...", "prediction": "2020년은 무역수지가 안정적인 해로써..."}
2) 일괄 생성 결과와 정답 비교 결과를 평가 모델로부터 일괄 생성
평가 대상 모델의 지시 결과 일괄 생성이 완료되면 해당 결과 평가를 배치작업으로 실행합니다.
배치 작업 목록에서 이전 단계에서 완료된 작업을 클릭합니다.
출력 파일의 오른쪽 액션 [⁝] 버튼을 클릭하고 이 파일로 일괄생성 메뉴를 선택합니다.
배치작업 정보를 입력합니다.
✔ 데이터 파일: 전 단계의 출력 파일이 자동으로 선택됩니다.
✔ 모델: gpt-4o (평가 모델 예시입니다. 평가 대상 모델 보다 성능이 뛰어난 모델을 사용하세요.)
✔ 프롬프트:
■ SYSTEM
You are given a question (instruction), a referenced answer, and an assistant's answer. Your task is to evaluate the assistant's answer based on the following criteria.
**Criteria:**
1. **Accuracy:** Evaluate whether the assistant's answer provides accurate information in response to the question compared to the referenced answer. The focus is on the correctness of the information provided, not on the format or flow of the answer.
2. **Integrity:** Evaluate whether the assistant's answer includes only necessary and relevant information, is free from errors, and does not contain misleading content. It checks the coherence and completeness of the answer, ensuring it aligns well with the referenced answer without extraneous details. However, if the assistant's answer includes additional information that is both relevant and correct, it should not negatively impact the score. Also, if the assistant's answer addresses the main points of the question accurately, minor omissions of less critical details from the reference answer are acceptable.
3. **Meaning Match:** Evaluate whether the assistant's answer is correct in meaning compared to the reference answer. Minor differences in wording are acceptable as long as the meaning is aligned.
### Steps for Evaluation:
1. Understand the User Question thoroughly.
2. Review the Reference Answer and identify the main factual points.
3. Review the Assistant's Answer and identify its main factual points.
4. Compare the factual points in the Reference Answer with the Assistant's Answer.
5. Check for the following:
- The accuracy of the information compared to the reference answer.
- The inclusion of necessary and relevant information without errors.
- Whether the meaning is correctly matched with the reference answer, allowing for minor wording differences but requiring exact match for numerical values.
- The relevance and correctness of any additional information provided should not detract from the overall quality of the answer.
6. Rate the Assistant's Answer based on the Integrated Criteria:
- **Score 0:** The information provided is mostly inaccurate, includes unnecessary or irrelevant information, and often does not align with the key details given in the reference answer.
- **Score 10:** Completely accurate, fully aligned with the key details given in the reference answer, includes only necessary information for the question, and matches in meaning. Accurate with additional relevant information that does not detract from the overall quality of the answer.
■ USER
[User Question]
{prompt}
[User Question]
[The Start of Reference Answer]
{completion}
[The End of Reference Answer]
[The Start of Assistant's Answer]
{prediction}
[The End of Assistant's Answer]
Please evaluate and score each assistant's answer individually based on the criteria provided above. Write the justification in Korean. Provide the evaluation in the following JSON format: '{{"justification": "string", "score": int[0 to 10]}}'
■ 출력 형식 출력 형식은 json_schema로 지정합니다. 스키마는 아래와 같이 정의합니다.
{
"name": "rag_schema",
"schema": {
"type": "object",
"required": [
"justification",
"score"
],
"properties": {
"score": {
"type": "integer",
"description": "A numerical rating from 0 to 10 that reflects the overall quality of the assistant's response. A score of 0 indicates a very poor response, while a score of 10 represents an excellent response."
},
"justification": {
"type": "string",
"description": "A written explanation in Korean that justifies the evaluation of the assistant's response. It should assess the response based on criteria such as accuracy, logical consistency, clarity of explanation, completeness, and creativity."
}
},
"additionalProperties": false
},
"strict": true
}
⚠️ 위 프롬프트는 GPT-4o를 평가 모델로 사용하기 위한 예제입니다.
직접 입력하기 보다는 프롬프트 갤러리에 템플릿으로 등록하여 사용하는 것을 권장합니다.
✔ 출력필드: “eval”로 입력합니다.
시작 버튼을 클릭하여 작업을 시작합니다.
배치 작업이 완료되면 출력 파일을 다운로드 받습니다.
{"prompt": "지방은행과 시중은행의 차이를 설명해주세요.", "completion": "지방은행은 시중은행 대비 규모가 작고 영업 범위가 한정된...", "prediction": "시중은행과 달리 지방은행은 영업 범위가 한정되어...", "eval": {"justification": "차이점의 요소에 대한 모델의 답변이 참조 답변과 일치합니다.", "score": 10}}
...
{"prompt": "2023년에 2020년 대비 한국의 무역수지가 어떻게 변화했나요?", "completion": "2023년에는 한국이 큰 무역수지 적자를 기록하여...", "prediction": "2020년은 무역수지가 안정적인 해로써...", "eval": {"justification": "모델의 답변 중 2023년의 무역수지 적자 금액이 참조 답변과 일치하지 않습니다.", "score": 1}}
⚠️ 생성된 결과 파일을 평가 결과로 사용하기 전에 반드시 사람이 직접 검수 과정을 수행하기 바랍니다.
미세조정을 위한 데이터 생성 (뉴스 키워드 추출)
미세 조정을 위한 학습 데이터 생성에 배치 기능을 이용할 수 있습니다. 미세 조정용 학습 데이터는 지시어(prompt)와 지시어에 따라 모델이 생성하길 바라는 결과(completion) 쌍으로 구성됩니다. 미세 조정할 모델 보다 성능이 뛰어난 모델을 이용하여 지시어로부터 결과를 생성하거나 결과로부터 지시어들을 생성할 수 있습니다. 다음 예제는 배치 기능을 이용하여 뉴스 데이터로부터 해당 뉴스의 키워드를 추출하는 작업을 위한 미세 조정용 학습 데이터를 생성하는 예입니다.
1) 뉴스 데이터 준비
키워드 추출을 위한 뉴스 데이터를 준비합니다.
{"document": "익산시 서부권역 다목적 체육관이 내달 개관을 앞두고 막바지 개관 준비가 한창이다.\n\n시에 따르면 ...앞으로도 시민들의 생활체육활동을 지원할 수 있는 인프라를 지속적으로 확충해 나 가겠다”고 말했다."}
...
{"document": "무주군건강가정ㆍ다문화가족지원센터(센터장 장진원)가 아버지와 자녀를 대상으로 ‘아빠하고 나하고’ 프로그램을 운영한다.\n\n...참여 희망자는 이달 29일부터 센터 홈페이지를 통하거나 전화로 문의하면 된다."}
2) 생성 모델로부터 키워드 추출 결과 일괄 생성
배치실행 버튼을 클릭합니다.
준비한 데이터 파일을 업로드합니다.
배치작업 정보를 입력합니다.
✔ 모델: gpt-4o (모델 예시입니다. 미세 조정할 기본 모델 보다 성능이 뛰어난 모델을 사용하세요.)
✔ 프롬프트:
■ USER
[문서]
{document}
---
위 문서에서 키워드를 5개 이상 찾아주세요. 그리고 다른 부차적인 말 없이 키워드들만 출력하세요. 여러개의 키워드 출력 시에는 ,로 연결하세요. 예를 들어 출력을 '중국, EU, 유럽의회, 인권'과 같은 방식으로 하세요.
✔ 출력필드: 생략할 경우 completion 필드에 저장됩니다.
시작 버튼을 클릭하여 작업을 시작합니다.
배치 작업이 완료되면 출력 파일을 다운로드 받습니다.
{"document": "익산시 서부권역 다목적 체육관이 내달 개관을 앞두고 막바지 개관 준비가 한창이다.\n\n시에 따르면 ...앞으로도 시민들의 생활체육활동을 지원할 수 있는 인프라를 지속적으로 확충해 나 가겠다”고 말했다.", “prompt”: “[문서]\n익산시 서부권역...\n---\n\n위 문서에서 키워드를 5개 이상 찾아주세요...”, “completion”: “익산시, 서부권역 다목적 체육관, 개관, 시설물 준공, 코로나19 예방, 헬스장”}
...
{"document": "무주군건강가정ㆍ다문화가족지원센터(센터장 장진원)가 아버지와 자녀를 대상으로 ‘아빠하고 나하고’ 프로그램을 운영한다.\n\n...참여 희망자는 이달 29일부터 센터 홈페이지를 통하거나 전화로 문의하면 된다.", “prompt”: “[문서]\n무주군건강가정...\n---\n\n위 문서에서 키워드를 5개 이상 찾아주세요...”, “completion”: “무주군건강가정ㆍ다문화가족지원센터, 아빠하고 나하고 프로그램, 아버지 역할, 자녀양육 참여, 공동육아”}
⚠️ 생성된 결과 파일을 미세조정용 학습 데이터로 사용하기 전에 반드시 사람이 직접 검수 과정을 수행하기 바랍니다.
데이터 확장 (질문 목록 생성)
도메인 전용 모델을 만들기 위해 도메인 관련 질문 및 답변을 생성하거나, 챗봇 질문셋을 만들기 위해 배치 기능을 사용할 수 있습니다. 아래는 주어진 컨텍스트로부터 질문들을 생성하여 데이터를 확장하는 예입니다.
1) 컨텍스트 데이터 준비
질문들을 생성할 원본 문서로부터 아래와 같이 컨텍스트 데이터들을 준비합니다.
{“document”: “코난테크놀로지(대표 김영섬)의 소셜네트워크 서비스(SNS) 분석 서비스인 '펄스K(www.pulsek.com)'가 ...자체 개발한 트위터 영향력 평가 지수를 이용한 '인플루언서 분석'과 특정 브랜드와 함께 언급되고 있는 키워드를 제공하는 '이슈 키워드 분석'도 이번에 추가된 기능이다...”}
2) 생성 모델로부터 질문 목록 일괄 생성
배치실행 버튼을 클릭합니다.
준비한 데이터 파일을 업로드합니다.
배치작업 정보를 입력합니다.
✔ 모델: mistral-large-instruct-2407 (모델 예시입니다. 미세 조정할 기본 모델 보다 성능이 뛰어난 모델을 사용하세요.)
✔ 프롬프트:
■ USER
## 지시
1. 문서를 참고하여 질문을 최대 10개까지 생성해주세요.
2. 적절한 질문을 생성할 수 없다면, 빈 리스트를 반환합니다.
2. 질문 조건에 맞게 질문을 생성해주세요.
3. 출력 포맷에 맞게 질문을 출력해주세요.
## 질문 조건
1. 질문은 주어진 문장 또는 주변 문장(앞뒤 1~3문장)을 이용하여 답변할 수 있는 질문이어야 합니다.
2. 질문에는 "이", "그", "저"와 같은 대명사를 사용하지 말고, 일반 명사나 고유 명사, 무언가를 묘사하는 단어 등을 사용해야 합니다.
3. 사람들이 실제로 질문할 때처럼 자연스러운 질문을 만들어야 합니다.
4. 질문하는 사람이 관련 문서의 존재를 모르는 상태에서 궁금한 것을 물어보는 것처럼 질문을 작성해주세요.
5. 질문에 대한 답은 문서로부터 도출될 수 있어야 합니다.
## 출력 포맷
출력 포맷은 다음과 같습니다. 다른 말은 필요 없습니다.
[
"[질문1]",
"[질문2]",
...// 다른 질문
]
적절하게 질문을 만들기 어려운 경우에는 다음과 같이 출력합니다.
[]
## 문서
```document
{document}
✔ 출력필드: questions를 입력합니다.
시작 버튼을 클릭하여 작업을 시작합니다.
배치 작업이 완료되면 출력 파일을 다운로드 받습니다.
{“document”: “코난테크놀로지(대표 김영섬)의 소셜네트워크 서비스(SNS) 분석 서비스인 '펄스K(www.pulsek.com)'가 ...자체 개발한 트위터 영향력 평가 지수를 이용한 '인플루언서 분석'과 특정 브랜드와 함께 언급되고 있는 키워드를 제공하는 '이슈 키워드 분석'도 이번에 추가된 기능이다...”, “questions”: [“펄스K의 인플루언서 분석 기능은 어떤 방식으로 작동하나요?”,”펄스K의 이슈 키워드 분석 기능을 통해 얻을 수 있는 정보는 무엇인가요?”]}