Life and Tech Talk

생성형 AI를 다루는 기술 5. 프롬프트 엔지니어링과 랭체인

LLM을 잘 다루기 위해서 프롬프트 엔지니어링의 중요성은 두말할 필요가 없다. 그런데 LLM을 활용한 어플리케이션을 만들다 보면 프롬프트 엔지니어링만으로 한계가 있다 보니 프로그래밍적으로 뒷바침 하기 위한 지원 툴들이 생겨 났다.


랭체인(Langchain), 라마인덱스(LlamaIndex), 시멘틱커널(Symantic Kernel) 등이 있다. 여기에서는 가장 많이 사용되고 있는 랭체인을 중심으로 설명하도록 하겠다.

 

랭체인(LangChain)의 로고는 앵무새로 되어 있는데 이는 LLM의 특징을 잘 표현한 것 같다. 앵무새가 사람과 대화하는 듯한 영상을 많이 볼 수 있는데 앵무새는 사실 사람의 말을 이해 하고 말하는 것이라기 보다는 소리를 기억하고 잘 따라하는 것이다.

LLM은 사람의 언어를 학습한 언어 모델로서 마치 앵무새처럼 사람의 언어를 잘 흉내내지만 사실 이해 한다고 보기는 어려운 점이 있다. 따라서 LLM을 기반으로 보다 지능적인 애플리케이션을 구축하기 위해서는 당연하게도 단순 언어 모델 개발 이상의 작업이 요구된다.

 

즉, 언어 모델과 여러 기능 간의 연결이 필요한데 랭체인(LangChain)은 언어 모델(Language model)과 외부 도구를 마치 사슬(Chain)처럼 엮어 결합시켜 이러한 통합을 간소화하도록 설계된 애플리케이션 개발 프레임워크다. 


다음 장 부터는 랭체인을 활용하여 '생각을 갈라서 처리하기'(Chain of Thought와 유사), '검색, 연산 등을 활용해서 문제 해결하기'(ReAct 기법), '내가 가진 문서 기반으로 답변하기'(Embedding과 RAG), '기억을 기반으로 답변하기'(Chat Memory) 등에 대해서 짚어 보고자 한다.


올린날: 2024년 4월 12일

* 올린이: 마이클

* VIEW: 113       0           위키홈     게시판     수정