AI (14) 썸네일형 리스트형 [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 등등 다양한 회사들에서.. Ch4. 모델 훈련(4.6) 4.6 로지스틱 회귀 ■ 로지스틱 회귀 - 샘플이 특정 클래스에 속할 확률을 추정하는 데 사용된다. - 추정 확률이 50%를 넘으면 1, 아니면 0으로 판단하는 이진 분류기 4.6.1 확률 추정 - 로지스틱 회귀 모델은 입력 특성의 가중치 합을 계산한 후, 바로 결과를 출력하는 것이 아니라 로지스틱을 출력한다. ■ 로지스틱, Logistic - 0과 1사이의 값을 출력하는 시그모이드 함수 - 로지스틱 모델의 결과 p를 기준 0.5와 비교하여 예측값 y를 구해낼 수 있다. 4.6.2 훈련과 비용 함수 ■ 로지스틱 회귀 모델 훈련 - 양성 샘플(y = 1)에 대해서는 높은 확률을, 음성 샘플(y = 0)에 대해서는 낮은 확률을 추정하는 파라미터 벡터 θ를 찾도록 한다. - 로지스틱 회귀의 비용함수 • 하나의.. Ch4. 모델 훈련(4.3~4.5) 4.3 다항 회귀 ■ 다항회귀, Polynomial Regression - 선형 모델을 통해서 비선형 데이터를 학습 - 각 특성의 거듭제곱을 새로운 특성으로 추가하고 확장된 특성을 포함한 데이터셋에 선형 모델을 훈련시킨다. - 이차방정식의 예제 • 방정식의 차수에 맞춰서 데이터 셋 변형 (polynomial features를 통해서 제곱 특성 추가) • linear regression으로 학습하여 예측 - intercept_, coef_ 확인 4.4 학습 곡선 - 고차 다항 회귀를 적용한다면 훨씬 더 훈련 데이터 셋에 잘 맞춰 훈련할 수 있지만 과대적합의 문제도 있다. - 과대적합, 과소적합 검증 • 교차 검증 점수 확인 • 학습곡선 확인 -> 훈련 세트에서 크기가 다른 서브세트를 만들어 모델을 여러번 .. Ch4. 모델 훈련(4.1~4.2) 4.1 선형회귀 - 선형 모델은 입력 특성의 가중치 합과 편항을 더해 예측한다. - 모델의 학습 -> 모델이 훈련 세트에 가장 잘 맞도록 모델 파라미터를 설정하는 것 - 모델의 측정 -> 평균 제곱근 오차를 사용하여 측정 (RMSE) 4.1.1 정규방정식 ■ 정규방정식 - 비용함수를 최소화하는 값을 찾기위한 방법 - • y는 y(1)부터 y(m)까지 포함하는 타깃 벡터이다. 4.2 경사 하강법 ■ 경사하강법, Gradient Descent (GD) - 비용 함수를 최소화하기 위해 반복적으로 파라미터를 조정하는 방법 - 파라미터 백터 Θ에 대한 비용 함수의 현재 gradient를 계산해서 감소하는 방향으로 진행한다. • gradient가 0이 되는 곳이 최솟값이다. - 학습률, learning rate: .. 이전 1 2 다음