Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

밤빵's 개발일지

[WIL]20240929 LangChain과 주요 구성 요소 본문

개발Article

[WIL]20240929 LangChain과 주요 구성 요소

최밤빵 2024. 9. 29. 15:47

LangChain은 LLM(대형 언어 모델, Large Language Model)을 활용한 다양한 작업을 손쉽게 구성하고 실행할 수 있도록 돕는 파이썬 라이브러리로, 특히 데이터를 검색하고 필터링하거나 LLM의 성능을 최적화하는 데 유용하다. 각 구성 요소의 기능과 역할을 학습하면서, 이를 통해 다양한 작업을 어떻게 수행할 수 있는지 이해하기 위한 정리! 

 

▶ LangChain의 역할과 구성 요소

LangChain은 모듈화된 구조를 통해 각 단계를 분리하여 작업을 체계적으로 수행할 수 있다. LangChain의 주요 구성 요소들은 다음과 같다.

 

▶ Prompt Engineering - 질문 최적화

Prompt Engineering은 LLM을 이용해 올바른 답변을 얻기 위해 질문을 최적화하는 기술이다. 적절한 질문 형식을 사용해 모델이 혼동하지 않고 정확하게 답할 수 있도록 돕는다.

예시: "Python에서 파일 읽는 방법을 알려줘"와 같이 질문을 구체적으로 입력하면 모델이 명확하게 답변할 수 있다. 여러 번의 질문을 통해 최적의 질문 형식을 찾으려고 노력했다.

 

▶ Parser - 데이터 전처리

Parser는 데이터 전처리 단계로, 모델이 이해하기 쉬운 형식으로 데이터를 정리하는 역할을 한다. 불필요한 데이터를 제거하고, 필요한 정보를 추출하여 다음 단계에서 활용할 수 있도록 돕는다. 이 과정을 통해 데이터의 품질을 높일 수 있다는 것을 알게 되었다.

예시: 데이터베이스에서 가져온 원본 데이터를 정제하여 모델이 학습할 수 있는 형태로 변환했다. JSON 형식의 데이터를 텍스트로 변환하는 과정에서 Parser의 중요성을 체감할 수 있다. 

 

▶ Retriever - 데이터 검색 및 정보 제공

Retriever는 사용자가 요청한 질문에 맞는 정보를 검색하여 적합한 답변을 생성할 수 있도록 데이터를 제공하는 역할을 한다. 데이터를 LLM에 전달하기 전에, 적절한 정보를 추출하는 단계이다.

예시: 사용자가 질문한 내용에 따라 데이터베이스에서 관련 정보를 찾아서 모델에 전달하는 방식으로 Retriever를 활용했다.

 

▶ LLM - 질문과 답변 생성

LLM(Large Language Model)은 사용자의 질문에 대한 답변을 생성하는 역할을 담당한다. LangChain에서 LLM은 핵심적인 역할을 하며, 다양한 질문에 대해 자연스럽고 유용한 답변을 생성할 수 있다. OpenAI의 GPT를 생각하면 된다. 

예시: 사용자가 입력한 질문을 LLM에 전달하고, 적절한 응답을 받아 사용자에게 보여주는 흐름을 설정했다. LLM이 똑똑한 언어 모델이라는 것을 실감하게 되었다.

 

▶ SQL-Agent - 질문에 대한 데이터베이스 조회

SQL-Agent는 사용자의 질문에 따라 SQL 쿼리를 생성하고 실행하여 데이터베이스에서 필요한 정보를 가져오는 역할을 한다. 이를 통해 LLM과 SQL 데이터베이스 간의 인터페이스를 자동화하고, 자연어 질의를 SQL 쿼리로 변환할 수 있다.

예시: "2023년 판매량을 보여줘"라는 질문을 받으면, SQL-Agent가 이를 SQL 쿼리로 변환하여 데이터베이스에서 정보를 조회한 후 사용자에게 제공했다. 복잡한 SQL 쿼리를 자동으로 생성해주는 점이 흥미로웠다.

 

▶ Chatbot - 사용자와의 상호작용

마지막으로 Chatbot은 사용자와의 상호작용을 담당하며, LangChain의 다른 구성 요소들을 활용하여 실시간으로 대화할 수 있도록 돕는다. 사용자의 질문을 Prompt Engineering으로 전달하고, 적절한 답변을 반환받아 대화형으로 제공하는 역할을 한다.

예시: LangChain을 활용하여 사용자가 질문을 입력하면, Prompt Engineering과 LLM을 통해 적절한 답변을 생성하고, 이를 사용자에게 제공하는 전체 흐름을 구축했다.

 

▶결론

LangChain은 다양한 기능을 모듈화하여 사용자가 원하는 대로 조합할 수 있도록 설계되어, AI 시스템 구축에 큰 도움을 주었다. 각 구성 요소의 역할을 이해하면서 자연어 질문을 데이터베이스 조회, 텍스트 전처리, 응답 생성 등 다양한 방식으로 처리할 수 있다는 점이 인상적이었다. 오늘 내용은 해커톤을 진행하기 전 매니저님이 설명해주신 내용들로 간단히 정리한거라, 다음에 더 심화된 내용으로 공부해보고싶다🤓