다모앙 커뮤니티 운영 규칙을 확인하세요.
X

iOS 온디바이스용 딥러닝 모델 개선 완료했네요.

페이지 정보

작성자 리코리안
작성일 2025.03.04 15:59
747 조회
6 추천

본문

안녕하세요.

제주에서 앱 개발하는 리안입니다.


지난번에 모델 개선한다고 글을 올렸었는데

(https://damoang.net/development/1459?sfl=mb_id,0&stx=google_8e460883)


실제 앱에 적용한 결과가 드디어 릴리즈 됐네요.

(작년 말부터 2달 동안의 삽질 ㅠㅠ)


지난번에 글을 쓰고도 실제 릴리즈할 수 있는 수준의 온디바이스에 돌릴 모델을 만드는데는 한달이 더 걸렸네요 ㅠ

사실 아직도 맘에 들진 않아서 개선 준비중이긴 합니다 ㅎㅎ;;


과정을 정리해서 블로그에 글을 올렸는데

https://velog.io/@likoapps/배경제거-카메라-화질-개선-프로젝트-회고


iOS 앱에 딥러닝 모델 올릴 때 참고하시면 좋겠습니다.

글에는 못 쓴게 있는데, (너무 주절주절 해서...)


---


1. 뉴럴 엔진에서 로드 오래걸리는 것


iOS 기기에는 계산 유닛이 CPU/GPU/NE (뉴럴 엔진) 3가지를 이용할 수 있는데,

NE 모델을 돌리려면 최초에 컴파일 하는 과정 (프리히팅)이 필요한데

이게 생각보다 꽤 오래 걸립니다.


제가 만든 최종 모델이 겨우 6.8메가 짜리인데 아이폰 15프로에서 최초에 로드 시간이 약 20초가 넘게 걸립니다. (컴파일 시간 포함)

그 이후에는 로드 시간이 1초가 안걸리는데 최초 한번이 엄청 오래걸립니다.


stackoverflow 같은데 보면 이런 질문글이 있는데

GPU로 로드하면 최초에도 3초 정도가 걸리고, 그 이후에는 로드에 약 1.5초 정도 걸립니다.

그래서 최초 NE 로드 (+컴파일) 하는 중에 그 사이 추론이 필요하면 GPU로 로드해서 추론하는 식으로 처리한다는 글이 있습니다.


저도 비슷하게, 최초 추론 시점에는 NE 로드 중인걸 확인하면 GPU로 로드하도록 처리했습니다.



2. coremltools convert 할 때 target os 를 iOS 17 / 18 뭘로 하냐에 따라 속도가 달라집니다.

iOS 18을 타겟으로 했을 때 속도가 훨씬 빠릅니다. 

그래서 저도 그냥 iOS18 타겟으로 model 변환을 했습니다. 



3. 온디바이스 모델을 학습 시킬 때 시간이 많다면 m1 pro 이상의 맥북으로도 충분한거 같습니다.

온디바이스 모델 특성상 m1 pro 로 일주일 시간 학습 시간이 필요하다면 모바일에서 돌리기에 무리인 모델이라고 볼 수 잇을거 같습니다.

그래서 모델 학습 시켜서 일주일 넘게 걸린다면 경량화를 고민 해야봐야할거 같습니다.

(모델에 따라 ... 로드 / 추론 시간이 오래 걸려도 되는 형태라면 상관없겠지만요. ㅎㅎ)



----



끝! 

6추천인 목록보기
댓글 4

담왕님의 댓글

작성자 담왕
작성일 03.04 21:04
yolo 모델 올려서 실행했을때 결과가 빠르게 잘 도출되는것만 확인하고 로드되는시간을 확인할 생각도 못했었네요
어지간히 오래걸리는게 아니면 실행시나리오에 따라 사용자는 못느끼도록 잘 끼워넣으면 되지 않을까... 하는게 저같은 어플 개발자 생각인데
역시 깊게 파고드는 분들은 다르구나 싶네요

리코리안님의 댓글의 댓글

대댓글 작성자 리코리안
작성일 03.04 21:46
@담왕님에게 답글 아 제가 만드는게 사진촬영쪽에 적용하는거라 촬영하고 모델 적용하는데 길어도 1초를 넘기면 안될거 같아서 직접 학습시키게 됐습니다. 그런게 아니라면 좀 오래걸려도 상관은 없는데, 용량 문제도 살짝 있긴 했습니다 ㅎㅎ;

까만거북이님의 댓글

작성자 까만거북이
작성일 03.07 15:46
우와.. 배경제거카메라 앱을 어떻게 만드시나 궁금했는데, 그냥 뚝딱 만드시는게 아니었네요.. 직접 학습시키시는 줄은 몰랐..습니다. 왜 앱이 빠르게 잘 작동하는지 깨달았네요.
그냥 껍데기 앱만 만드는 저는 참 쉽죠? 같은 느낌이네요.ㅋㅋㅋ 후기 나눠주셔서 감사합니다. 🙇‍♂️

리코리안님의 댓글의 댓글

대댓글 작성자 리코리안
작성일 03.07 21:09
@까만거북이님에게 답글 개발자에게는 ai 모델 만드는게 ux 고민하는것보다는 쉬운거 같습니다 -_ㅠ
도움이 되셨으면 좋겠네요. 감사합니다.
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색