Model bahasa adalah metode statistik yang memprediksi suksesi token secara berurutan, menggunakan teks natural. Model bahasa besar (LLM) adalah model bahasa berbasis jaringan saraf dengan ratusan juta (BERTI) hingga lebih dari satu triliun parameter (MiCS), dan ukurannya membuat pelatihan GPU tunggal tidak praktis. Kemampuan generatif LLM membuatnya populer untuk sintesis teks, peringkasan, terjemahan mesin, dan banyak lagi.
Ukuran LLM dan data pelatihannya adalah pedang bermata dua: membawa kualitas pemodelan, tetapi memerlukan tantangan infrastruktur. Model itu sendiri seringkali terlalu besar untuk muat dalam memori satu perangkat GPU atau beberapa perangkat dari instans multi-GPU. Faktor-faktor ini memerlukan pelatihan LLM pada kelompok besar instans pembelajaran mesin yang dipercepat (ML). Dalam beberapa tahun terakhir, banyak pelanggan telah menggunakan pelatihan AWS Cloud for LLM.
Dalam posting ini, kami menyelami tip dan praktik terbaik untuk pelatihan LLM yang sukses Pelatihan Amazon SageMaker. Pelatihan SageMaker adalah layanan komputasi batch ML terkelola yang mengurangi waktu dan biaya untuk melatih dan menyesuaikan model dalam skala besar tanpa perlu mengelola infrastruktur. Dalam satu perintah peluncuran, Amazon SageMaker meluncurkan kluster komputasi sesaat yang berfungsi penuh yang menjalankan tugas pilihan Anda, dan dengan fitur ML yang disempurnakan seperti metastore, I/O terkelola, dan distribusi. Posting tersebut mencakup semua fase beban kerja pelatihan LLM dan menjelaskan fitur infrastruktur terkait dan praktik terbaik. Beberapa praktik terbaik dalam postingan ini merujuk secara khusus ke instans ml.p4d.24xlarge, tetapi sebagian besar berlaku untuk semua jenis instans. Praktik terbaik ini memungkinkan Anda melatih LLM di SageMaker dalam skala lusinan hingga ratusan juta parameter.
Mengenai ruang lingkup posting ini, perhatikan hal berikut:
- Kami tidak mencakup desain ilmiah jaringan neural dan pengoptimalan terkait. Amazon. Ilmu Pengetahuan menampilkan berbagai publikasi ilmiah, termasuk dan tidak terbatas pada LLM.
- Meskipun posting ini berfokus pada LLM, sebagian besar praktik terbaiknya relevan untuk semua jenis pelatihan model besar, termasuk visi komputer dan model multimodal, seperti Difusi Stabil.
Praktik terbaik
Kami membahas praktik terbaik berikut dalam posting ini:
- menghitung โ Pelatihan SageMaker adalah API yang bagus untuk meluncurkan pekerjaan persiapan dataset CPU dan pekerjaan GPU berskala ribuan.
- Storage โ Kami melihat pemuatan data dan pos pemeriksaan dilakukan dengan dua cara, bergantung pada keterampilan dan preferensi: dengan an Kilau Amazon FSx sistem file, atau Layanan Penyimpanan Sederhana Amazon (Amazon S3) saja.
- Paralelisme โ Pilihan perpustakaan pelatihan terdistribusi Anda sangat penting untuk penggunaan GPU yang tepat. Kami merekomendasikan penggunaan pustaka yang dioptimalkan cloud, seperti paralelisme data sharded SageMaker, tetapi pustaka swakelola dan sumber terbuka juga dapat berfungsi.
- jaringan โ Pastikan EFA dan NVIDIA GPUDirectRDMA diaktifkan, untuk komunikasi antar mesin yang cepat.
- Kegembiraan โ Pada skala besar, kegagalan perangkat keras dapat terjadi. Kami merekomendasikan pos pemeriksaan secara teratur. Setiap beberapa jam adalah hal biasa.
Pemilihan wilayah
Jenis instans dan kapasitas yang diinginkan merupakan faktor penentu pemilihan Wilayah. Untuk Wilayah yang didukung oleh SageMaker dan Cloud komputasi elastis Amazon (Amazon EC2) jenis instans yang tersedia di setiap Wilayah, lihat Harga Amazon SageMaker. Dalam postingan ini, kami menganggap jenis instans pelatihan adalah ml.p4d.24xlarge yang dikelola SageMaker.
Kami merekomendasikan bekerja dengan tim akun AWS Anda atau menghubungi Penjualan AWS untuk menentukan Wilayah yang sesuai untuk beban kerja LLM Anda.
Persiapan data
Pengembang LLM melatih model mereka pada kumpulan data besar teks yang terjadi secara alami. Contoh populer dari sumber data tersebut termasuk Perayapan Umum dan Tumpukan. Teks yang terjadi secara alami dapat mengandung bias, ketidakakuratan, kesalahan tata bahasa, dan variasi sintaksis. Kualitas akhir LLM secara signifikan bergantung pada pemilihan dan kurasi data pelatihan. Persiapan data pelatihan LLM adalah bidang aktif penelitian dan inovasi dalam industri LLM. Persiapan dataset pemrosesan bahasa alami (NLP) penuh dengan peluang paralelisme tanpa berbagi. Dengan kata lain, ada langkah-langkah yang bisa diterapkan pada unit kerjaโfile sumber, paragraf, kalimat, kataโtanpa memerlukan sinkronisasi antar pekerja.
API pekerjaan SageMaker, yaitu Pelatihan SageMaker dan Pemrosesan SageMaker, unggul untuk jenis tugas ini. Mereka memungkinkan pengembang untuk menjalankan wadah Docker sewenang-wenang melalui armada beberapa mesin. Dalam kasus API Pelatihan SageMaker, armada komputasi bisa heterogen. Banyak kerangka komputasi terdistribusi telah digunakan di SageMaker, termasuk Senja, sinar, dan juga PySpark, yang memiliki dedikasi Kontainer yang dikelola AWS dan SDK dalam Pemrosesan SageMaker.
Saat Anda meluncurkan tugas dengan beberapa mesin, Pelatihan dan Pemrosesan SageMaker menjalankan kode Anda satu kali per mesin. Anda tidak perlu menggunakan kerangka kerja komputasi terdistribusi tertentu untuk menulis aplikasi terdistribusi: Anda dapat menulis kode pilihan Anda, yang akan berjalan satu kali per mesin, untuk mewujudkan paralelisme tanpa berbagi. Anda juga dapat menulis atau menginstal logika komunikasi antar-simpul pilihan Anda.
Pemuatan data
Ada beberapa cara untuk menyimpan data pelatihan dan memindahkannya dari penyimpanannya ke node komputasi yang dipercepat. Di bagian ini, kami membahas opsi dan praktik terbaik untuk memuat data.
Opsi penyimpanan dan pemuatan SageMaker
Ukuran dataset LLM biasanya mencapai ratusan juta token teks, mewakili beberapa ratus gigabyte. Kluster instans ml.p4d.24xlarge yang dikelola SageMaker mengusulkan beberapa opsi untuk penyimpanan dan pemuatan set data:
- SSD NVMe pada node โ instans ml.P4d.24xlarge dilengkapi dengan 8TB NVMe, tersedia di bawah
/opt/ml/input/data/<channel>
jika Anda menggunakan Mode File SageMaker, dan di/tmp
. Jika Anda mencari kesederhanaan dan kinerja pembacaan lokal, Anda dapat menyalin data Anda ke NVMe SSD. Penyalinan dapat dilakukan dengan mode File SageMaker, atau dengan kode Anda sendiri, misalnya menggunakan multi-proses bot3 or S5cmd. - FSx untuk Lustre โ SSD NVMe On-node memiliki ukuran terbatas, dan memerlukan penyerapan dari Amazon S3 di setiap pekerjaan atau pembuatan klaster hangat. Jika Anda ingin menskalakan ke kumpulan data yang lebih besar sambil mempertahankan akses acak latensi rendah, Anda dapat menggunakan FSx untuk Lustre. Amazon FSx adalah sistem file paralel sumber terbuka, populer di komputasi kinerja tinggi (HPC). FSx untuk penggunaan Lustre penyimpanan file terdistribusi (stripping) dan secara fisik memisahkan metadata file dari konten file untuk mencapai kinerja baca/tulis yang tinggi.
- Mode File Cepat SageMaker โ Mode File Cepat (FFM) adalah fitur khusus SageMaker yang menghadirkan objek S3 jarak jauh dalam instans komputasi yang dikelola SageMaker di bawah antarmuka yang sesuai dengan POSIX, dan mengalirkannya hanya setelah dibaca, menggunakan FUSE. FFM membaca hasil dalam panggilan S3 yang mengalirkan file jarak jauh blok demi blok. Sebagai praktik terbaik untuk menghindari kesalahan yang terkait dengan lalu lintas Amazon S3, pengembang FFM harus berusaha menjaga agar jumlah panggilan S3 tetap masuk akal, misalnya dengan membaca file secara berurutan dan dengan jumlah paralelisme yang terkontrol.
- Pemuatan data yang dikelola sendiri โ Tentu saja, Anda juga dapat memutuskan untuk mengimplementasikan logika pemuatan data kustom Anda sendiri, menggunakan kode berpemilik atau sumber terbuka. Beberapa alasan untuk menggunakan pemuatan data yang dikelola sendiri adalah untuk memfasilitasi migrasi dengan menggunakan kembali kode yang sudah dikembangkan, untuk menerapkan logika penanganan kesalahan khusus, atau untuk memiliki kontrol lebih besar pada kinerja dan sharding yang mendasarinya. Contoh pustaka yang dapat Anda gunakan untuk pemuatan data yang dikelola sendiri termasuk torchdata.datapipes (sebelumnya Plugin AWS PyTorch S3) Dan Kumpulan data web. SDK AWS Python bot3 juga dapat digabungkan dengan Kumpulan Data Obor kelas untuk membuat kode pemuatan data khusus. Kelas pemuatan data khusus juga memungkinkan penggunaan kluster heterogen SageMaker Training secara kreatif, untuk mengadaptasi keseimbangan CPU dan GPU secara halus ke beban kerja tertentu.
Untuk informasi selengkapnya tentang opsi tersebut dan cara memilihnya, lihat Pilih sumber data terbaik untuk pekerjaan pelatihan Amazon SageMaker Anda.
Praktik terbaik untuk interaksi berskala besar dengan Amazon S3
Amazon S3 mampu menangani beban kerja LLM, baik untuk pembacaan data maupun pemeriksaan. Ini mendukung a tingkat permintaan dari 3,500 PUT/COPY/POST/DELETE atau 5,500 permintaan GET/HEAD per detik per awalan dalam keranjang. Namun, tarif ini belum tentu tersedia secara default. Sebagai gantinya, saat laju permintaan untuk awalan bertambah, Amazon S3 secara otomatis menskalakan untuk menangani laju yang meningkat. Untuk informasi lebih lanjut, lihat Mengapa saya mendapatkan kesalahan 503 Perlambatan dari Amazon S3 saat permintaan berada dalam tingkat permintaan yang didukung per awalan.
Jika Anda mengharapkan interaksi Amazon S3 frekuensi tinggi, kami merekomendasikan praktik terbaik berikut:
- Cobalah untuk membaca dan menulis dari beberapa bucket S3 dan awalan. Misalnya, Anda dapat mempartisi data pelatihan dan pos pemeriksaan di berbagai prefiks.
- Periksa metrik Amazon S3 di amazoncloudwatch untuk melacak tingkat permintaan.
- Cobalah untuk meminimalkan jumlah PUT/GET secara bersamaan:
- Memiliki lebih sedikit proses menggunakan Amazon S3 secara bersamaan. Misalnya, jika delapan proses per node perlu melakukan checkpoint ke Amazon S3, Anda dapat mengurangi lalu lintas PUT dengan faktor 8 dengan melakukan checkpoint secara hierarkis: pertama di dalam node, lalu dari node ke Amazon S3.
- Baca beberapa catatan pelatihan dari satu file atau S3 GET, alih-alih menggunakan S3 GET untuk setiap catatan pelatihan.
- Jika Anda menggunakan Amazon S3 melalui SageMaker FFM, SageMaker FFM membuat panggilan S3 untuk mengambil file potongan demi potongan. Untuk membatasi lalu lintas Amazon S3 yang dihasilkan oleh FFM, kami mendorong Anda untuk membaca file secara berurutan dan membatasi jumlah file yang dibuka secara paralel.
Jika Anda memiliki Paket Dukungan Pengembang, Bisnis, atau Perusahaan, Anda dapat membuka kasus dukungan teknis tentang kesalahan S3 503 Slow Down. Tapi pertama-tama pastikan Anda telah mengikuti praktik terbaik, dan mendapatkan ID permintaan untuk permintaan yang gagal.
Melatih paralelisme
LLM umumnya memiliki lusinan hingga ratusan miliar parameter, membuatnya terlalu besar untuk muat dalam satu kartu GPU NVIDIA. Praktisi LLM telah mengembangkan beberapa perpustakaan sumber terbuka yang memfasilitasi komputasi terdistribusi dari pelatihan LLM, termasuk FSDP, Kecepatan Dalam dan Megatron. Anda dapat menjalankan pustaka tersebut di Pelatihan SageMaker, tetapi Anda juga dapat menggunakan pustaka pelatihan terdistribusi SageMaker, yang telah dioptimalkan untuk AWS Cloud dan memberikan pengalaman pengembang yang lebih sederhana. Pengembang memiliki dua pilihan untuk pelatihan terdistribusi LLM mereka di SageMaker: perpustakaan terdistribusi atau dikelola sendiri.
Pustaka terdistribusi SageMaker
Untuk memberi Anda peningkatan kinerja dan kegunaan pelatihan terdistribusi, Pelatihan SageMaker mengusulkan beberapa ekstensi kepemilikan untuk menskalakan kode pelatihan TensorFlow dan PyTorch. Pelatihan LLM sering dilakukan dengan cara paralelisme 3D:
- Paralelisme data membagi dan memasukkan batch mini pelatihan ke beberapa replika model yang identik, untuk meningkatkan kecepatan pemrosesan
- Paralelisme saluran pipa mengatribusikan berbagai lapisan model ke berbagai GPU atau bahkan instans, untuk menskalakan ukuran model di luar satu GPU dan satu server
- Paralelisme tensor membagi satu lapisan menjadi beberapa GPU, biasanya dalam server yang sama, untuk menskalakan masing-masing lapisan ke ukuran yang melebihi satu GPU
Dalam contoh berikut, model 6 lapisan dilatih pada sekelompok server k*3 dengan 8*k*3 GPU (8 GPU per server). Gelar paralelisme data adalah k, paralelisme pipa 6, dan paralelisme tensor 4. Setiap GPU dalam kluster berisi seperempat lapisan model, dan model lengkap dipartisi di tiga server (total 24 GPU).
Berikut ini secara khusus relevan untuk LLM:
- Model terdistribusi SageMaker paralel โ Pustaka ini menggunakan partisi grafik untuk menghasilkan partisi model cerdas yang dioptimalkan untuk kecepatan atau memori. Paralel model terdistribusi SageMaker memaparkan pengoptimalan pelatihan model besar terbaru dan terhebat, termasuk paralelisme data, paralelisme pipa, paralelisme tensor, sharding status pengoptimal, pos pemeriksaan aktivasi, dan pembongkaran. Dengan pustaka paralel model terdistribusi SageMaker, kami mendokumentasikan 175 miliar pelatihan model parameter melalui 920 GPU NVIDIA A100. Untuk informasi lebih lanjut, lihat Latih 175+ miliar model parameter NLP dengan penambahan paralel model dan Hugging Face di Amazon SageMaker.
- SageMaker membagi data secara paralel - Di MiCS: Penskalaan Near-linear untuk Melatih Model Raksasa di Cloud Publik, Zhang dkk. memperkenalkan strategi paralel model komunikasi rendah yang mempartisi model melalui grup paralel data saja, bukan seluruh cluster. Dengan MiCS, para ilmuwan AWS mampu mencapai 176 teraflops per GPU (56.4% dari puncak teoretis) untuk melatih model 210 lapisan 1.06 triliun parameter pada instans EC2 P4de. MiCS kini tersedia untuk pelanggan Pelatihan SageMaker sebagai SageMaker membagi data secara paralel.
Pustaka pelatihan terdistribusi SageMaker memberikan kinerja tinggi dan pengalaman pengembang yang lebih sederhana. Secara khusus, pengembang tidak perlu menulis dan memelihara peluncur proses paralel khusus atau menggunakan alat peluncuran khusus kerangka kerja, karena peluncur paralel dibangun ke dalam SDK peluncuran pekerjaan.
Dikelola sendiri
Dengan Pelatihan SageMaker, Anda memiliki kebebasan untuk menggunakan kerangka kerja dan paradigma ilmiah pilihan Anda. Secara khusus, jika Anda ingin mengelola sendiri pelatihan terdistribusi, Anda memiliki dua opsi untuk menulis kode khusus:
- Gunakan AWS Deep Learning Container (DLC) โ AWS mengembangkan dan memelihara DLC, menyediakan lingkungan berbasis Docker yang dioptimalkan AWS untuk kerangka kerja ML sumber terbuka teratas. Pelatihan SageMaker memiliki integrasi unik yang memungkinkan Anda menarik dan menjalankan DLC AWS dengan titik masuk eksternal yang ditentukan pengguna. Khususnya untuk pelatihan LLM, DLC AWS untuk TensorFlow, PyTorch, Hugging Face, dan MXNet sangat relevan. Menggunakan framework DLC memungkinkan Anda menggunakan framework-native parallelism, seperti PyTorch Distributed, tanpa harus mengembangkan dan mengelola gambar Docker Anda sendiri. Selain itu, DLC kami menampilkan sebuah integrasi MPI, yang memungkinkan Anda meluncurkan kode paralel dengan mudah.
- Tulis image Docker khusus yang kompatibel dengan SageMaker โ Anda dapat membawa gambar Anda sendiri (BYO) (lihat Gunakan Algoritma Pelatihan Anda Sendiri dan Kontainer Pelatihan Kustom Amazon SageMaker), baik memulai dari awal atau memperluas gambar DLC yang ada. Saat menggunakan gambar kustom untuk pelatihan LLM di SageMaker, sangat penting untuk memverifikasi hal-hal berikut:
- Gambar Anda mengandung EFA dengan pengaturan yang sesuai (dibahas lebih lanjut di posting ini)
- Gambar Anda berisi pustaka komunikasi NVIDIA NCCL, diaktifkan dengan GPUDirectRDMA
Pelanggan telah dapat menggunakan sejumlah pustaka pelatihan terdistribusi yang dikelola sendiri, termasuk DeepSpeed.
komunikasi
Mengingat sifat terdistribusi dari pekerjaan pelatihan LLM, komunikasi antar mesin sangat penting untuk kelayakan, kinerja, dan biaya beban kerja. Pada bagian ini, kami menyajikan fitur-fitur utama untuk komunikasi antar mesin dan diakhiri dengan tip untuk pemasangan dan penyetelan.
Adaptor Kain Elastis
Untuk mempercepat aplikasi ML, dan meningkatkan performa dengan mencapai fleksibilitas, skalabilitas, dan elastisitas yang disediakan oleh cloud, Anda dapat memanfaatkan Adaptor Kain Elastis (EFA) dengan SageMaker. Dalam pengalaman kami, menggunakan EFA merupakan persyaratan untuk mendapatkan performa pelatihan LLM multi-node yang memuaskan.
Perangkat EFA adalah antarmuka jaringan yang terpasang pada instans EC2 yang dikelola oleh SageMaker selama menjalankan tugas pelatihan. EFA tersedia pada keluarga instans tertentu, termasuk P4d. Jaringan EFA mampu mencapai throughput beberapa ratus Gbps.
Terkait dengan EFA, AWS telah memperkenalkan Datagram yang Dapat Diskalakan dan Andal (SRD), transportasi berbasis ethernet yang terinspirasi oleh Datagram Andal InfiniBand, berevolusi dengan batasan pemesanan paket yang santai. Untuk informasi lebih lanjut tentang EFA dan SRD, lihat Dalam mencari kinerja, ada lebih dari satu cara untuk membangun jaringan, videonya Cara kerja EFA dan mengapa kami tidak menggunakan infiniband di cloud, dan makalah penelitian Protokol Transport yang Dioptimalkan Cloud untuk HPC yang Elastis dan Dapat Diskalakan dari Shalev dkk.
Anda dapat menambahkan integrasi EFA pada instans yang kompatibel ke wadah Docker SageMaker yang sudah ada, atau wadah khusus yang dapat digunakan untuk melatih model ML menggunakan tugas SageMaker. Untuk informasi lebih lanjut, lihat Jalankan Pelatihan dengan EFA. EFA diekspos melalui sumber terbuka kain lib paket komunikasi. Namun, pengembang LLM jarang memprogramnya secara langsung dengan Libfabric, dan biasanya mengandalkan NVIDIA Collective Communications Library (NCCL).
Plugin AWS-OFI-NCCL
Dalam ML terdistribusi, EFA paling sering digunakan dengan NVIDIA Collective Communications Library (NCCL). NCCL adalah pustaka sumber terbuka yang dikembangkan oleh NVIDIA yang menerapkan algoritme komunikasi antar-GPU. Komunikasi antar-GPU adalah landasan pelatihan LLM yang mengkatalisasi skalabilitas dan kinerja. Sangat penting untuk pelatihan DL sehingga NCCL sering kali terintegrasi langsung sebagai backend komunikasi dalam perpustakaan pelatihan pembelajaran mendalam, sehingga pengembang LLM menggunakannyaโterkadang tanpa disadariโdari kerangka pengembangan Python DL pilihan mereka. Untuk menggunakan NCCL di EFA, pengembang LLM menggunakan yang dikembangkan oleh AWS Plugin AWS OFI NCCL, yang memetakan panggilan NCCL ke antarmuka Libfabric yang digunakan oleh EFA. Kami merekomendasikan penggunaan versi terbaru AWS OFI NCCL untuk mendapatkan manfaat dari peningkatan terkini.
Untuk memverifikasi bahwa NCCL menggunakan EFA, Anda harus menyetel variabel lingkungan NCCL_DEBUG
untuk INFO
, dan periksa di log bahwa EFA dimuat oleh NCCL:
Untuk informasi selengkapnya tentang konfigurasi NCCL dan EFA, lihat Uji konfigurasi EFA dan NCCL Anda. Anda selanjutnya dapat menyesuaikan NCCL dengan beberapa variabel lingkungan. Perhatikan bahwa efektif di NCCL 2.12 dan yang lebih baru, AWS menyumbangkan logika pemilihan algoritme komunikasi otomatis untuk jaringan EFA (NCCL_ALGO
dapat dibiarkan tidak disetel).
NVIDIA GPUDirect RDMA melalui EFA
Dengan jenis instans P4d, kami diperkenalkan GPUDirect RDMA (GDR) melalui kain EFA. Ini memungkinkan kartu antarmuka jaringan (NIC) untuk secara langsung mengakses memori GPU, membuat komunikasi GPU-ke-GPU jarak jauh di instans EC2 berbasis GPU NVIDIA lebih cepat, mengurangi overhead orkestrasi pada CPU dan aplikasi pengguna. GDR digunakan di bawah tenda oleh NCCL, jika memungkinkan.
Penggunaan GDR muncul dalam komunikasi antar-GPU saat level log disetel ke INFO, seperti dalam kode berikut:
Menggunakan EFA di AWS Deep Learning Containers
AWS mengelola Deep Learning Containers (DLC), banyak di antaranya datang dengan Dockerfiles yang dikelola AWS dan dibangun berisi EFA, AWS OFI NCCL, dan NCCL. Repo GitHub berikut menawarkan contoh dengan PyTorch dan TensorFlow. Anda tidak perlu menginstal pustaka itu sendiri.
Menggunakan EFA dalam wadah Pelatihan SageMaker Anda sendiri
Jika Anda membuat wadah Pelatihan SageMaker sendiri dan ingin menggunakan NCCL melalui EFA untuk mempercepat komunikasi antarnode, Anda perlu menginstal EFA, NCCL, dan AWS OFI NCCL. Untuk informasi lebih lanjut, lihat Jalankan Pelatihan dengan EFA. Selain itu, Anda harus menyetel variabel lingkungan berikut di wadah Anda atau di kode titik masuk Anda:
FI_PROVIDER="efa"
menentukan penyedia antarmuka fabricNCCL_PROTO=simple
menginstruksikan NCCL untuk menggunakan protokol sederhana untuk komunikasi (saat ini, penyedia EFA tidak mendukung protokol LL; mengaktifkannya dapat menyebabkan kerusakan data)FI_EFA_USE_DEVICE_RDMA=1
menggunakan fungsionalitas RDMA perangkat untuk transfer satu sisi dan dua sisiNCCL_LAUNCH_MODE="PARALLEL"
NCCL_NET_SHARED_COMMS="0"
Orkestrasi
Mengelola siklus hidup dan beban kerja lusinan hingga ratusan instans komputasi memerlukan perangkat lunak orkestrasi. Di bagian ini, kami menawarkan praktik terbaik untuk orkestrasi LLM
orkestrasi dalam pekerjaan
Pengembang harus menulis kode pelatihan sisi server dan kode peluncur sisi klien di sebagian besar kerangka kerja terdistribusi. Kode pelatihan dijalankan pada mesin pelatihan, sedangkan kode peluncur sisi klien meluncurkan beban kerja terdistribusi dari mesin klien. Ada sedikit standardisasi hari ini, misalnya:
- Di PyTorch, pengembang dapat meluncurkan tugas multi-mesin menggunakan
torchrun
,torchx
,torch.distributed.launch
(jalur penghentian), atautorch.multiprocessing.spawn
- DeepSpeed โโโโmengusulkan peluncur CLI kecepatan dalamnya sendiri dan juga mendukung peluncuran MPI
- MPI adalah kerangka kerja komputasi paralel populer yang memiliki manfaat sebagai ML-agnostik dan memiliki tenur yang wajar, dan karenanya stabil dan terdokumentasi, dan semakin terlihat dalam beban kerja ML terdistribusi
Di klaster Pelatihan SageMaker, wadah pelatihan diluncurkan satu kali di setiap mesin. Akibatnya, Anda memiliki tiga opsi:
- Peluncur asli โ Anda dapat menggunakan sebagai titik masuk peluncur asli kerangka DL tertentu, misalnya a
torchrun
panggilan, yang dengan sendirinya akan menelurkan banyak proses lokal dan membangun komunikasi lintas instance. - Integrasi SageMaker MPI โ Anda dapat menggunakan integrasi SageMaker MPI, tersedia di AWS DLC kami, atau dapat diinstal sendiri melalui alat-pelatihan-sagemaker, untuk langsung menjalankan kode titik masuk Anda sebanyak N kali per mesin. Ini bermanfaat untuk menghindari penggunaan perantara, skrip peluncur khusus kerangka kerja dalam kode Anda sendiri.
- Pustaka terdistribusi SageMaker โ Jika Anda menggunakan pustaka terdistribusi SageMaker, Anda dapat berfokus pada kode pelatihan dan tidak perlu menulis kode peluncur sama sekali! Kode peluncur terdistribusi SageMaker dibangun ke dalam SageMaker SDK.
orkestrasi antar pekerjaan
Proyek LLM sering kali terdiri dari beberapa pekerjaan: pencarian parameter, eksperimen penskalaan, pemulihan dari kesalahan, dan banyak lagi. Untuk memulai, menghentikan, dan memparalelkan tugas pelatihan, penting untuk menggunakan orkestra pekerjaan. Pelatihan SageMaker adalah pengatur tugas ML tanpa server yang menyediakan instans komputasi sementara segera setelah diminta. Anda hanya membayar apa yang Anda gunakan, dan klaster akan dinonaktifkan segera setelah kode Anda berakhir. Dengan Kolam Hangat Pelatihan SageMaker, Anda memiliki opsi untuk menentukan waktu aktif pada klaster pelatihan, untuk menggunakan kembali infrastruktur yang sama di seluruh pekerjaan. Ini mengurangi waktu iterasi dan variabilitas penempatan kerja antar pekerjaan. Pekerjaan SageMaker dapat diluncurkan dari berbagai bahasa pemrograman, termasuk Ular sanca dan CLI.
Ada SDK Python khusus SageMaker yang disebut SDK Python SageMaker dan dilaksanakan melalui pembuat bijak Pustaka Python, tetapi penggunaannya bersifat opsional.
Meningkatkan kuota pekerjaan pelatihan dengan klaster pelatihan yang besar dan panjang
SageMaker memiliki kuota default pada sumber daya, yang dirancang untuk mencegah penggunaan dan biaya yang tidak disengaja. Untuk melatih LLM menggunakan klaster besar instans kelas atas yang berjalan dalam waktu lama, Anda mungkin perlu menambah kuota dalam tabel berikut.
Nama kuota | Nilai standar |
Jangka waktu terlama untuk tugas pelatihan | 432,000 detik |
Jumlah instance di semua tugas pelatihan | 4 |
Jumlah maksimum instance per tugas pelatihan | 20 |
ml.p4d.24xlarge untuk penggunaan pekerjaan pelatihan | 0 |
ml.p4d.24xlarge untuk melatih penggunaan kolam air hangat | 0 |
Lihat Kuota layanan AWS cara melihat nilai kuota dan meminta penambahan kuota. Kuota On-Demand, Instans Spot, dan training warm pool dilacak dan diubah secara terpisah.
Jika Anda memutuskan untuk tetap mengaktifkan SageMaker Profiler, ketahuilah bahwa setiap tugas pelatihan meluncurkan tugas Pemrosesan SageMaker, masing-masing menggunakan satu instans ml.m5.2xlarge. Konfirmasikan bahwa kuota Pemrosesan SageMaker Anda cukup tinggi untuk mengakomodasi konkurensi tugas pelatihan yang diharapkan. Misalnya, jika Anda ingin meluncurkan 50 tugas pelatihan berkemampuan Profiler yang berjalan bersamaan, Anda harus menaikkan ml.m5.2xlarge untuk memproses batas penggunaan tugas menjadi 50.
Selain itu, untuk meluncurkan pekerjaan jangka panjang, Anda harus mengatur secara eksplisit Penilai max_run
ke durasi maksimum yang diinginkan untuk tugas pelatihan dalam hitungan detik, hingga nilai kuota runtime terlama untuk tugas pelatihan.
Pemantauan dan ketahanan
Kegagalan perangkat keras sangat jarang terjadi pada skala satu instans dan menjadi semakin sering karena jumlah instans yang digunakan secara bersamaan meningkat. Pada skala LLM tipikalโratusan hingga ribuan GPU digunakan 24/7 selama berminggu-minggu hingga berbulan-bulanโkegagalan perangkat keras hampir pasti terjadi. Oleh karena itu, beban kerja LLM harus menerapkan mekanisme pemantauan dan ketahanan yang tepat. Pertama, penting untuk memantau infrastruktur LLM dengan cermat, untuk membatasi dampak kegagalan dan mengoptimalkan penggunaan sumber daya komputasi. Pelatihan SageMaker mengusulkan beberapa fitur untuk tujuan ini:
- Log secara otomatis dikirim ke CloudWatch Logs. Log menyertakan skrip pelatihan Anda
stdout
danstderr
. Dalam pelatihan terdistribusi berbasis MPI, semua pekerja MPI mengirimkan log mereka ke proses pimpinan. - Metrik penggunaan sumber daya sistem seperti memori, penggunaan CPU, dan penggunaan GPU, secara otomatis dikirim ke CloudWatch.
- Anda dapat menentukan metrik pelatihan kustom yang akan dikirim ke CloudWatch. Metrik diambil dari log berdasarkan ekspresi reguler yang Anda tetapkan. Paket percobaan pihak ketiga seperti Mitra AWS menawarkan Bobot & Bias dapat digunakan dengan Pelatihan SageMaker (sebagai contoh, lihat Mengoptimalkan Hyperparameter CIFAR-10 dengan W&B dan SageMaker).
- Pembuat Profil SageMaker memungkinkan Anda memeriksa penggunaan infrastruktur dan mendapatkan rekomendasi pengoptimalan.
- Jembatan Acara Amazon dan AWS Lambda memungkinkan Anda membuat logika klien otomatis yang bereaksi terhadap kejadian seperti kegagalan pekerjaan, kesuksesan, unggahan file S3, dan banyak lagi.
- Pembantu SSH SageMaker adalah pustaka sumber terbuka yang dikelola komunitas yang memungkinkan Anda terhubung ke host pekerjaan pelatihan melalui SSH. Akan sangat membantu untuk memeriksa dan memecahkan masalah kode yang dijalankan pada node tertentu.
Selain pemantauan, SageMaker juga menghadirkan peralatan untuk ketahanan kerja:
- Pemeriksaan kesehatan klaster โ Sebelum pekerjaan Anda dimulai, SageMaker menjalankan pemeriksaan kesehatan GPU dan memverifikasi komunikasi NCCL pada instans GPU, mengganti instans yang rusak jika perlu untuk memastikan skrip pelatihan Anda mulai berjalan pada klaster instans yang sehat. Health check saat ini diaktifkan untuk jenis instans berbasis GPU P dan G.
- Coba ulang bawaan dan pembaruan kluster โ Anda dapat mengonfigurasi SageMaker secara otomatis mencoba kembali tugas pelatihan yang gagal dengan kesalahan server internal SageMaker (ISE). Sebagai bagian dari percobaan ulang tugas, SageMaker akan mengganti semua instans yang mengalami kesalahan GPU yang tidak dapat dipulihkan dengan instans baru, mem-boot ulang semua instans sehat, dan memulai tugas lagi. Ini menghasilkan restart lebih cepat dan penyelesaian beban kerja. Pembaruan kluster saat ini diaktifkan untuk jenis instans berbasis GPU P dan G. Anda dapat menambahkannya sendiri mekanisme coba ulang aplikatif seputar kode klien yang mengirimkan tugas, untuk menangani jenis kesalahan peluncuran lainnya, seperti seperti melebihi kuota akun Anda.
- Otomatis pos pemeriksaan ke Amazon S3 โ Ini membantu Anda pos pemeriksaan kemajuan Anda dan memuat ulang status sebelumnya pada pekerjaan baru.
Untuk mendapatkan keuntungan dari penggantian tingkat node, kode Anda harus error. Kolektif mungkin macet, alih-alih membuat kesalahan, ketika sebuah node gagal. Oleh karena itu, untuk mendapatkan perbaikan yang cepat, setel batas waktu pada kolektif Anda dengan benar dan buat kode memberikan kesalahan saat tercapai.
Beberapa pelanggan menyiapkan klien pemantauan untuk memantau dan mengambil tindakan jika terjadi penghentian pekerjaan atau penghentian konvergensi aplikatif, dengan memantau log dan metrik CloudWatch untuk pola abnormal seperti tidak ada log yang ditulis atau penggunaan GPU 0% untuk mengisyaratkan hang, penghentian konvergensi, dan otomatis hentikan/coba kembali pekerjaan.
Menyelam lebih dalam di pos pemeriksaan
Grafik Pos pemeriksaan SageMaker fitur menyalin semua yang Anda tulis /opt/ml/checkpoints
kembali ke Amazon S3 seperti URI yang ditentukan di checkpoint_s3_uri
parameter SDK. Saat pekerjaan dimulai atau dimulai ulang, semua yang ditulis di URI tersebut dikirim kembali ke semua mesin, di /opt/ml/checkpoints
. Ini nyaman jika Anda ingin semua node memiliki akses ke semua titik pemeriksaan, tetapi dalam skalaโketika Anda memiliki banyak mesin atau banyak titik pemeriksaan historis, ini dapat menyebabkan waktu pengunduhan yang lama dan lalu lintas yang terlalu tinggi di Amazon S3. Selain itu, dalam paralelisme tensor dan pipa, pekerja hanya memerlukan sebagian kecil dari model pos pemeriksaan, tidak semuanya. Jika Anda menghadapi keterbatasan tersebut, kami merekomendasikan opsi berikut:
- Checkpoint ke FSx untuk Luster โ Berkat I/O acak berkinerja tinggi, Anda dapat menentukan skema sharding dan atribusi file pilihan Anda
- Pos pemeriksaan Amazon S3 yang dikelola sendiri โ Untuk contoh fungsi Python yang dapat digunakan untuk menyimpan dan membaca checkpoint dengan cara non-blocking, lihat Menyimpan Pos Pemeriksaan
Kami sangat menyarankan untuk memeriksa model Anda setiap beberapa jam, misalnya 1โ3 jam, bergantung pada overhead dan biaya terkait.
Ujung depan dan manajemen pengguna
Manajemen pengguna adalah kekuatan kegunaan utama SageMaker dibandingkan dengan infrastruktur HPC bersama yang lama. Izin Pelatihan SageMaker diatur oleh beberapa Identitas AWS dan Manajemen Akses (IAM) abstraksi:
- Prinsipalโpengguna dan sistemโdiberi izin untuk meluncurkan sumber daya
- Pekerjaan pelatihan membawa peran itu sendiri, yang memungkinkan mereka memiliki izin sendiri, misalnya terkait akses data dan pemanggilan layanan
Selain itu, pada tahun 2022 kami menambahkan Manajer Peran SageMaker untuk memfasilitasi pembuatan izin berbasis persona.
Kesimpulan
Dengan Pelatihan SageMaker, Anda dapat mengurangi biaya dan meningkatkan kecepatan iterasi pada beban kerja pelatihan model besar Anda. Kami telah mendokumentasikan kisah sukses dalam berbagai postingan dan studi kasus, antara lain:
Jika Anda ingin meningkatkan waktu pemasaran LLM sekaligus mengurangi biaya, lihat API Pelatihan SageMaker dan beri tahu kami apa yang Anda buat!
Terima kasih khusus kepada Amr Ragab, Rashika Kheria, Zmnako Awrahman, Arun Nagarajan, Gal Oshri atas ulasan dan ajaran mereka yang bermanfaat.
Tentang Penulis
Anastasia Tzeveleka adalah Arsitek Solusi Spesialis Pembelajaran Mesin dan AI di AWS. Dia bekerja dengan pelanggan di EMEA dan membantu mereka merancang solusi pembelajaran mesin dalam skala besar menggunakan layanan AWS. Dia telah mengerjakan proyek di berbagai domain termasuk Natural Language Processing (NLP), MLOps, dan alat Low Code No Code.
Gili Nachum adalah Arsitek Solusi Spesialis AI/ML senior yang bekerja sebagai bagian dari tim Pembelajaran Mesin Amazon EMEA. Gili sangat menyukai tantangan dalam melatih model pembelajaran mendalam, dan bagaimana pembelajaran mesin mengubah dunia seperti yang kita kenal. Di waktu luangnya, Gili menikmati bermain tenis meja.
Olivier Cruchant adalah Arsitek Solusi Spesialis Pembelajaran Mesin Utama di AWS, berbasis di Prancis. Olivier membantu pelanggan AWS โ dari startup kecil hingga perusahaan besar โ mengembangkan dan menerapkan aplikasi pembelajaran mesin tingkat produksi. Di waktu luangnya, dia senang membaca makalah penelitian dan menjelajahi hutan belantara bersama teman dan keluarga.
Bruno Piston adalah Arsitek Solusi Spesialis AI/ML untuk AWS yang berbasis di Milan. Dia bekerja dengan pelanggan dari berbagai ukuran untuk membantu mereka memahami secara mendalam kebutuhan teknis mereka dan merancang solusi AI dan Pembelajaran Mesin yang memanfaatkan AWS Cloud dan tumpukan Amazon Machine Learning dengan sebaik-baiknya. Bidang keahliannya adalah Machine Learning end to end, Machine Learning Industrialization dan MLOps. Dia menikmati menghabiskan waktu bersama teman-temannya dan menjelajahi tempat-tempat baru, serta bepergian ke tujuan baru.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/machine-learning/training-large-language-models-on-amazon-sagemaker-best-practices/
- :adalah
- ][P
- $NAIK
- 000
- 1
- 100
- 2022
- 7
- 8
- a
- kemampuan
- Sanggup
- Tentang Kami
- atas
- mempercepat
- dipercepat
- mengakses
- menampung
- Akun
- Mencapai
- mencapai
- di seluruh
- Bertindak
- Activation
- aktif
- menyesuaikan
- menambahkan
- tambahan
- Selain itu
- tambahan
- Keuntungan
- AI
- AI / ML
- AL
- algoritma
- algoritma
- Semua
- Membiarkan
- memungkinkan
- Amazon
- Amazon EC2
- AmazonFSx
- Pembelajaran Mesin Amazon
- Amazon SageMaker
- jumlah
- dan
- api
- Lebah
- berlaku
- Aplikasi
- aplikasi
- terapan
- sesuai
- ADALAH
- DAERAH
- sekitar
- AS
- terkait
- At
- atribut
- mobil
- Otomatis
- secara otomatis
- tersedia
- menghindari
- AWS
- kembali
- Backend
- Saldo
- berdasarkan
- BE
- karena
- menjadi
- sebelum
- makhluk
- manfaat
- TERBAIK
- Praktik Terbaik
- Luar
- Besar
- Milyar
- miliaran
- Memblokir
- membawa
- Membawa
- membangun
- dibangun di
- bisnis
- by
- panggilan
- bernama
- Panggilan
- CAN
- mampu
- Kapasitas
- kartu
- Kartu-kartu
- membawa
- kasus
- Studi Kasus
- mengkatalisasi
- tantangan
- mengubah
- Saluran
- memeriksa
- Cek
- pilihan
- pilihan
- Pilih
- kelas-kelas
- klien
- rapat
- awan
- Kelompok
- kode
- Kolektif
- bergabung
- bagaimana
- Umum
- umum
- Komunikasi
- komunikasi
- dibandingkan
- cocok
- penyelesaian
- komputasi
- menghitung
- komputer
- Visi Komputer
- komputasi
- menyimpulkan
- dilakukan
- konfigurasi
- Memastikan
- Terhubung
- Karena itu
- mengandung
- Wadah
- Wadah
- mengandung
- Konten
- berkontribusi
- kontrol
- dikendalikan
- Mudah
- Konvergensi
- Korupsi
- Biaya
- Biaya
- bisa
- Kelas
- menutupi
- Meliputi
- membuat
- penciptaan
- Kreatif
- kritis
- sangat penting
- kurasi
- Sekarang
- adat
- pelanggan
- menyesuaikan
- data
- akses data
- Persiapan data
- kumpulan data
- memutuskan
- dedicated
- mendalam
- belajar mendalam
- Default
- Derajat
- Tergantung
- tergantung
- menyebarkan
- Mendesain
- dirancang
- diinginkan
- tujuan
- Menentukan
- menentukan
- mengembangkan
- dikembangkan
- Pengembang
- pengembang
- Pengembangan
- mengembangkan
- alat
- Devices
- berbeda
- Difusi
- langsung
- membahas
- dibahas
- didistribusikan
- komputasi terdistribusi
- pelatihan terdistribusi
- distribusi
- Buruh pelabuhan
- Tidak
- domain
- Dont
- turun
- Download
- puluhan
- selama
- setiap
- mudah
- Efektif
- antara
- EMEA
- aktif
- diaktifkan
- memungkinkan
- memungkinkan
- mendorong
- berakhir
- ditingkatkan
- menikmati
- cukup
- memastikan
- Enterprise
- perusahaan
- masuk
- Lingkungan Hidup
- lingkungan
- peralatan
- lengkap
- kesalahan
- kesalahan
- menetapkan
- Bahkan
- peristiwa
- akhirnya
- Setiap
- segala sesuatu
- berkembang
- contoh
- contoh
- Excel
- ada
- mengharapkan
- diharapkan
- pengalaman
- eksperimen
- Menjelajahi
- terkena
- ekspresi
- memperpanjang
- ekstensi
- luar
- sangat
- kain
- Menghadapi
- memudahkan
- memfasilitasi
- faktor
- Gagal
- gagal
- Kegagalan
- keluarga
- keluarga
- Fashion
- FAST
- lebih cepat
- salah
- layak
- Fitur
- Fitur
- beberapa
- bidang
- File
- File
- Pertama
- cocok
- ARMADA KAPAL
- keluwesan
- Fokus
- berfokus
- diikuti
- berikut
- Untuk
- pecahan
- Kerangka
- kerangka
- Prancis
- Kebebasan
- sering
- segar
- teman
- dari
- penuh
- sepenuhnya
- fungsionil
- fungsi
- fungsi
- lebih lanjut
- GAL
- dihasilkan
- generatif
- mendapatkan
- mendapatkan
- GitHub
- diberikan
- GPU
- GPU
- grafik
- besar
- terbesar
- Kelompok
- tumbuh
- menangani
- Penanganan
- Menggantung
- terjadi
- Perangkat keras
- Memiliki
- memiliki
- Kesehatan
- sehat
- bermanfaat
- membantu
- membantu
- High
- Frekuensi tinggi
- kinerja tinggi
- historis
- kap
- host
- JAM
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- Namun
- HPC
- HTML
- http
- HTTPS
- Ratusan
- ratusan juta
- i
- identik
- identitas
- gambar
- gambar
- segera
- Dampak
- melaksanakan
- diimplementasikan
- mengimplementasikan
- penting
- memperbaiki
- ditingkatkan
- perbaikan
- in
- Di lain
- memasukkan
- Termasuk
- Meningkatkan
- Pada meningkat
- Meningkatkan
- makin
- sendiri-sendiri
- industri
- Info
- informasi
- Infrastruktur
- Innovation
- terinspirasi
- install
- contoh
- sebagai gantinya
- terpadu
- integrasi
- Cerdas
- interaksi
- Antarmuka
- perantara
- intern
- memperkenalkan
- diperkenalkan
- IT
- perulangan
- NYA
- Diri
- Pekerjaan
- Jobs
- jpg
- Menjaga
- kunci
- Jenis
- Tahu
- bahasa
- Bahasa
- besar
- besar-besaran
- lebih besar
- Terbaru
- jalankan
- diluncurkan
- meluncurkan
- lapisan
- lapisan
- memimpin
- pemimpin
- pengetahuan
- Warisan
- Tingkat
- perpustakaan
- Perpustakaan
- siklus hidup
- 'like'
- Mungkin
- MEMBATASI
- keterbatasan
- Terbatas
- sedikit
- LLM
- pemuatan
- lokal
- Panjang
- lama
- melihat
- mencari
- Rendah
- mesin
- Mesin belajar
- Mesin
- memelihara
- mempertahankan
- mempertahankan
- membuat
- MEMBUAT
- Membuat
- mengelola
- berhasil
- pengelolaan
- banyak
- Peta
- maksimum
- Memori
- Metadata
- metode
- Metrik
- migrasi
- MILAN
- jutaan
- ML
- MLOps
- mode
- model
- model
- dimodifikasi
- Memantau
- pemantauan
- lebih
- paling
- pindah
- beberapa
- yaitu
- asli
- Alam
- Pengolahan Bahasa alami
- Alam
- perlu
- perlu
- Perlu
- kebutuhan
- jaringan
- berbasis jaringan
- jaringan
- saraf jaringan
- New
- nLP
- simpul
- node
- jumlah
- banyak sekali
- Nvidia
- objek
- of
- menawarkan
- menawarkan
- zaitun
- on
- Sesuai Permintaan
- ONE
- Buka
- open source
- kode sumber terbuka
- dibuka
- Peluang
- optimasi
- Optimize
- dioptimalkan
- pilihan
- Opsi
- teknik mengatur musik
- urutan
- Lainnya
- sendiri
- paket
- paket
- kertas
- dokumen
- pola pikir
- Paralel
- parameter
- parameter
- bagian
- tertentu
- khususnya
- bergairah
- lalu
- path
- pola
- Membayar
- Puncak
- prestasi
- pertunjukan
- izin
- Izin
- Secara fisik
- pipa saluran
- Tempat
- plato
- Kecerdasan Data Plato
- Data Plato
- bermain
- Titik
- kolam
- Kolam renang
- Populer
- Pos
- Posts
- praktek
- praktek
- memprediksi
- preferensi
- disukai
- menyajikan
- hadiah
- mencegah
- sebelumnya
- Utama
- proses
- proses
- pengolahan
- menghasilkan
- program
- Pemrograman
- bahasa pemrograman
- Kemajuan
- memprojeksikan
- tepat
- mengusulkan
- mengusulkan
- hak milik
- protokol
- protokol
- memberikan
- disediakan
- pemberi
- menyediakan
- publik
- publikasi
- tujuan
- menempatkan
- Ular sanca
- pytorch
- kualitas
- menaikkan
- acak
- LANGKA
- Penilaian
- Tarif
- tercapai
- Baca
- Bacaan
- menyadari
- masuk akal
- alasan
- menerima
- baru
- sarankan
- rekomendasi
- catatan
- arsip
- pemulihan
- menurunkan
- mengurangi
- mengurangi
- mengenai
- wilayah
- daerah
- reguler
- secara teratur
- terkait
- relevan
- dapat diandalkan
- terpencil
- menggantikan
- mewakili
- permintaan
- permintaan
- membutuhkan
- kebutuhan
- membutuhkan
- penelitian
- penelitian dan inovasi
- sumber
- Sumber
- Hasil
- Review
- Peran
- peran
- Run
- berjalan
- pembuat bijak
- sama
- Save
- Skalabilitas
- terukur
- Skala
- sisik
- skala
- skema
- ilmiah
- ilmuwan
- cakupan
- script
- SDK
- Pencarian
- Kedua
- detik
- Bagian
- pencarian
- terpilih
- seleksi
- senior
- Tanpa Server
- Server
- layanan
- Layanan
- set
- pengaturan
- beberapa
- pecah
- sharding
- berbagi
- harus
- signifikan
- Sederhana
- kesederhanaan
- serentak
- tunggal
- Ukuran
- ukuran
- keterampilan
- lambat
- kecil
- So
- Perangkat lunak
- Solusi
- beberapa
- sumber
- sumber
- spesialis
- tertentu
- Secara khusus
- ditentukan
- kecepatan
- Pengeluaran
- Berpisah
- Spot
- stabil
- tumpukan
- awal
- Mulai
- dimulai
- Startups
- Negara
- statistik
- Tangga
- berhenti
- henti
- penyimpanan
- menyimpan
- cerita
- Penyelarasan
- aliran
- stream
- kekuatan
- pengupasan
- sangat
- studi
- sukses
- Kisah Sukses
- sukses
- seperti itu
- mendukung
- Didukung
- Mendukung
- sinkronisasi
- sintaksis
- sistem
- tabel
- Mengambil
- tugas
- tugas
- tim
- Teknis
- tensorflow
- Terima kasih
- bahwa
- Grafik
- Dunia
- mereka
- Mereka
- diri
- teoretis
- karena itu
- Ini
- pihak ketiga
- ribuan
- tiga
- Melalui
- keluaran
- waktu
- kali
- Tips
- untuk
- hari ini
- Token
- terlalu
- alat
- alat
- puncak
- Total
- jalur
- lalu lintas
- Pelatihan VE
- terlatih
- Pelatihan
- Terjemahan
- mengangkut
- Triliun
- jenis
- khas
- bawah
- pokok
- memahami
- unik
- unit
- Memperbarui
- us
- kegunaan
- penggunaan
- menggunakan
- Pengguna
- biasanya
- nilai
- Nilai - Nilai
- variasi
- berbagai
- memeriksa
- versi
- melalui
- Video
- View
- penglihatan
- hangat
- Cara..
- cara
- minggu
- BAIK
- Apa
- yang
- sementara
- SIAPA
- seluruh
- akan
- dengan
- dalam
- tanpa
- kata
- Kerja
- bekerja
- pekerja
- kerja
- bekerja
- dunia
- menulis
- tertulis
- tahun
- Kamu
- Anda
- diri
- Youtube
- zephyrnet.dll