# GPT-Sw3

## Ikhtisar

Model GPT-Sw3 pertama kali diusulkan dalam [Lessons Learned from GPT-SW3: Building the First Large-Scale Generative Language Model for Swedish](http://www.lrec-conf.org/proceedings/lrec2022/pdf/2022.lrec-1.376.pdf) oleh Ariel Ekgren, Amaru Cuba Gyllensten, Evangelia Gogoulou, Alice Heiman, Severine Verlinden, Joey Öhman, Fredrik Carlsson, Magnus Sahlgren.

Sejak makalah pertama tersebut, para penulis telah memperluas pekerjaan mereka dan melatih model-model baru pada korpus 1,2 TB mereka yang baru bernama The Nordic Pile.

GPT-Sw3 adalah kumpulan model bahasa transformer pra-terlatih besar yang hanya menggunakan decoder, dikembangkan oleh AI Sweden bekerja sama dengan RISE dan WASP WARA untuk Media dan Bahasa. GPT-Sw3 telah dilatih pada dataset yang berisi 320B token dalam bahasa Swedia, Norwegia, Denmark, Islandia, Inggris, dan kode pemrograman. Model ini dipra-latih menggunakan tujuan pemodelan bahasa kausal (CLM) dengan memanfaatkan implementasi NeMo Megatron GPT.

Model ini disumbangkan oleh [AI Sweden Models](https://huggingface.co/AI-Sweden-Models).

## Contoh penggunaan

```python
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("AI-Sweden-Models/gpt-sw3-356m")
model = AutoModelForCausalLM.from_pretrained("AI-Sweden-Models/gpt-sw3-356m", device_map="auto")

input_ids = tokenizer("Träd är fina för att", return_tensors="pt").to(model.device)["input_ids"]

generated_token_ids = model.generate(inputs=input_ids, max_new_tokens=10, do_sample=True)[0]

print(tokenizer.decode(generated_token_ids))
Träd är fina för att de är färgstarka. Men ibland är det fint
```

## Sumber daya

- [Panduan tugas klasifikasi teks](../tasks/sequence_classification)
- [Panduan tugas klasifikasi token](../tasks/token_classification)
- [Panduan tugas pemodelan bahasa kausal](../tasks/language_modeling)

Implementasi ini menggunakan `GPT2Model` yang dikombinasikan dengan `GPTSw3Tokenizer` kami. Lihat [dokumentasi GPT2Model](gpt2) untuk referensi API dan contoh.

Perhatikan bahwa sentencepiece diperlukan untuk menggunakan tokenizer kami dan dapat diinstal dengan `pip install transformers[sentencepiece]` atau `pip install sentencepiece`

## GPTSw3Tokenizer[[transformers.GPTSw3Tokenizer]]

#### transformers.GPTSw3Tokenizer[[transformers.GPTSw3Tokenizer]]

```python
transformers.GPTSw3Tokenizer(vocab_file, do_lower_case = False, remove_space = False, keep_accents = False, pad_token = None, unk_token = None, eos_token = None, bos_token = None, sp_model_kwargs: dict[str, typing.Any] | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/gpt_sw3/tokenization_gpt_sw3.py#L21)

**Parameter:**

vocab_file (`str`) : file [SentencePiece](https://github.com/google/sentencepiece) (umumnya berekstensi *.spm*) yang berisi kosakata yang diperlukan untuk menginstansiasi tokenizer.

do_lower_case (`bool`, *opsional*, defaultnya `False`) : Apakah akan mengubah input menjadi huruf kecil saat melakukan tokenisasi.

remove_space (`bool`, *opsional*, defaultnya `False`) : Apakah akan menghapus teks saat melakukan tokenisasi (menghapus spasi berlebih sebelum dan sesudah string).

keep_accents (`bool`, *opsional*, defaultnya `False`) : Apakah aksen dipertahankan saat melakukan tokenisasi.

pad_token (`str`, *opsional*) : Token yang digunakan untuk padding, misalnya saat mem-batching urutan dengan panjang berbeda. Jika tidak disediakan, akan default ke '' atau '' tergantung pada ukuran model.

unk_token (`str`, *opsional*) : Token yang tidak dikenal. Token yang tidak ada dalam kosakata tidak dapat dikonversi menjadi ID dan akan disetel menjadi token ini sebagai gantinya. Jika tidak disediakan, akan menggunakan nilai default ''.

eos_token (`str`, *opsional*) : Token akhir urutan yang terlihat selama pra-pelatihan. Jika tidak disediakan, akan secara default menjadi '<|endoftext|>'

bos_token (`str`, *opsional*) : Token awal urutan yang dapat digunakan untuk tugas turunan, yang tidak terlihat selama pra-pelatihan. Jika tidak disediakan, akan menjadi default '' atau '<|endoftext|>', tergantung pada ukuran model.

sp_model_kwargs (`dict`, *opsional*) : Akan diteruskan ke metode `SentencePieceProcessor.__init__()`. [Python wrapper for SentencePiece](https://github.com/google/sentencepiece/tree/master/python) dapat digunakan, antara lain, untuk mengatur:  - `enable_sampling`: Mengaktifkan regularisasi subword. - `nbest_size`: Parameter sampling untuk unigram. Tidak valid untuk BPE-Dropout.  - `nbest_size = {0,1}`: Tidak ada sampling yang dilakukan. - `nbest_size > 1`: mengambil sampel dari hasil nbest_size. - `nbest_size < 0`: mengasumsikan bahwa nbest_size tak hingga dan mengambil sampel dari semua hipotesis (lattice) menggunakan algoritma forward-filtering-and-backward-sampling.  - `alpha`: Parameter penghalusan untuk sampling unigram, dan probabilitas dropout dari operasi merge untuk BPE-dropout.

sp_model (`SentencePieceProcessor`) : Pemroses *SentencePiece* yang digunakan untuk setiap konversi (string, token, dan ID).

whitespaces (`set`) : Spasi yang diganti dalam normalisasi spasi saat pra-pemrosesan.

non_printing_characters_re (`Pattern`) : Ekspresi reguler yang dikompilasi untuk menghapus karakter non-cetak dalam pra-pemrosesan.

Konstruksi tokenizer GPTSw3. Berbasis pada [SentencePiece](https://github.com/google/sentencepiece).

Tokenizer ini mewarisi dari [PreTrainedTokenizer](/docs/transformers/main/id/main_classes/tokenizer#transformers.PythonBackend) yang berisi sebagian besar metode utama. Pengguna harus merujuk ke superclass ini untuk informasi lebih lanjut mengenai metode-metode tersebut.

Contoh penggunaan:
```python
>>> from transformers import GPTSw3Tokenizer

>>> tokenizer = GPTSw3Tokenizer.from_pretrained("AI-Sweden-Models/gpt-sw3-126m")
>>> tokenizer("Svenska är kul!")["input_ids"]
[1814, 377, 3617, 63504]
```

#### save_vocabulary[[transformers.GPTSw3Tokenizer.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/tokenization_utils_sentencepiece.py#L237)

**Parameter:**

save_directory (`str`) : Direktori tempat menyimpan kosa kata.

filename_prefix (`str`, *opsional*) : Prefiks opsional untuk ditambahkan ke nama file yang disimpan.

**Mengembalikan:** `tuple(str)`

Path ke file yang disimpan.

Simpan kosakata sentencepiece (salin file asli) ke sebuah direktori.

