2024년 중반에는 감동적이고 흥미진진한 AI 데모를 만드는 것이 쉬울 수 있습니다. 강력한 개발자, 영리하고 즉각적인 실험, 강력한 기반 모델에 대한 몇 가지 API 호출을 사용하면 오후에 맞춤형 AI 봇을 구축할 수 있는 경우가 많습니다. 다음과 같은 라이브러리에 추가하십시오.
AI 시대에는 데이터가 해자 라는 말을 자주 듣습니다. 이를 위해 프로덕션급 RAG 애플리케이션을 구축하려면 독점 코퍼스를 구성하는 데이터 덩어리를 저장, 버전 관리, 처리, 평가 및 쿼리하는 데 적합한 데이터 인프라가 필요합니다. MinIO는 AI에 대해 데이터 우선 접근 방식을 취하므로 이러한 유형의 프로젝트에 대한 기본 초기 인프라 권장 사항은 최신 데이터 레이크와 벡터 데이터베이스를 설정하는 것입니다. 도중에 다른 보조 도구를 연결해야 할 수도 있지만 이 두 가지 인프라 장치가 기본입니다. 이는 RAG 애플리케이션을 프로덕션에 적용하는 과정에서 발생하는 거의 모든 작업의 중심 역할을 합니다.
MinIO를 기반으로 구축된 최신 데이터 레이크 참조 아키텍처를 찾을 수 있습니다.
경험적 코드 기반 평가 - 출력 토큰 수, 키워드 존재/부재, JSON 유효성 등과 같은 다양한 측정값을 사용하여 프로그래밍 방식으로 출력의 점수를 매깁니다. 이는 기존 단위 테스트를 위한 정규식 및 어설션 라이브러리를 사용하여 결정론적으로 평가할 수 있는 경우가 많습니다.
알고리즘 코드 기반 평가 - 잘 알려진 다양한 데이터 과학 지표를 사용하여 결과를 채점합니다. 예를 들어 프롬프트를 순위 문제로 재구성하면 정규화된 할인 누적 이득(NDCG) 또는 평균 상호 순위(MRR)와 같은 추천 시스템의 널리 사용되는 채점 기능을 사용할 수 있습니다. 반대로 프롬프트를 분류 문제로 구성할 수 있는 경우 정밀도, 재현율 및 F1 점수가 적절할 수 있습니다. 마지막으로 BLEU, ROUGE 및 SAS(의미론적 답변 유사성)와 같은 측정값을 사용하여 의미론적 출력을 알려진 기준 실제값과 비교할 수 있습니다.
모델 기반 평가 - 한 모델을 사용하여 다음 항목에 자세히 설명된 대로 다른 모델의 결과를 평가합니다.
인간 평가 - 인간 도메인 전문가에게 최선의 답변을 요청하는 것이 일반적으로 최적의 기준입니다. 이 방법은 느리고 비용이 많이 들지만, 통찰력을 얻고 초기 평가 데이터 세트를 구축하는 데 매우 중요할 수 있으므로 간과해서는 안 됩니다. 수행된 작업에서 추가 마일리지를 원할 경우 다음에 자세히 설명된 것과 같은 기술을 사용할 수 있습니다.
어떤 평가 기술을 사용할지 결정하는 것과 함께 사용자 정의 벤치마크 평가 데이터세트(일반적으로 다음과 같은 Hugging Face 순위표에서 사용되는 일반적인 데이터세트)를 만드는 것을 고려해보세요.
LLM이 구체적인 판단 유형(이진, 범주, 순위, 숫자 또는 텍스트)으로 응답할 수 있도록 평가 데이터 세트의 각 행에 대한 입력 프롬프트에 제약 조건을 적용하는 것을 고려하세요. 판단 유형을 혼합하면 평가가 합리적으로 다양하게 유지되고 결과 편향이 줄어듭니다. Ceteris paribus, 평가 테스트 사례가 많을수록 좋습니다. 그러나 이 단계에서는 양보다 질에 중점을 두는 것이 좋습니다. LLM 미세 조정에 대한 최근 연구
임시적으로 수동으로 평가 실행을 시작할 수 있지만 평가 채점 프로세스 실행을 자동화하는 CI/CD 파이프라인을 구현하기 전에 너무 오래 기다리지 마십시오. 매일 평가를 실행하거나 소스 코드 저장소 및 관찰 가능성 도구에 연결된 트리거에서 평가를 실행하는 것은 일반적으로 ML-ops 모범 사례로 간주됩니다. 다음과 같은 오픈 소스 RAG 평가 프레임워크 사용을 고려해보세요.
문서 추출 - 독점 PDF, 사무용 문서, 프리젠테이션 및 마크다운 파일은 풍부한 정보 소스가 될 수 있습니다. 이 데이터를 추출하기 위해 오픈 소스 및 SaaS 도구로 구성된 광범위한 생태계가 존재합니다. 일반적으로 데이터 추출기는 파일 유형별(JSON, CSV, docx 등), OCR 기반이거나 기계 학습 및 컴퓨터 비전 알고리즘을 기반으로 합니다. 간단하게 시작하고 필요한 경우에만 복잡성을 추가하세요.
API 추출 - 공개 및 비공개 API는 도메인 내 지식의 풍부한 소스가 될 수 있습니다. 또한 잘 설계된 JSON 및 XML 기반 웹 API에는 이미 일부 기본 제공 구조가 있으므로 관련 없는 것으로 간주되는 항목을 삭제하면서 페이로드 내에서 관련 속성의 대상 추출을 더 쉽게 수행할 수 있습니다. 사용하려는 각 API에 대해 사용자 정의 ETL을 작성하는 것을 방지하는 데 도움이 되는 저렴한 로우 코드 및 노코드 API 커넥터로 구성된 광범위한 에코시스템이 존재합니다. 이는 전담 데이터 엔지니어 팀 없이는 유지 관리 및 확장이 어려울 수 있는 접근 방식입니다.
웹 스크레이퍼 - 웹페이지는 트리와 같은 DOM 구조를 가진 반구조화된 데이터로 간주됩니다. 찾고 있는 정보가 무엇인지, 해당 정보가 어디에 있는지, 해당 정보가 있는 페이지 레이아웃을 알고 있다면 잘 문서화된 API 없이도 이 데이터를 소비하는 스크레이퍼를 빠르게 구축할 수 있습니다. 웹 스크래핑을 위한 귀중한 추상화를 제공하기 위해 많은 스크립팅 라이브러리와 로우 코드 도구가 존재합니다.
웹 크롤러 - 웹 크롤러는 웹페이지를 탐색하고 재귀적인 URL 목록을 작성할 수 있습니다. 이 방법을 스크래핑과 결합하여 기준에 따라 정보를 검색, 요약 및 필터링할 수 있습니다. 보다 중요한 규모로 보면 이 기술을 사용하여 자신만의 지식 그래프를 만들 수 있습니다.
고정 크기 전략 - 이 방법에서는 콘텐츠 청크에 대해 고정된 수의 토큰을 선택하고 그에 따라 콘텐츠를 더 작은 청크로 분해합니다. 일반적으로 이 전략을 사용할 때 너무 많은 컨텍스트 손실을 피하기 위해 인접한 청크 간의 일부 겹치는 것이 좋습니다. 이는 가장 간단한 청킹 전략이며 일반적으로 더 정교한 전략을 시도하기 전에 좋은 출발점이 됩니다.
동적 크기 전략 - 이 방법은 다양한 콘텐츠 특성을 사용하여 청크를 시작하고 중지할 위치를 결정합니다. 간단한 예는 마침표 및 새 줄과 같은 특정 문자의 존재 여부에 따라 문장을 분할하는 구두점 청커입니다. 구두점 청커는 간단하고 짧은 콘텐츠(예: 트윗, 문자가 제한된 제품 설명 등)에는 합리적으로 잘 작동할 수 있지만 더 길고 복잡한 콘텐츠에 사용하면 명백한 단점이 있습니다.
콘텐츠 인식 전략 - 콘텐츠 인식 청커는 추출되는 콘텐츠 및 메타데이터 유형에 맞게 조정되고 이러한 특성을 사용하여 각 청크를 시작하고 중지할 위치를 결정합니다. 헤더 태그를 사용하여 청크 경계를 나타내는 HTML 블로그용 청커를 예로 들 수 있습니다. 또 다른 예는 각 문장의 쌍별 코사인 유사성 점수를 이전 이웃과 비교하여 문맥이 새 청크의 설명을 보장할 만큼 충분히 실질적으로 변경된 시기를 결정하는 의미론적 청커일 수 있습니다.
대부분의 경우 RAG 중에 검색을 위해 인덱싱된 콘텐츠 청크는 프로덕션 환경에서 애플리케이션이 접하게 되는 실제 프롬프트와 상황에 따라 다릅니다. 예를 들어, AI 질문 답변 봇을 구축하는 경우 고객 쿼리에 대한 수많은 정답이 포함된 방대한 독점 정보 모음이 있을 수 있습니다. 그러나 원시 형태에서는 코퍼스가 유사성 기반 임베딩 검색에 이상적인 질문-답변 쌍 형식으로 미리 구성되어 있을 가능성이 없습니다. 이 예에서 검색 시 인바운드 고객 질문과 의미상 유사한 원시 콘텐츠 덩어리를 순진하게 검색하면 검색 결과 집합의 차선의 관련성이 발생할 수 있습니다. 이는 문맥상 서로 다른 항목, 즉 질문과 답변의 유사성을 비교하고 있다는 사실의 결과입니다. 다행스럽게도 솔루션은 상대적으로 간단합니다. LLM의 기능을 사용하여 가능한 답변(일명 원시 콘텐츠 청크)을 가상 질문으로 다시 맥락화함으로써 풍부하게 만들 수 있습니다. 그런 다음 후속 검색을 위해 이러한 가상 질문을 벡터 데이터베이스에 색인화합니다. 이라고 불리는 이 기술은
System Prompt: Given the provided snippet of text, generate three hypothetical questions that could be asked about it. Each question must be able to be answered using the information within the referenced snippet of text and only that information. Be concise. User Prompt: “At the 52nd Annual Grammy Awards, Beyoncé received ten nominations, including Album of the Year for I Am... Sasha Fierce, Record of the Year for "Halo", and Song of the Year for "Single Ladies (Put a Ring on It)", among others. She tied with Lauryn Hill for most Grammy nominations in a single year by a female artist. In 2010, Beyoncé was featured on Lady Gaga's single "Telephone" and its music video. The song topped the US Pop Songs chart, becoming the sixth number-one for both Beyoncé and Gaga, tying them with Mariah Carey for most number-ones since the Nielsen Top 40 airplay chart launched in 1992. "Telephone" received a Grammy Award nomination for Best Pop Collaboration with Vocals.” Response: Here are some questions that could be asked based on the provided text: * How many nominations did Beyoncé receive at the 52nd Annual Grammy Awards? * For which album was Beyoncé nominated for Album of the Year at the 52nd Annual Grammy Awards? * Which song earned Beyoncé a nomination for Record of the Year at the 52nd Annual Grammy Awards?
궁금한 점이 있으면 다음 연락처로 문의해 주세요.