Cộng đồng Hỏi & Đáp của Inflearn
[5.1 강의] LLM Evaluator에 Upstage를 사용하는 방법 + 변경된 Langsmith Docs를 참고하여 구현하는 방법 공유
Viết
·
52
·
Đã chỉnh sửa
0
안녕하세요. 강의 수강 중 중간중간에 일이 생겨 이제서야 빠르게 복습하고 다시 수강하고 있는 수강생입니다.
저는 강의에서 사용되었던 코드를 실행했을 때, 평가 실행 시 "KeyError" 오류가 발생되었습니다. 많은 분들께서 따라하는 과정에서 저와 같은 오류를 마주하고 Langsmith Docs를 열어보셨을 것 같습니다.
다만 강의에서 다루는 코드와 현재 시점에 Langsmith Docs에 작성된 튜토리얼 코드는 많은 부분이 변경되었기에 현재 시점의 Langsmith Docs에서 다루는 LLM Evaluator 구현 시 포인트와 함께 Upstage를 사용한 방법을 정리하여 공유드리려합니다.
참고로 현재 시점의 Langsmith Docs는 아래 링크의 문서이며, 이하 설명에서는 Langsmith Docs를 Docs로 부르겠습니다.
https://docs.langchain.com/langsmith/evaluate-rag-tutorial
1. Evaluator 종류
- 현재 Doc에서는 다음과 같은 평가 지표에 대한 예시를 제공하고 있습니다.
1) 정확성(Correctness): LLM의 답변이 실제 답변과 얼마나 유사하고 정확한지 측정
2) 관련성(Relevance): LLM의 답변이 사용자의 질문과 얼마나 관련있는지 측정
3) 근거성(Groundedness): LLM의 답변이 검색된 데이터의 맥락과 얼마나 일치하는지 측정
4) 검색 관련성(Retrieval relevance): 입력된 질문과 검색된 데이터는 얼마나 관련있는지 측정
2. 데이터 셋 형식 변경
- 현재의 Docs에서는 다음과 같은 데이터 셋 형식을 사용하고 있습니다.
# Define the examples for the dataset
examples = [
{
"inputs": {"question": "How does the ReAct agent use self-reflection? "},
"outputs": {"answer": "ReAct integrates reasoning and acting, performing actions - such tools like Wikipedia search API - and then observing / reasoning about the tool outputs."},
},
...
]
- 따라서 강의에서 제공된 데이터 셋을 다음과 같이 변경할 수 있습니다. Docs의 Evaluator에서는 'contexts' 를 사용하진 않는 것 같지만 기존 데이터 셋의 내용에 맞추어 수정한 점은 참고바랍니다.
examples = [
{
"inputs": {"question": "제1조에 따른 소득세법의 목적은 무엇인가요?"},
"outputs": {"answer": "소득세법의 목적은 소득의 성격과 납세자의 부담능력에 따라 적정하게 과세함으로써 조세부담의 형평을 도모하고 재정수입의 원활한 조달에 이바지하는 것입니다."},
"metadata": {"contexts": "제1조(목적) 이 법은 개인의 소득에 대하여 소득의 성격과 납세자의 부담능력 등에 따라 적정하게 과세함으로써 조세부담의 형평을 도모하고 재정수입의 원활한 조달에 이바지함을 목적으로 한다."},
},
...
]
3. Upstage Model을 사용하는 방법
- 현재의 Docs에서는 각 단계에서 LLM을 선언하는 부분에서 다음과 같이 'ChatOpenAI()' 함수를 사용하고 있습니다.
# Rag-Bot
from langchain_openai import ChatOpenAI
...
llm = ChatOpenAI(model="gpt-4.1", temperature=1)
# Evaluators
grader_llm = ChatOpenAI(model="gpt-4.1", temperature=0).with_structured_output(
...
)
- 따라서 다음과 같이 'ChatUpstage' 라이브러리를 import한 후, 'ChatOpenAI()' 함수를 사용하는 부분을 'ChatUpstage()' 함수로 변경해주면 됩니다. 'Rag-Bot' 코드를 작성하는 셀에서 'ChatUpstage' 라이브러리를 import한다면 이하 코드에서는 일일이 import하지 않아도 되며, 'ChatOpenAI()' 함수에서 사용하던 'temperature=1' 인자는 제거해도 무방했습니다.
# Rag-Bot
from langchain_upstage import ChatUpstage
...
llm = ChatUpstage(model="solar-pro3")
# Evaluators
grader_llm = ChatUpstage(model="solar-pro3").with_structured_output(
...
)
제가 수정한 전체 코드, 코드별 설명과 변경된 데이터 셋 파일은 아래 링크에 업로드해두었으며, 참고하시면 좋을 것 같습니다.
https://github.com/C0deH4ter/llm-application/tree/main/5.1%20Upstage%20Challenge
Câu trả lời 2
0
상세하게 공유해주셔서 감사합니다!
공유해주신 내용은 자주 묻는 질문에 등록해두겠습니다.
추가로 이번달 안에 AI 에이전트 평가 강의를 출시할 예정입니다. 강의 소식으로 안내 드리겠습니다!
0
안녕하세요, 인프런 AI 인턴입니다. CodeHater님!
강의 중 발생하신 “KeyError” 오류와 Langsmith Docs의 변경 사항에 대해 공유해 주셔서 감사드립니다. 말씀하신 것처럼, Langsmith의 최신 문서에서는 데이터 형식과 일부 코드 사용법이 변화되었습니다. 이러한 변화는 강의를 수강하며 실습하는 데 어려움을 겪을 수 있으므로, 이를 해결하기 위해 중요한 포인트를 정리하여 제공해주신 부분은 다른 수강생들에게 많은 도움이 될 것입니다.
수정된 주요 사항
데이터 셋 형식 변경
- 최신 Langsmith Docs에 따라, 데이터 셋 형식을 개선했습니다. “inputs”와 “outputs” 구조로 변환하여, 코드 실행 시 데이터 구조에 따른 오류를 방지할 수 있습니다.
- 최신 Langsmith Docs에 따라, 데이터 셋 형식을 개선했습니다. “inputs”와 “outputs” 구조로 변환하여, 코드 실행 시 데이터 구조에 따른 오류를 방지할 수 있습니다.
Upstage 모델 사용
Langsmith의 예제 코드에서 OpenAI 대신
ChatUpstage를 사용하는 방법에 대해 설명하셨습니다. 이는 Upstage 기반의 모델을 활용하려는 수강생들에게 유용한 정보입니다. 특히, OpenAI의ChatOpenAI()함수를ChatUpstage()로 대체하는 자세한 설명은 실습 환경에서 발생할 수 있는 혼란을 줄여줄 것입니다.temperature인자를 제거하면, Upstage의ChatUpstage와 모델의 기본 설정에 의해 동작합니다. 이는 OpenAI와 동일한 스타일이므로, 큰 차이가 없으리라 예상됩니다.
전체 코드 및 예제 제공
구체적인 적용 방법에 대한 코드와 데이터셋을 제공하신 GitHub 링크는 실습에 도움을 줄 것입니다. 예시 코드와 설명 문서를 함께 제공하는 것은 큰 도움이 되며, 다른 학생들이 클론하여 직접 테스트해볼 수 있어 유익합니다.
좀 더 다양한 유사 질문 및 답변: Langsmith Docs의 변경점에 대한 다양한 사용자 경험은 커뮤니티에서 중요한 정보입니다. 다른 수강생들도 이러한 업데이트에 대한 정보를 공유하고 해결책을 얻기 위해 참고할 수 있으니, 솔루션을 널리 공유해 주시면 좋겠습니다.
추가적인 관련 질문 링크들:
- LangChain으로 Upstage 서비스 통합하기: Upstage의 사용법에 대한 유사 질문.
- Upstage의 RAG 구성 개선 방법: RAG 구성에 대한 방법.
이 답변이 CodeHater님의 복습과 강의 수강에 도움이 되길 바랍니다. 다른 질문이 있거나 추가적인 도움이 필요하시다면 언제든지 말씀해 주세요!
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





