일기장

NAVER CLOUD PLATFORM AI 과정 1일차 기록

graph-dev 2024. 3. 5. 21:00
728x90

3월 5일 하루동안 배운 교육 내용을 정리해본다.

 

 

네이버클라우드의 AI 공인교육을 수강 신청했다. 바로 오늘부터 역삼 교육장에서 진행했다.

 

교육장

 

네이버클라우드 교육의 장점은 항상 좋은 환경에서 배우는 것이다. 인터넷도 괜찮고, 의자도 푹신해서 마음에 든다. 카페 클라우드에서 가볍게 음료도 무료로 받아서 마실 수 있으니 참 좋다. 와이파이도 무료이고 교육을 위해 좋은 환경이 마련되니 더 잘 배울 수 있다.

 

가끔 모든 걸 정리하기 버거울 때가 있다. 그냥 끄적인 내용을 담아본다. 아주 많은 인원이 찾아온 기억이 있다. 나름 마스터 분들도 좀 오시고 다양한 분들이 찾아왔다.

 


 

이 Ncloud AI 과정은 어느정도 전문성 있는 사람을 위한다. 네이버클라우드 서비스를 잘 활용 가능하도록 설명한다. 교육 공지에 적혀있지만, AI 기초, 이론 하는건가? 그건 아니다. 저희 상품에 대해 잘 활용하는 것을 설명한다.

 

강사 소개: 네클 교육 맡은 정낙수

강의장 소개: 50명 이상 예정

  • 실습용 크레딧을 제공합니다.
  • 크레딧이 많이 소진된다. AI는 서버 한대만 만든다. 클로바에서 아무리 많은 데이터 밀어넣어도,
    • 단어 하나 토큰(형태소) : 0.002원정도 이다. 크레딧 소진할 일이 없다.
    • 그래도 서버 만들고 미삭제 → 계속 비용은 발생할 수 있다.
    • 교육 후 반드시 리소스 반납하셔야 합니다.
    • “크레딧 한달동안 쓸 수 있다.”(테스트 돌려보실 수 있다)
    • 크레딧 15만원어치 넣어드린다. 같이 해본다.

한달 유효기간 지나는 그 순간부터 비용이 발생할 수 있다. 크레딧, 비용관리 꼭 해줘야 한다.

현재 NCP에서 AI 과정이 빠져나왔다. 보안과정, 빅데이터 과정이 계속 가지치기할 예정이다.

 

AI 기초 과정

1일차는 AI API에 대해 설명한다. 2일차는 AI 서비스 중 챗봇 ocr, aitems, 3일차는 하이퍼클로바x 설명한다.

 

간단 소개

  • 어 클로바x? 네이버 큐? 클로바 스튜디오? 혼동스럽다.
  • 챗봇, 챗 gpt 같은 하이퍼클로바x가 있다.
  • 큐, 하이퍼클로바x는 이미 사용할 수 있습니다.
  • 큐: 블로그 등에서 찾는다. 다양한 검색을 제공한다. AI 검색이므로 계속해서 적용해서 본인이 찾아내야 한다.

hyperclova x 는 모델이다. 인터페이스로 적용한게 clova x라고 할 수 있다.? 일부 출처를 표기하기도 한다.

  • 프롬프트 엔지니어링: 원하는 답을 이끌어낸다. 질의를 반복하며 구체화한다.

 

여기서 벚꽃 위주로 범위를 좁힌다.

 

여러분만의 데이터를 넣어서 지식을 넣을 수도 있다. → 튜닝 영역

 

근데 튜닝은 필요한게 클로바 스튜디오를 써야한다.

  • 큐와 하이퍼클로바 달라? 달라
  • 클로바, 하이퍼클로바 달라? 달라
    • 하이퍼클로바x는 모델
    • 일반 사용자 인터페이스가 클로바x
    • 튜닝을 위한 기업 인터페이스는 하이퍼클로바x / 클로바스튜디오?
  • 튜닝?
    • 질문 매칭 답은 정해져있다.
    • 이러한 질문이야라면 그 답변을 내보낸다.
    • 답변 자체는 바꾸지 않는다.
  • GPT, LLM studio, 생성형 AI → 질문의 답을 주어진 데이터 활용하여 스스로 만들어낸다.
    • 결국 그 차이점이 그렇다. 그대로 만드느냐, 좀더 스스로 생각해서 답을 만들어내는가?

 

  • 하이퍼클로바x는 모델을 만드는 것이다.
    1. 이런 문제 해결을 위한 모델을 만든다.
      • 모델을 만드는 과정.
    2. 모델이 이미 있다.
      1. 그림: 달리, 이미지크리에이터 (달리: 모델이다)
      2. 영상: Sora 등 모두 모델
      3. 이런 잘 만든 모델 사용해도 된다.
      4. 정확도 높은 모델 가져다 쓰면 된다.
      5. 추가적인 학습은 전혀 없다. 충분히 학습되어 있고 정확도도 높다. 단순한 작업.
        1. 음성 ↔ 텍스트 ↔ 영상

머신러닝 활용한 AI

네클 AI API 만드는 것을 이용해본다.

GPU 환경 구성이 포함된다.

 

2016년으로 기억한다. 알파고?

참고로 AI는 3번의 증훈기, 2번의 빙하기가 있다고 한다.

 

1950년대 AI가 나옴. 이미테이션?

독일의 이니그마? 암흑기? 푸는 과정이다

사람의 뇌 인지 관련 연구를 한다.

AI는 당시 경우의 수만 늘리고 빠른 연산으로 답 찾는 시도.

체스 챔피언 vs 딥블루

지금은 제한된 메모리 유형이다.

공각기동대? 체스와 바둑은 두지 않는다.

인공지능도 마음, 행동의 결정권이 생길 수 있다.

AI > 머신러닝 > 딥러닝이 있다.

머신러닝: 지도 / 비지도 / 강화학습

어텐션 뉴런?을 바탕으로 LLM이 만들어진다. GPT 포함.

뉴런은 신경망의 형태이다. 이걸 컴퓨터로 구현함.

어떤게 효과적인지 모른다. 사람말을 알아듣네?

  • 지도학습: 옆에 답을 정하고 가르친다.
  • 비지도학습: 문제는 주지만 답은 없다. 같은 유형의 문제. 스스로 패턴찾기. 나중에 모델 만들면 샘플 데이터 넣어서 평가한다.
    • 요새 비지도 많이 씀. 편해.
  • 강화학습: 맞추면 쿠키, 틀리면 패널티줌.
    • 왜 굳이 강화학습?
    • 목적을 위해 자율주행같은거.
    • 사람치거나 인도 올라가거나 신호 어기면 강한 패널티줌.
    • aws+intel의 작은 자동차(racer?)가 있다. 선넘으면 패널티줌. 선 잘 따라가면 보상줌(리워드)

파라미터라고 한다.

저 선의 가짓수가 많을수록 더 많은 학습 → 더 많은 답 찾기.

가중치를 두고 다양한 값오면 그 중 조정해서 결과적으로..파라미터 개수 찾기.

3년간 tv보여주고 하면 보여준다.

학부 과정 모델만든다.? → 정확도 떨어진다.

글씨쓰고 이미지 인식시키면 잘 안됨.

이유? 데이터가 매우 많아야함.

데이터 만드는데 너무나 많은 컴퓨팅 리소스 든다. 이미지도 있고 그래서요.

언제 쓰나요? 이 친구가 만든 패턴의 정확도 파악하기 위해 또 데이터세트 만든다.

중요한건 샘플링 편향이 생기지 않도록 잘 만들어 줘야 한다. → 데이터가 좋아야 답을 잘 찾아낸다.

ex) 고등어, 전갱이 구분 판단 잘 못함(샘플링 편향) → 잘 정제해야함. 데이터 전처리 사용.

AI 구현 방법 - 모델 생성

리멤버는 네이버의 자회사이다. 전설) 과거 명함 인식을 사람이 했다.

  • 문제는 명함이 너무 다양해졌다. 세로는 인식을 못하는 경우가 발생.
  • 지금은 AI로 쓴다. 다양한 형태 명함을 학습시킨다.
  • 다 마킹을 한다. → 유사 명함이 들어오면 구분해낸다.

리멤버 역할: 인식, 이름 등..편하게 조회할 수 있다.

모델은 학습을 시켜야 한다. 다 찾아낸다.

  • 정말 특이한 명함은 사람이 마킹해줍니다.

OCR도 필기체 인식한다.

현대차 > 버튼 > 카카오 음성 인식함.

결국 현대차가 음성인식 개발할 필요없음. 카카오, 네이버 쓰면 됩니다.

모델 이용하시는게 좋습니다.

지도) 발품 팔아서 만들기 쉽지 않다. 구글, 네이버, 다음지도 다 사용하면 된다. 굳이 지도 새로만들 필요는 없다.

나만의 AI 서비스 : 챗봇 ocr aitems

클로바 스튜디오: 파인튜닝, 프롬프트 엔지니어링 → 원하는답변

코로나때 선생님들을 위한 패키지.. green eye 제외

크레딧 등록

유료 교육이라 크레딧도 준다. 실습용 크레딧 15만원 주는데, 이것도 잘 써봐야겠다.

쿠폰 등록 화면

 


2교시

GPU의 개요

 

요새 NVIDIA GPU보면 A100, V100 파스칼 아키텍처 등..

서버용은 천만원이상..가격 차이가 크다.

 

비트코인, AI에 그래픽 카드 쓴다.

3D게임에서 3D 연산 담당. 큐브는 3D.

참고로 CPU는 그런 2D 연산 잘하는데, 3D는 좀 느리고 취약하다.

게임 잘 돌리려면 다 행렬 연산인데, 계산 여러번 해야하는데, 계산이 다 독립적이다.

행렬연산만 특이하다.

 

4명이서 하면 한번에 끝낼 수 있다.

코어가 많이 들어가있다.

맥북 air 8코어, 10코어 cpu 잘 들어감.

gpu는 코어가 수천개가 들어가있음.(4050 ti 이런거 보면 코어 엄청많음) → 빠르게 행렬 연산 끝낼 수 있다.

차원이 어마어마하게 나오는데 이걸 cpu는 감당 못한다.

단독 연산 가능하다.

보면 다 행렬 연산이다. 비트코인도 작업 코어가 많으면 많이 해결가능. AI도 마찬가지 행렬.

 

CPU도 한다. 근데 시간이 더 걸린다. 할 수는 있다.

GPU: 단순하지만 작업인 많음 → 행렬 연산 최적화됨. 목표자체가 3D 연산..

 

GPU는 4~5일 걸린다.

요새는 멀티 태스킹(시분할 시스템) 많이 쓴다.

나온건 1974년인데 모든 OS가 시분할 시스템입니다. cpu는 하나지만 나눠서 작업하는 방식.

프로그램: 실행 파일. 디스크에만 있는 상태.

프로세스: 메모리 올라간 상태. 로드되면 프로세스이다.

GPU 코어가 많다는 것은, 교통정리 해야할 일이 많이 발생한다.

교통 정리를 위해 스레드나 프로세스 상 교통 컨트롤 많이 해야한다.

ex) GPU 프로그램 짜서 오는데 매우 느리다?

멈추고 올때까지 확인 후 다음 작업을 던져야할 수도 있다. 병렬 컴퓨팅, 멀티 코어 등으로 만들 때 고려사항이다.

 

고려할 사항이 많아진다.

Multi Processor 의 경우 프로그램 제작 과정부터 여러 프로세서를 사용할 수 있도록 설계가 되어야 한다.

성능이 안나오는건, 그 프로그램이 멀티프로세서(SMP?) 지원하는지 싱글만 지원하는지 확인해야함.

멀티 지원 DB도 32코어 지원하는거 매우 비싸다.

 

 

CUDA

 

알고리즘 지원하는 라이브러리가 존재한다. CUDA라는게 있다. NVIDIA에서 만든, NVIDIA용 그래픽 칩셋..툴이다.

JAVA를 저수준이라면, 높은 수준(고수준?)이다.

저수준은 쉽게 만들 수는 있지만, 프로그래밍하기는 어렵다.

그 여러 프레임워크에 밑단에는 CUDA가 있다.

 

구현은 C++이에요. Python은 우선 지원해요.

이 문제 해결위한 모델 만든다. 어떤 알고리즘, 문제 해결 방식 관련된 라이브러리를 찾으셔야 한다.

CUDA, Tensorflow부터,

 

이런걸 다 취사선택합니다. 요새는 싸이킷런이나 판다스를 많이 쓴다.

 


 

3교시(오후)

 

PyTorch는 CUDA 매핑?해서 사용한다.

중간에 데이터 찍어봐야한다. 그때 데이터 편하게 보려면 Pandas DataFrame을 이용한다.

최근 Keras 많이 씁니다.

 

텐서 복잡시 단순히 사용하려면 케라스 쓴다.

GPU 스킵: 의미가 없다?

 

클로바 스튜디오 사용 확인

 

클라우드 서버 모델 코딩

서버

서버 네트워크 선행

 

특정 대역의 vpc 만들었어요. 서버 만드려면 네트워크는 필수사항

 

스크립트 작성

ai-script

 

** 조금 다르다. curl 추가하고 apache2 systemctl start 해야 한다.

#!/bin/bash
apt-get update
apt-get install apache2 php mariadb-server php-mysql php-curl curl
cd /var/www/html
wget “https://kr.object.ncloudstorage.com/정보”
tar xvfz ncp-ai-lab.tgz
cat phpadd >> /etc/apache2/apache2.conf
systemctl start apache2

 

서버 생성

주피터 노트북을 설치할 것입니다.

왜죠?

노트북에 남아있고, 혹은 리소스가 부족하면 서버를 이용해 코딩할 수 있다. 이전에는 서버 로그인하고 vi, gcc할텐데 이제 웹 환경이 잘 되어있다. 주피터나 웹 환경에서 개발 툴이 잘 나와있다. 서버에서 직접 웹에서 코딩 및 실행하도록 한다.

서버에 사용자가 접속해서 개발할 수 있는 환경이다.

주피터까지 설치한다.

포스트맨 설치

 

 

Download Postman | Get Started for Free

Try Postman for free! Join 30 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.

www.postman.com

 

이걸로 쉽게 보여줄 수도 있어요.

다시 이론 잠시

 

어떤 라이브러리 쓰는지 확인

  1. 지도학습
  2. 비지도
  3. 강화 : Monte Carlo methods, Q-learning, Policy Gradient methods
  4. 딥러닝: 다양한 모델 & Keras, 텐서플로 등

 

회귀와 분류

  1. 회귀: 어떤 값으로 수렴시키는 것이다.

점들이 산포되었는데, 이를 일차원, 이차원 등 곡선을 표현할 수 있는 그러한 값을 회귀라 한다.

AI의 사기천국?

주가: 이벤트에 의해 움직이지 확률은 좀 아니다..

날씨 분석 예측

 

고등어와 전갱이라면?

이름 모를 생선 하나 들어와서 최근접 7개 중에 찾는다. 전갱이가 그 범위 내 더 많으면 전갱이로 판단합니다.

좋은 품종, 맛있는 사과 판별할 때도 사용합니다.

여러 데이터 있을 수도 있다. 둘레, 색깔 등.

 

여러개 선을 그릴 수 있다. 보여줄 수 있는 선 중 검은선 정도가 이 데이터 수용하고 있다고 볼 수 있다.

검은선 인근에 값이 모여있다.

 

일차함수의 직선을 보여준다. 이 때 w는 단순 기울기고, b는 편향(bias)가 된다.

 

변수, 데이터 종류 많으면 다중 모형 간다.

선 하나만 있으면 너무 단순하고 심플하다. 선에 두께를 준다.

분산과 표준편차만큼 두께가진 직선 만든다. 평균제곱오차 방식..

 

그런데 문제가 있다.

과적합문제

 

아무리 정교하게 구분하려고 해도 걸쳐지거나, 반대편에 넘어가기도 한다.

정확도 측면, 확인한다. 확률상 정확도 떨어질 수 있다. 근데 너무 단순화하면, 정확도 자체가 많이 떨어진다.

과대적합이면 상세하게 그었을때, 새로운 데이터(x)가 딱 O 위치에 있을 수 있다. 돈은 쓰고 정확도는 떨어지게 된다.

데이터만 봐서는 어느게 과소, 과대인지 알 수 없다.

적당히 하는게 쉽지 않다.

 

 

 


4교시

자 서버에 접속합니다.

 

이제 코드 좀 친다.

apt-get update
apt install python3-pip
pip3 install jupyter

 

pip는 파이썬 패키지를 쉽게 설치하도록 돕는 것이다.

이제 주피터 설치

 

jupyter notebook --generate-config #이거 먼저 실행
jupyter notebook password # 패스워드 설정

vi .jupyter/jupyter_notebook_config.py

# 저장후 탈출
jupyter notebook --allow-root

 

 

공인아이피:8888 로 접속

 

 

서버에서 그냥 다 개발하는 것이다.

코딩하기 위해 웹을 이용하시면 된다.

여기까지 와야한다.

 

이제 다운ctrl c 하고 다시 라이브러리 추가 설치

 

tensorflow pandas matplot? 등 다 설치함.

 

기타 텐서플로관련 패키지는 제외하고, 다시 실행

 

데이터 149개? 정도라 빠르게 100%까지 끌어올릴 수 있습니다.

 

이 정도로 품종을 구분해낼 수 있답니다.

 

잘 배치만 하면 어떤 동물인지 판별할 수 있다.

강아지, 고양이는 어려운 문제이다. 여기엔 결정트리 뜨기 힘들다. 둘다 아닌 케이스가 있다.

귀가 접히는 고양이(예외), 눈이 동그란 강아지 / 고양이(예외) 등..으로 인해 어렵게 된다.

근데 매, 펭귄 / 돌고래, 곰은 좀 다르다.

희안한 사진주고 구분하기는 어렵다. 차오차오?

 

서로 다른 특징을 뽑아내는 케이스도 있다. 내가 결정트리로 구분한다.

 

뽑은 곳에서 새로운 트리 만든다. 내가 구분하는게 아니라, 랜덤하게 뽑아서 특성을 찾는다.

참고) 사이킷런 정리해둔 알고리즘 이야기

 

Lab 3. 인공신경망 모델 MNIST로 손글씨 구분하기

 

확인해볼 수 있습니다.

 

이제 모델을 가져온다.

98% 정확도가 나옵니다.

 

이제 그림판 열어서 글자 만드세요.

 

필요한 라이브러리 설치하면 된다.

 

 


1일차 마지막

REST API

3가지 방식만 가능하다. GET POST DELETE..

 

  • GET 방식 : url 통해 날림
  • POST : url 뒤가 아니라 변수로 보내게 된다.

 

client ID, 등..

서버 가시면 이미 다 설치되어있다.

 

웹 브라우저 가볼까요?

공인아이피 누르면 아래와 같다.

GET, POST 테스트 데이터 전송

 

post는 echo $["name"] 이런식으로 받아줘야합니다.

이번에는 postman

body에 들어가게 됩니다. 원래는 minsoo가 그대로 나와야합니다.. 이상하다.

 

CSR

의외로 sentiment가지고 주가를 예측한다. 부정기사가 더 많으면 주가 떨어지겠네. 이런식.

 

CLOVA Dubbing 이해 돕기

텍스트 넣고 번역한다.

문서 번역은 통째로 파일 넣는다. 100MB이다.

일본어를 한국어로는 못바꾼다.

한국어 기준으로 번역이 가능하다.

 

HTML을 밀어넣어서 바로 번역한다.

 

이건 그냥 구글이랑 비슷하다. 별거 아니다.

 

이미지 번역은 이미지 내에 텍스트를 바꾼 것이다.

ex) 이미지를 이미지로 번역해서 티안나게 번역한다. 신기하다.

 

AI API 테스트

 

  1. 단축 URL
  • API는 마이페이지 인증키관리가 아니다.
  • AI / NVER API 로 들어갑니다.

 

등록 누른다. 동의한다.

 

CSR, Voice는 따로 데모로 보여드리겠다. 이건 계속 비용이 나가는 친구다.

 

추가 > 등록합니다.

 

인증정보 누르세요

 

어딘가의 ID, PW입니다. 잘 복사해서 포스트맨 간다.

API 명세서를 잘 확인하셔야 한다.

인풋, 아웃풋 잘 확인하셔야 한다.

단축 url의 가이드센터 > API 가이드

 

어디에 보내야하지?

  • POST 방식이다.
  • 자 포스트맨에서, 각종 정보를 넣되, AI.NAVER API 저기에 인증정보 부분 값을 잘 넣는다.

 

form-data가 아니라 x-www-form-urlencoded로 url 넣어야 한다.

 

그러면 아래처럼 잘 나온다.

 

value 값에 뭐가 있는지 다 확인하셔야 한다.

 

CSR API

 

stt

 

stt (Speech-To-Text)

 

api.ncloud-docs.com

 

이걸 보면서 보든 것을 넣는다.

 

나머지도 다 동일합니다. 확인해주세요. 가이드보면서 넣어주시면 됩니다.

 

- 어플리케이션도 가이드보면서 돌려보시면 됩니다요.

 

CLOVA Voice

 

tts (Premium)

 

api.ncloud-docs.com

여기두 같아요. 헤더에 다 넣는다.

 

스피커도 찾아서 넣어줄 수 있습니다.

바디에 넣는거 잘 기억합니다.

 

CLOVA Sentiment

 

감정분석

 

api.ncloud-docs.com

 

Body > RAW에서 콘텐트를 넣습니다. Body의 raw에 중괄호 처리 (JSON)

{ “conent” : “싸늘하다. 가슴에 비수가 날아와 꽂힌다."}
#이제 지겨워. 우리 그만 헤어져.
 "sentences": [
        {
            "content": "이제 지겨워.",
            "offset": 0,
            "length": 7,
            "sentiment": "negative",
            "confidence": {
                "negative": 0.99888986,
                "positive": 5.224213E-4,
                "neutral": 5.877128E-4
            },
            "highlights": [
                {
                    "offset": 0,
                    "length": 6
                }
            ]
        },
        {
            "content": " 우리 그만 헤어져.",
            "offset": 7,
            "length": 11,
            "sentiment": "negative",
            "confidence": {
                "negative": 0.98950446,
                "positive": 5.1600474E-4,
                "neutral": 0.009979635
            },

 

이렇게도 가능하다. 문장에 대한 긍정, 부정 보여준다.

JSON이라는거 확인.

 

Papago는 별도의 API 키를 발급받아야합니다. 불편하겠지?

어플 이름: papago-translation

 

Papao Text Translation / Papago Language Detection

 

특이하게 파파고는 별도로 인증정보를 받아서, 이를 어플에 등록하여 사용

  • 이렇게 나눠지는거 늘 확인합니다. 인증키 관리 / AI-NAVER API 인증정보 / PAPAGO는 단독 API 키 인증정보 요구

Papago로 단순 텍스트 번역 가능하고, 나중엔 문서 번역(통파일)로 번역도 가능합니다.

내일 clova chatbot / OCR / AItems 예정

 

다시 확인

POST 테스트: URL에는 뜨지 않는다.

GET 테스트

 


 

후기

1일차가 순식간에 지나간다. 잘 정리해보면 큰 도움이 될 것이다. AI에 대해 알기보다는 네이버클라우드의 AI 서비스에 대해 알아가는 시간이었다. 앞으로 더 심화해서 성장하길 기대한다. 클라우드 엔지니어에서 AI Solutions Architect로 한단계 성장하고 싶다!