이 프로젝트에서 나는 Groq API를 사용하여 액세스 한 LLAMA3-70B-8192 LLM에 걸레를 만들었습니다. Rag에 사용 된 문서는 개인 금융에 관한 기사가 포함 된 Seedly 블로그의 Webscraping을 통해 검색되었습니다. 내가 검색 한 기사는 주로 싱가포르의 부동산 구매 및 보험 정책에 관한 것입니다. 목표는 싱가포르의 맥락에서 개인 금융과 관련된 질문에 더 잘 알고 있고 답변 할 수있는 언어 모델을 개발하는 것입니다.
나는 기사를 긁어 내기 위해 스크레이프, 텍스트 청크를 임베딩으로 변환하기위한 All-Minilm-L6-V2 모델 및 텍스트 저장 및 검색을위한 Faiss Vector Store를 사용했습니다. 마지막으로, 나는 Langchain을 사용하여 텍스트 청크 검색에서 원하는 출력을 달성하기 위해 구조화 및 체인을 프롬프트하는 것에 이르기까지 모든 다른 구성 요소를 인터페이스했습니다.
최종 출력은 두 가지 프롬프트를 체인하여 생성됩니다. 첫 번째 프롬프트는 제공된 컨텍스트 (가장 유사한 텍스트 덩어리가 질문 사용자와 가장 유사한 텍스트 덩어리), 두 번째는 실제 응답을 생성하는 컨텍스트를 요약 한 것입니다. 이는 응답을 생성하는 데 사용되는 프롬프트가 너무 길어지지 않도록하기위한 것입니다 (전장 텍스트 청크가 컨텍스트로 포함 된 경우) LLM에 더 많은 컨텍스트를 제공 할 수 있습니다.
프롬프트의 체인은 예상대로 작동하며 텍스트 청크의 요약이 두 번째 프롬프트에 성공적으로 추가되었습니다. 파이프 라인의 성능은 제공된 컨텍스트 문서의 품질에 따라 다릅니다.
이 프로젝트를 수행하면서 Langchain을 사용하여 Rag를 구현하는 방법, 프롬프트 템플릿과 LLM을 인터페이스하는 방법 및 Langchain Expression Language (LCEL)를 사용하여 프롬프트 체인 및 Langchain과 함께 벡터 저장 및 임베딩 기능을 사용하는 방법을 배웠습니다. LLM 응용 프로그램 개발의 이러한 기본 개념으로 인해 향후 더 복잡한 LLM 애플리케이션을 구축 할 수 있다고 생각합니다.