분류 전체보기(81)
-
[Langchain] Langserve에서 LLM Agent를 활용한 Response Streaming
기존에 LCEL기반의 LLM pipeline에서 Agent를 활용하는 방식으로 전환을 하고 있었습니다. 그 이유는 아래와 같습니다.1. Retriever를 구조화하여 사용하기 힘들다.2. 복잡한 형태, 크로스 도매인을 가진 질문에 대하여 답변하기 더 용이하다. 하지만 단점도 있습니다.1. 답변을 생성하기 위한 과정이 추가되다보니 답변이 느리다.2. LLM의 가끔의 멍청함으로 포맷을 정확히 지키지 못해, 추가 Token발생으로 비용이 쪼~금 더 나갈때가 있다. 그러나 이 단점중 2번째인 Formating 문제가 Claude 3.5 Sonnet이 출시되며 말끔하게 해결되어 Agent 전환을 하고 있는데...Agent의 답변은 여러 단계를 거쳐 마지막 Final Answer가 출력되는 시점에 일괄 출력되도록 ..
2024.06.26 -
[LLM] Claude 3.5 Sonnet 출시 개인적인 느낀점
이 글을 작성하는 현재시간 기준으로 어제 Claude의 새로운 모델이 공개됐습니다. 제가 개발을 하며 사용하고 있는 AWS Bedrock에도 바로 출시가 됐더군요, Claude에서 AWS에 올린 글에 나온 그래프만 봐도 기존에 Opus를 뛰어넘는다고 표현하고 있습니다. 저는 이 내용이 뜨자마자 바로 Bedrock을 이용해서 모델을 사용해보았습니다. 그리고 느낀점을 한번 올려보겠습니다. 1. 모델의 성능 변화기존의 Cluade는 제가 느끼기에 좀 더 대화에 최적화 된 튜닝 방식을 가지고 있다고 생각했습니다. 그 이유는 다양하게 LLM을 활용할 때 많이 쓰는 방식이 답변에 대한 특정 Fromating을 요구하는 경우가 많은데, 이 경우 실패율이 꾀 높습니다. 그런데 이때 출력되는 결과물을 보면 "좋습니다 답..
2024.06.22 -
[LLM] Data Splitters (with Langchain)
우리는 RAG를 구성하기 위해서 다향한 데이터를 Embedding하여 VectorDB에 저장해야 한다고 바로 이전글에서 알아보았는데요 그럼 어떻게 Embedding할 데이터를 만들까요? 일반적으로 html, Text, PDF, MS Document(Excel, ppt, docs)등 다양한 문서의 형태가 있는데 이것들을 Read -> Chunk로 분할 하여 Embedding에 사용되기 직전 까지의 과정을 한번 살펴볼겁니다. 너무 많은 Text Splitter가 있는데 그중에서 Character Splitter를 살펴보려고 합니다. 더 많은 Splitter에 대해서는 아래 링크를 참고하시기 바랍니다!https://python.langchain.com/v0.1/docs/modules/data_connectio..
2024.06.22 -
[LLM] RAG란 무엇인가?
안녕하세요 오랜만에 또 글을 써봅니다.최근 데이터엔지니어 이지만... 회사에서의 요구사항으로 LLM으로 서비스를 개발하고 있는데요, 특정 도매인의 최신 정보를 가지고 있는 Chatbot을 만들어야 하다보니 자연스럽게 RAG에 대해서 알게되었고 이 RAG에 대해서 제가 이해한 부분까지 정리해 보려 합니다. 각종 단어 Embedding이나, 프롬프트나 LLM과 같은 단어들에 대한 세부적 설명은 제외합니다.- RAG(Retrieval Argumented Generation)RAG(Retrieval Agumented Generation)는 검색-증강-생성 이라고 합니다. 무슨 의미를 가지고 있느냐.. 우리는 LLM모델을 먼저 이해할 필요가 있습니다. LLM모델은 Transformer라는 DL모델로 인간의 언어..
2024.06.20 -
python - pandas apply를 사용한 데이터 수정 with lambda
pandas를 사용해서 데이터를 다룰 때 구성된 데이터의 하나의 컬럼 데이터를 통째로 연산해야 하거나 변환해야하는 경우가 생기게 됩니다. 이때 사용하면 유용한 pandas 함수 apply를 알아봅시다 우선 데이터를 생성해 볼까요? 데이터 셋 생성 import pandas as pd # 예제 데이터프레임 생성 data = { '이름': ['홍길동', '이순신', '박보영'], '나이': [25, 40, 33], '부모의 나이 평균': [55, 62, 63], '도시': ['서울', '부산', '대구'] } df = pd.DataFrame(data) 다음과 같은 테이블을 생성 했습니다. 여기서 처음 시도해 볼 것은 이 유저의 나이를 1씩 더하는 작업을 진행하게 될겁니다 단일 Column 수정 - 유저의 나이..
2024.03.12 -
[GPT]GPT-3.5 Turbo Fine Tuning 시켜보기
얼마전 Open AI의 API를 활용하여 간단한 체팅을 구현해보는 글을 올렸었는데요 이번에는 그 GPT모델을 내가 직접 Fine Tuning해보도록 하겠습니다. 먼저 GPT의 Fine Tuning은 다음과 같을 때 하게됩니다. Introduction Fine-tuning lets you get more out of the models available through the API by providing: Higher quality results than prompting Ability to train on more examples than can fit in a prompt Token savings due to shorter prompts Lower latency requests OpenAI's text..
2024.03.09