> 기술 주변기기 > 일체 포함 > Langsmith의 LLM을 디버깅 및 테스트하는 소개

Langsmith의 LLM을 디버깅 및 테스트하는 소개

Joseph Gordon-Levitt
풀어 주다: 2025-03-08 09:35:13
원래의
157명이 탐색했습니다.
최근에 나는 모든 유형의 미디어에서 플래시 카드를 자동으로 생성하는 AI 플랫폼을 발견했습니다. 간격 반복으로 암기 개념을 좋아하기 때문에 즉시 XGBoost 튜토리얼을 업로드하고 AI에 50 개의 플래시 카드를 만들도록 요청했습니다. 그러나 나는 실망했다. 대부분의 질문은 너무 쉬웠으며, 그 중 일부는 코드 구문에 관한 것이 거의 없었습니다. 더욱 이상하게도, 질문의 10%는 동일하고 전적으로 정의되지 않았습니다.“프랑스의 수도는 무엇입니까?”. 이러한 유형의 실수는 AI 서비스에서 생성 된 출력의 적절한 평가 및 검증이 부족하다는 것을 시사합니다. 어쩌면 그들은 랭무 스미스에 대해 알지 못했을 것입니다.

Langsmith는 LLM 응용 프로그램을 테스트, 디버그 및 평가하는 본격적인 플랫폼입니다. 아마도 가장 중요한 기능은 LLM 출력 평가 및 성능 모니터링입니다. 이 튜토리얼에서는 프레임 워크가 작동하는 것을보고 자신의 프로젝트에 적용 할 수있는 기술을 배웁니다.

. 시작하자! 왜 랑 스미스? 위에서 언급했듯이 Langsmith는 대형 언어 응용 프로그램을 평가하기위한 포괄적 인 플랫폼입니다. 다음은 그 기능과 유형의 실제 혜택이 있습니다. 빠른 설정 프로그래머는 몇 시간이 아닌 몇 분 안에 랭 스미스를 실험하기 시작할 수 있습니다. 이는 소규모 팀이나 솔로 개발자가 주말 동안 AI 응용 프로그램을 프로토 타입하고 월요일까지 유료 서비스를 배송 할 수 있음을 의미합니다. 품질 보증 엄격한 평가 도구를 사용하여 회사는 잘못된 AI 릴리스의 당황과 비용을 피할 수 있습니다 (예 : 내가 소개 한 예와 같이). Langsmith는 "출력 진부한 내용인가?"와 같은 자연 언어의 도움말, 일관성, misogyny 또는 사용자 정의 평가와 같은 내장 기준에 대해 LLM의 출력을 확인할 수 있습니다. 또는 플래시 카드 생성의 경우 "카드에 코딩 질문이 포함되어 있습니까?" 실시간 모니터링 및 시각화 Langsmith는 트레이스를 사용하여 LLM 실행의 거의 모든 측면을 기록합니다. 여기에는 대기 시간, 토큰 수, 런 가격 및 모든 유형의 메타 데이터와 같은 메트릭이 포함됩니다. 웹 UI를 사용하면 오류 백분율, 대기 시간, 날짜 또는 자연어를 사용하여 텍스트 콘텐츠에 따라 실행을 신속하게 필터링 할 수 있습니다. 이것은 예를 들어, AI 교사가 실제 학생들에 대한 응답에 결함을 시작하면 몇 시간 안에 수정을 밀어 낼 수 있음을 의미합니다. . 랑크 인과의 통합 langchain은 LLM의 개발 단계에 중점을 둔 Langsmith의 부모 프레임 워크입니다. 다중 LLM (에이전트)을 체인하고 YouTube, Google 검색 등과 같은 다른 API와 통합 할 수있는 모듈 식 소프트웨어 설계를 제공합니다. Langsmith는 강력한 평가 및 모니터링 도구를 사용하여 Langchain으로 구축 된 프로토 타입이 예상대로 수행되도록합니다. Langchain에 대한 자세한 내용은 Langchain 튜토리얼을 사용하여 LLM 응용 프로그램을 확인하십시오. 데이터 세트 Langsmith의 또 다른 위대한 특징은 데이터 세트입니다. 배치 전에 표준화 된 예제에 대해 랭케인 체인, 에이전트 또는 모델을 개선하는 데 사용할 수 있습니다. 예를 들어, 특정 형식의 플래시 카드에 대한 질문과 답변 두 개가 포함 된 CSV 파일이있을 수 있습니다. 이 파일을 참조 데이터 세트로 변환함으로써 앞에서 언급 한 품질 보증 메트릭을 사용하여 LLMS에게 자체 출력을 평가하도록 지시 할 수 있습니다. 이제 예제를 통해 이러한 모든 기능을 볼 수 있습니다. ML 앱 개발에서는 데이터를 수집, 교육, 미세 조정, 테스트 및 배포 모델을 수집합니다. 단계는 잘 정의되어 있습니다. 그러나 LLM 앱을 사용하면 종종 공급 업체의 기성품 모델로 시작합니다. 미세 조정? 비용이 많이들 수 있습니다. 따라서 올바른 프롬프트를 제작하는 데 중점을 둘 것입니다. LLM 앱에 올바른 질문을하는 것입니다. 좋은 ML 모델을 위해 많은 데이터가 필요한 것처럼 테스트하기 위해 많은 프롬프트가 필요하다고 생각하십시오.

. 그러나 프롬프트와 함께 숫자가 아닌 텍스트가 들어오고 나오는 것을 다루고 있습니다. 따라서 MSE 또는 Cross-Entropy와 같은 오류 또는 정확성을 측정하는 일반적인 방법은 여기서 작동하지 않습니다. 또한 평가를 위해 모든 입력과 출력을 읽는 것을 상상해보십시오. 평가해야 할 수천 개의 프롬프트가 있다면 며칠이 걸릴 것입니다. 따라서 수동 점검에 익사하지 않고 LLM 앱이 얼마나 잘 수행하고 있는지 확인하기 위해 이러한 프롬프트를 효율적으로 생성하고 테스트하는 워크 플로가 필요합니다. 다음은 다음과 같습니다.

1.

를 개발하십시오 이 단계에서는 Langchain과 같은 프레임 워크를 사용하여 응용 프로그램의 기반을 프로토 타입합니다. 플래시 카드 생성기 프로젝트의 경우 프로토 타입에는 공급 업체에서 선택한 LLM 위에 여러 구성 요소가 포함될 수 있습니다. 예를 들어,

로 체인해야 할 수도 있습니다

<:> 리트리버 : 검색 엔진 API, 웹 스크레이퍼 <:> 문서 로더 : 파일 입력 - PDF, 텍스트, CSV, JSON, 클립 보드, YouTube, 검색 등 채팅 로더 벡터 저장 임베딩 모델 콜백

등 (Langchain 문서 의이 페이지에서 어떤 종류의 구성 요소를 추가 할 수 있는지 참조하십시오). 그러나 일반적인 고급 작업을 위해 Langchain이 제공하는 상용 체인을 사용하여 개발 시간을 크게 줄일 수 있습니다.

2. 생산 <..> 이 단계에서는 가능한 많은 시나리오에 대해 응용 프로그램을 테스트합니다. 즉, 모든 추가 구성 요소가 잘 작동하고 체인을 잘 수행하며 일관된 고품질 출력을 생성해야합니다. 주어진 LLM은 비 결정적이며 (동일한 입력에 대해 동일한 출력을 생성하지 않음) 추가 구성 요소의 복잡성이 있으므로이 단계에서 대부분의 시간을 소비하게됩니다. 그리고 Langsmith는 가능한 한 짧게 만들기위한 단독 목적으로 개발되었습니다. 우리는 튜토리얼 전체에서 이것에 대해 더 많이 논의 할 것입니다.

3. 배포 <..> 일단 실행 가능한 응용 프로그램이 있으면 REST API로 배포 할 수 있습니다. REST API는 기본적으로 기존 Langchain 체인 또는 에이전트를 HTTPS 링크로 변환합니다. 다른 사람은 AI 모델과 상호 작용하도록 요청을 보낼 수 있습니다. 이제 데스크톱 응용 프로그램 또는보다 일반적으로 웹 사이트와 같은 서비스의 사용자 인터페이스를 구축합니다. 지금,이 작업을 수행하는 쉬운 방법은 없지만 Langchain 개발자는 Langserve를 출시하려고합니다. 문서 의이 페이지에서 몰래 피크를 확인하십시오.

이제, 마침내 랑 스미스와 함께 땜질을 시작합시다 Langsmith 플랫폼 개요 우리는 웹 UI를 이해하는 것으로 시작합니다. Smith.langchain.com 링크를 통해 사용할 수 있습니다. 액세스하려면 현재 폐쇄 베타 버전에있는 대기자 명단에서 가입하고 지우려면

하지만 일단 당신이 들어가면 착륙 페이지가 다음과 같이 보일 것입니다 :

두 가지 주요 섹션은 프로젝트 및 데이터 세트 및 테스트이며, 두 섹션 모두 Python SDK를 통해 조작 할 수 있습니다. 이 플랫폼에는 배포 및 주석 대기열을위한 탭도 있지만이 기사의 범위를 벗어납니다.

. Langsmith Python sdk 설정 Langsmith의 프로젝트 관리는 API 키를 통해 플랫폼에 연결된 Python SDK를 사용하면 훨씬 쉽습니다. 키를 얻으려면 플랫폼의 키 아이콘을 클릭하고 안전한 곳에 저장하십시오. 그런 다음 새 가상 환경이 초기화 된 새 디렉토리에서 .env 파일을 만듭니다. 내부에 다음 두 줄을 붙여 넣습니다

다음, 터미널에서 다음 명령을 실행하여 Langsmith 및 Python-Dotenv를 설치하여 환경 변수를 읽습니다.

이제 코드를 작성할 시간 :

<_> 우리는 find_dotenv 및 load_dotenv 함수를 가져와 환경 변수를 읽고 OS로 설정합니다.

클라이언트는 Langsmith의 프로젝트와 자산을 조작하기위한 고급 명령을 포함합니다. 우리가 사용할 클라이언트의 첫 번째 명령은 새 프로젝트를 만드는 것입니다 :

Create_Project가 성공적으로 실행 된 후 웹 UI의 프로젝트 섹션에 나열된 프로젝트를 볼 수 있습니다. Langsmith의 LLM을 디버깅 및 테스트하는 소개

다음으로, 우리는 새로운 프로젝트를 다른 환경 변수와 함께 기본값으로 설정해야합니다.

이제 프로젝트에 LLM이 필요합니다. 우리는 GPT-3.5 터보가 저렴하기 때문에 갈 것이지만 Langchain을 통해 사용할 수있는 다른 많은 모델을 사용할 수 있습니다. Openai 모델은 Chatopenai 클래스를 통해 초기화됩니다

첫 번째 달리기를하자 :
LANGCHAIN_API_KEY="LangSmith-API-key"
OPENAI_API_KEY="Your-OPENAI-key"
로그인 후 복사
로그인 후 복사
UI에서 프로젝트를 빠르게 확인하면 위의 실행이 추적 (로그인)을 볼 수 있습니다.

환경 변수와 클라이언트를 설정하면 자동으로 로깅을 활성화했습니다. 보시다시피, 우리는 이미 달리기에 대한 메타 데이터가 많이 있습니다.

Langsmith의 LLM을 디버깅 및 테스트하는 소개

몇 가지 프롬프트를 더 실행합시다 :

우리는 이미 기본 텍스트 요약자를 만들 수 있습니다. 마지막 실행의 출력을 요약하겠습니다 :

좋아요, 이제 첫 번째 데이터 세트를 만들 시간입니다. Langsmith의 LLM을 디버깅 및 테스트하는 소개 langsmith에서 표지되지 않은 데이터 세트 생성 "LLM 응용 프로그램 개발 워크 플로우"섹션에서 언급했듯이 LLM 모델, 체인 또는 에이전트를 평가하기 위해 수천 개의 프롬프트를 작성하거나 수집해야 할 것입니다. 따라서 위에서했던 것처럼 1-10을 실행하는 것은 모범 사례가 아닙니다.

이러한 이유로 Langsmith는 세 가지 유형의 데이터 세트를 제공합니다

키 값 (KV)-기본값 : 입력을 임의의 키 값 쌍으로 정의합니다. 여러 입력이 필요한 체인 및 에이전트를 평가할 때 유용합니다. 채팅 데이터 세트 (채팅) : 이들은 LLM 채팅에서 변환 된 데이터 세트이며 구조화 된 입력 및 직렬화 된 메시지를 사용하여 정의됩니다.
python-dotenv to read environment variables:
pip install -U langsmith
pip install python-dotenv
로그인 후 복사
로그인 후 복사
먼저, 출력없이 키 값 데이터 세트를 만드는 방법을 살펴 보겠습니다. 클라이언트의 create_dataset 함수를 사용합니다 :

이제, 각각 LLM에 단일 플래시 카드를 만들도록 요청하는 세 가지 입력을 추가해 봅시다.

UI의 데이터 세트 탭을 살펴보면 각 프롬프트가 Null 출력으로 표시됩니다.
import warnings

from dotenv import find_dotenv, load_dotenv

warnings.filterwarnings("ignore")
로그인 후 복사
로그인 후 복사

이제 run_on_dataset 함수를 사용하여 모든 프롬프트를 한 줄의 코드로 실행합시다.

런이 완료되면 데이터 세트 페이지에 나열됩니다. 다음은 다음과 같습니다.

우리는 방금 표지되지 않은 데이터 세트에서 테스트 실행을 수행했습니다. 예제 프롬프트가 있지만 예제 출력이없는 데이터 세트입니다. 우리의 테스트는 단순히 각 프롬프트에 대한 응답을 만들어 냈지만 아무것도 평가하지 않았습니다. 그러나 우리는“출력이 도움이됩니까?”와 같은 기본 점검을 수행하고 싶습니다. 또는“응답이 짧거나 길다”? langsmith는 내장 평가자를 사용하여 그러한 수표를 수행 할 수 있습니다. langsmith에서 llms 평가 데이터 세트에있는 세 가지 프롬프트를 사용하여 간결하고 일관성 평가를 실행하려면 runevalconfig 클래스를 사용할 수 있습니다.

위의 우리는 평가자라는 목록에서 두 가지 기준을 정의하고 있습니다. 우리는이 평가자를 run_on_dataset 함수의 평가 매개 변수로 전달합니다.

<_ _> run_on_dataset은 제공된 LLM을 사용하여 데이터 세트에서 모든 프롬프트를 실행하고 즉시 모든 유형의 평가를 수행하는 데 유용한 기능입니다. 결과는 각 데이터 세트의 전용 페이지에서 볼 수 있습니다.

python-dotenv to read environment variables:
pip install -U langsmith
pip install python-dotenv
로그인 후 복사
로그인 후 복사
이번에는 실행은 각 프롬프트에 대해 일관성과 간결한 지표를 갖습니다. 맨 아래에는 각 메트릭의 평균 점수도 표시됩니다.

모든 내장 기준의 목록을 보려면 아래 스 니펫을 실행하십시오.

라벨이없는 데이터 세트에 대한 Langsmith의 사용자 정의 평가자 작성 물론 모든 LLM 사용 사례를 기본 평가자로 확인할 수있는 것은 아닙니다. 예를 들어, 플래시 카드에 코딩 질문이 포함되어 있는지 확인하는 평가자가 없습니다. 그래서 우리는 그것을 더 잘 정의합니다 :

Langsmith의 LLM을 디버깅 및 테스트하는 소개 자연 언어로 사용자 정의 기준을 전달하려면 { "Criteria_Name": "Condition to Check"}을 기준 클래스로 전달합니다. 위에서, 우리는 두 개의 추가 평가자를 만들고 있으므로 Langsmith는 데이터 세트의 프롬프트가 생성 한 출력 위에 두 개의 추가 프롬프트를 실행합니다.

런을 확인하면 각 프롬프트에서 정의한 사용자 정의 기준이 표시됩니다. 당신이 마우스를 가리면, 당신은 다음과 같은 후 LLM의 추론을 얻게됩니다 :

.

import warnings

from dotenv import find_dotenv, load_dotenv

warnings.filterwarnings("ignore")
로그인 후 복사
로그인 후 복사
모든 프롬프트에 대한 평가 결과를 확인하면 기준이 예상대로 평가되지 않음을 알 수 있습니다. 따라서 여기에 고려해야 할 사항이 있습니다. 또한 올바른 사항을 확인하기 위해 기준을 프롬프트해야합니다.

. 라벨이 붙은 데이터 세트 작성 때로는 예상 출력 (예 : 라벨이 붙은 데이터 세트)이있는 프롬프트 데이터 세트를 작성하기로 결정할 수 있습니다. 다양한 형식으로 레이블이 지정된 데이터 세트를 만들 수 있지만 가장 일반적인 데이터 세트는 CSV 파일 일 것입니다. 예를 들어 다음은 Pytorch Syntax에 5 가지 질문이 포함 된 ChatGpt로 생성 한 파일입니다.

이로부터 데이터 세트를 만들려면 upload_csv 함수를 사용할 수 있습니다.

기능에는 CSV 경로와 입력/출력 열의 이름이 세 가지 필수 매개 변수가 있습니다. 업로드가 완료되면 데이터 세트가 UI에 나타납니다.
import os

load_dotenv(find_dotenv())
os.environ["LANGCHAIN_API_KEY"] = str(os.getenv("LANGCHAIN_API_KEY"))
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
로그인 후 복사

이 데이터 세트의 이전 섹션에서 사용자 정의 기준을 실행하겠습니다.

데이터 세트 페이지로 가서 실행을 확인하면 각 사용자 지정 기준에 대한 평균 점수가 표시됩니다.

Langsmith의 LLM을 디버깅 및 테스트하는 소개

Context_QA (Contextual Q & A) : 정확성을 평가하는 동안 샘플 출력을 컨텍스트로 사용합니다 QA (Q & A) : LLM은 참조 출력 를 사용하여 "정확한"또는 "잘못된"으로 응답을 직접 등급으로 지시합니다. COT_QA (CONT-OF-THEVENT Q & A) : CONTEXT_QA와 유사하지만이 평가자는 LLM이 평결에 도달하기 전에 생각한 추론을 사용하도록 강요합니다.

우리의 예에서 마지막을 시도해 봅시다 :

    COTQA 기준은 아래 GIF (UI에서도)에 표시된대로 상황에 맞는 정확도라는 점수를 반환합니다.
  • 평가자에 대해 훨씬 더 많이 배우려면 Langsmith Docs의 Langchain 평가자 섹션을 방문하십시오.
  • 결론 이 튜토리얼을 읽은 후 Langsmith가 실제로 신속한 엔지니어링을위한 복잡한 도구라는 인상을 받았다면 정확합니다! 현재 Langsmith는 LLM의 지침과 출력을 보장하기위한 최고의 프레임 워크입니다. 당신은 또한 생산 등급 LLM 애플리케이션을 구축하는 데 필요한 노력을 깨달았을 것입니다. 따라서 LLM 프로젝트를 수행하는 동안 더 부드러운 경험을 위해 Langsmith를 사용하십시오.
  • . Langsmith의 일부 개념이 의미가 없다면 Langchain의 기본 사항이 부족할 수 있습니다. 다음은 몇 가지 리소스입니다.
  • 데이터 엔지니어링을 위해 랑케인으로 소개 랑 체인에 컨텍스트 인식 챗봇 구축 Langchain의 프롬프트 엔지니어링 langchain 를 구축하는 방법 langchain 문서 랑 스미스 문서

위 내용은 Langsmith의 LLM을 디버깅 및 테스트하는 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿