본문 바로가기

반응형

AI

(10)
[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: ..
Ch3. 분류 (3.5~3.7) 3.5 에러 분석 - 에러의 종류를 분석하여 모델의 성능을 향상시킨다. ■ 오차 행렬 분석 - 오차행렬의 각 값을 클래스 별 이미지 개수로 나누어 에러 비율 비교 - 각 클래스 간의 에러 비율 (a를 b로 분류하는 경우 등)을 이미지로 분석 - confusion_matrix() 함수를 호출 - plt.matxhow() 함수 사용하여 이미지로 표현 3.6 다중 레이블 분류 ■ 다중 레이블 분류, multilabel classfication - 분류기의 샘플마다 여러 개의 클래스를 출력해야하는 경우 - 여러개의 이진 레이블을 출력하는 분류 시스템 - sklearn.neighbors.NeightborsClassifier: knn classifier 3.7 다중 출력 분류 ■ 다중 출력 다중 클래스 분류. mu..
Ch3. 분류 (3.1~3.4) 3.1 MNIST ■ MNIST - 숫자를 손으로 적은 이미지 데이터 셋 - 해당 이미지를 학습해서 각 이미지가 어떤 숫자를 적은 이미지인지 분류한다. 3.2 이진 분류기 훈련 ■ 이진 분류기, classifier - True or False 분류 ■ 확률적 경사 하강법, Stochastic Gradient Descent (SGD) - scikit-learn SGDClassifier - 매우 큰 데이터셋을 효율적으로 처라 - SGD가 한번에 하나씩 훈련 샘플을 독립적으로 처리 -> 온라인 학습에 잘 들어맞는다. 3.3 성능 측정 3.3.1 교차 검증을 사용한 정확도 측정 - 교차검증의 경우 불균형한 데이터 셋을 다루는 등의 경우에 분류기의 성능 측정 지표로 적합하지 않다. 3.3.2 오차 행렬 ■ 오차 ..
Ch2. 머신러닝 프로젝트 처음부터 끝까지 (2.4 ~ 2.8) 2.4 데이터 이해를 위한 탐색과 시각화 2.4.1 지리적 데이터 시각화 ■ 지리정보 (경도와 위도)를 통해 데이터 시각화 - pandas.DataFrame.plot(kind, x, y) • kind: plot의 종류 ('line', 'bar', 'scatter' ...) • x: x축 • y: y축 - 캘리포니아의 주택가격이 지역(바다와 인접), 인구 밀도에 관련이 크다는 것을 확인할 수 있다. 2.4.2 상관관계 조사 ■ 표준 상관계수, standard correlation coefficient - 피어슨의 r - pandas.DataFrame.corr(): 각 컬럼간의 상관계수를 계산해준다. - 상관관계의 범위: -1 ~ 1 • 1에 가까울수록 양의 상관관계를 가진다. (비례관계) • -1에 가까울..
Ch2. 머신러닝 프로젝트 처음부터 끝까지 (2.1 ~ 2.3) 2.1 실제 데이터로 작업하기 - 예제 깃허브에 있는 dataset/housing 데이터 사용 - https://github.com/rickiepark/handson-ml 2.2 큰 그림 보기 - 캘리포니아 인구조사 데이터를 사용해 캘리포니아 주택 가격 모델 생성 • 인구, 중간 소득, 중간 주택 가격 등의 데이터 2.2.1 문제 정의 ■ 비즈니스의 목적이 무엇인가? - 모델을 생성해서 어떤 이익을 얻으려고 하는가? - 알고리즘 선택, 모델 평가에 사용할 성능 지표, 모델 튜닝 ※ 파이프라인 - 데이터 처리 컴포넌트들이 연속되어 있는 것 - 각 컴포넌트는 많은 데이터를 추출해 처리하고 그 결과를 다른 데이터 저장소로 보낸다. ■ 현재 솔루션은 어떻게 구성되어 있는가? - 문제 해결 방법에 대한 정보 & ..

반응형