Open lsz05 opened 1 month ago
今までのTransformersEmbedderのエンコードメソッドでは独自のバッチ化をしているため,マルチGPUの場合,二重のバッチ分割によりバグを起こりやすいという問題点があります。また,マルチGPUの場合,バッチサイズがGPU数の整数倍ではないと(例えば,batch size = 4, n_gpu = 8)data parallelがうまくいかない可能性があり,バッグりやすいです。
TransformersEmbedder
N/A
batch_encode_with_cache
torch.Tensor
np.numpy
今までの
TransformersEmbedder
のエンコードメソッドでは独自のバッチ化をしているため,マルチGPUの場合,二重のバッチ分割によりバグを起こりやすいという問題点があります。また,マルチGPUの場合,バッチサイズがGPU数の整数倍ではないと(例えば,batch size = 4, n_gpu = 8)data parallelがうまくいかない可能性があり,バッグりやすいです。関連する Issue / PR
N/A
PR をマージした後の挙動の変化
TransformersEmbedder
が独自のbatch_encode_with_cache
を持つようにし,二重のバッチ分割を解消TransformersEmbedder
のembedding出力を全てtorch.Tensor
とし,np.numpy
をやめるTransformersEmbedder
において,マルチGPUの場合,バッチサイズがプロセス数の整数倍でなければエラーを出す挙動の変更を達成するために行ったこと
TransformersEmbedder
のエンコードメソッドをリファクタリングした動作確認