LLM(Large Language Model) 개발자들이 알고 있으면 좋은 숫자들이 있어서 공유해보려고 한다. 비용 예측을 해보거나 시스템 규모를 산정해 보기 위해 간단히 계산할 때 알고 있으면 유용할 것 같다.
프롬프트
40-90% : "Be concise"를 프롬프트에 추가해서 절감할 수 있는 비용
LLM 모델을 사용할 때 응답의 토큰 양에 따라 비용을 지불하기 때문에 응답을 간결하게 받을 수 있다면(be concise) 돈을 많이 아낄 수 있다.
1.3:1 - 단어 당 평균 토큰 수
영어 단어에 한정해서 1 단어당 평균 1.3 토큰이 된다고 한다. 토큰 수는 비용 지불 단위이기도 하고 LLM의 콘텍스트 윈도우 사이즈도 토큰으로 정의하기 때문에 알아두는 게 좋다.
비용
~50:1 - GPT-4와 GPT-3.5 Turbo 비용 비율
GPT-4와 GPT-3.5 Turbo의 비용 차이가 50배나 나기 때문에 잘못 사용한다면 비용 폭탄을 맞을 수 있을 것 같다. 그래서 일회성 작업이나 정말 높은 수준의 답변 생성이 필요한 경우에 대해서만 GPT-4를 사용해야 하고, GPT-3.5를 통해서 얼마나 많이/좋은 결과를 뽑아낼 수 있는지 체크해봐야 한다.
5:1 - GPT-3.5 Turbo의 텍스트 생성과 OpenAI 임베딩 비용 비율
벡터 스토어에서 무언가를 찾는 것이 LLM에 답변을 생성하도록 요청하는 것보다 더 저렴하다는 뜻인듯하다.
10:1 - OpenAI 임베딩과 셀프 호스트 임베딩의 비용 비율
본문에서는 AWS에서 g4dn.4xlarge(시간당 $1.20) 인스턴스에 Hugging Face의 SentenceTransformer를 사용해 임베딩을 하는 것이 OpenAI의 임베딩보다 더 비용 효율적이라고 설명하고 있다.
6:1 - OpenAI 파인 튜닝과 베이스 모델 쿼리의 비용 비율
파인 튜닝하는 경우 비용이 6배나 더 크다고 한다. 비용 효율적으로 LLM을 사용하려면 프롬프트를 조절해 보는 게 더 좋을 수도 있다. 그래서 프롬프트 엔지니어링의 중요성이 더 부각되고 있는가 보다.
1:1 - 셀프 호스트 베이스 모델과 셀프 호스트 파인 튜닝 모델 쿼리의 비용 비율
셀프 호스트 인스턴스에서는 베이스 모델이나 파인 튜닝 모델이나 쿼리 비용의 차이가 나지 않는다.
트레이닝 & 파인 튜닝
~$1M : 1.4T(1조 4천억) 토큰에 대해 130억 개 파라미터 모델을 학습하는데 드는 비용 (약 13억 원)
LLaMa 페이퍼에 의하면 A100 80GB GPU를 2048개 이용해서 트레이닝했고, 21일이 걸렸다고 한다. 그리고 이 기간은 모든 것이 잘 동작했을 때 - 에러 발생하지 않고, 크러쉬 발생하는 머신이 없고, 계산이 성공했을 때 - 걸린 시간이다. 😳
< 0.001 : 파인 튜닝 할 때와 처음부터 트레이닝할 때의 비용 비율
파인 튜닝을 할 때는 말도 안 되게 비용이 조금 드는데 60억 개 파라미터 모델을 파인 튜닝하는데 고작 7$라고 한다.
GPU 메모리
V100: 16GB, A10: 24GB, A100: 40/80GB : GPU 메모리 용량
서빙할 모델에 따라서 인스턴스를 선택하는데 필요. 각 인스턴스 사용 시 비용도 고려해야 한다.
2 x parameter 크기 : LLM 서빙을 위해 통상적으로 필요한 GPU 메모리 요구사항
파라미터 하나당 보통 2 바이트기 때문에 모델 크기 * 2배의 메모리가 필요하다는 설명. 예시로 파라미터가 70억 개인 모델이 있다면 GPU는 14GB의 메모리가 필요하다.
~1GB : 임베딩 모델의 통상적인 GPU 메모리 요구사항
임베딩 모델의 경우 메모리를 많이 사용하지 않는다.
>10x : LLM 요청을 배치 처리하여 얻을 수 있는 쓰루풋 향상
작업을 묶어서 실행하면 처리량을 높일 수 있다.
~1MB : 130억 파라미터 모델을 이용하여 1 토큰의 출력하기 위해 필요한 GPU 메모리
필요한 GPU 메모리 크기는 생성하고 싶은 최대 토큰의 수에 비례한다. 예를 들어 최대 512 토큰(512/1.3 = 약 393 단어)를 생성하고 싶다면 512MB의 메모리가 필요하다. 그런데 큰 배치를 돌리려고 한다면, 예를 들어 16개 배치를 수행하려면 8GB의 공간이 필요하다. 이 문제를 극복하는 몇 가지 기술이 개발되고 있지만 여전히 문제로 남아있다.
치트 시트
페이지를 읽으면서 나름대로 간단히 정리를 했는데 원문은 아래 링크에서 참조할 수 있다.
출처: ray-project/llm-numbers
GitHub - ray-project/llm-numbers: Numbers every LLM developer should know
Numbers every LLM developer should know. Contribute to ray-project/llm-numbers development by creating an account on GitHub.
github.com
'Tech' 카테고리의 다른 글
MS Build 행사 공유 (5.23~5.24 온라인 또는 시애틀) (0) | 2023.05.23 |
---|---|
구글 Bard 한국어 지원 시작 - 업데이트 소개 및 영문 결과와 비교 (0) | 2023.05.11 |
ChatGPT 무료 세미나 & 리소스 (2) | 2023.05.08 |
ChatGPT로 인한 새로운 패러다임 세미나 참석 후기 (0) | 2023.05.03 |
Google Bard 사용기 & ChatGPT 결과와 비교 (0) | 2023.04.26 |