Mengurangi latensi dan meningkatkan performa
Panduan ini menjelaskan cara mengurangi latensi jaringan dan meningkatkan performa layanan saat menggunakan layanan Face. Kecepatan dan performa aplikasi Anda akan memengaruhi pengalaman pengguna akhir Anda, seperti orang yang mendaftar dan menggunakan sistem identifikasi wajah.
Mitigasi latensi
Anda mungkin mengalami latensi saat menggunakan layanan Face. Latensi mengacu pada segala jenis penundaan yang terjadi ketika sistem berkomunikasi melalui jaringan. Umumnya, kemungkinan penyebab latensi termasuk:
- Jarak fisik yang harus ditempuh masing-masing paket dari sumber ke tujuan.
- Masalah dengan media transmisi.
- Kesalahan pada perute atau sakelar di sepanjang jalur transmisi.
- Waktu yang diperlukan oleh aplikasi antivirus, firewall, dan mekanisme keamanan lainnya untuk memeriksa paket.
- Kerusakan pada aplikasi klien atau server.
Bagian ini menjelaskan bagaimana Anda dapat mengurangi berbagai penyebab latensi khusus untuk layanan Azure AI Face.
Catatan
Layanan Azure AI tidak menyediakan Perjanjian Tingkat Layanan (SLA) apa pun mengenai latensi.
Pilih wilayah yang sesuai untuk sumber daya Face Anda
Latensi jaringan, waktu yang diperlukan informasi untuk bepergian dari sumber (aplikasi Anda) ke tujuan (sumber daya Azure Anda), sangat dipengaruhi oleh jarak geografis antara permintaan pembuatan aplikasi dan server Azure yang merespons permintaan tersebut. Misalnya, jika sumber daya Face Anda terletak di EastUS
, sumber daya memiliki waktu respons yang lebih cepat untuk pengguna di New York, dan pengguna di Asia mengalami penundaan yang lebih lama.
Kami menyarankan agar Anda memilih wilayah yang paling dekat dengan pengguna Anda untuk meminimalkan latensi. Jika pengguna Anda didistribusikan ke seluruh dunia, pertimbangkan untuk membuat beberapa sumber daya di berbagai wilayah dan permintaan perutean ke wilayah terdekat dengan pelanggan Anda. Atau, Anda dapat memilih wilayah yang berada di dekat pusat geografis semua pelanggan Anda.
Menggunakan penyimpanan blob Azure untuk URL jarak jauh
Layanan Face menyediakan dua cara untuk mengunggah gambar untuk diproses: mengunggah data byte mentah gambar langsung dalam permintaan, atau menyediakan URL ke gambar jarak jauh. Terlepas dari metodenya, layanan Face perlu mengunduh gambar dari lokasi sumbernya. Jika koneksi dari layanan Face ke klien atau server jarak jauh lambat atau buruk, itu memengaruhi waktu respons permintaan. Jika Anda mengalami masalah dengan latensi, pertimbangkan untuk menyimpan gambar di Azure Blob Storage dan meneruskan URL gambar dalam permintaan. Untuk detail implementasi selengkapnya, lihat menyimpan gambar di Azure Premium Blob Storage. Contoh panggilan API:
var url = "https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name>";
var response = await faceClient.DetectAsync(new Uri(url), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: false);
var faces = response.Value;
Pastikan untuk menggunakan akun penyimpanan di wilayah yang sama dengan sumber daya Face. Ini mengurangi latensi koneksi antara layanan Face dan akun penyimpanan.
Menggunakan ukuran file yang optimal
Jika file gambar yang Anda gunakan besar, itu memengaruhi waktu respons layanan Face dengan dua cara:
- Dibutuhkan lebih banyak waktu untuk mengunggah file.
- Dibutuhkan lebih banyak waktu bagi layanan untuk memproses file, sebanding dengan ukuran file.
Tradeoff antara akurasi dan kecepatan jaringan
Kualitas gambar input memengaruhi akurasi dan latensi layanan Face. Gambar dengan kualitas yang lebih rendah dapat mengakibatkan hasil yang salah. Gambar dengan kualitas yang lebih tinggi dapat memungkinkan interpretasi yang lebih tepat. Namun, gambar dengan kualitas yang lebih tinggi juga meningkatkan latensi jaringan karena ukuran filenya yang lebih besar. Layanan ini membutuhkan lebih banyak waktu untuk menerima seluruh file dari klien dan untuk memprosesnya, sebanding dengan ukuran file. Di atas tingkat tertentu, peningkatan kualitas lebih lanjut tidak akan secara signifikan meningkatkan akurasi.
Untuk mencapai keseimbangan optimal antara akurasi dan kecepatan, ikuti tips berikut untuk mengoptimalkan data input Anda.
- Untuk operasi deteksi wajah dan pengenalan, lihat data input untuk deteksi wajah dan data input untuk pengenalan wajah.
- Untuk deteksi keaktivaan, lihat tutorial.
Tips ukuran file lainnya
Perhatikan tips tambahan berikut:
- Untuk deteksi wajah, saat menggunakan model
FaceDetectionModel.Detection01
deteksi , mengurangi ukuran file gambar meningkatkan kecepatan pemrosesan. Saat Anda menggunakan modelFaceDetectionModel.Detection02
deteksi , mengurangi ukuran file gambar hanya akan meningkatkan kecepatan pemrosesan jika file gambar lebih kecil dari 1920x1080 piksel. - Untuk pengenalan wajah, mengurangi ukuran wajah hanya akan meningkatkan kecepatan jika gambar lebih kecil dari 200x200 piksel.
- Performa metode deteksi wajah juga tergantung pada berapa banyak wajah dalam gambar. Layanan Face dapat mengembalikan hingga 100 wajah untuk gambar. Face diberi peringkat berdasarkan ukuran persegi wajah dari besar hingga kecil.
Memanggil API secara paralel jika memungkinkan
Jika Anda perlu memanggil beberapa API, pertimbangkan untuk memanggilnya secara paralel jika desain aplikasi Anda memungkinkannya. Misalnya, jika Anda perlu mendeteksi wajah dalam dua gambar untuk melakukan perbandingan wajah, Anda dapat memanggilnya dalam tugas asinkron:
string url1 = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection1.jpg";
string url2 = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection2.jpg";
var response1 = client.DetectAsync(new Uri(url1), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: false);
var response2 = client.DetectAsync(new Uri(url2), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, returnFaceId: false);
Task.WaitAll(new Task<Response<IReadOnlyList<FaceDetectionResult>>>[] { response1, response2 });
IEnumerable<FaceDetectionResult> results = response1.Result.Value.Concat(response2.Result.Value);
Lancar di atas lalu lintas berduri
Performa layanan Face dapat dipengaruhi oleh lonjakan lalu lintas, yang dapat menyebabkan pembatasan, throughput yang lebih rendah, dan latensi yang lebih tinggi. Sebaiknya tingkatkan frekuensi panggilan API secara bertahap dan hindari percobaan ulang segera. Misalnya, jika Anda memiliki 3000 foto untuk melakukan deteksi wajah, jangan mengirim 3000 permintaan secara bersamaan. Sebagai gantinya, kirim 3000 permintaan secara berurutan selama 5 menit (yaitu, sekitar 10 permintaan per detik) untuk membuat lalu lintas jaringan lebih konsisten. Jika Anda ingin mengurangi waktu penyelesaian, tingkatkan jumlah panggilan per detik secara bertahap untuk memperlancar lalu lintas. Jika Anda mengalami kesalahan, lihat Menangani kesalahan secara efektif untuk menangani respons.
Menangani kesalahan secara efektif
Kesalahan 429
dan 503
dapat terjadi pada panggilan Face API Anda karena berbagai alasan. Aplikasi Anda harus selalu siap untuk menangani kesalahan ini. Berikut beberapa rekomendasi kami:
Kode galat HTTP | Deskripsi | Rekomendasi |
---|---|---|
429 |
Pembatasan | Anda mungkin mengalami batas tarif dengan panggilan bersamaan. Anda harus mengurangi frekuensi panggilan dan mencoba kembali dengan backoff eksponensial. Hindari percobaan ulang segera dan hindari mengirim ulang banyak permintaan secara bersamaan. Jika Anda ingin meningkatkan batas, lihat bagian Minta peningkatan dari panduan kuota. |
503 |
Layanan tidak tersedia | Layanan mungkin sibuk dan tidak dapat segera menanggapi permintaan Anda. Anda harus mengadopsi strategi back-off yang mirip dengan strategi untuk kesalahan 429 . |
Memastikan keandalan dan dukungan
Berikut ini adalah tips lain untuk memastikan keandalan dan dukungan tinggi aplikasi Anda:
- Buat GUID unik sebagai
client-request-id
header permintaan HTTP dan kirimkan dengan setiap permintaan. Ini membantu Microsoft menyelidiki kesalahan apa pun dengan lebih mudah jika Anda perlu melaporkan masalah dengan Microsoft.- Selalu rekam
client-request-id
dan respons yang Anda terima saat mengalami respons yang tidak terduga. Jika Anda memerlukan bantuan apa pun, berikan informasi ini kepada Dukungan Microsoft, bersama dengan ID sumber daya Azure dan periode waktu saat masalah terjadi.
- Selalu rekam
- Lakukan uji coba sebelum Anda merilis aplikasi Anda ke dalam produksi. Pastikan aplikasi Anda dapat menangani kesalahan dengan benar dan efektif.
Langkah berikutnya
Dalam panduan ini, Anda mempelajari cara meningkatkan performa saat menggunakan layanan Face. Selanjutnya, ikuti tutorial untuk menyiapkan solusi perangkat lunak yang berfungsi yang menggabungkan logika sisi server dan sisi klien untuk melakukan deteksi keakuratan wajah pada pengguna.