Last chance! 50% off DataCamp Premium
Sale ends in
PyTorch adalah kerangka kerja deep learning open-source yang dipimpin komunitas, menyediakan cara yang fleksibel dan efisien untuk membangun model machine learning. Ia memiliki antarmuka yang ramah pengguna, dukungan komunitas yang luas, dan integrasi mulus dengan ekosistem Python.
PyTorch 2.0 memperkenalkan perubahan mendasar pada operasi inti kompilernya sambil tetap menjaga tingkat keakraban dan kemudahan yang sama bagi pengembang. Peningkatan terbaru ini menjanjikan kinerja yang lebih cepat serta dukungan yang diperluas untuk Dynamic Shapes dan Distributed.
PyTorch memindahkan sebagian komponen dari C++ kembali ke Python, membuatnya lebih cepat dan mudah diutak-atik. Dengan versi 2.0, mereka memperkenalkan `torch.compile`, yang mengubah cara kerja PyTorch pada level kompilernya. Fitur ini bersifat opsional dan tidak memengaruhi kode lama Anda.
Untuk menyediakan fondasi yang solid bagi fitur `torch.compile`, beberapa teknologi baru diperkenalkan:
Semua teknologi baru ditulis dalam Python dan mendukung Dynamic shapes. Hal ini membuat PyTorch baru menjalankan kode lebih cepat, lebih fleksibel, dan mudah diutak-atik, sehingga menurunkan hambatan masuk.
Mari kita tinjau implementasi kode PyTorch Compiler yang cepat dan mudah.
Tanpa torch.compile
import torch
model = torch.hub.load("pytorch/vision", "resnet50", weights="IMAGENET1K_V2")
Tanpa torch.compile
Untuk meningkatkan kinerja model, cukup tambahkan pembungkus torch.compile di sekitar model untuk mendapatkan model yang terkompilasi. Ini bersifat plug-and-play.
import torch
model = torch.hub.load("pytorch/vision", "resnet50", weights="IMAGENET1K_V2")
compiled_model = torch.compile(model)
Pelajari cara membangun model deep learning dengan pustaka PyTorch melalui kursus Deep Learning with PyTorch.
Anda dapat melatih model Anda tanpa mengubah apa pun.
import torch
model = torch.compile(model)
for batch in dataloader:
run_epoch(model, batch)
Atau Anda dapat menjalankan mode inferensi.
model = torch.compile(model)
model(**input)
Fungsi torch.compile() hadir dengan parameter tambahan:
def torch.compile(model: Callable,
*,
mode: Optional[str] = "default",
dynamic: bool = False,
fullgraph:bool = False,
backend: Union[str, Callable] = "inductor",
**kwargs
) -> torch._dynamo.NNOptimizedModule
Pelajari dasar-dasar API PyTorch dan buat jaringan saraf sederhana dari nol menggunakan Tutorial PyTorch kami.
Untuk memulai dengan PyTorch 2.0, para pengembang telah menggunakan 163 open-source (46 HuggingFace Transformers, 61 TIMM, dan 56 TorchBench) model untuk membuat tolok ukur kinerja dari fitur kompilasi baru. Benchmark ini mencakup tugas seperti klasifikasi gambar, pembuatan gambar, pemodelan bahasa, sistem rekomendasi, dan pembelajaran penguatan.
Hasilnya menunjukkan peningkatan kinerja yang signifikan saat pelatihan pada GPU NVIDIA A100.
Catatan: saat ini, backend bawaan hanya mendukung CPU serta GPU Nvidia seri Volta dan Ampere.

Tolok ukur kompiler PyTorch pada GPU NVIDIA A100
Ini adalah permulaan, dan Anda akan melihat lebih banyak peningkatan kinerja dan skalabilitas pada pembaruan mendatang.
Anda dapat memasang versi PyTorch yang lebih baru dengan mudah menggunakan pip.
Salin dan tempel perintah di bawah ini ke terminal Anda.
Untuk GPU: CUDA 11.8
Ternyata versi GPU yang lebih baru menunjukkan kinerja yang jauh lebih baik.
pip3 install numpy --pre torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/nightly/cu118
Untuk GPU: CUDA 11.7
pip3 install numpy --pre torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/nightly/cu117
Untuk CPU:
pip3 install numpy --pre torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/nightly/cpu
Untuk Verifikasi:
git clone https://github.com/pytorch/pytorch
cd tools/dynamo
python verify_dynamo.py
Mari coba fungsi torch.compile untuk mempercepat transformer Hugging Face. Anda dapat membuat kode Hugging Face berjalan lebih cepat dengan dekorator satu baris.
Catatan: Dengan torch.compile(), kami melihat peningkatan kinerja 30%-200% pada pelatihan - Dasbor Kinerja TorchDynamo.
Dalam contoh ini, kita akan menerapkan torch.compile pada model bahasa besar "dolly-v2-3b" untuk inferensi yang lebih cepat. Untuk menjalankan kode di Google Colab, pertama-tama kita harus memasang pustaka Python yang diperlukan.
%%capture
%pip install transformers accelerate xformers
Kemudian, kita akan mengunduh dan memuat tokenizer serta model bahasa menggunakan Hugging Face transformers. Setelah itu, kita akan menambahkan nn.Module ke fungsi torch.compile().
import torch
from transformers import (
AutoTokenizer,
AutoModelForCausalLM,
GenerationConfig,
pipeline,
)
tokenizer = AutoTokenizer.from_pretrained("databricks/dolly-v2-3b")
model = AutoModelForCausalLM.from_pretrained(
"databricks/dolly-v2-3b", device_map="auto", torch_dtype=torch.bfloat16
)
model = torch.compile(model) #only line of code is required
Pada langkah akhir, kita akan mengonversi teks menjadi token menggunakan tokenizer, memberikannya ke model.generate, lalu mendekode keluaran yang dihasilkan menjadi teks menggunakan tokenizer.batch_decode.
prompt = "I love you because"
inputs = tokenizer(prompt, return_tensors="pt").to(device="cuda:0")
# Generate
generate_ids = model.generate(inputs.input_ids, max_length=50)
tokenizer.batch_decode(
generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True
)[0]
Seperti yang kita lihat, "dolly-v2" telah melengkapi kalimat tersebut dengan menambahkan, "you are a good person…"
"I love you because you are a good person.
You are kind, you help others, you are honest, you are loyal, you are humble, you are humble, you are humble.
You are a good person."
Ini juga berfungsi dengan pipeline Hugging Face. Cukup sediakan jenis tugas, model, dan tokenizer.
generator = pipeline("text-generation", model= model,tokenizer=tokenizer)
generator("What is the name of Germany's Capital?")
Keluaran:
[{'generated_text': "What is the name of Germany's Capital?
The name of Germany's Capital is Berlin."}]
Fungsi compile bekerja langsung dengan pustaka Python transformers, accelerate, dan TIMM.
Jika Anda belum yakin harus mulai dari mana untuk karier deep learning dan AI, jalur karier Machine Learning Scientist with Python adalah titik awal yang sangat baik. Jalur ini memberikan gambaran komprehensif tentang keterampilan Python penting yang dapat membantu Anda meraih pekerjaan sebagai ilmuwan machine learning.
Sebagai data scientist tersertifikasi, saya bersemangat memanfaatkan teknologi mutakhir untuk menciptakan aplikasi machine learning yang inovatif. Dengan latar belakang kuat di pengenalan ucapan, analisis dan pelaporan data, MLOps, conversational AI, dan NLP, saya mengasah keterampilan dalam mengembangkan sistem cerdas yang berdampak nyata. Selain keahlian teknis, saya juga komunikator andal yang mampu menyederhanakan konsep kompleks menjadi bahasa yang jelas dan ringkas. Karena itu, saya menjadi blogger yang dicari di bidang data science, membagikan wawasan dan pengalaman kepada komunitas profesional data yang terus berkembang. Saat ini, saya berfokus pada pembuatan dan penyuntingan konten, bekerja dengan large language model untuk mengembangkan konten yang kuat dan menarik agar membantu bisnis dan individu memaksimalkan data mereka.
blogs
David Woods
13 mnt

blogs
Javier Canales Luna
14 mnt
blogs
Hugo Bowne-Anderson
13 mnt
blogs
Dario Radečić
15 mnt