본문 바로가기
728x90
반응형

전체 글190

reading LangChain docs (3) 지난번에 이어서 본격적으로 코드를 실행 시켜보면서 랭체인이 제공하는 기술들에 대해 익혀볼까 합니다. LCEL 인터페이스와 더 친해지기 위해 반드시 Prompt + LLM 페이지를 먼저 시작하는 걸 추천합니다. Cookbook Prompt + LLM: 프롬프트를 사용해서 LLM과 상호작용하는 방법을 설명합니다. 구체적인 프롬프트를 제공하고 응답을 얻어 LLM과 의사소통하는 기본적인 접근 방식입니다. RAG: 검색 기반 언어 모델과 생성 언어 모델을 결합하여 응답의 품질과 관련성을 향상시키는 기술입니다. 응답을 생성하기 전에 관련 정보를 가져오기 위해 검색기 모델을 사용하는 경우가 많습니다. Multiple chains: 각각 특정 목적이나 기능을 가진 다중 채팅 체인의 사용에 대해 설명합니다. 여러 체인을.. 2024. 1. 17.
reading LangChain docs (2) (1)편에서 랭체인의 기본 예시를 실행시켜 봤습니다. 그리고 LCEL의 개념을 살펴보고 체인 형태로 파이프라인을 만드는 것을 배웠습니다. 오늘은 이어서 LCEL관련해서 문서를 계속 볼 계획인데 Interface와 How to 까지 살펴보려 합니다. 그전에 기존에 우리가 openai에서 제공하는 코드로 api를 호출할 때와 LangChain을 사용했을 때를 비교하는 페이지를 봤습니다. 아래와 같은 코드로 기본적인 질의응답 프로그램을 활용합니다. from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate from langchain_core.output_parsers import StrOutputPar.. 2024. 1. 17.
reading LangChain docs (1) LangChain은 LLM 모델을 쉽게 개발할 수 있게 도와주는 프레임워크 입니다. 저같은 경우는 회사서 이런저런 상황에 맞는 적절한 챗봇을 구축하는 일을 하게 되었습니다. 주로 OpenAI의 ChatGPT API를 토대로 파인튜닝한 해서 사용자의 입력에 대한 적절한 결과물을 서비스 하게 될 것 같은데요(파운데이션 모델로 1등하는 일은 이제 넘사벽이 된 것만 같습니다. 있는걸 잘 활용하자! 의 자세로 사는 중입니다.). 그리하여 LangChain과 좀 더 친해지려고 공부 겸 실습을 좀 해보기 위해 기록을 하게 되었습니다. 공부도 하고 기여도 하고! 기본적으로 랭체인을 문서를 보고 설치했다면 랭체인에서 체인을 구성하는 언어인 LCEL을 알아야 합니다. LCEL(LangChain Expression Lan.. 2024. 1. 16.
MLOps note(2) 이번에는 전에 만들어둔 Makefile, hello.py, test_hello.py, requirements.txt 네가지 scaffold를 도커라이징하고, 이미지를 AWS의 레지스트리인 ECR에 푸시할 계획이다. 그런 다음 ECS에서 해당 이미지를 실행하는 컨테이너를 띄워볼 것이다. 트리거는 깃헙 저장소에 main브랜치로 코드를 푸시하는거고, 깃헙액션이 이를 확인할거다. docker와 aws와의 연결을 위해서는 로컬에서 권한에 대한 이슈가 발생한다. 그리고 포트 등에 대해서 마음대로 할 수 없다. 이미지도 갈수록 늘어날테고.. 회사 서버로 작게 작게 연습중이었는데, 아쉽지만 로컬로 갈아타게 되었다. 🥲 우분투로 잘 하고 있었는데, 맥북에서 진행해야하니 운영체제 때문에 초기에 설정을 좀 해주었다. doc.. 2023. 10. 22.
MLOps note(1) DevOps 철학인 자동화의 계보를 잇는 MLOps. 자동화하지 않으면 고장난 것이다라는 말에 동의하나요? 저는 동의합니다. 한번 만들어 놓은 분류 모델이 영원히 제 성능을 발휘하리라 믿는 사람은 없을 거라 생각합니다. 일반화 성능에서 정확도 100%를 달성할 수 없는 것은 현실세계의 문제는 1차원적이지 않기 때문입니다. 이는 곧 모델이 스스로 뚝딱뚝딱 보완하고 업그레이드를 하면 좋겠다라는 니즈가 발생합니다. 그래서! 현재 기준으로 내가 만들 수 있는 가장 훌륭한 모델을 만들었다면 앞으로 발생할 새로운 케이스들을 입력으로 받아 나이스한 추론 결과를 보여주겠죠. 데이터사이언티스트로 일하다보면 나이스한 추론 결과를 내도록 모델을 정교화하는 것도 물론 중요하지만 더 중요한 것은 역시 비즈니스에 잘 녹아들게 하.. 2023. 10. 12.
리팩터링 7장 7. 캡슐화 모듈을 분리하는 가장 중요한 기준은 감추어야할 부분들을 다른 곳에서 보이지 않고 얼마나 잘 숨기느냐에 있다. 대표적인 형태로는 아래와 같은 방법으로 캡슐화해서 숨길 수 있다. 레코드 캡슐화하기(1) 컬렉션 캡슐화하기(2) 기본형 데이터는 기본형을 객체로 바꾸기(3) 방법을 통해서 캡슐화할 수 있다. 리팩터링 중 임시 변수가 걸리적 거릴때는 임시 변수를 질의 함수로 바꾸기(4)를 활용한다. 클래스는 본래 정보를 숨기는 용도로 설계되는데, 클래스 추출하기(5), 클래스 인라인하기(6) 를 활용해 클래스를 만들 수 있다. 클래스는 내부정보 뿐만아니라 사이의 연결관계를 숨기는 데도 유용한데 이 때 위임 숨기기(7)를 활용한다. 너무 많이 숨기다보면 인터페이스가 비대해지니 이 때 반대 기법인 중재자 .. 2023. 3. 15.
리팩터링 2탄 5/6장 5. 리팩터링 카탈로그 보는법 책읽는 사용법이라 생략! 6. 기본적인 리팩터링 6.1 함수추출하기 코드가 무슨일은 하는지 파악하고, 독립된 함수로 추출하고 목적에 맞게 이름을 붙이자. 지역변수는 매개변수로 받도록 하자. 6.2 함수인라인하기 간접호출은 유용할 수 있지만 쓸데없는 간접 호출, 과하게 쓰이는 간접호출은 거슬리니 함수를 인라인하자. 6.3 변수 추출하기 표현식이 복잡해서 이해하기 어려울 때 짖역 변수를 활용해 표현식을 관리하기 쉽게 만들자. 6.4 변수 인라인하기 추출한 변수가 표현식과 다를 바 없을 때 변수를 인라인 하자. 6.5 함수 선언 바꾸기 더 좋은 함수 이름이 떠오른다면 바꾸자. 주석을 작성해보면 함수의 이름이 역으로 떠오를 수도 있다. 6.6 변수 캡슐화하기 데이터를 옮길(변경).. 2023. 2. 22.
GC-MC(Graph Convolutional Matrix Completion) Abstract 본 논문에서는 평점 행렬의 빈공간을 채우는 Completion 관점에서 바라보고 있습니다. 영화 평점 행렬과 같은 데이터를 그래프 기반으로 바라보면서 값을 채우는 식으로 추천을 하게 되는데요. 기존에 알고 있던 Matrix Factorization과 결이 같다고 볼 수 있습니다. 영화 평점 행렬같은 케이스를 bipartite graph로 보는데 아래의 사진과 같이 빨간색은 사용자, 파란색은 영화. 이렇게 생각하면 됩니다. GC-MC는 일반적인 CF 벤치마크에 대비 경쟁적인 성능을 보인다고 합니다. 1. Introduction 본 논문에서는 행렬 완성(completion)을 그래프의 링크를 예측하는 문제로 봅니다. CF는 사용자와 아이템 간의 이분 그래프로 나타낼 수 있기 때문입니다. 그래.. 2023. 2. 20.
리팩터링 2/3/4장. 2장. 리팩터링 원칙 리팩터링이란 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도록 내부 구조를 변경하는 방법. '리팩터링'을 하느냐, '기능추가'를 하느냐를 명확히 구분해서 작업하자. 3의 법칙 (1)일단 그냥해 (2)중복? 일단 그냥해 (3)중복 또? 그러면 리팩토링하자. 내부동작을 이해해야 할 시점에 리팩터링해야 효과를 제대로 볼 수 있다. 코드리뷰시 다른사람의 코드를 이해하는데 도움을 줄 수 있다. 궁극적인 목표는 개발속도를 높여서 더 적은 노력으로 더 많은 가치를 창출하는 것이다. 브랜치따서 개인이 개발 오래하면 나중에 통합할 때 다른 사람이 브랜치 업데이트할 때 힘드니 지속적 통합(CI)을 하자. **리팩토링 계획이 있을시 먼저 팀원에게 해당 계획을 공유하자.** .. 2023. 2. 12.
728x90
반응형