본문 바로가기

반응형

AI/LLM

(6)
[LLM] LangGraph의 node 실행 방식 LangGraph 로 graph 를 만들다 보면 각 node가 어떻게 동작하는지, graph의 실행 방식에 대한 의문이 생긴다. node 를 sync 함수로 쓸 때와 async 함수로 쓸 때 무엇이 달라지는가. stream() 과 astream() 은 node 를 어떻게 다르게 실행하는가. sync node 를 astream() 으로 실행해도 되는가. 이번 글에서는 LangGraph 소스를 따라가며 node 가 실제로 어떻게 실행되는지 확인해보겠다. 기준 버전은 langgraph 1.2 이다.요약결론부터 먼저 보겠다. sync API (invoke/stream)async API (ainvoke/astream)sync node (def)호출 스레드에서 직접 실행워커 스레드에 위임 (executor)asy..
[LLM] LangChain 1. LangChain 이란?LnagChain 은 LLM agent 나 애플리케이션 개발을 편리하게 해주는 프레임워크이다. OpenAI, Anthropic, Google 등 다양한 LLM provider 와 연동할 수 있는 인터페이스를 제공하여 agent 를 개발하는데 사용할 수 있다. 이 외에도 HTTP API 호출, 데이터베이스 연동 등 다양한 tool 을 호출하여 사용할 수 있고, vector store, retriever 등을 사용하여 RAG 도 구현할 수 있다.2. LangChain 장점LangChain 을 사용하는 이유는 LLM 을 사용하는 agent 나 application 의 개발을 위한 다양한 기능들을 제공해주기 때문이다. 만약 LangChain 을 사용하지 않으면 OpenAI 나 Gem..
[LLM] RAG (Retrieval-Augmented Generation) 1. RAG 란?RAG (Retrieval-Augmented Generation) 은 LLM 이 새로운 정보를 검색하고 통합할 수 있도록 하는 기술이다. LLM 이 외부 데이터 소스에서 정보를 검색한 뒤, 그 결과를 기반으로 응답을 생성하는 구조로 구성된다. LLM 을 단독으로 사용했을 때 없는 사실을 생성하는 Hallucination 문제나, 최신 데이터 부족으로 인한 문제 등이 발생한다. RAG 를 사용하면 모델의 학습에 사용된 데이터 이외에 새로운 추가 정보를 제공함으로 이러한 문제들을 해결할 수 있다. 또한 응답 생성에 참고해야 하는 내용을 제공함으로 사용자가 원하는 내용을 더 정확하게 얻을 수 있다.2. RAG 핵심 개념 및 동작 흐름1) Indexing사전 준비 단계로 RAG 를 구성하기 위해..
[LLM] Vector, Embedding LLM 서비스를 개발하면 Embedding 이라는 키워드를 만나게 된다. 자연어 문장을 이해하고 문맥간의 관계를 위해서 필요한 과정인데, 간단하게 생각하면 사람의 말, 자연어를 컴퓨터가 이해할 수 있는 디지털, 숫자 형식 Vector 로 변환하는 것이다. 이 글에서는 Vector, Embedding 에 대한 개념과 자연어를 Embedding 하는 예제, 그리고 Embedding 한 Vector 와 Vector DB 를 사용하여 데이터 저장과 검색하는 것까지 정리해보겠다.1. Vector, Embedding 개념- VectorVetor 는 수학에서 크기와 방향을 동시에 가지는 물리량을 의미한다. 이는 곧 n 차원 공간의 좌표로 이해할 수 있는데, 아래 예시와 같이 특정 차원의 숫자 배열로 표현된다. ex)..
[LLM] OpenAI SDK Quickstart 여러 LLM Provider 들의 SDK 를 사용해보면서 공부를 하려고 한다. 가장 먼저 제일 많이 사용되고 있는 OpenAI 로 시작해보려 한다. OpenAI API 공식문서의 Quickstart 를 기반으로 OpenAI SDK 설치, Response API 를 사용한 채팅, 이미지 분석, agent build 등 다양한 예제를 정리해본다.1. OpenAI API Key 발급OpenAI API 를 사용하기 위해서는 먼저 API Key 를 발급받아야 한다. OpenAI 계정을 만들고 billing 을 등록하는 등 과정을 거친 후 API Key 를 발급받을 수 있다. 자세한 과정은 아래 링크를 참고하자. - https://developers.openai.com/api/docs/quickstart#creat..
[LLM] LLM Provider 와 OpenAI API 사내에서 LLM 을 이용한 서비스를 개발하고 있다. 그 과정에서 여러 LLM Provider 를 고려한 설계가 필요하게 되었다. 각 회사마다 제공하는 API 스펙, SDK 가 다르기 때문에 이들을 어떻게 한번에 관리할 수 있을까 고민하게 되었다. multiple LLM provider 에 대한 고민을 하면서 개발을 하고 있는데, 한번씩 그 내용들을 글로 정리하려고 한다. 이번 글에서는 처음했었던 고민과 OpenAI API 기반으로 초기 개발 방향을 선정한 과정을 정리한다.1. LLM API providerLLM 서비스를 개발하다보면 다양한 선택지의 provider 들을 만난다. OpenAI, Microsoft Azure, Anthropic, Google, Amazon Bedrock 등등 다양한 회사들에서..

반응형