MLOps/Langserve

LangServe를 활용한 Langchain service

DanielZZI 2024. 4. 14. 23:03
728x90

 

사내에서 data science팀이 제공하는 자체 LLM 모델은  제조데이터를 학습하지 않고 있다.

 

그래서 제조데이터를 활용한 LLM서비스를 위해서는 두가지방법이 가능해보이는데,

1. 제조데이터 finetuning을 통한 모델활용

2.langchain을 통한 RAG 구현으로 제조지식은 Retriver로,사내 LLM모델은 모델API로 활용하여 서비스제공하기

 

이다.

 

1번의 경우 해당부서와 실제로 협업하기 어려운측면이 있으나 2번은 충분히 가능해보였다.

 

그래서 오랜만에 Langchain을 보니 그동안 많이 또 바뀌어있었다.

 

그중에 Langserve는 내가 익숙한 fastapi를 통해 RAG 서비스를 제공할수 있어보였다.

 

runnable이라는 자체 제공 객체를 통해 통해 쉽게 각종 component로부터의 데이터파이프라인을 만들수 있다.

 

그리고 그 파이프라인은 최종적으로  invoke, batch, stream이라는 api 로 제공해주게된다.

 

우리의 경우 sentence-transformer로 제공되는 embedding을 faiss vectorstore로 관리하고, 

(자세히 들어가면 복잡하나, 대략적인 원리는 알 수있었다.)

 

사내LLM model을 model API로 , prompt는 context변수와 question변수로, faiss vectorstore를 retriver로 해서

 

어떤 알람에 대한 조치서비스를 유저에게 제공해주는 서비스를 구현해봤다.