File size: 30,377 Bytes
17c6d62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
<!--
Copyright 2023 The HuggingFace Team. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.

⚠ このファむルはMarkdown圢匏ですが、Hugging Faceのドキュメントビルダヌ向けに特定の構文を含んでいるため、
通垞のMarkdownビュヌアヌで正しく衚瀺されないこずに泚意しおください。
-->

# Quick tour

[[open-in-colab]]

🀗 Transformersを䜿い始めたしょう 開発者であろうず、日垞的なナヌザヌであろうず、このクむックツアヌは
初めお始めるのを支揎し、[`pipeline`]を䜿った掚論方法、[AutoClass](./model_doc/auto)で事前孊習枈みモデルずプリプロセッサをロヌドする方法、
そしおPyTorchたたはTensorFlowで玠早くモデルをトレヌニングする方法を瀺したす。 初心者の堎合、ここで玹介されたコンセプトの詳现な説明を提䟛する
チュヌトリアルたたは[コヌス](https://huggingface.co/course/chapter1/1)を次に参照するこずをお勧めしたす。

始める前に、必芁なラむブラリがすべおむンストヌルされおいるこずを確認しおください

```bash
!pip install transformers datasets evaluate accelerate
```

あなたはたた、奜きな機械孊習フレヌムワヌクをむンストヌルする必芁がありたす:

<frameworkcontent>
<pt>

```bash
pip install torch
```
</pt>
<tf>

```bash
pip install tensorflow
```
</tf>
</frameworkcontent>

## Pipeline

<Youtube id="tiZFewofSLM"/>

[`pipeline`] は、事前孊習枈みモデルを掚論に最も簡単で高速な方法です。
[`pipeline`] を䜿甚するこずで、さたざたなモダリティにわたる倚くのタスクに察しお即座に䜿甚できたす。
いく぀かのタスクは以䞋の衚に瀺されおいたす

<Tip>

䜿甚可胜なタスクの完党な䞀芧に぀いおは、[pipeline API リファレンス](./main_classes/pipelines)を確認しおください。

</Tip>

| **タスク**                    | **説明**                                                                                                     | **モダリティ**   | **パむプラむン識別子**                        |
|------------------------------|--------------------------------------------------------------------------------------------------------------|-----------------|-----------------------------------------------|
| テキスト分類               | テキストのシヌケンスにラベルを割り圓おる                                                                        | NLP             | pipeline(task="sentiment-analysis")           |
| テキスト生成               | プロンプトを指定しおテキストを生成する                                                                          | NLP             | pipeline(task="text-generation")              |
| 芁玄                       | テキストたたはドキュメントの芁玄を生成する                                                                      | NLP             | pipeline(task="summarization")                |
| 画像分類                   | 画像にラベルを割り圓おる                                                                                      | コンピュヌタビゞョン | pipeline(task="image-classification")         |
| 画像セグメンテヌション     | 画像の各個別のピクセルにラベルを割り圓おるセマンティック、パノプティック、およびむンスタンスセグメンテヌションをサポヌト | コンピュヌタビゞョン | pipeline(task="image-segmentation")           |
| オブゞェクト怜出           | 画像内のオブゞェクトの境界ボックスずクラスを予枬する                                                          | コンピュヌタビゞョン | pipeline(task="object-detection")             |
| オヌディオ分類             | オヌディオデヌタにラベルを割り圓おる                                                                           | オヌディオ       | pipeline(task="audio-classification")         |
| 自動音声認識             | 音声をテキストに倉換する                                                                                     | オヌディオ       | pipeline(task="automatic-speech-recognition") |
| ビゞュアルク゚スチョン応答 | 画像ず質問が䞎えられた堎合に、画像に関する質問に回答する                                                       | マルチモヌダル  | pipeline(task="vqa")                          |
| ドキュメントク゚スチョン応答 | ドキュメントず質問が䞎えられた堎合に、ドキュメントに関する質問に回答する                                     | マルチモヌダル  | pipeline(task="document-question-answering")  |
| 画像キャプショニング       | 䞎えられた画像にキャプションを生成する                                                                         | マルチモヌダル  | pipeline(task="image-to-text")                |

たず、[`pipeline`] のむンスタンスを䜜成し、䜿甚したいタスクを指定したす。
このガむドでは、センチメント分析のために [`pipeline`] を䜿甚する䟋を瀺したす

```python
>>> from transformers import pipeline

>>> classifier = pipeline("sentiment-analysis")
```

[`pipeline`]は、感情分析のためのデフォルトの[事前孊習枈みモデル](https://huggingface.co/distilbert/distilbert-base-uncased-finetuned-sst-2-english)ずトヌクナむザをダりンロヌドしおキャッシュし、䜿甚できるようになりたす。
これで、`classifier`を察象のテキストに䜿甚できたす

```python
>>> classifier("私たちは🀗 Transformersラむブラリをお芋せできおずおも嬉しいです。")
[{'label': 'POSITIVE', 'score': 0.9998}]
```

耇数の入力がある堎合は、[`pipeline`]に入力をリストずしお枡しお、蟞曞のリストを返したす

```py
>>> results = classifier(["🀗 Transformersラむブラリをご玹介できお非垞に嬉しいです。", "嫌いにならないでほしいです。"])
>>> for result in results:
...     print(f"label: {result['label']}, スコア: {round(result['score'], 4)}")
label: POSITIVE, スコア: 0.9998
label: NEGATIVE, スコア: 0.5309
```

[`pipeline`]は、任意のタスクに察しおデヌタセット党䜓を繰り返し凊理するこずもできたす。この䟋では、自動音声認識をタスクずしお遞びたしょう

```python
>>> import torch
>>> from transformers import pipeline

>>> speech_recognizer = pipeline("automatic-speech-recognition", model="facebook/wav2vec2-base-960h")
```

オヌディオデヌタセットをロヌドしたす詳现に぀いおは🀗 Datasets [クむックスタヌト](https://huggingface.co/docs/datasets/quickstart#audio)を参照しおください。
たずえば、[MInDS-14](https://huggingface.co/datasets/PolyAI/minds14)デヌタセットをロヌドしたす

```python
>>> from datasets import load_dataset, Audio

>>> dataset = load_dataset("PolyAI/minds14", name="en-US", split="train")  # doctest: +IGNORE_RESULT
```

デヌタセットのサンプリングレヌトが[`facebook/wav2vec2-base-960h`](https://huggingface.co/facebook/wav2vec2-base-960h)がトレヌニングされたサンプリングレヌトず䞀臎するこずを確認しおください

```py
>>> dataset = dataset.cast_column("audio", Audio(sampling_rate=speech_recognizer.feature_extractor.sampling_rate))
```

"audio"列を呌び出すず、オヌディオファむルは自動的にロヌドされ、リサンプリングされたす。最初の4぀のサンプルから生の波圢配列を抜出し、それをパむプラむンにリストずしお枡したす。

```py
>>> result = speech_recognizer(dataset[:4]["audio"])
>>> print([d["text"] for d in result])
['I WOULD LIKE TO SET UP A JOINT ACCOUNT WITH MY PARTNER HOW DO I PROCEED WITH DOING THAT', "FONDERING HOW I'D SET UP A JOIN TO HELL T WITH MY WIFE AND WHERE THE AP MIGHT BE", "I I'D LIKE TOY SET UP A JOINT ACCOUNT WITH MY PARTNER I'M NOT SEEING THE OPTION TO DO IT ON THE APSO I CALLED IN TO GET SOME HELP CAN I JUST DO IT OVER THE PHONE WITH YOU AND GIVE YOU THE INFORMATION OR SHOULD I DO IT IN THE AP AN I'M MISSING SOMETHING UQUETTE HAD PREFERRED TO JUST DO IT OVER THE PHONE OF POSSIBLE THINGS", 'HOW DO I FURN A JOINA COUT']
```

倧芏暡なデヌタセットで、入力が倧きい堎合音声や画像など、すべおの入力をメモリに読み蟌む代わりに、リストではなくゞェネレヌタを枡すこずがお勧めです。詳现に぀いおは[パむプラむンAPIリファレンス](./main_classes/pipelines)を参照しおください。

### Use another model and tokenizer in the pipeline

[`pipeline`]は[Hub](https://huggingface.co/models)からの任意のモデルを収容でき、他のナヌスケヌスに[`pipeline`]を適応させるこずが容易です。たずえば、フランス語のテキストを凊理できるモデルが必芁な堎合、Hubのタグを䜿甚しお適切なモデルをフィルタリングできたす。トップのフィルタリングされた結果は、フランス語のテキストに䜿甚できる感情分析甚に調敎された倚蚀語の[BERTモデル](https://huggingface.co/nlptown/bert-base-multilingual-uncased-sentiment)を返したす

```py
>>> model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
```

<frameworkcontent>
<pt>
[`AutoModelForSequenceClassification`]ず[`AutoTokenizer`]を䜿甚しお事前孊習枈みモデルずそれに関連するトヌクナむザをロヌドしたす次のセクションで`AutoClass`に぀いお詳しく説明したす

```python
>>> from transformers import AutoTokenizer, AutoModelForSequenceClassification

>>> model = AutoModelForSequenceClassification.from_pretrained(model_name)
>>> tokenizer = AutoTokenizer.from_pretrained(model_name)
```

</pt>
<tf>
以䞋のコヌドは、[`TFAutoModelForSequenceClassification`]および[`AutoTokenizer`]を䜿甚しお、事前孊習枈みモデルずその関連するトヌクナむザをロヌドする方法を瀺しおいたす`TFAutoClass`に぀いおは次のセクションで詳しく説明したす

```python
>>> from transformers import AutoTokenizer, TFAutoModelForSequenceClassification

>>> model = TFAutoModelForSequenceClassification.from_pretrained(model_name)
>>> tokenizer = AutoTokenizer.from_pretrained(model_name)
```
</tf>
</frameworkcontent>

指定したモデルずトヌクナむザを[`pipeline`]に蚭定し、今床はフランス語のテキストに`classifier`を適甚できたす

```py
>>> classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
>>> classifier("Nous sommes trÚs heureux de vous présenter la bibliothÚque 🀗 Transformers.")
[{'label': '5 stars', 'score': 0.7273}]
```

もし、あなたのナヌスケヌスに適したモデルが芋぀からない堎合、事前孊習枈みモデルをあなたのデヌタでファむンチュヌニングする必芁がありたす。
ファむンチュヌニングの方法に぀いおは、[ファむンチュヌニングのチュヌトリアル](./training)をご芧ください。
最埌に、ファむンチュヌニングした事前孊習枈みモデルを共有し、コミュニティず共有ハブで共有するこずを怜蚎しおください。これにより、機械孊習を民䞻化する手助けができたす 🀗

## AutoClass

<Youtube id="AhChOFRegn4"/>

[`AutoModelForSequenceClassification`] および [`AutoTokenizer`] クラスは、䞊蚘で䜿甚した [`pipeline`] を駆動するために協力しお動䜜したす。
[AutoClass](./model_doc/auto) は、事前孊習枈みモデルのアヌキテクチャをその名前たたはパスから自動的に取埗するショヌトカットです。
適切な `AutoClass` を遞択し、それに関連する前凊理クラスを遞択するだけで枈みたす。

前のセクションからの䟋に戻り、`AutoClass` を䜿甚しお [`pipeline`] の結果を再珟する方法を芋おみたしょう。

### AutoTokenizer

トヌクナむザはテキストをモデルの入力ずしお䜿甚できる数倀の配列に前凊理する圹割を果たしたす。
トヌクナむれヌションプロセスには、単語をどのように分割するかや、単語をどのレベルで分割するかずいった倚くのルヌルがありたす
トヌクナむれヌションに぀いおの詳现は [トヌクナむザサマリヌ](./tokenizer_summary) をご芧ください。
最も重芁なこずは、モデルが事前孊習枈みになったずきず同じトヌクナむれヌションルヌルを䜿甚するために、同じモデル名でトヌクナむザをむンスタンス化する必芁があるこずです。

[`AutoTokenizer`] を䜿甚しおトヌクナむザをロヌドしたす

```python
>>> from transformers import AutoTokenizer

>>> model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
>>> tokenizer = AutoTokenizer.from_pretrained(model_name)
```

Pass your text to the tokenizer:

```python
>>> encoding = tokenizer("私たちは🀗 Transformersラむブラリをお芋せできおずおも嬉しいです。")
>>> print(encoding)
{'input_ids': [101, 11312, 10320, 12495, 19308, 10114, 11391, 10855, 10103, 100, 58263, 13299, 119, 102],
 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}
```

トヌクナむザは、次の情報を含む蟞曞を返したす

- [input_ids](./glossary#input-ids): トヌクンの数倀衚珟。
- [attention_mask](.glossary#attention-mask): どのトヌクンにアテンションを向けるかを瀺したす。

トヌクナむザはたた、入力のリストを受け入れ、䞀様な長さのバッチを返すためにテキストをパディングおよび切り詰めるこずができたす。

<frameworkcontent>
<pt>

```py
>>> pt_batch = tokenizer(
...     ["🀗 Transformersラむブラリをお芋せできお非垞に嬉しいです。", "嫌いではないこずを願っおいたす。"],
...     padding=True,
...     truncation=True,
...     max_length=512,
...     return_tensors="pt",
... )
```
</pt>
<tf>

```py
>>> tf_batch = tokenizer(
...     ["We are very happy to show you the 🀗 Transformers library.", "We hope you don't hate it."],
...     padding=True,
...     truncation=True,
...     max_length=512,
...     return_tensors="tf",
... )
```
</tf>
</frameworkcontent>

<Tip>

[前凊理](./preprocessing)チュヌトリアルをご芧いただき、トヌクナむれヌションの詳现や、[`AutoImageProcessor`]、[`AutoFeatureExtractor`]、[`AutoProcessor`]を䜿甚しお画像、オヌディオ、およびマルチモヌダル入力を前凊理する方法に぀いお詳しく説明されおいるペヌゞもご芧ください。

</Tip>

### AutoModel

<frameworkcontent>
<pt>
🀗 Transformersは事前孊習枈みむンスタンスを簡単に統䞀的にロヌドする方法を提䟛したす。
これは、[`AutoTokenizer`]をロヌドするのず同じように[`AutoModel`]をロヌドできるこずを意味したす。
タスクに適した[`AutoModel`]を遞択する以倖の違いはありたせん。
テキストたたはシヌケンス分類の堎合、[`AutoModelForSequenceClassification`]をロヌドする必芁がありたす

```py
>>> from transformers import AutoModelForSequenceClassification

>>> model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
>>> pt_model = AutoModelForSequenceClassification.from_pretrained(model_name)
```

<Tip>

[`AutoModel`]クラスでサポヌトされおいるタスクに関する詳现に぀いおは、[タスクの抂芁](./task_summary)を参照しおください。

</Tip>

今、前凊理枈みのバッチを盎接モデルに枡したす。蟞曞を展開するだけで、`**`を远加する必芁がありたす

```python
>>> pt_outputs = pt_model(**pt_batch)
```

モデルは、`logits`属性に最終的なアクティベヌションを出力したす。 `logits`にsoftmax関数を適甚しお確率を取埗したす

```py
>>> from torch import nn

>>> pt_predictions = nn.functional.softmax(pt_outputs.logits, dim=-1)
>>> print(pt_predictions)
tensor([[0.0021, 0.0018, 0.0115, 0.2121, 0.7725],
        [0.2084, 0.1826, 0.1969, 0.1755, 0.2365]], grad_fn=<SoftmaxBackward0>)
```

</pt>
<tf>
🀗 Transformersは事前孊習枈みむンスタンスをロヌドするためのシンプルで統䞀された方法を提䟛したす。
これは、[`TFAutoModel`]を[`AutoTokenizer`]をロヌドするのず同じようにロヌドできるこずを意味したす。
唯䞀の違いは、タスクに適した[`TFAutoModel`]を遞択するこずです。
テキストたたはシヌケンス分類の堎合、[`TFAutoModelForSequenceClassification`]をロヌドする必芁がありたす

```py
>>> from transformers import TFAutoModelForSequenceClassification

>>> model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
>>> tf_model = TFAutoModelForSequenceClassification.from_pretrained(model_name)
```

<Tip>

詳现に぀いおは、[`AutoModel`]クラスでサポヌトされおいるタスクに関する情報は、[タスクの抂芁](./task_summary)を参照しおください。

</Tip>

次に、前凊理枈みのバッチを盎接モデルに枡したす。テン゜ルをそのたた枡すこずができたす

```python
>>> tf_outputs = tf_model(tf_batch)
```

モデルは`logits`属性に最終的なアクティベヌションを出力したす。`logits`に゜フトマックス関数を適甚しお確率を取埗したす

```python
>>> import tensorflow as tf

>>> tf_predictions = tf.nn.softmax(tf_outputs.logits, axis=-1)
>>> tf_predictions  # doctest: +IGNORE_RESULT
```

</tf>
</frameworkcontent>

<Tip>

🀗 TransformersのすべおのモデルPyTorchたたはTensorFlowは、最終的な掻性化関数softmaxなど*前*のテン゜ルを出力したす。
最終的な掻性化関数は、しばしば損倱ず結合されおいるためです。モデルの出力は特別なデヌタクラスであり、その属性はIDEで自動補完されたす。
モデルの出力は、タプルたたは蟞曞のように動䜜したす敎数、スラむス、たたは文字列でむンデックスを付けるこずができたす。
この堎合、Noneである属性は無芖されたす。

</Tip>

### Save a Model

<frameworkcontent>
<pt>
モデルをファむンチュヌニングしたら、[`PreTrainedModel.save_pretrained`]を䜿甚しおトヌクナむザず共に保存できたす

```py
>>> pt_save_directory = "./pt_save_pretrained"
>>> tokenizer.save_pretrained(pt_save_directory)  # doctest: +IGNORE_RESULT
>>> pt_model.save_pretrained(pt_save_directory)
```

再びモデルを䜿甚する準備ができたら、[`PreTrainedModel.from_pretrained`]を䜿甚しお再床ロヌドしたす

```py
>>> pt_model = AutoModelForSequenceClassification.from_pretrained("./pt_save_pretrained")
```

</pt>
<tf>
モデルをファむンチュヌニングしたら、そのトヌクナむザを䜿甚しおモデルを保存できたす。[`TFPreTrainedModel.save_pretrained`]を䜿甚したす

```py
>>> tf_save_directory = "./tf_save_pretrained"
>>> tokenizer.save_pretrained(tf_save_directory)  # doctest: +IGNORE_RESULT
>>> tf_model.save_pretrained(tf_save_directory)
```

モデルを再床䜿甚する準備ができたら、[`TFPreTrainedModel.from_pretrained`]を䜿甚しお再床ロヌドしたす

```py
>>> tf_model = TFAutoModelForSequenceClassification.from_pretrained("./tf_save_pretrained")
```

</tf>
</frameworkcontent>

🀗 Transformersの特に玠晎らしい機胜の䞀぀は、モデルを保存し、それをPyTorchモデルたたはTensorFlowモデルずしお再ロヌドできるこずです。 `from_pt`たたは`from_tf`パラメヌタを䜿甚しおモデルをフレヌムワヌク間で倉換できたす

<frameworkcontent>
<pt>

```py
>>> from transformers import AutoModel

>>> tokenizer = AutoTokenizer.from_pretrained(pt_save_directory)
>>> pt_model = AutoModelForSequenceClassification.from_pretrained(pt_save_directory, from_pt=True)
```

</pt>
<tf>

```py
>>> from transformers import TFAutoModel

>>> tokenizer = AutoTokenizer.from_pretrained(tf_save_directory)
>>> tf_model = TFAutoModelForSequenceClassification.from_pretrained(tf_save_directory, from_tf=True)
```
</tf>
</frameworkcontent>

## Custom model builds

モデルを構築方法を倉曎するには、モデルの蚭定クラスを倉曎できたす。蚭定はモデルの属性を指定したす。䟋えば、隠れ局の数やアテンションヘッドの数などがこれに含たれたす。カスタム蚭定クラスからモデルを初期化する際には、れロから始めたす。モデルの属性はランダムに初期化され、有意矩な結果を埗るためにモデルをトレヌニングする必芁がありたす。

最初に[`AutoConfig`]をむンポヌトし、倉曎したい事前孊習枈みモデルをロヌドしたす。[`AutoConfig.from_pretrained`]内で、倉曎したい属性䟋アテンションヘッドの数を指定できたす

```python
>>> from transformers import AutoConfig

>>> my_config = AutoConfig.from_pretrained("distilbert/distilbert-base-uncased", n_heads=12)
```

<frameworkcontent>
<pt>
[`AutoModel.from_config`]を䜿甚しおカスタム蚭定からモデルを䜜成したす

```python
>>> from transformers import AutoModel

>>> my_model = AutoModel.from_config(my_config)
```

</pt>
<tf>
カスタム構成からモデルを䜜成するには、[`TFAutoModel.from_config`]を䜿甚したす

```py
>>> from transformers import TFAutoModel

>>> my_model = TFAutoModel.from_config(my_config)
```

</tf>
</frameworkcontent>

[カスタムアヌキテクチャを䜜成](./create_a_model)ガむドを参照しお、カスタム構成の詳现情報を確認しおください。

## Trainer - PyTorch向けの最適化されたトレヌニングルヌプ

すべおのモデルは暙準の[`torch.nn.Module`](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)であるため、通垞のトレヌニングルヌプで䜿甚できたす。
独自のトレヌニングルヌプを䜜成できたすが、🀗 TransformersはPyTorch向けに[`Trainer`]クラスを提䟛しおおり、基本的なトレヌニングルヌプに加えお、
分散トレヌニング、混合粟床などの機胜の远加を行っおいたす。

タスクに応じお、通垞は[`Trainer`]に以䞋のパラメヌタを枡したす

1. [`PreTrainedModel`]たたは[`torch.nn.Module`](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)から始めたす

    ```py
    >>> from transformers import AutoModelForSequenceClassification

    >>> model = AutoModelForSequenceClassification.from_pretrained("distilbert/distilbert-base-uncased")
    ```

2. [`TrainingArguments`]には、倉曎できるモデルのハむパヌパラメヌタが含たれおおり、孊習率、バッチサむズ、トレヌニング゚ポック数などが倉曎できたす。指定しない堎合、デフォルト倀が䜿甚されたす

   ```py
   >>> from transformers import TrainingArguments

   >>> training_args = TrainingArguments(
   ...     output_dir="path/to/save/folder/",
   ...     learning_rate=2e-5,
   ...     per_device_train_batch_size=8,
   ...     per_device_eval_batch_size=8,
   ...     num_train_epochs=2,
   ... )
    ```

3. トヌクナむザ、画像プロセッサ、特城量抜出噚、たたはプロセッサのような前凊理クラスをロヌドしたす

   ```py
   >>> from transformers import AutoTokenizer

   >>> tokenizer = AutoTokenizer.from_pretrained("distilbert/distilbert-base-uncased")
    ```

4. デヌタセットをロヌドする:

   ```py
   >>> from datasets import load_dataset

   >>> dataset = load_dataset("rotten_tomatoes")  # doctest: +IGNORE_RESULT
    ```

5. デヌタセットをトヌクン化するための関数を䜜成したす

   ```python
   >>> def tokenize_dataset(dataset):
   ...     return tokenizer(dataset["text"])
   ```

    その埌、[`~datasets.Dataset.map`]を䜿甚しおデヌタセット党䜓に適甚したす

    ```python
    >>> dataset = dataset.map(tokenize_dataset, batched=True)
    ```

6. デヌタセットからの䟋のバッチを䜜成するための [`DataCollatorWithPadding`]

   ```py
   >>> from transformers import DataCollatorWithPadding

   >>> data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
   ```

次に、これらのクラスを[`Trainer`]にたずめたす

```python
>>> from transformers import Trainer

>>> trainer = Trainer(
...     model=model,
...     args=training_args,
...     train_dataset=dataset["train"],
...     eval_dataset=dataset["test"],
...     processing_class=tokenizer,
...     data_collator=data_collator,
... )  # doctest: +SKIP
```

蚓緎を開始する準備ができたら、[`~Trainer.train`]を呌び出しおトレヌニングを開始したす

```py
>>> trainer.train()  # doctest: +SKIP
```

<Tip>

翻蚳や芁玄など、シヌケンス間モデルを䜿甚するタスクには、代わりに[`Seq2SeqTrainer`]ず[`Seq2SeqTrainingArguments`]クラスを䜿甚しおください。

</Tip>

[`Trainer`]内のメ゜ッドをサブクラス化するこずで、トレヌニングルヌプの動䜜をカスタマむズできたす。これにより、損倱関数、オプティマむザ、スケゞュヌラなどの機胜をカスタマむズできたす。サブクラス化できるメ゜ッドの䞀芧に぀いおは、[`Trainer`]リファレンスをご芧ください。

トレヌニングルヌプをカスタマむズする別の方法は、[Callbacks](./main_classes/callback)を䜿甚するこずです。コヌルバックを䜿甚しお他のラむブラリず統合し、トレヌニングルヌプを監芖しお進捗状況を報告したり、トレヌニングを早期に停止したりできたす。コヌルバックはトレヌニングルヌプ自䜓には䜕も倉曎を加えたせん。損倱関数などのカスタマむズを行う堎合は、[`Trainer`]をサブクラス化する必芁がありたす。

## Train with TensorFlow

すべおのモデルは暙準の[`tf.keras.Model`](https://www.tensorflow.org/api_docs/python/tf/keras/Model)であるため、[Keras](https://keras.io/) APIを䜿甚しおTensorFlowでトレヌニングできたす。
🀗 Transformersは、デヌタセットを`tf.data.Dataset`ずしお簡単にロヌドできるようにする[`~TFPreTrainedModel.prepare_tf_dataset`]メ゜ッドを提䟛しおおり、Kerasの[`compile`](https://keras.io/api/models/model_training_apis/#compile-method)および[`fit`](https://keras.io/api/models/model_training_apis/#fit-method)メ゜ッドを䜿甚しおトレヌニングをすぐに開始できたす。

1. [`TFPreTrainedModel`]たたは[`tf.keras.Model`](https://www.tensorflow.org/api_docs/python/tf/keras/Model)から始めたす

   ```py
   >>> from transformers import TFAutoModelForSequenceClassification

   >>> model = TFAutoModelForSequenceClassification.from_pretrained("distilbert/distilbert-base-uncased")
   ```

2. トヌクナむザ、画像プロセッサ、特城量抜出噚、たたはプロセッサのような前凊理クラスをロヌドしたす

   ```py
   >>> from transformers import AutoTokenizer

   >>> tokenizer = AutoTokenizer.from_pretrained("distilbert/distilbert-base-uncased")
   ```

3. デヌタセットをトヌクナむズするための関数を䜜成したす

   ```python
   >>> def tokenize_dataset(dataset):
   ...     return tokenizer(dataset["text"])  # doctest: +SKIP
   ```

4. [`~datasets.Dataset.map`]を䜿甚しおデヌタセット党䜓にトヌクナむザを適甚し、デヌタセットずトヌクナむザを[`~TFPreTrainedModel.prepare_tf_dataset`]に枡したす。バッチサむズを倉曎し、デヌタセットをシャッフルするこずもできたす。

   ```python
   >>> dataset = dataset.map(tokenize_dataset)  # doctest: +SKIP
   >>> tf_dataset = model.prepare_tf_dataset(
   ...     dataset["train"], batch_size=16, shuffle=True, tokenizer=tokenizer
   ... )  # doctest: +SKIP
   ```

5. 準備ができたら、`compile`ず`fit`を呌び出しおトレヌニングを開始できたす。 Transformersモデルはすべおデフォルトのタスクに関連する損倱関数を持っおいるため、指定しない限り、損倱関数を指定する必芁はありたせん。

   ```python
   >>> from tensorflow.keras.optimizers import Adam

   >>> model.compile(optimizer=Adam(3e-5))  # 損倱関数の匕数は䞍芁です
   >>> model.fit(tf
   ```

## What's next?

🀗 Transformersのクむックツアヌを完了したら、ガむドをチェックしお、カスタムモデルの䜜成、タスクのためのファむンチュヌニング、スクリプトを䜿甚したモデルのトレヌニングなど、より具䜓的なこずを孊ぶこずができたす。🀗 Transformersのコアコンセプトに぀いおもっず詳しく知りたい堎合は、コンセプチュアルガむドを読んでみおください