LangSmith: LLM 및 AI 애플리케이션 테스트의 최적 방법
Published on
언어 학습 모델(LLM)의 세계에 들어가 있다면, LangSmith에 대해 들어본 적이 있을 것입니다. 그러나 LangSmith가 LLM 애플리케이션을 좋은 수준에서 훌륭하게 변화시킬 수 있는 방법을 알고 있나요? 이 글은 당신이 LangSmith를 이해하고, 디버깅, 테스트, 평가, 모니터링에 유용한 다양한 기능을 제공하는 플랫폼인 LangSmith를 파악하는 데 도움이 되는 일관된 가이드입니다.
당신이 경험이 풍부한 개발자이든 초보자이든, LangSmith는 모든 사람을 위한 무언가를 제공합니다. LangChain과의 원활한 통합부터 실제 사례로 가득한 견본 쿡북까지, LangSmith는 게임 체인저입니다. 이제 시작해봅시다!
LangSmith란 무엇인가요?
LangSmith는 LLM 애플리케이션을 제품 수준의 품질로 끌어올리기 위해 설계된 도전적인 플랫폼입니다. 그렇다면 이게 무슨 뜻인지 알아볼까요? 간단히 말해서, LangSmith는 어떤 LLM 프레임워크를 기반으로 하는 지능형 에이전트 및 체인을 구축, 테스트, 배포하기 위한 도구 모음입니다. 이 플랫폼은 오픈 소스인 LangChain 프레임워크와 동일하게 개발되었으며, 이 프레임워크와 완벽하게 통합됩니다.
LangSmith의 주요 기능
-
디버깅 및 테스트: LangSmith는 단순히 개발만이 아닙니다. 올바르게 개발하기 위한 도구라고 할 수 있습니다. 이 플랫폼은 대화형 튜토리얼과 빠른 시작 가이드를 제공하여 시작하도록 도와줍니다. 파이썬, TypeScript 또는 다른 언어로 코딩하더라도 LangSmith가 역할을 할 수 있습니다.
-
API 및 환경 설정: 개발을 시작하기 전에 환경을 설정해야 합니다. LangSmith는 API 키 액세스 및 간편한 환경 구성 단계를 통해 이를 가능하게 합니다. 예를 들어,
pip install -U langchain
와 같은 간단한 명령을 사용하여 대상 환경에 최신 버전의 LangChain을 설치할 수 있습니다. -
코드 추적 기능: LangSmith의 특징 중 하나는 코드 추적 기능입니다. 이는 애플리케이션을 디버깅하고 개선하는 데 필수적입니다. 실행 이름을 사용자 정의하거나 중첩 호출을 추적하는 등 다양한 작업을 수행할 수 있습니다.
왜 LangSmith를 선택해야 하나요?
-
사용 편의성: LangSmith는 사용자 친화적으로 설계되었습니다. 플랫폼은 시작하는 데 도움이 되는 다양한 튜토리얼과 문서를 제공합니다.
-
다양성: 작은 프로젝트에서 큰 규모의 애플리케이션을 작업 중이더라도, LangSmith는 여러분의 요구를 충족하기에 충분히 다양성을 갖추고 있습니다.
-
커뮤니티 지원: LangSmith는 항상 도움을 준비한 개발자 및 전문가들로 이루어진 강력한 커뮤니티를 가지고 있습니다. 커뮤니티 포럼에 참여하거나 자신의 예제를 Cookbook에 기여할 수 있습니다.
이제 당신은 LangSmith가 무엇인지에 대해 잘 이해하고 있으며, LLM과 함께 작업하는 모든 사람에게 귀중한 자산이라는 것을 알고 있을 것입니다. 다음 섹션에서는 LangSmith를 설정하고 기능을 최대한 활용하는 방법에 대해 자세히 알아보겠습니다.
LangSmith 설정하기
LangSmith 설정은 사용자 친화적인 인터페이스와 잘 정리된 단계로 인해 간단합니다. 그러나 시작하기 전에 API 키에 대한 액세스 권한이 필요합니다. 걱정하지 마세요. 이를 얻는 것은 매우 쉽습니다.
API 키 받는 방법
-
LangSmith 계정 생성하기: LangSmith 웹사이트로 이동하여 계정을 만듭니다. 다양한 로그인 방법을 사용할 수 있습니다.
-
설정으로 이동하기: 계정을 설정하면 설정 페이지로 이동합니다. 여기에서 API 키 생성 옵션을 찾을 수 있습니다.
-
API 키 생성하기: 'API 키 생성' 버튼을 클릭하면, 성공적으로 API 키를 생성하게 됩니다.
환경 설정하기
API 키를 획득한 후, 다음 단계는 실행 환경을 구성하는 것입니다. LangSmith에서는 간단한 쉘 명령을 사용하여 이 작업을 수행할 수 있습니다. 다음은 그 방법입니다:
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT=https://api.smith.langchain.com
export LANGCHAIN_API_KEY=<your-api-key>
<your-api-key>
를 이전에 생성한 API 키로 바꿔 넣으세요. 이러한 명령은 환경 변수를 설정하여 LangSmith와 상호 작용을 더욱 쉽게 만들어줍니다.
LangSmith Cookbook: 실생활 예제를 담은 Lang Smith 쿡북
LangSmith Cookbook은 코드 스니펫 모음집뿐만 아니라 프로젝트에서 영감을 받고 도움을 주기 위한 실습 예제의 보고서입니다. 언어 학습 모델(LLMs) 분야에서 초보자이든 전문가이든 상관없이, 쿡북은 공통적인 패턴과 실제 사례에 대한 실용적인 통찰력을 제공합니다. 그럼 LangSmith Cookbook이 어떤 것을 제공하는지 더 깊이 알아보겠습니다.
LangSmith Cookbook이란 무엇인가요?
LangSmith Cookbook은 LangSmith 마스터링을 위한 실용적인 가이드로 일반 문서에서 다루지 않는 공통적인 패턴과 실제 사례를 다룹니다. 이 쿡북은 LLM 애플리케이션을 디버깅, 평가, 테스트 및 지속적 개선하는 데 도움이 되는 다양한 레시피를 제공합니다.
여러분의 의견이 중요합니다
쿡북은 커뮤니티 주도 자료입니다. 공유할 통찰력이 있거나 특정 사례가 놓쳐진 것 같다면 GitHub issue를 제기하거나 LangChain 개발팀에 문의하도록 권장합니다. 여러분의 전문 지식은 이 커뮤니티를 형성시키며, 쿡북을 동적이고 지속 발전하는 자원으로 만듭니다.
쿡북에서 주요 예시
코드 추적하기
-
LangChain 없이 추적하기 (opens in a new tab): Python SDK의
@traceable
데코레이터를 사용하여 LangChain과 독립적으로 어플리케이션을 추적하는 방법을 배워보세요. -
REST API (opens in a new tab): LLM 및 챗 모델 실행 로깅을 위한 REST API 기능을 알아보고 중첩 실행을 이해하세요.
-
사용자 정의 실행 이름 (opens in a new tab): 특정한 이름을 지정하여 LangSmith chain 실행의 UI 가독성을 향상시킵니다. 이에는 chain, lambda 함수 및 에이전트에 대한 예제가 포함됩니다.
-
도구 내 중첩 호출 추적 (opens in a new tab): 하나의 추적에서 모든 중첩 도구 하위 호출을 포함하는 방법을 배웁니다.
-
추적 링크 표시 (opens in a new tab): 애플리케이션에 추적 링크를 추가하여 개발 속도를 높입니다. 이를 통해 실행 흐름을 빠르게 확인하거나 실행에 피드백을 추가하거나 실행을 데이터셋에 추가할 수 있습니다.
LangChain Hub
-
검색 QA Chain (opens in a new tab): Hub의 프롬프트를 예제 RAG 파이프라인에서 사용합니다.
-
프롬프트 버전 관리 (opens in a new tab): 특정한 프롬프트 버전을 선택하여 배포 안정성을 보장합니다.
-
실행 가능한 프롬프트 템플릿 (opens in a new tab): Playground에서 허브로 프롬프트를 저장하고 실행 가능한 chain에 통합합니다.
테스트 및 평가
-
Q&A 시스템 정확성 (opens in a new tab): 데이터셋에서 검색-고급 Q&A 파이프라인을 종단 간 평가합니다.
-
동적 데이터를 사용한 Q&A 시스템 평가 (opens in a new tab): 레이블을 역참조하는 평가자를 사용하여 시간에 따라 변경되는 데이터를 처리합니다.
-
고정된 소스를 사용한 RAG 평가 (opens in a new tab): 데이터셋에서 검색된 문서를 제공하여 RAG 파이프라인의 응답 구성 요소를 평가합니다.
-
비교 평가 (opens in a new tab): 선호도 점수로 시스템 버전을 대조하고 최적의 출력을 결정합니다.
-
Pytest에서의 LangSmith (opens in a new tab): pytest에서 chain을 벤치마크하고 집계 메트릭이 품질 기준을 충족하는지 확인합니다.
-
Pytest로 단위 테스트 (opens in a new tab): 개별 단위 테스트를 작성하고 피드백으로 로그 단언문을 기록합니다.
-
기존 실행 평가 (opens in a new tab): 기존 실행 추적에 AI 지원 피드백과 평가 메트릭을 추가합니다.
-
테스트 프로젝트 이름 지정 (opens in a new tab):
run_on_dataset(..., project_name='my-project-name')
를 사용하여 테스트에 수동으로 이름을 지정합니다. -
피드백 및 예제 다운로드하는 방법 (opens in a new tab): 예측, 평가 결과 및 다른 정보를 프로그래밍 방식으로 보고서에 추가하기 위해 내보냅니다.
TypeScript / JavaScript 테스트 예제
-
Python에서 JS Chain 평가 (opens in a new tab): 사용자 정의 Python 평가자를 사용하여 JS chain을 평가합니다.
-
피드백로 로깅 단언문 (opens in a new tab): CI 테스트 단언문을 LangSmith 피드백으로 변환합니다.
피드백 사용
-
Streamlit 챗 앱 (opens in a new tab): 사용자 피드백을 캡처하고 채팅 애플리케이션의 추적을 공유하는 최소한의 채팅 앱입니다.
-
Next.js 챗 앱 (opens in a new tab): 채팅 앱의 Next.js 버전입니다.
-
실시간 자동 피드백 (opens in a new tab): 비동기 콜백을 사용하여 모든 실행에 대한 피드백 메트릭을 생성합니다.
-
실시간 RAG 챗 봇 평가 (opens in a new tab): 검색된 문서에 대한 RAG 챗 봇 응답의 환상을 자동으로 확인합니다.
수정용 데이터 내보내기
-
OpenAI 수정용 (opens in a new tab): LLM 실행을 나열하고 OpenAI의 수정용 형식으로 변환합니다.
-
Lilac 데이터셋 작성 (opens in a new tab): Lilac을 사용하여 LLM 데이터셋을 추가로 조정하여 근접한 중복을 탐지하고 개인 식별 정보를 확인합니다.
탐색적 데이터 분석
-
LLM 실행 및 피드백 내보내기 (opens in a new tab): 다양한 분석 플랫폼에 대한 LangSmith LLM 실행 데이터를 추출하고 해석합니다.
-
Lilac (opens in a new tab): 오픈 소스 분석 도구인 Lilac을 사용하여 데이터를 더 잘 레이블하고 구성합니다.
이러한 예제를 탐색함으로써 LangSmith의 기능을 포괄적으로 이해할 수 있으며, 이를 통해 LLM 응용 프로그램을 더욱 발전시킬 수 있습니다. 어떻게 하면 되겠습니까? LangSmith Cookbook으로 빠져들어 코드 마법을 요리해보세요!
결론
LangSmith는 다른 도구가 아니라 LLM 응용 프로그램을 보다 더 발전시킬 수 있는 포괄적인 플랫폼입니다. 강력한 추적 기능부터 LangChain Hub와의 원활한 통합까지, LangSmith는 사용자의 생활을 보다 편리하게 만들기 위해 다양한 기능을 제공합니다. 그리고 LangSmith Cookbook을 잊지 말아주세요. 이 책에서는 실제 예제와 실습 코드 조각을 찾을 수 있습니다. 시작하는 초보자이든 기존 응용 프로그램을 최적화하려는 사용자이든, LangSmith가 여러분을 지원할 것입니다.
FAQs
LangSmith는 무엇을 하는가?
LangSmith는 LLM 애플리케이션을 구축하고 테스트하고 평가하고 모니터링하는 데 도움을 주기 위해 설계된 플랫폼입니다. 추적, API 액세스 및 실제 예제가 포함된 Cookbook과 같은 다양한 기능을 제공합니다.
LangSmith와 LangChain의 차이점은 무엇인가요?
LangSmith는 LLM 애플리케이션을 구축하고 관리하는 데 초점을 맞추고, LangChain은 언어 모델을 개발하기 위한 프레임워크로 작동합니다. LangSmith는 LangChain과 완벽하게 통합되어 모든 LLM 요구 사항을 위한 통합 플랫폼을 제공합니다.
LangSmith에 어떻게 액세스할 수 있나요?
LangSmith에 액세스하려면 웹 사이트에서 계정을 등록해야 합니다. 등록 후 플랫폼과 상호 작용할 수 있는 API 키를 생성할 수 있습니다.