관리 메뉴

공부 기록장 💻

[AI 막차 탑승 : HyperCLOVA X] HCX J팀의 점메추저메추 서비스 산출물 소개 및 스터디 내용 공유, 챌린지 참여 후기 본문

# Develop/Project

[AI 막차 탑승 : HyperCLOVA X] HCX J팀의 점메추저메추 서비스 산출물 소개 및 스터디 내용 공유, 챌린지 참여 후기

dream_for 2024. 7. 3. 22:21

 
안녕하세요. 
6월 1일부터 7월 3일까지 약 한 달 간 NUCU (NAVER Cloud User Community) 에서 주최 및 주관한 [AI 막차탑승 : HyperCLOVA X 프로젝트 챌린지] 프로젝트에 참여하였습니다.
해당 프로젝트는 Clova Studio 의 다양한 서비스들을 깊게 학습 및 실습하고 이를 활용해 팀원들과 협업하여 실제 서비스를 구현해보는 챌린지였습니다. 또한 제공되는 Credit을 통해 서버, 로드밸런서 등 NCP 인프라 서비스들을 활용할 수 있었습니다. 
 
실습했던 내용들을 정리하고, J팀의 서비스 '점메추저메추' 산출물에 대한 소개, 그리고 참여 후기를 남겨보려 합니다.
 

1. 팀 소개 및 주제 선정

제가 속한 J팀은 클라우드 엔지니어, 클라우드 아키텍트, 백엔드 개발자, 프리랜서 총 4명으로 이루어진 팀입니다.
 
저희는 각자 각자 하이퍼클로바X 서비스를 스터디하고 실습한 내용들을 공유하는 회의 시간을 매주 가졌습니다.
동시에 Clova Studio와 Hyper Clova X 를 활용하여 구현할 서비스에 대한 아이디어 기획도 함께 진행을 했는데요.
 
팀원분이 소개해주셨던 getgpt의 저메추 서비스(https://getgpt.app/play/OYWdTCSaIF?provider=google) 에서 아이디어를 얻었습니다. 요리에 넣을 재료를 사용자로부터 입력받아 이를 기반으로 만들 수 있는 요리를 소개해주는 '저메추' 서비스를 벤치마킹하였습니다.
 

벤치마킹한 '저메추' 서비스

 
여기서 약간 방향을 틀어 사용자로부터 위치와 음식을 입력받아 두 정보를 기반으로 음식점을 추천해주어
직장인들이 매번 메뉴와 음식점 선정에 겪는 어려움을 해소할 수 있는 '점메추저메추'(점심메뉴, 저녁메뉴 추천) 서비스로 아이디어를 구체화하게 되었습니다. 
 
아래에서 보다 자세하게 서비스 설명을 이어나가도록 하겠습니다~
 
 

2. 스터디 및 실습 내용

Naver Cloud Platform Console (https://console.ncloud.com/dashboard) 과 Clova Studio (https://clovastudio.ncloud.com/) 에서 주로 hyper clova x 서비스를 사용해볼 수 있었고, 여러 실습을 진행하였습니다.
 
 

Clova Studio 
 

우선 Clova Studio에서 초기에 힘을 썼던 부분은 '스킬 트레이너' 였습니다.
스킬 트레이너의 경우 사용자가 모델에게 학습할 정보들에 대한 자세한 설명을 직접 제공할 수 있으며, 
결과값에 대한 형식 및 원하는 정보 추출에 대한 내용을 직접 제공하여 보다 모델의 완성도를 높일 수 있는 여러 도구들이 마련되어 있었습니다. 
 
점메추 저메추 서비스 구현을 위해,
초반에 장소 검색을 위해 외부 OpenAPI인 네이버 지역 검색 API ( Naver Search Local API)를 활용하였고
세부적으로 장소와 음식 카테고리 기반으로 구체적인 음식점 검색을 하기 위해 스킬셋을 생성하여 모델 학습을 진행하는 방식을 채택했습니다.
 
 
1) 스킬셋 정보 입력 및 API Spec 정보 등록

 
API Spec의 경우, 실제 local search api 에 대한 정보, 입력 파라미터와 응답 파라미터에 대한 정보들을 json 형태로 입력해줘야 합니다.

 
해당 데이터를 바탕으로 내부적으로 api 호출이 진행되며, '검증하기' 를 통해 정상적으로 호출이 되는지 검증 또한 진행해볼 수 있었습니다.

 
Manifest 정보로는 보다 구체적으로 지역 검색 API에 대한 정보를 모델에게 설명하는 프롬프트를 작성해주었습니다.
API 호출 시 필요한 헤더 키 값이 무엇인지, 호출 시 필요한 검색 쿼리 파라미터는 무엇인지 최대한 자세히 작성하였습니다.

 
 
 
2) API 설명 추가 및 스킬 호출 추가 / 데이터 수집
 
다음으로 API 호출 시 필요한 값들 (header key 값들, query parameter) 에 대한 쿼리에 대한 추가적인 설명,
그리고 API 결과 값으로부터 상세하게 얻고 싶은 값들에 대한 설명을 입력하여 
보다 모델이 상세하게 데이터들을 수집할 수 있도록 구성을 진행하였습니다.
 
 

 
 

 
 
4) 데이터 학습 및 APP 버전 관리
 
이후 데이터 학습이 진행되며,
실제로 API에 필요한 값들을 포함하고, API를 호출하여 얻는 값 중 원하는 결과값만을 도출하도록 학습을 진행한
하이퍼클로바X 모델 기반의 API를 활용할 수 있는 코드와  curl API 와 Python Code가 제공됩니다. 
 

 
 
Clova Studio 실습을 통해 하이퍼 클로바 x 모델에 데이터들을 학습시키고, 세부적인 조정 및 튜닝이 가능하였습니다. 
비록 해당 Open API 를 스킬셋으로 활용하기에는, 결과가 도출되기까지 오랜 시간이 걸리기 때문에 실제 서비스에 직접 적용할 수는 없었지만,
쉽고 빠르게 모델 구축을 하기에 최적화된 플랫폼이라는 것을 다시 한 번 느꼈던 것 같습니다.
 
 
 

Naver Cloud Platform Console 

 
Clova Studio 는 학습 기반의 생성형 AI 모델을 구축하는데 사용했다면,
Naver Cloud Platform을 통해서는 점메추저메추 서비스를 하나의 웹서비스로 배포하기 위해 여러 인프라 장비 서비스들을 쉽게 활용할 수 있었습니다. 
아래 Naver Cloud Platform 콘솔을 통해 여러 네트워크 서비스 및 인프라(Server, Public IP, Load Balancer)들을 쉽게 관리할 수 있었습니다.
 
서버 생성 및 관리 대시보드는 아래와 같습니다.
사용한 인프라 서버로는 Rocky linux 8.6을 사용하였습니다. 

 
 
특히, 서버 접근 보안으로는 IP 기반으로 제어가 되어 있었는데, 해당 서버에 접근할 수 있는 IP 를 쉽게 등록할 수 있는 ACG 서비스가 정말 편리했던 것 같습니다.
 

 

 

3. 점메추저메추 서비스 소개

 
저희가 구현한 '점메추저메추' 서비스는 사용자가 '위치'와 '음식 종류' 두 가지를 입력하면, 이에 기반하여 음식점을 추천해주는 서비스입니다. 
위치와 음식 카테고리를 기반으로 Naver Search API를 활용해 장소(음식점)을 검색하고, Naver Blog Search API를 통해 각 음식점에 대한 리뷰를 남긴 블로그로부터 Beautiful Soup 라이브러리를 기반으로 블로그의 텍스트를 추출하고, 해당 텍스트를 하이퍼클로바X 모델을 활용하여 블로그 내용을 요약하여,
최종적으로 사용자에게 여러 맛집들에 대한 정보들을 제공하는 서비스입니다.
 
 
구현한 서비스 링크는 아래와 같습니다.
https://www.jummmechu.shop/ 
 
 
시연 화면은 다음과 같습니다. 위 링크에 연결하게 되면, 아래와 같은 화면이 나타납니다. 

 

 
사용자가 위치와 음식 종류 두 가지를 입력하고 나면, 아래와 같이 결과가 도출됩니다.

 



 
'역삼', '스시' 집을 검색했을 때는 '대진도원참치 강남역집' 이라는 식당이 상위 첫번째 결과로 나타났는데요.
음식종류, 전화번호, 공식 사이트 링크, 그리고 블로그 리뷰의 제목, 블로그명, 블로그 링크와 해당 블로그 글의 요약본이 나타납니다.


(추가) Open Map 버튼을 클릭하여 위치에 대한 지도가 나올 수 있도록 구현을 추가적으로 진행완료.)
 

블로그의 요약본의 경우, 첫 문장에서 '해당 블로그 글의 핵심 내용을 5문장 이내로 요약하면 다음과 같습니다' 와 같이
미리 학습한 프롬프트에 대한 값이 나는 것을 확인할 수 있었습니다. 
 
현재 반응형으로도 개발을 하여, 모바일에서도 접속하여 문제없이 결과를 확인할 수 있도록 구현하였습니다.

 

 

4. 사용한 서비스 및 개발 도구 

 
사용한 Naver Cloud의 인프라 서비스는 아래와 같습니다.
- Clova Studio
- Global DNS
- LoadBalancer
- Server (Rocky OS 8.6)
- Certificate Manager
 
개발하는데 사용한 언어 및 프레임워크는 다음과 같습니다.
- Python FastAPI (Backend Framework)
- React, HTML/CSS/Javascript (Frontend)
 
 

5. 프로젝트 후기 

이번 HyperClova X 막차 챌린지 프로젝트를 통해 NCP를 통해 인프라 서비스들을 쉽게 이용하고,
Clova Studio 를 통해 하이퍼 클로바X 모델에 스킬셋 및 스킬 트레이너를 활용해 보다 정교한 prompt engineering을 해볼 수 있었습니다.
 
팀원분들이 없었다면 혼자서는 어려움을 많이 겪었겠지만,
매주 온라인으로 모여 각자 실습한 내용들을 공유하는 시간을 통해, 초반에 두 플랫폼을 사용하는데 있어 많은 도움을 얻었고 저 또한 마지막 서비스 구현과 개발을 진행하는데 있어 더욱 열정을 쏟을 수 있었던 것 같습니다.
 
특히 마지막 5주차 때는 오프라인으로 만나 네트워킹을 하며 팀원분들을 포함해 다양한 직군의 개발자, 엔지니어, 마케터 분들을 만나 소통할 수 있었고, 모각코 시간을 통해 인프라 환경 구축 및 개발 환경 세팅을 진행하며, 서비스 구현을 하는데 박차를 가할 수 있었습니다.
그동안 팀원분들의 지속적인 인사이트 공유를 통해, 서비스를 기획하고 구현해나가며 챌린지를 마무리하기까지 지속적인 동기부여가 되었던 것 같습니다. 
 
남은 시간 동안 '점메추저메추' 서비스의 프론트 앞단 부분들을 조금 더 다듬어 사용성 있는 서비스로 개선해 나가보려 합니다. :) 
 
 
마지막으로 하이퍼클로바X 챌린지를 통해 AI, Cloud 두 분야에 대한 시야가 더 넓어진 것 같고,
이번 프로젝트를 하며 얻은 경험과 개발자로서 보유한 역량들을 기반으로 재밌는 서비스들을 더 많이 개발해보고 싶다는 생각이 들었습니다.
 

 
 

728x90
반응형
Comments