이번 글에서는 LCEL에 대한 아래 의문점 중 1번에 대해 다룰 예정이다.의문1. 어떻게 구현되어 있는건지runnable 프로토콜을 구현하여 | 로 chain을 구성하였다고 하는데 도대체 어떻게 동작하고 어떻게 구현을 한지 감이 잡히지 않았다.chain = prompt | model | output_parser 도대체 어떻게 구현되었길래 | 기호로 chain을 만들었다는 것일까?코드 까보기lcel은 runnable들을 가지고 chain을 구성하는 방식으로 되어있다.promptTempate 등도 결국 Runnable를 상속하고 있다.Runnable각각 promptTemplate, model등 chaining하여 사용하는 componet 하나 하나 단위로 사용되며. 내부를 확인해 보면 coerc..
분류 전체보기
AI 모델을 활용한 애플리케이션을 만드는 framework이며 주로 언어모델을 활용하기 쉽게 구성되어있다.앞으로 알아볼 내용은 LCEL(LangChain Expression Lauguge)를 사용하여 chain을 구성하는 방법이다.LCEL은 LangChain component을 chaining하기 쉽게 만들어진 언어다.특히, streaming, async, parallel execution 지원된다.이 문서를 아래 버전을 바탕으로 작성되었습니다.langchain-community==0.0.34langchain-core==0.1.45langchain-openai==0.1.3langsmith==0.1.49Langchain Componentchain을 구성할 수 있는 component는 다양하게..
이 글은 udemy의 GCP Professional CLoud Architect: Google Cloud Certification 강의를 바탕으로 작성되었습니다. aplication이 배포된 data center에 지진이 나서 문제가 발생하며 어떻게 될까? 이때 서비스가 멈추는 문제를 우리는 막기 위해, HA를 고려한 설계를 하게 된다. 이를 위해 multi zone을 사용하게 된다. 또한, 한 region의 모든 zone에 문제가 생기는 한 region 전체가 문제가 발생해도 서비스가 이루어질 정도로 HA가 중요한 서비스의 경우는 multi region을 고려해볼 필요가 있다. (대신 비싸다.) 용어 정리) 한 region 안에 여러 zone이 있다. region이 london이면 london 안에도 ..
from collections import OrderedDict d = OrderedDict() d[1]=2 orderdict은 크기에 따라 order되는 것이 아닌 insert 순서가 유지되는 dict이다 insert한 순서를 쓰이는 최근 N개 등에 사용되면 좋다.
잘못된 내용이 있으면 댓글로 알려주시면 감사합니다. 언제나 기술적인 피드백은 환영합니다. 여러 책을 공부하면서 헷갈리는 언어가 있었는데 아래 단어이다. 1. model serving vs model prediction vs model inference 2. online inference vs online serving vs batch prediction vs batch serving model serving vs model prediction vs model inference model serving :모델을 배포하여 실시간 요청 또는 일괄 처리를 하도록하는 과정이다. model inference을 포함하는 개념이다. model prediction : 모델이 output 값을 만든는 것. auto reg..
third party api란 구글 번역 api, 카카오 로그인 api 등 기업이 서비스를 위해 제공하는 api
확장 가능한 프로그램: 트래픽이 점점 늘어나도 코드 수정이 없거나 최소한만 수정해서 늘어나는 작업량을 처리할수 있도록 능력 또는 확대될 수 있는 잠재력을 가진 프로그램 MSA에서 확장가능한 서비스를 만들기 위해서는 먼저 서비스에서 각 부분을 모듈 단위 분리해야한다. 분리 기준 1. 의존성이 적은 기능들은 분리 (의존성이 적어질려면 api로 호출보다는 db, 큐 등 저장소를 사용하여 의존관계를 줄여준다 ) 2. .확장 가능성이 염두하고 성능 조절해야하는 단위로 분리 (특정 모듈이 독립적으로 확장할 필요 여부이다. ) 위와 같이 분리를 하면 노드 밸런스 등을 앞단에 사용하고 해당 트래픽을 받는 모듈을 필요한 갯수만 띄우므로써 코드 수정이 없이 확장이 가능해진다. 주의 사항 ) 1. 분할을 많이 하게 되면 네..
Gradient Descent 의 문제점 I. 학습속도가 느림 2. Global minimum 이 아닌 Local minimum 을 찾을 수 있다. 3. w의 초기화값에 따라 결과가 달라진다. Optimizer의 변천사 Gradient Descent - Cost가 감소하는 방향으로 weight를 학습하자. Stocastic Gradient Descent Gradient descent 가 배치 사이즈만큼 cost 를 계산하고 weight 를 학습하면 시간이 오래 걸리는 문제를 mini batch를 사용해 더 작은 단어로 나누어서 학습하여 해결 train data 전체에 대해 학습이 아닌 일부만 가지고 학습하기 때문에 학습을 우회해서 갈 수 있어 local minimum 에 빠질 가능성이 감소한다. 하지만 ..