본문 바로가기
728x90
300x250

코딩/LLM25

랭체인을 이용한 리트리버 검색기 활용 리트리버 검색기를 통해서 쿼리에 참조 하기위한 문서를 빠르면서 정확하게 찾기위한 전략을 여러가지 짤 수 있습니다. LangChain이 제공하는 Retrieval Augmented Generation RAG는 외부 데이터를 검색하고 LLM으로 전달하여 사용자 특정 데이터를 활용하는 방법을 설명합니다. LangChain은 다양한 모듈로 이 과정을 지원하는데, 문서 로더로 다양한 소스에서 문서를 불러오고, 문서 변환기로 문서를 적절히 가공합니다. 또한 텍스트 임베딩 모델을 사용해 문서에 임베딩을 생성하고, 벡터 저장소를 통해 효율적으로 저장하고 검색합니다.검색 알고리즘 또한 다양한 방식으로 구현되어 있어, 쉬운 의미적 검색부터 부모 문서 검색, 셀프 쿼리 검색, 앙상블 검색 등 다양한 방법을 사용할 수 있습니.. 2024. 2. 16.
랭체인의 LCEL 문법 https://python.langchain.com/docs/expression_language/get_started langChain Expression Language (LCEL)는 체인을 쉽게 구성 할 수있는 선언적인 방법입니다 기본 : 일자식 구성 프롬프트 + 모델 + 출력 파서 chain = prompt | model | output_parser 분기 : RunnableParallel과 RunnablePassThrough를 이용 심화 : 사용자 함수와 함께, Runable하게 구성하기 def format\_docs(docs): backgrounds = \[\] max\_token = 3000 count\_token = 0 for doc in docs: count\_token += len(toke.. 2024. 2. 15.
OpenAI의 Function Calling의 원리를 알아보자 한 3달전에 캐글에 랭체인을 이용한 라마와 펑션콜링에 대한 주제로 글을 쓴게 있는데 1110뷰를 돌파 했습니다. ㅎㅎ OpenAI의 function calling은 출시 됬을 때 chatgpt를 이용한 개발자들에게 혁신적인 인기가 있었습니다. 이번 포스트는 Jsonformer를 통해서 OpenAI의 function calling이 무엇인가? 어떻게 구현 됬는지 알아보려고 합니다. 모델이 구조화된 JSON을 출력하는 것은 문법적으로 올바르고 JSON 구조를 명시하는 스키마를 준수해야 합니다. 이 문제를 해결하는 것은 매우 어려운 작업입니다. 현재 이 문제에 대한 접근 방식은 부서지기 쉽고 오류가 발생하기 쉽습니다. 이는 프롬프트 엔지니어링, 세세한 조정 및 후처리에 의존하지만 여전히 많은 경우에 문법적으로.. 2024. 2. 13.
DPO LLM 강화학습법에 대해서 DPO는 RLHF(Reinforcement Learning from Human Feedback)에 의존하지 않고 사용자 선호도 데이터를 직접 사용하여 언어 모델(LM)을 최적화하는 방법입니다. 주요 목표는 고품질 출력을 생성하기 위해 사용자 선호도를 기반으로 언어 모델을 훈련하는 것입니다. DPO는 강화학습 정책(PPO와 같은 것)을 사용하지 않으면서도(reward 모델링 없이) reward 함수와 기존 정책을 연결하여 인간의 선호 데이터에 최적화할 수 있다고 논문에서 설명합니다. 논문에 따르면 RLHF로 finetuning한 모델과 비교했을 때, DPO는 요약, single-turn 문제에서 더 우수한 성능을 보였습니다. DPO의 동기: DPO는 RLHF에 의존하지 않고 코드 생성과 같은 작업을 위한 .. 2024. 1. 24.
728x90
300x250