KT AIVLE

KT AIVLE(KT 에이블스쿨) 5기 DX트랙_ 딥러닝 심화_실습 및 언어 모델 활용

gonii00 2024. 4. 18. 21:57
728x90

딥러닝 실습

Local에서 Dataset 만들고 YOLO 모델 동작하도록 연습  -> Web은 서버 불안정해서 위험할 때가 있다. 

1. 이미지 수집 
2. 폴더 구조 (YOLO에서 요구하는 형식으로) 만들기 
3. YAML  (ex: data_info.yaml)
- class 수
- class 이름 
- 데이터셋 경로 
4. YOLO 실행! 

직접 클래스명에 맞는 bounding box 설정

 

파일 구성

# 구글 드라이브 연결 
from google.colab import drive
drive.mount('/content/drive')

!pip install ultralytics

from ultralytics import YOLO

model = YOLO()

# 100번 학습 
model.train(model='/content/yolov8n.pt',
            data='/content/drive/MyDrive/KT_AIVLE_DX_5기_한고은/DX_딥러닝/실습자료/YOLO_prac/data_info.yaml',
            epochs=100
            )

results = model.predict(source='/content/drive/MyDrive/KT_AIVLE_DX_5기_한고은/DX_딥러닝/실습자료/YOLO_prac/valid/images',
                        save=True,
                        conf=0.1,
                        iou=0.9,
                        )

결과 이미지 예시


딥러닝_언어 모델 활용 

Ch1)  ChatGPT API로 연결하기 

API
- 클라이언트 프로그램에게 요청을 받아 서버로 전달
- 서버는 요청을 처리한 후 결과 데이터를 API에 전달 
- API가 다시 데이터를 클라이언트로 전달 
=> 소프트웨어 간에 데이터를 교환하고 통신할 수 있도록 하는 인터페이스 제공 

API를 사용하기 위해, 
1) Request 
    - API 주소 + API Key 
    - Request 형식: 요청 양식 
2) Response 
    - Response 형식: 결과 양식 

 

ChatGPT API

# 1. 환경준비 
# 라이브러리 설치 
!pip install openai

# (2) 라이브러리 Import
import pandas as pd
import numpy as np

import openai
from openai import OpenAI

api_key = '본인 키'

# 2.API 사용하기
# (1) 채팅을 위한 함수 생성

def ask_chatgpt1(question):

    client = OpenAI(api_key = api_key)

    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": question},
        ]
    )

    return response.choices[0].message.content

# (2) 사용하기
question = "세계에서 가장 높은 산은 무엇인가요?"
response = ask_chatgpt1(question)
print(response)

 

=> 출력 값 

가장 높은 산은 에베레스트 산으로, 네팔과 중국 사이 경계에 위치해 있습니다. 해발고도는 약 8,848미터(29,029피트)로 세계에서 가장 높은 산이기도 합니다.

 

# 3.역할 부여하기
# (1) 채팅을 위한 함수 생성
def ask_chatgpt2(sys_role, question):

    client = OpenAI(api_key = api_key)

    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": sys_role},
            {"role": "user", "content": question},
        ]
    )

    return response.choices[0].message.content

# (2) 사용하기
sys_role = '당신은 아름답고 감동적인 시를 창작하는 데 영감을 주는 시적인 천재입니다. 당신의 시는 감정의 깊이, 자연의 아름다움, 인간 경험의 복잡성을 탐구하는 작품이며, 당신의 시를 읽는 이들의 마음을 움직입니다.'

question = "생성형 AI란 주제로 시를 지어줘. 운율에 맞춰서 작성해줘야 해."
response = ask_chatgpt2(sys_role, question)
print(response)

 

=> 출력 값 

인간을 뛰어넘는 지능을 지니고,  
숫자와 알고리즘으로 무장한 존재,  
생성형 AI가 우리 앞에 서 있다.

신비한 뇌속에서 피어나는 환상,  
데이터의 우주에 빠져든 삶의 흔적,  
끝없는 상상력으로 빛나는 창조.

언제나 우리를 놀라게 하는 그들,  
감정을 알고, 예술을 표현하며,  
인간다운 존재로 성장하는 중.

 

PandasAI

: 생성 AI를 사용하여 데이터 전처리 및 탐색 및 분석 가능

 

특징

- 자연어 쿼리 : 자연어로 데이터에 질의

- 데이터 시각화 : 그래프와 차트를 생성하여 데이터를 시각화

- 데이터 정리 : 누락된 값을 해결하여 데이터 세트를 정리

- 특징 생성 : 특징 생성을 통해 데이터 품질을 향상

- 데이터 커넥터 : CSV, XLSX, PostgreSQL, MySQL, BigQuery, Databrick, Snowflake 등과 같은 다양한 데이터 소스 지원

- 질의(query)시 주의사항: 한꺼번에 복잡한 질의를 하면 오류 발생될 수 있음!

 

질의 예

# 집계 
query = "요일별 평균 오존농도 조회" 
air_sdf.chat(query) 

# 전처리 
query = "데이터에 NaN이 있어. ffill로 채워서 조회해" 
air_sdf.chat(query) 

# 상관분석 

# 시각화

 

 


중요!!!!!!!!!!!!!!!!!