AI

[AI] 레시피 추천 모델 만들기 - 에서 문제가 또 (GPU 너 뭐냐?)

alsruds 2024. 11. 11. 16:23

첫. 만남은- 너무 어.려.워~

계 획. 대로 되는 게 없.어.서~

https://www.youtube.com/watch?v=hVAc1Vf2ITU

 

그치만 난 어느덧 렉볼과 만난지 3개월이 다 되어 가는데......

우린 첫 만남도 아닌데 왜 이리 어렵니 !!!

 

문제점 1. Colab 의 GPU 서버 시간 제한

코랩을 왜 무료로 제공해주냐면서 구글에 입사하겠다는 말은 취소입니다.

무료로 해줄거면 끝까지 저를 책임져주셔야죠

Pro 버전도 GPU 시간 한도가 있다는 어처구니 없는 이런 말이 어디 있단 말이요

 

시도 1. CPU 로 돌리기

암튼.. GPT 가 원래 CPU 에서도 AI 모델은 돌아간다고 하길래 CPU 로 돌렸는데 전 안되더라구요?

같이 졸프하는 상아가 자기도 그냥 시간 오래 걸리지만 CPU 로 돌린다고 해서 나도 해보려고 했는데

나는? 왜 CPU 로 안돌아가지?

알고 보니 모델을 훈련할 때 GPU 환경에서 훈련해서 그렇다는데..

추천을 받을 때 device 설정을 cpu 로 바꿔주면 된다는데.. 하다가 아직 못했다

 

시도 2. AWS EC2 에서 GPU AMI 서버 이용

코랩의 이런 모습에.. 전 실망을 했구요 떠나고 싶어서

AWS GPU EC2 로 자립하려고 했는데..

CPU 가? 기본적으로 1개씩 할당되는데, GPU 인스턴스를 쓰려면 4개가 필요해서 안된다하더라고요

늘려달라는 요청을 보내면 된다고 해서 보내긴 했는데.. 아직 안늘려줬다

(+ AWS SageMaker API 도 알아보긴 했는데 시간당 비용이 EC2 보다 비싸다고 해서 .. (생략))

 

시도 3. 계정 여러 개로 Colab 돌려 쓰기

검색하다가 어떤 사람이 코랩 무한으로 쓰는 방법 ~ 이런 글을 게시했길래 혹해서 들여다봤는데

당연히 그런 방법은 없고 계정 3개를 돌려 쓰라더라

딱히 방안은 없어서 일단 나도 다른 계정으로 Colab 을 쓰고 있다..

 

생각해낸 방안 1. 미리 추천 결과 저장해놓기

기존 : 사용자가 재료 선택 → 사용자 프로필과 재료를 가지고 코사인 유사도 비교로 추천 결과 생성 (첫 번째 추천)  → 추천 결과의 item_id 로 해당 item 을 소비한 다른 사용자들이 추천하는 다른 item 을 추천 (두 번째 추천)  → 첫 번째 추천과 두 번째 추천을 하나의 response 에 묶어서 반환

새로운 방안 : 기존에는 첫 번째 추천 이후의 결과값을 가지고 실시간으로 모델에게 전달하여 훈련 결과를 기반으로 새로운 item 을 추천하도록 구현했다. 사실 시간이 꽤 오래 걸렸었는데, 미리 모든 item_id 에 대한 추천 결과를 따로 저장해놓고 바로바로 사용할 수 있도록 하는 방안 (요청이 들어올 땐 GPU 를 사용하지 않는다  → 시간 절약, 리소스 절약)

 

생각해낸 방안 2. 추천 받은 item 에 대한 추천 결과가 아닌 인기 있는 item 을 미리 저장해놓기

위의 방안과 비슷한 메커니즘이다. 미리 인기 item id 추천 결과를 따로 저장해놓고 사용할 수 있도록 하는 방안

 

문제점 2. item_id index error

도대체 존재하는 id 인데 왜 자꾸 index error 가 나는지 아직 모르겠다

input 이 실제 id 가 아니라 모델 훈련할 때 따로 부여한 item_id:token 이란 건 알았다

모든 item_id 가 있는 게 아닌가? 데이터셋이 다른가?

그럴리가 없지만..

좀 더 알아봐야 할 것 같다