업서트 배치 처리

Pinecone로 AI 애플리케이션 구축하기

James Chapman

Curriculum Manager, DataCamp

업서트 제한 사항

 

  1. 요청의 속도
  2. 요청의 크기

 

  • 배치 처리: 요청을 더 작은 _청크_로 분할

 

파인콘 속도 제한

1 https://docs.pinecone.io/reference/quotas-and-limits#rate-limits
Pinecone로 AI 애플리케이션 구축하기

청크 함수 정의

def chunks(iterable, batch_size=100):

it = iter(iterable)
chunk = tuple(itertools.islice(it, batch_size))
while chunk:
yield chunk
chunk = tuple(itertools.islice(it, batch_size))
Pinecone로 AI 애플리케이션 구축하기

순차 배치

  • 요청을 분할하여 순차적으로 전송
pc.Pinecone(api_key="YOUR API KEY")
index = pc.Index('datacamp-index')


for chunk in chunks(vectors): index.upsert(vectors=chunk)

장점:

  • 속도/크기 제한 해결

단점:

  • 매우 느림
Pinecone로 AI 애플리케이션 구축하기

병렬 배치

  • 요청을 분할하여 병렬로 전송
pc = Pinecone(api_key="YOUR_API_KEY", pool_threads=30)


with pc.Index('datacamp-index', pool_threads=30) as index:
async_results = [index.upsert(vectors=chunk, async_req=True) for chunk in chunks(vectors, batch_size=100)]
[async_result.get() for async_result in async_results]
Pinecone로 AI 애플리케이션 구축하기

연습해 봅시다!

Pinecone로 AI 애플리케이션 구축하기

Preparing Video For Download...