簡體   English   中英

在 Huggingface / Transformer 的多項選擇中測試 Intel Extension for Pytorch(IPEX)

[英]Test Intel Extension for Pytorch(IPEX) in multiple-choice from huggingface / transformers

我正在嘗試使用 SWAG 數據集https://github.com/huggingface/transformers/tree/master/examples/pytorch/multiple-choice 的一個擁抱臉樣本

我想在我的代碼中使用 Intel Extension for Pytorch 來提高性能。

在這里,我使用的是未經培訓的 (run_swag_no_trainer)

在 run_swag_no_trainer.py 中,我進行了一些更改以使用 ipex 。 #更改前的代碼如下:

device = accelerator.device
model.to(device)

#添加ipex后:

import intel_pytorch_extension as ipex
    device = ipex.DEVICE
    model.to(device)

在運行以下命令時,它花費了太多時間。

export DATASET_NAME=swag

accelerate launch run_swag_no_trainer.py \
  --model_name_or_path bert-base-cased \
  --dataset_name $DATASET_NAME \
  --max_seq_length 128 \
  --per_device_train_batch_size 32 \
  --learning_rate 2e-5 \
  --num_train_epochs 3 \
  --output_dir /tmp/$DATASET_NAME/

有沒有其他方法可以在 intel ipex 上測試相同的內容?

首先,您必須了解哪些因素實際上會增加運行時間。 以下是這些因素:

  1. 大輸入尺寸。
  2. 數據結構; 均值偏移,未歸一化。
  3. 大網絡深度和/或寬度。
  4. 大量的時代。
  5. 批量大小與物理可用內存不兼容。
  6. 非常小的或高的學習率。

為了快速運行,請確保處理上述因素,例如:

  1. 將輸入尺寸減小到適當的尺寸,以確保重要特征不會丟失。
  2. 始終對輸入進行預處理以使其均值為零,並通過將其除以 std 對其進行歸一化。 最大值、最小值的偏差或差異。
  3. 保持網絡深度和寬度不要太高或太低。 或者始終使用經過理論驗證的標准架構。
  4. 始終確保時代。 如果您無法在超出定義閾值的錯誤或准確性方面做出任何進一步改進,則無需進行更多的 epoch。
  5. 批量大小應根據可用內存和 CPU/GPU 數量決定。 如果批處理不能完全加載到內存中,那么這將導致由於內存和文件系統之間的大量分頁而導致處理緩慢。
  6. 應該通過多次嘗試來確定合適的學習率,並使用能夠最大程度減少錯誤的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM