LangChain 관련 프레임워크를 공부하다 보면 각종 API key들을 호출하고 관리해야 할 필요가 있습니다.특히 OpenAI API key 처럼 토큰마다 유료 결제를 해 사용해야 하는 항목들의 경우 더 예민하게 관리해야겠죠😔 예를 들어 코드를 수정하다가 Github 과 같은 오픈 레지스토리에 내 API key를 실수로 올리게 된다면... 과금 대참사가 일어날지도 모릅니다..! 또 OpenAI 관련 Cookbook 들을 실습하다 보면 종종 OpenAI API key 가 환경변수로부터 호출되도록 코드가 짜여 있는 것 처럼API, Github Token 등등... 관리는 매우 중요합니다! 그래서 오늘은 OpenAI API key를 Python-dotenv 를 이용하여 환경변수에 관리하는 방법에 대해 알아..
본 게시물은 Deeplearning.ai 코스를 수강 후 요약 및 정리한 내용입니다. 본 강의의 마지막 파트 Agent 이다 ㅎㅎ Agent의 주된 개념은 Language model 이 다음에 취할 행동 (Action)을 선택하도록 하게끔 하는 것이다. 따라서 Agent에서 Language model은 어떤 Action을 취할지 결정하는 Reasoning Engine의 역할을 한다. 앞서 우리는 QA task와 같은 많은 task들을 다뤘지만, Reasoning Engine 과 같은 기능이 LLM에 있으면 좋을 것으로 생각된다. Agent 에서 중요한 것은 Language model을 Reasoning Engine으로 사용 할 것이기 때문에 temperature=0으로 지정해두고 코드를 작성해야 한다! ..
본 게시물은 Deeplearning.ai 코스를 수강 후 요약 및 정리한 내용입니다. 우리가 LangChain 을 통해 LLM 응용 문제들을 앞서 다뤄보았다! 그렇다면 우리가 다룬 내용들이 제대로 잘 동작하고 있는지, 진행되고 있는지 확인하기 위해서는 Evaluation Metrics 와 같은 평가 지표가 필요할 것이다. 대규모 언어 모델을 통해 만든 Task들을 평가하려면 어떤 과정을 거쳐야 할까? 각각의 파트들이 어떻게 작동하는지, input output 등을 잘 알고 있어야 한다. LM이 다른 LM, Chain 등을 서로 평가할 수 있다. example question 을 생성하고 example ground truth 들을 생성해서 평가하는 방법을 거친다. 디테일하게 하나씩 실습해 보도록 하자. 먼..
본 게시물은 Deeplearning.ai 코스를 수강 후 요약 및 정리한 내용입니다. 우리가 자연어 처리 모델을 주로 쓸 때, 특히 대규모 언어 모델을 통해 주로 하고 싶은 것. 바로 QnA task 이다. QA 파트에서는 다음과 같은 내용들을 정리하였다. 주어진 문서 및 자료 질문에 답변하기 pdf, 웹페이지, 인트라넷 내부 문서 등 훈련되지 않은 문서에 처음으로 접하게 되는 것 LLM이 필요에 따라 유동적으로 적용된 다는 것을 의미함 언어 모델, 프롬프트, Output Parser 등을 넘어서서 LangChain의 임베딩 모델, 벡터 저장소 등 혹시 글을 읽다가 모르는 내용들이 나오게 된다면 이전 게시글들을 참조하자. 셋 다 너무 너무 중요한 내용들이다!! 2023.12.15 - [LLM/LangCh..
본 게시물은 Deeplearning.ai 코스를 수강 후 요약 및 정리한 내용입니다. LangChain에서 지원하는 다양한 모듈 중 하나인 Chain 이 체인은 LLM과 프롬프트를 결합하며 다양한 요소를 한 번에 묶어 텍스트나 다른 데이터에 사용할 수 있다는 장점이 있다. 즉, 데이터를 기반으로 Prompt 와 LLM을 결합해서 Sequential 작업을 할 수 있도록 돕는것이 바로 Chain의 역할이다. 따라서, 체인의 장점 중 하나는 바로 많은 입력을 동시에 실행할 수 있다는 것! 그래서 체인 기술을 이용하면 LLM을 단독으로 사용하는 것 보다 더 복잡한 응용 프로그램에 적용시킬 수 있다는 장점이 존재하는데, (그래서 이름이 랭체인인가?) 체인은 쉽게 말하자면 chain = prompt | model..
본 게시물은 Deeplearning.ai 코스를 수강 후 요약 및 정리한 내용입니다. LLM task에서 중요한 부분 또 한가지! 대규모 언어모델을 통해 챗봇을 만들고 이를 기반으로 사용자와 모델 간 대화를 하기 위해서는 언어 모델이 사용자의 입력을 기억하고 그에 맞는 답변을 도출해야 한다! 이를 Memory라고 하는데, 더 많은 대화 내용을 기억하고 있을 수록 더 구체적이고 정확한 답변이 가능해 질 것이고, 반대로 많은 내용을 기억하다 보면 다양한 LLM 모델들은 보통 토큰 단위로 요금을 지불하기 때문에 너무 많은 내용을 기억하면 토큰 비용이 증가하게 될 것이다. 그래서 이 메모리를 효율적으로 관리하는 것이 가장 중요할 것으로 생각되는데, LangChain에서는 이 메모리들을 관리할 수 있는 기본적인 ..