Generative AI 5

LLM 애플리케이션 아키텍처 (1/2)

LLM 애플리케이션 아키텍처 (1/2) 조대협 (http://bcho.tistory.com) ChatGPT나, Gemini 모델과 같은 LLM 을 이용한 애플리케이션을 개발하는 형태를 보면, 보통 LLM에 프롬프트 엔지니어링을 사용한 프롬프트를 입력으로 사용하고, 리턴을 받아서 사용한다. 그리고 약간 발전된 형태의 경우에는 파인 튜닝을 사용하거나, 아주 발전된 형태는 외부 문서 저장소를 사용하는 형태 정도의 수준으로 개발한다. 즉 LLM을 한번 정도 호출하는 정도의 구조를 가지고 있다. 그러나 운영환경에 올라가는 LLM 기반의 애플리케이션의 구조는 이것보다 훨씬 복잡하다. 아래 그림은 LLM 애플리케이션의 아키텍처 예시이다. 단순하게 프롬프트를 작성해서 LLM을 한번만 호출하는 것이 아니라, 여러 예제를..

LLM 애플리케이션 개발을 위한 Langchain - #3 Model 및 호출 방법

Langchain Model 컴포넌트와 호출 방법 조대협 (http://bcho.tistory.com) Model은 Langchain 에서 ChatGPT나 PaLM 모델을 추상화한 객체이다. 보통 LLM모델들이 문장을 완성하는 LLM 기능 (질문에 대한 답변, 문서 요약, 아이디어 제공 등등)의 모델과, 사람과 상호작용을 하는 채팅을 위한 두 가지 모델을 제공한다. Langchain도 마찬가지로 이 두 가지 모델에 대한 추상화 계층을 제공하고 있다. LLM은 입력된 프롬프트의 명령에 따라 답변을 내는 모델이다. ChatGPT, PaLM API등의 LLM 모델에 대한 추상화 객체를 제공한다. LLM 모델 객체를 생성하는 방법은 모델 제공자에 따라 다르며, 특히 모델 제공자에 따라서 지원하는 튜닝 가능한 패..

VAE를 통해서 본 이미지 생성 모델의 원리

VAE를 통해서 본 이미지 생성 모델의 원리 조대협 (http://bcho.tistory.com) 요즘 Mid Journey 모델이나 DALLE-3 모델과 같은 이미지 생성 모델이 많이 소개되어, 어떤 원리로 이미지를 생성하는지 궁금하였다. GAN,Transformer등 여러가지 모델이 있지만 VAE (Variant Auto Encoder)모델을 이용하여 이미지를 변경하는 방법이 상대적으로 이해하기 쉬워서 VAE기반의 이미지 편집 원리를 정리하였다. 오토 인코더와 VAE에 대한 개념 설명 : (이 글을 읽기전에 AutoEncoder와 VAE에 대한 개념/원리는 아래 글을 참고하기를 권장한다.) 오토 인코더에 대한 개념 설명은 https://bcho.tistory.com/1197 오토 인코더 샘플 코드는 ..

LangChain에서 Vertex.AI LLM 사용하기

LangChain 에서 Vertex.AI LLM 사용하기 조대협 (http://bcho.tistory.com) 라이브러리 설치 !pip install 'google-cloud-aiplatform>=1.25.0' !pip install --user langchain 필요라이브러리로는 Google Cloud AI Platform SDK 1.25 버전 이상이 필요하며, Langchain 라이브러리를 같이 설치한다. 환경 설정 구글 클라우드에서 LLM API 를 호출하기 위해서는 API 인증 및 사용하는 프로젝트를 지정해야 한다. 여기서는 편의상 구글 클라우드 Vertex.ai workbench (매니지드 Jupyter 노트북)을 생성하면서 Service account를 먼저 생성해놓고, Vertex.AI를 호..

LLM 모델과 프롬프트 작성 방법

LLM 모델과 프롬프트 작성 방법 조대협 (http://bcho.tistory.com) LLM (Large Language Model)은 생성형 AI (Generative AI) 중의 하나로, 자연어 처리를할 수 있는 머신러닝 모델로, 자연어로 내리는 명령어 대해서 텍스트 아웃풋을 내는 모델이다. 예를 들어 문장을 요약하거나, 검색 엔진처럼 특정 질문에 대해서 답변을 하는 등의 기능을 수행할 수 있다. 일반적으로 LLM로 제공되는 모델들은 다음과 같다. LLM : 일반적인 LLM으로 일반적인 자연어 처리 엔진이다. Coding : 코딩에 최적화된 모델로 자연어로 입력을 받아서 소스 코드를 생성하거나, 코드 자동완성, 코드에 대한 주석 생성등을 지원한다.Coding LLM도 일반적인 Q&A나 명령을 수행하..