카카오엔터테인먼트
기술 스택 정보가 없어요.
박승규
Llama 3.3 70B를 파인튜닝하다 중단한 이야기
최근에 회사에서 특정 프롬프트의 성능을 올리기 위해서 프롬프트 엔지니어링과 파인튜닝을 진행해보았습니다. 프롬프트 엔지니어링을 사용해서 모든 케이스를 커버하고 있었습니다만, 조금 더 성능을 높이고 싶은 욕심이 있었기에, Llama 3.3이 새로나왔다고 하여 70B(700억파라메터)모델을 파인튜닝 해보기로 하였습니다. 7B의 경우는 로컬머신으로도 간단하게 파인튜닝이 가능했습니다만, 70B부터는 많은 문제들이 생겼습니다. 메모리가 부족하여 Cuda Out of Memory 를 수도없이 보았습니다. 70B를 파인튜닝 하기위해서는 최소 160GB의 메모리가 필요했기 때문입니다. 그리고 같은 텐서가 다른머신에 들어가서 데이터가 꼬이는 일도 발생하였습니다. 다양한 버그와 에러들을 뚫고 겨우겨우 학습을 시도하는 창이 떴습니다만.... 저는 여기서 포기할 수 밖에 없었습니다. 왜냐하면 학습하는데 332시간이 걸렸기 때문입니다. 클라우드에서 A100 16대를 사용하는 환경이었는데, 332시간이면 어림잡아 비용이 천만원이 나왔습니다. 그때 확실히 깨달았습니다. AI에는 돈이 많이 필요하구나... 심지어 가장 파라메터가 많은 405B모델도 아니었습니다. 405B모델은 4비트 양자화를 해서 파인튜닝 하는데에도 H100 8대가 필요했습니다. 서빙에는 H100 4대가 필했구요. Llama를 회사에서 서비스 하기위해 운영하는것은 참으로 가성비가 나오지 않는 일이었습니다. AI학습이 조금 더 저렴해지는 시기가 곧 오겠지만... 아직은 너무 비싸네요.
박승규
[파이썬 팁] 두 개의 리스트의 원소가 같은지 확인하는 방법.
Counter를 사용하세요~ * 장점: 중복된 원소도 정확히 비교 가능 * 시간 복잡도 O(n) from collections import Counter list1 = ['apple', 'banana', 'cherry'] list2 = ['cherry', 'banana', 'apple'] print(Counter(list1) == Counter(list2)) # 중복 문자열 포함 예시 list3 = ['apple', 'apple', 'banana'] list4 = ['banana', 'apple', 'apple'] print(Counter(list3) == Counter(list4))
💡
카카오엔터테인먼트 사람들의
생각이 궁금하다면?