작성
·
25
0
안녕하세요 강사님!
langchain 강의부터 잘 수강하고 있는 수강생입니다!
이번 강의 수강 중 궁금증이 생겨 질문 드립니다.
zerox 라이브러리 사용해 md 파일로 변환하는 과정 중 자주 발생하는 에러가 있습니다.
소스 코드는 강의내에서 작성한 코드와 똑같습니다
1. ERROR:root:Failed to process image Error:
Error in Completion Response. Error: litellm.RateLimitError: RateLimitError: OpenAIException - Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-4o-mini in organization org-dDgP5bwE5XYlEkdzK49V0oM5 on tokens per min (TPM): Limit 200000, Used 200000, Requested 807. Please try again in 242ms. Visit https://platform.openai.com/account/rate-limits to learn more.', 'type': 'tokens', 'param': None, 'code': 'rate_limit_exceeded'}} LiteLLM Retried: 3 times
Please check the status of your model provider API status.
2. Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new LiteLLM.Info: If you need to debug this error, use litellm.set_verbose=True'. ERROR:root:Failed to process image Error: Error in Completion Response. Error: litellm.RateLimitError: RateLimitError: OpenAIException - Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-4o-mini in organization org-dDgP5bwE5XYlEkdzK49V0oM5 on tokens per min (TPM): Limit 200000, Used 200000, Requested 807. Please try again in 242ms. Visit https://platform.openai.com/account/rate-limits to learn more.', 'type': 'tokens', 'param': None, 'code': 'rate_limit_exceeded'}} Please check the status of your model provider API status.
위와 같이 모두 '분당 토큰 수' 제한 에러입니다.
저는 처음에는 위 문제를 해결하기 위해
pdf 문서를 chunking 하여 한 번에 처리되는 토큰을 제한하려고 했습니다.
=> 예) 총 페이지를 약 5~6개로 나눠 보내는 방법
def get_total_pages(path: str) -> int:
try:
from pypdf import PdfReader
except Exception:
from PyPDF2 import PdfReader # 호환
return len(PdfReader(path).pages)
def make_batches(total_pages: int, size: int):
pages = list(range(1, total_pages + 1)) # 1-indexed
for i in range(0, total_pages, size):
yield pages[i:i + size]
total = get_total_pages(PDF_PATH)
print(f"Total pages: {total}")
merged = []
for pages in make_batches(total, BATCH_SIZE):
res = await process_with_backoff(pages) # 여기서 배치로 나눠진 항목들 수행
=> 문제점 :
zerox는 한 호출에서 처리한 페이지들만 마크다운 파일로 만들어 output_dir에 저장하고, 그 뒤에 만들어지는 파일들은 이어 붙여지지 않고 덮어 씌워집니다.
이를 해결하기 위해 비즈니스 로직을 좀 더 구현해야 하나? 했는데.. 이 방법이 맞는지, 시간만 뺏기게 되는게 아닌지 의문이어서 일단 그만두었습니다.
두번째로는 강사님이 사용하신 모델 'gpt-4o-mini' 를 'gpt-4.1-mini' 로 변경하였습니다.
모델을 바꾸니 바로 해결이 되긴 했습니다.
여기서 제가 궁금한 점은 현업에서 이런 작업을 진행 하다 보면 이런 데이터 전처리를 많이 하게 될 거 같은데.. 사이즈가 너무 큰 데이터는 어떤 방식으로 limit나 기타 오류(아직 어떤 오류가 빈번한지는 잘 모르는 상태입니다.)들을 해결해야 하는지가 궁금합니다!
모델을 바꾸는게 맞는건지, 원본 데이터를 최대한 chunking 해서 제가 맨 위에 오류로 보여드린 200000 TPM 을 맞추려고 해야 되는건지... 요런 부분들이 궁금합니다!
긴 글 읽어주셔서 감사합니다!
답변 2
0
안녕하세요! 좋은 질문 감사합니다
TPM 같은 경우에는 OpenAI에서 모델별로 지정한 Usage Tier에 관한 이슈라서 결제 금액을 늘리시면 원하는 모델로 해결이 가능하실거에요
https://platform.openai.com/docs/guides/rate-limits/usage-tiers#usage-tiers
zerox는 한 호출에서 처리한 페이지들만 마크다운 파일로 만들어 output_dir에 저장하고, 그 뒤에 만들어지는 파일들은 이어 붙여지지 않고 덮어 씌워집니다.
이를 해결하기 위해 비즈니스 로직을 좀 더 구현해야 하나? 했는데.. 이 방법이 맞는지, 시간만 뺏기게 되는게 아닌지 의문이어서 일단 그만두었습니다.
이 부분은 패키지의 한계라서, 페이지별로 잘라서 저장하신다음에 <파일이름>_<페이지>.pdf
와 같은 형식으로 저장하시고, 해당 파일들로 zerox를 호출하는 식으로 해야할 것 같습니다
0
안녕하세요, 인프런 AI 인턴입니다. QQuu님께서 제기한 질문은 대용량 데이터의 전처리 과정에서 발생할 수 있는 Rate Limit 문제와 이에 대한 해결책을 찾는 방법에 관한 것입니다. 아래에 답변을 안내드립니다.
Rate Limit의 이해:
토큰 최적화 및 Batching:
모델 변경 고려하기:
현업에서의 대처 방안:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
모델을 바꾸는게 맞는건지, 원본 데이터를 최대한 chunking 해서 제가 맨 위에 오류로 보여드린 200000 TPM 을 맞추려고 해야 되는건지
---
이 부분은, 저라면 모델을 변경할 것 같습니다. 다만 다양한 모델을 테스트 하셨을 때 가장 적합한 모델이 TPM 리밋에 걸린다면 말씀하신 것처럼 chunking을 시도해보시는 것도 방법일 수 있습니다