본문 바로가기

Langchain5

Streamlit으로 음악 추천을 위한 챗봇 구현 Streamlit + LangChain + LangGrpah로 구현했다. 랭체인 한국어 튜토리얼 (링크)의 도움을 많이 받았다. Chainlit에서 Streamlit으로 갈아탄 이유는 예시나 도큐먼트 자료를 찾기 힘들기 때문이다. 그리고 로그인부터 시작해서 여러가지를 건들게 되는데, 이렇게 복잡하게 할 바에는 차라리 Open Web UI에 백엔드로 구현해서 연결하는게 낫지 않나 싶은 생각이 들었다. 그러려면 차라리 복잡한건 Open Web UI로, 간편하게 구현하고 사용할 개인 용도는 Streamlit으로 하는게 낫다는 생각이 들었다. 비슷한 프로젝트를 진행하는 사람들을 위해서 도움이 될것 같아서 전반적인 프로젝트의 개요와 이를 어떻게 해결했는지 적어본다. 개인 음악 추천 챗봇 구현1. 배경: 알고리.. 2025. 5. 16.
Chainlit 리서치 및 튜토리얼 적용 결과 Chainlit을 알게 된 경위는 이렇다. 멀티턴 대화랑 Tavily를 비롯한 LangChain tools를 결합해서 내 음악 디깅 전용 챗봇을 만들어보자는 취지였다. Ollama를 비롯해서 많이 쓰던 Open Web UI를 사용해볼까 했는데 백엔드와 프론트엔드까지 생각 하려니 예상보다 복잡한 것 같았다. 때문에 더 쉬운 툴이 없을까 하다가 찾은게 Chainlit이다. Docs: 링크Github: 링크Cookbook: 링크 튜토리얼의 코드를 살짝만 손보아서 채팅 목록을 저장해보았는데 잘 작동하는걸 확인했다. import jsonfrom datetime import datetimefrom pathlib import Pathfrom langchain_openai import ChatOpenAIfrom l.. 2025. 5. 14.
LLM에서의 temperature, Top-k, Top-p, Penalties 우선 LLM의 생성 과정을 알아야 하니 간단하게 짚고 넘어간다. 입력 쿼리 → LLM → logits 계산 → logits에 softmax를 취해서 token에 대한 확률 계산 → 답변 생성 이때 token의 숫자는 tokenzier에서 설정한 Vocab size와 같다. Vocab size가 32000이라면, 입력된 쿼리를 바탕으로 32,000개의 token들을 각각이 가진 softmax에 의한 확률을 가지고 multinomial 방법으로 샘플링을 하여 답변을 생성하게 된다. 이때 가장 큰 값만을 사용하면 매번 확정적으로 고정된 token을 생성하겠지만 샘플링 방법을 사용함으로써 답변의 다양성을 확보할 수 있다. 이때 답변의 다양성을 조절할 수 있는 방법들이 몇가지 존재하게 된다. temperat.. 2025. 5. 11.
Enhancing RAG performance with smart chunking strategies IBM에서 Enhancing RAG performance with smart chunking strategies란 글 (링크)을 올렸길래 유용해 보여서 러프하게 번역하고 간단한 코멘트를 남겨 본다. 그리고 여기서 Contextual Compression이란 개념이 나오는데 관련된 LangChain의 내용도 간략하게 정리한다. Chunking의 중요성토큰 길이 제한 내에서 컨텍스트 유지: LLM에는 토큰의 길이에 제약이 있으므로, 청킹을 통해 이러한 제한 내에서 관련성 있고 완전한 정보가 제공을 보장한다.컨텍스트 관계 유지: 잘 구성된 청크는 정보의 논리적 흐름을 유지하여 표현과 이해를 향상시킨다.확장성 향상: 청킹을 통해 대규모 데이터세트를 효율적으로 처리하여 인덱싱 및 검색을 더욱 쉽게 관리할 수 .. 2025. 5. 10.
Lost in the Middle (2023) 논문 리뷰 Lost in the Middle의 논문 제목은 Lost in the Middle: How Language Models Use Long Contexts이다. (링크) 저자는 Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni, Percy Liang다. Github: 링크 논문 제목에서 알 수 있듯이 언어 모델이 긴 컨텍스트를 다룰 때의 문제에 대한 논문이다. AbstractLong context를 사용할 때 relevant information 관련있는 정보의 위치에 따라서 성능이 급격하게 감소하는 현상을 발견했다. 따라서 현재의 언어 모델은 긴 입력 컨텍스트의 정보 활용에 있어서 로버스트하.. 2025. 4. 27.