baseline 코드 실행 / 출력 확인
Test 0
Question: [{'role': 'user', 'content': '나무의 분류에 대해 조사해 보기 위한 방법은?'}]
Answer: 나무의 분류에 대해 조사하기 위해 다음과 같은 방법을 사용할 수 있습니다:
1. **도서관 및 서적**: 식물학, 생태학, 또는 나무에 관한 전문 서적을 찾아 읽어보세요. 나무의 분류 체계와 종류에 대한 정보를 얻을 수 있습니다.
2. **온라인 자료**: 신뢰할 수 있는 웹사이트나 학술 자료를 검색하여 나무의 분류에 대한 정보를 찾아보세요. 예를 들어, 식물학 관련 웹사이트나 대학의 연구 자료를 참고할 수 있습니다.
3. **식물 도감**: 나무의 종류와 특징을 설명하는 식물 도감을 활용하여 직접 나무를 관찰하고 분류할 수 있습니다.
4. **현장 조사**: 실제로 나무가 자생하는 지역을 방문하여 다양한 나무를 관찰하고, 그들의 특징을 기록하여 분류하는 방법도 있습니다.
5. **전문가와의 상담**: 식물학자나 생태학자와 같은 전문가에게 질문하거나 조언을 구하는 것도 좋은 방법입니다.
이 방법들을 통해 나무의 분류에 대한 깊이 있는 이해를 얻을 수 있을 것입니다. 추가적인 정보가 필요하다면 특정 주제에 대해 더 조사해 볼까요?
Test 1
Question: [{'role': 'user', 'content': '각 나라에서의 공교육 지출 현황에 대해 알려줘.'}]
Answer: 각 나라의 공교육 지출 현황은 국가마다 다르며, 교육 시스템, 경제 상황, 정부 정책 등에 따라 크게 달라질 수 있습니다. 일반적으로 OECD(경제협력개발기구)와 같은 국제 기구에서 각국의 교육 지출에 대한 데이터를 수집하고 분석합니다.
예를 들어, 북유럽 국가들은 교육에 대한 지출이 상대적으로 높고, 교육의 질도 높은 편입니다. 반면, 일부 개발도상국은 교육에 대한 지출이 낮아 교육의 질이 떨어질 수 있습니다.
정확한 최신 데이터를 원하신다면, 특정 국가나 지역에 대한 정보를 요청해 주시면 더 구체적인 내용을 제공할 수 있습니다.
Test 2
Question: [{'role': 'user', 'content': '기억 상실증 걸리면 너무 무섭겠다.'}, {'role': 'assistant', 'content': '네 맞습니다.'}, {'role': 'user', 'content': '어떤 원인 때문에 발생하는지 궁금해.'}]
Answer: 기억 상실증은 여러 가지 원인으로 발생할 수 있습니다. 주로 뇌 손상, 외상성 뇌손상, 뇌졸중, 알츠하이머병과 같은 퇴행성 질환, 감염, 심리적 스트레스나 트라우마 등이 기억 상실증을 유발할 수 있습니다. 이러한 원인들은 뇌의 특정 부위에 영향을 미쳐 기억 형성이나 회상에 문제를 일으킬 수 있습니다.
Test 3
Question: [{'role': 'user', 'content': '통학 버스의 가치에 대해 말해줘.'}]
Answer: 통학 버스는 학생들에게 여러 가지 가치를 제공합니다.
1. **안전성**: 통학 버스는 학생들이 안전하게 학교에 갈 수 있도록 도와줍니다. 전문 운전사가 운전하며, 버스는 일반적으로 안전 기준을 준수합니다.
2. **편리함**: 학생들은 부모님이나 보호자의 도움 없이도 정해진 시간에 학교에 도착할 수 있습니다. 이는 부모님에게도 큰 편리함을 제공합니다.
3. **환경 보호**: 여러 학생이 한 대의 버스를 이용함으로써 개인 차량의 사용을 줄일 수 있어, 교통 혼잡과 대기 오염을 감소시키는 데 기여합니다.
4. **사회적 상호작용**: 통학 버스는 학생들이 친구들과 함께 시간을 보내고 사회적 기술을 발전시킬 수 있는 기회를 제공합니다.
5. **시간 관리**: 정해진 시간에 출발하고 도착하는 통학 버스는 학생들이 시간 관리 능력을 기르는 데 도움을 줄 수 있습니다.
이러한 이유로 통학 버스는 학생들에게 중요한 역할을 합니다.
Test 4
Question: [{'role': 'user', 'content': 'Dmitri Ivanovsky가 누구야?'}]
Answer: Dmitri Ivanovsky는 러시아의 식물병리학자로, 1892년에 담배 모자이크 바이러스(TMV)를 발견한 것으로 유명합니다. 그는 바이러스의 존재를 처음으로 입증한 과학자 중 한 명으로, 그의 연구는 바이러스학의 발전에 큰 기여를 했습니다. Ivanovsky의 발견은 나중에 바이러스의 개념을 확립하는 데 중요한 역할을 하였고, 이는 현대 생물학과 의학에서 중요한 기초가 되었습니다.
LLM 모델 변경
upstage solar-pro
client = OpenAI(
api_key="up_u0aP8oeimoxYDV",
base_url="https://api.upstage.ai/v1"
)
# 사용할 모델을 설정
llm_model = "solar-pro"
출력 확인
tools 이해하기
# Function calling에 사용할 함수 정의
tools = [
{
"type": "function",
"function": {
"name": "search",
"description": "search relevant documents",
"parameters": {
"properties": {
"standalone_query": {
"type": "string",
"description": "Final query suitable for use in search from the user messages history."
}
},
"required": ["standalone_query"],
"type": "object"
}
}
},
]
result = client.chat.completions.create(
model=llm_model,
messages=msg,
tools=tools,
temperature=0,
seed=1,
timeout=10
)
과학상식과 관련은 없는데 문서에 있음
평가질문
{"eval_id": 213, "msg": [{"role": "user", "content": "각 나라에서의 공교육 지출 현황에 대해 알려줘."}]}
문서내용
{"docid": "88439180-e442-4ecf-a485-88c7de0296e9", "src": "ko_mmlu__global_facts__test", "content": "여러 미개발국가들의 중등학교 등록 수준은 각기 다릅니다. 그 중에서도 2020년 현재 중등학교 등록률이 높은 국가들로는 콜롬비아, 페루, 우루과이, 코스타리카가 있습니다. 이들 국가들은 교육에 많은 투자를 하고 있으며, 학생들의 교육 기회를 확대하기 위해 노력하고 있습니다. 콜롬비아는 높은 등록률을 유지하면서도 교육의 질을 높이기 위해 교사들의 교육을 강화하고 있습니다. 페루는 국가 전체적으로 중등학교 등록률을 높이기 위해 정책적인 지원을 하고 있으며, 우루과이는 교육 시스템을 혁신하여 학생들의 학습 효과를 극대화하고 있습니다. 코스타리카는 교육에 대한 사회적인 인식을 높이고, 학생들의 학습 환경을 개선하기 위해 다양한 프로그램을 운영하고 있습니다. 이러한 노력들이 중등학교 등록률을 높이는 데에 큰 역할을 하고 있습니다."}
다른 모델 검색
모델 한계: gemma-3-1b-it는 function calling에 특화된 모델이 아니므로, JSON 형식을 정확히 따르지 않을 가능성이 있습니다. 더 나은 성능을 위해 mistral-7b-instruct나 llama-3와 같은 function calling에 최적화된 모델을 고려할 수 있습니다.
gemma-3-1b-it | 동작 확인 |
gemma-3-27b-it-qat-q4_0-unquantized | 동작 실패, 메모리 부족 |
gemma-3-4b-it | image-text-to-text 모델. type = image 없으면 오류나서 pass |
Mistral-7B-Instruct-v0.2 | 동작 실패 |
Mistral-7B-Instruct-v0.2-GPTQ | 동작 실패 |
EXAONE-3.5-7.8B-Instruct | 동작 확인 |
tool calling 을 직접 구현하기 위한 프롬프트 무한 수정 및 테스트
persona_function_calling = """
다음 질문이 과학 상식에 관한 것인지 판단하고, 아래 지침에 따라 JSON 형식으로 응답하세요. 아래 예제를 참고하여 처리하세요.
**지침**:
1. 질문이 과학 상식에 관한 것인지 확인합니다.
2. 과학 상식 질문이면, 질문의 핵심을 명확히 하는 standalone_query를 생성합니다.
3. 과학 상식 질문이 아니면, 질문에 대한 일반적인 답변을 제공합니다.
4. 응답은 JSON 형식으로 다음 구조를 따릅니다:
{
"is_science_question": true/false,
"response": {
"standalone_query": "문자열" (과학 상식 질문일 때만 포함),
"answer": "문자열" (비과학 상식 질문일 때만 포함)
}
}
**예제**:
- **질문**: "왜 하늘은 파랗게 보이나요?"
- **응답**:
{
"is_science_question": true,
"response": {
"standalone_query": "하늘의 파란색은 어떤 과학적 원리로 인해 나타나는가?"
}
}
"""
prompt = """
사용자 질의를 검색에 사용하도록 요약해줘
응답형식: {"key": 질의요약}
[예시]
질의: 각 나라에서의 공교육 지출 현황에 대해 알려줘.
{"key": "각 나라의 공교육 지출 현황"}
[질의]
문맹 비율이 사회 발전에 미치는 영향은?
"""
messages = [
{"role": "system", "content": "You are EXAONE model from LG AI Research, a helpful assistant."},
{"role": "user", "content": prompt}
]
persona_function_calling = """
system role: 과학 상식 전문가
- 사용자의 질문이 과학 상식과 관련이 있을 때 응답형식: {"call": True, "content": 질문 키워드 생성}
- 사용자의 질문이 과학 상식과 관련이 없을 때 응답형식: {"call": False, "content": 128자 이내로 적절한 응답}
[예시]
질문: 나무의 분류에 대해 조사해 보기 위한 방법은?
{"call": True, "content": "나무의 분류 조사 방법"}
[응답형식]
{"call": boolean, "content": string}
"""
history_messages = [
{
"role": "system",
"content": (
"당신은 다음 함수를 사용할 수 있는 유용한 조수입니다. "
"사용자의 요청이 함수 호출을 필요로 하는 경우, 순수 JSON 객체로 응답하세요. "
"JSON 객체는 'function_name'과 'arguments'를 포함해야 하며, ```json 같은 마크다운 태그나 추가 설명을 포함하지 마세요. "
"예: {\"function_name\": \"get_weather\", \"arguments\": {\"city\": \"서울\"}}. "
"그렇지 않으면 일반 텍스트로 답변하세요.\n"
"사용 가능한 함수:\n"
"1. get_weather(city: str) -> str: 주어진 도시의 날씨를 반환합니다."
)
},
{
"role": "user",
"content": "내일 뭐 먹을까?"
}
]
등등 프롬프트 설정해 봤지만 모든 질문에 고정된 json 형식 응답 유도 실패
'공부' 카테고리의 다른 글
딥러닝 Deep Learning (0) | 2025.02.11 |
---|---|
프로젝트를 위한 협업: Github (0) | 2024.12.16 |
버전관리 - Git, Github 이론 (0) | 2024.12.12 |
복습 목차 (0) | 2024.12.12 |
HTTP의 특성 (0) | 2024.12.12 |