👩💻 ChatGPT를 사용하면 이전 대화를 계속 기억해 나가면서 대화를 이어나가는 것을 알 수 있습니다. 이렇게 전체 대화의 맥락을 읽고 대화를 주고 받는 것을 멀티턴 (Multi-turn) 이라고 합니다. 이와 다르게 바로 직전의 질문에만 답하는 것은 싱글턴 (single-turn) 이라고 합니다. 오늘은 Langchain을 통해 멀티턴을 어떻게 구현할 수 있을 지를 알아보려 합니다. 제가 참고한 문서는 아래 Langchain 파이썬 공식문서 입니다. 챗봇에 메모리를 추가하는 방법에 대해 기술한 자료이며, 해당 코드를 기반으로 설명드리며, 마지막으로 이를 응용하여 끝말잇기 챗봇을 구현해보았으니 다양한 활용에 도움이 되었으면 좋겠습니다!https://python.langchain.com/v0.2/..
분류 전체보기
약 6개월전, GraphRAG를 구현하기 위해 Neo4j 그래프 DB를 구축하여, LangChain을 통해 Cypher 쿼리 자동 생성과 질의응답까지의 과정을 업로드 한 적이 있었습니다. https://uoahvu.tistory.com/entry/GraphRAG-Neo4j-DB와-LangChain-결합을-통한-질의응답-구현하기-Kaggle-CSV-데이터-적용하기 GraphRAG : Neo4j DB와 LangChain 결합을 통한 질의응답 구현하기 (Kaggle CSV 데이터 적용하기)GraphRAG? 최근 LLM을 잘 활용하기 위해서는 모델이 뱉어내는 텍스트를 그대로 사용하는 것이 아닌, 데이터 베이스를 직접 구축하고 그 데이터를 기반으로 LLM이 답변하도록 구현하는 RAG(Retrieval-Auuoa..
Last Query Transformer RNN for knowledge tracing 🚩 https://www.kaggle.com/competitions/riiid-test-answer-prediction Riiid Answer Correctness Prediction | Kaggle www.kaggle.com 2020년, 산타토익을 개발한 뤼이드는 Kaggle을 통해 정오답 예측 대회 (Answer Correctness Prediction) 를 개최했습니다. 제가 리뷰한 모델은 본 대회에서 리더보드 1위를 차지한 모델로, Last Query Transformer RNN for knowledge tracing 입니다. 해당 모델의 전체적인 구조를 중심으로, 정오답을 예측하기까지의 과정을 따라가보려..
지식추적에 적용한 셀프 어텐션(Self Attention) Transformer가 등장하면서 셀프 어텐션(Self Attention)은 시퀀스 데이터를 처리하기 위한 필수적 요소로 사용되고 있는데요. 대표적으로 문장과 같은 자연어가 이에 해당합니다. 지식 추적 (Knowledge Tracing) 에서도 학생의 풀이 이력이라는 시퀀스 데이터를 다루게 됩니다. 그렇기 때문에 이 셀프 어텐션을 지식추적에 활용한 모델 구조가 연구되었고, 그 중 "A Self-Attentive model for Knowledge Tracing(SAKT)" 논문이 대표적입니다. 본 글에서는 SAKT를 통해 지식추적에 셀프어텐션을 어떻게 적용했는 지 상세히 살펴보고, 파이토치 코드를 통해서도 이해하고자 합니다. A Self-..
GraphRAG? 최근 LLM을 잘 활용하기 위해서는 모델이 뱉어내는 텍스트를 그대로 사용하는 것이 아닌, 데이터 베이스를 직접 구축하고 그 데이터를 기반으로 LLM이 답변하도록 구현하는 RAG(Retrieval-Augmented Generation) 기법이 많이 사용되고 있습니다. 이제는 마음만 먹으면 LLM을 누구나 활용가능한 만큼, 독자적인 데이터로 사용자의 니즈에 맞춘 서비스를 준비하는 것이 더욱 관건이라는 의미인데요. 또한, 어떤 데이터 베이스를 구축하냐에 따라 그 성능이 달라지기 마련입니다. 2023.06.19 - [Natural Language] - 사용자 PDF 기반 In-context Learning을 통한 ChatGPT 질의응답 챗봇 구현하기 (feat. LangChain, Vect..
Knowledge Graph Knowledge Graph(지식 그래프)는 semantic network 라고도 알려져 있으며, 사물, 사건, 상황, 개념 등의 현실세계에서 다루어 지는 다양한 엔티티(Entity)들을 그들 간의 관계성(Relationship)과 함께 표현하는 그래프입니다. Knowledge Graph는 꽤 오래전부터 등장한 개념이지만, 최근 RAG(Retrieval-Augmented Generation) 방식으로 LLM(Large Language Model)을 사용하는 사례가 늘어나면서 지식 베이스 구조화의 중요성이 더욱 증대되고 있습니다. 특히 Graph 기반의 지식 저장 방식은 LLM 성능향상에 도움을 준다고 알려져 있습니다. GraphDB를 활용하면, 정보 간의 복잡한 관계를 구조화..