import multiprocessing
def tokenize_text(text):
return tokenizer(text, truncation=True, padding=True, max_length=256)
def parallel_tokenize(texts, num_processes=None):
"""使用多核并行处理文本分词"""
with multiprocessing.Pool(processes=num_processes) as pool:
tokenized_texts = list(tqdm(pool.imap(tokenize_text, texts), total=len(texts)))
return tokenized_texts
tqdm 监控任务进度
- 使用 imap 而不是 map:imap 是一个惰性版本的 map,它允许我们在处理过程中逐步获取结果,从而可以实时更新进度条。
- 使用 tqdm 包裹 imap:通过将 tqdm 包裹在 pool.imap 外部,可以实时监控任务的进度。