Update translated docs for sdpa_kernel (#35461)
* docs: update sdpa_kernel for translation * fix: nn.attention * update: infer many
This commit is contained in:
@@ -53,11 +53,12 @@ model.to_bettertransformer()
|
|||||||
# Use it for training or inference
|
# Use it for training or inference
|
||||||
```
|
```
|
||||||
|
|
||||||
SDPAは、ハードウェアや問題のサイズなどの特定の設定で[Flash Attention](https://arxiv.org/abs/2205.14135)カーネルを呼び出すこともできます。Flash Attentionを有効にするか、特定の設定(ハードウェア、問題のサイズ)で利用可能かを確認するには、[`torch.backends.cuda.sdp_kernel`](https://pytorch.org/docs/master/backends.html#torch.backends.cuda.sdp_kernel)をコンテキストマネージャとして使用します。
|
SDPAは、ハードウェアや問題のサイズなどの特定の設定で[Flash Attention](https://arxiv.org/abs/2205.14135)カーネルを呼び出すこともできます。Flash Attentionを有効にするか、特定の設定(ハードウェア、問題のサイズ)で利用可能かを確認するには、[`torch.nn.kernel.sdpa_kernel`](https://pytorch.org/docs/stable/generated/torch.nn.attention.sdpa_kernel.html)をコンテキストマネージャとして使用します。
|
||||||
|
|
||||||
|
|
||||||
```diff
|
```diff
|
||||||
import torch
|
import torch
|
||||||
|
+ from torch.nn.attention import SDPBackend, sdpa_kernel
|
||||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||||
|
|
||||||
tokenizer = AutoTokenizer.from_pretrained("facebook/opt-350m")
|
tokenizer = AutoTokenizer.from_pretrained("facebook/opt-350m")
|
||||||
@@ -68,7 +69,7 @@ model.to_bettertransformer()
|
|||||||
input_text = "Hello my dog is cute and"
|
input_text = "Hello my dog is cute and"
|
||||||
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
|
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
|
||||||
|
|
||||||
+ with torch.backends.cuda.sdp_kernel(enable_flash=True, enable_math=False, enable_mem_efficient=False):
|
+ with sdpa_kernel(SDPBackend.FLASH_ATTENTION):
|
||||||
outputs = model.generate(**inputs)
|
outputs = model.generate(**inputs)
|
||||||
|
|
||||||
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
||||||
@@ -105,6 +106,7 @@ BetterTransformerのパフォーマンスの詳細については、この[ブ
|
|||||||
|
|
||||||
```py
|
```py
|
||||||
import torch
|
import torch
|
||||||
|
from torch.nn.attention import SDPBackend, sdpa_kernel
|
||||||
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
|
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
|
||||||
|
|
||||||
quantization_config = BitsAndBytesConfig(
|
quantization_config = BitsAndBytesConfig(
|
||||||
@@ -118,7 +120,7 @@ model = AutoModelForCausalLM.from_pretrained("facebook/opt-350m", quantization_c
|
|||||||
input_text = "Hello my dog is cute and"
|
input_text = "Hello my dog is cute and"
|
||||||
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
|
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
|
||||||
|
|
||||||
with torch.backends.cuda.sdp_kernel(enable_flash=True, enable_math=False, enable_mem_efficient=False):
|
with sdpa_kernel(SDPBackend.FLASH_ATTENTION):
|
||||||
outputs = model.generate(**inputs)
|
outputs = model.generate(**inputs)
|
||||||
|
|
||||||
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
||||||
|
|||||||
@@ -214,11 +214,12 @@ model.to_bettertransformer()
|
|||||||
# Use it for training or inference
|
# Use it for training or inference
|
||||||
```
|
```
|
||||||
|
|
||||||
SDPAは、ハードウェアや問題のサイズに応じて[Flash Attention](https://arxiv.org/abs/2205.14135)カーネルを使用することもできます。Flash Attentionを有効にするか、特定の設定(ハードウェア、問題サイズ)で使用可能かどうかを確認するには、[`torch.backends.cuda.sdp_kernel`](https://pytorch.org/docs/master/backends.html#torch.backends.cuda.sdp_kernel)をコンテキストマネージャとして使用します。
|
SDPAは、ハードウェアや問題のサイズに応じて[Flash Attention](https://arxiv.org/abs/2205.14135)カーネルを使用することもできます。Flash Attentionを有効にするか、特定の設定(ハードウェア、問題サイズ)で使用可能かどうかを確認するには、[`torch.nn.attention.sdpa_kernel`](https://pytorch.org/docs/stable/generated/torch.nn.attention.sdpa_kernel.html)をコンテキストマネージャとして使用します。
|
||||||
|
|
||||||
|
|
||||||
```diff
|
```diff
|
||||||
import torch
|
import torch
|
||||||
|
+ from torch.nn.attention import SDPBackend, sdpa_kernel
|
||||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||||
|
|
||||||
tokenizer = AutoTokenizer.from_pretrained("facebook/opt-350m")
|
tokenizer = AutoTokenizer.from_pretrained("facebook/opt-350m")
|
||||||
@@ -229,7 +230,7 @@ model.to_bettertransformer()
|
|||||||
input_text = "Hello my dog is cute and"
|
input_text = "Hello my dog is cute and"
|
||||||
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
|
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
|
||||||
|
|
||||||
+ with torch.backends.cuda.sdp_kernel(enable_flash=True, enable_math=False, enable_mem_efficient=False):
|
+ with sdpa_kernel(SDPBackend.FLASH_ATTENTION):
|
||||||
outputs = model.generate(**inputs)
|
outputs = model.generate(**inputs)
|
||||||
|
|
||||||
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
||||||
@@ -421,6 +422,7 @@ In this example, the first GPU will use 1GB of memory and the second 2GB.
|
|||||||
|
|
||||||
```py
|
```py
|
||||||
import torch
|
import torch
|
||||||
|
from torch.nn.attention import SDPBackend, sdpa_kernel
|
||||||
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
|
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
|
||||||
|
|
||||||
quantization_config = BitsAndBytesConfig(
|
quantization_config = BitsAndBytesConfig(
|
||||||
@@ -434,7 +436,7 @@ model = AutoModelForCausalLM.from_pretrained("facebook/opt-350m", quantization_c
|
|||||||
input_text = "Hello my dog is cute and"
|
input_text = "Hello my dog is cute and"
|
||||||
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
|
inputs = tokenizer(input_text, return_tensors="pt").to("cuda")
|
||||||
|
|
||||||
with torch.backends.cuda.sdp_kernel(enable_flash=True, enable_math=False, enable_mem_efficient=False):
|
with sdpa_kernel(SDPBackend.FLASH_ATTENTION):
|
||||||
outputs = model.generate(**inputs)
|
outputs = model.generate(**inputs)
|
||||||
|
|
||||||
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
||||||
|
|||||||
Reference in New Issue
Block a user