AI

[AI] AI 맛보기

dud9902 2025. 1. 8. 20:39

학원에 AI 관련 수업을 듣기 시작한지 어느덧 열흘이 넘은 지금에서야 글을쓰는 포스팅이다...

오늘은 강사님께서 알려주신 AI 기초 내용으로 글을 작성해보려고 한다. 

 

머신러닝·딥러닝 개념과 모델 활용

 

1. 머신러닝과 딥러닝

  • 머신러닝(ML): 정형화된 데이터를 다룬다.
    예) 테이블 형태의 데이터(행과 열), 주가 예측, 간단한 분류·회귀 등
  • 딥러닝(DL): 비정형 데이터를 다룬다.
    예) 이미지(CV, 시각), 텍스트(NLP, 자연어), 오디오(Audio) 등

2. 멀티모달(Multimodal)이란?

  • 서로 다른 두 가지 모달을 섞어서 사용하는 것이다.
    예) 이미지+텍스트, 텍스트+오디오 등

3. 모델 사용 방식

A. 모델을 바로 가져다 쓰기

  1. 패키지 로드
  2. 모델 로드
  3. 전처리(Pre-processing)
  4. 모델 추론(Inference)
  5. 후처리(Post-processing): 응답값을 원하는 형태로 가공

B. 모델을 학습해서 쓰기

   1. 패키지 로드

   2. 모델 로드

       데이터 로드

   3. 데이터 전처리 및 정답 데이터셋 구축

       모델 학습 및 검증

       정답 데이터셋으로 모델 평가

   4. 모델 추론(Inference)

   5. 후처리(Post-processing)

C. API 사용하기

  1. API 사이트 문서(Docs)와 블로그 확인
  2. 예제 코드 참고
  3. 결과값 도출
  4. 아이디어 적용: 이 API를 어떻게 적용할지 기획
  5. 데이터 로드 및 전처리, 프롬프트 튜닝
  6. 후처리(Post-processing)

인공지능(AI)을 어떻게 학습할 것인가?

  1. 하고 싶은 Task 정하기
    • 예) CV(컴퓨터 비전), NLP(자연어 처리), 오디오 분석 등
  2. 구현 방법 찾기
    • 예) Hugging Face Models, GitHub, Google 검색, API 활용 등
  3. Trade-off 확인
    • 한쪽 성능을 높이면 다른 한쪽이 떨어지는 경우 고려
  4. GPU 성능 및 환경 점검
    • cmd > nvidia-smi 를 통해 GPU 리소스를 확인한다.
    • LLM(Large Language Model) 지원 가능 여부를 확인한다.
    • 토큰 개수 제한 확인한다.
    • 양자화(Quantization): 모델을 작게 만들어서 적은 리소스로 큰 모델 기능을 어느 정도 활용한다. (성능 저하 가능성 있음)

다양한 API와 서비스

  • 빅테크 기업 API
    • ChatGPT, Midjourney, CLOVA OCR, Claude, Cloud Vision API, RTZR STT(한국어 특화) 등
  • ChatGPT 멀티모달 사용 예시
    • 음성 입력을 텍스트로 변환(STT) → 변환된 텍스트를 ChatGPT에 입력 → 다시 음성으로 출력(TTS)
    • 내부적으로 모델 2개를 사용하는 개념(STT 모델 + ChatGPT)

핵심 개념

  • Embedding(임베딩)
    • 모델이 이해할 수 있도록 입력값을 벡터(숫자)로 변환하는 과정이다.

LLM은 무엇인가?

  • LLM(Large Language Model)
    • 방대한 데이터로 사전 학습된 딥러닝 모델(초대형 언어 모델)이다.
    • 예) ChatGPT, Claude, Gemini 등
  • 오픈소스 모델
    • 최신 정보 부족 및 환각(Hallucination) 발생 가능성이 있다.
    • 예) Llama, Mistral, Solar, Qwen, DeepSeek 등

한계를 극복할 수 있는 방법

  • RAG(Retrieval-Augmented Generation)
    • 최신 정보 부족, 할루시네이션 문제를 해결하기 위해 외부 데이터베이스를 참고하여 답변을 생성한다.

 

  • AI 에이전트(AI Agent)
    • LangChain, crewAI 등을 활용하여 자율적 수행을 한다.

어떻게 AI Server와 연결할것인가?
  1. Fastapi로 만들기
  2. 알맞은 host, port 열어주기
  3. 데이터 받기(거의 POST)
  4. 추론
  5. 결과값 return

AI Server와 통신할 때 주의사항!!

  1. requirements.txt 사용
    • 동일 환경 재현성을 위해 의존 라이브러리를 기록
    • pip list —format=freeze > requirements.txt
    • pip install -r requirements.txt 로 설치
  2. .env 파일 사용
    • API Key 등 민감 정보 관리
  3. .gitignore 설정
    • 업로드하면 안 되는 정보(민감 정보, 불필요 파일) 제외

 


Ngrok를 이용한 로컬 서버 외부 연결

  • Ngrok
    • 외부에서 로컬 컴퓨터로 접근하는 방법이다.
    • 무료 도메인을 받아 로컬 포트를 외부에 공개한다.
    • GET 요청 시 Header 추가를 통해 인증/보안 처리를 할 수도 있다.
const API_URL = 'https://gnat-suited-weekly.ngrok-free.app/api/posts';

const HEADERS = {
  'Content-Type': 'application/json',
  'ngrok-skip-browser-warning': '69420',
};

const fetchPosts = async () => {
  try {
    const response = await axios.get(API_URL, { headers: HEADERS });
    // ...
  } catch (error) {
    // ...