endjin merevolusi tugas sederhana dengan ML.NET
Pelanggan
endjin
Produk & jasa
ML.NET
AutoML
Azure
Industri
Layanan dan Teknologi Informasi
Ukuran Organisasi
Kecil (1-100 karyawan)
Negara/wilayah
Inggris Raya
Endjin adalah bisnis konsultasi spesialis teknologi dan Mitra Emas Microsoft untuk Platform Cloud, Platform Data, Analitik Data, dan DevOps yang berbasis di Inggris. Endjin memiliki antusiasme hebat akan kekuatan revolusioner teknologi dan memanfaatkan kekuatan tersebut untuk membantu pelanggan memecahkan masalah sulit. Baru-baru ini, mereka fokus menggunakan pembelajaran mesin untuk mengatasi masalah bisnis yang sepele, tetapi bernilai tinggi. Hal ini menunjukkan bahwa meskipun pembelajaran mesin sangat bagus untuk memecahkan kasus penggunaan baru, kemampuannya untuk merevolusi tugas sederhana dan sehari-hari sering diabaikan.
Kami kagum dengan kemudahan penggunaan AutoML dan ML.NET untuk mengurangi waktu yang dihabiskan untuk tugas yang memakan waktu dan monoton. Kebebasan yang diperoleh melalui penggunaan teknologi yang mudah diakses dan canggih ini memungkinkan kami untuk memfokuskan waktu kami pada analitik yang dipicu pemikiran kreatif dan mendapatkan wawasan berharga dari data yang mereka hasilkan."
Masalah bisnis
Pada tahun 2014, endjin membuat Azure Weekly, buletin gratis yang meringkas berita teratas dalam seminggu di ekosistem Azure. Untuk 25 masalah pertama, tim di endjin secara manual mengumpulkan buletin, tetapi saat volume konten bertambah, mereka menyadari bahwa hal ini tidak bisa dilanjutkan. Mereka menerapkan mantra perusahaan "bekerja lebih cerdas" dan mengotomatiskan proses end-to-end dengan membuat penggolong teks C# kustom mereka sendiri untuk mengklasifikasikan artikel dari 300 blog lebih ke dalam 19 kategori, termasuk AI + Pembelajaran Mesin, Wawasan, DevOps, Internet of Things, Jaringan, dan Web. Hasilnya cukup baik, tetapi selain perlu menyimpan daftar kata kunci yang aktif untuk diklasifikasikan, diperlukan koreksi manual setiap minggu, yang menyebabkan biaya pemeliharaan yang besar.
Setelah 200+ masalah dan ribuan pelanggan, endjin memutuskan untuk mulai mencari solusi pembelajaran mesin. Mereka tahu bahwa dalam inti platform konten, mereka memiliki dua masalah inti untuk dipecahkan - masalah klasifikasi biner ("apakah ini artikel tentang Azure?") dan masalah klasifikasi multikelas ("area Azure mana yang dibahas dalam artikel ini?"). Oleh karena itu, endjin memutuskan untuk menggunakan ML.NET untuk mengatasi masalah ini, meningkatkan platform mereka, dan menghilangkan biaya pemeliharaan manual.
Saat melihat pekerjaan/proses yang dilakukan oleh sebagian besar organisasi, Anda dapat memecahnya menjadi serangkaian langkah-keputusan 1 detik. Jika Anda menerapkan pembelajaran mesin, alur kerja reaktif, dan Ekonomi API ke ruang masalah, kita mulai memahami apa yang dapat dihadirkan oleh Revolusi Industri ke-4"
Mengapa ML.NET?
Meskipun bahasa pemrograman pilihan mereka adalah C#, kurangnya kerangka kerja pembelajaran mesin kelas pertama untuk .NET berarti bahwa endjin telah menggunakan R dan Python dalam pelanggan sehari-hari yang menghadapi ilmu data dan eksperimen ML. Namun, model pembelajaran mesin produksi yang ditulis dalam R dan Python bermasalah karena opsi hosting terbatas. Platform konten endjin lainnya dibuat menggunakan komponen PaaS dan Tanpa Server, sehingga kombinasi ML.NET dan Azure Functions sangat menarik bagi perusahaan; segera setelah ML.NET diumumkan pada //build 2018, mereka mulai menggunakan kerangka kerja pembelajaran mesin untuk aplikasi mereka.
Dampak ML.NET dan AutoML
Endjin sangat diuntungkan dengan performa tinggi ML.NET, tidak hanya dalam hal peningkatan kecepatan saat mengklasifikasikan artikel, tetapi juga dalam hal akurasi. Sejak mengadopsi ML.NET, mereka telah melihat jauh lebih sedikit artikel yang salah dikategorikan, yang berarti lebih sedikit intervensi manual dan produksi konten yang lebih cepat.
Menggunakan CLI ML.NET dengan AutoML juga telah membuat seluruh proses pelatihan, mengevaluasi, dan menghasilkan kode untuk menggunakan ML.NET kebodohan. Menggunakan AutoML untuk memilih model berkinerja terbaik dan membuat pelatihan model dan kode konsumsi secara otomatis untuk klasifikasi (dibandingkan dengan memilih transformasi data, algoritme, dan opsi algoritme secara otomatis untuk membuat model dan kode ML.NET) meningkatkan akurasi model dari 68% menjadi 78%, dan menjalankan model ini terhadap data riwayat tidak hanya menyoroti banyak artikel yang telah salah diklasifikasikan, tetapi juga mengidentifikasi banyak artikel valid yang telah dikecualikan oleh model klasifikasi asli.
Arsitektur solusi
Membuat aplikasi dengan ML.NET
Ketika endjin pertama kali mulai menggunakan ML.NET, mereka membuat alat untuk mengonversi data platform konten riwayat menjadi himpunan data CSV untuk melatih model ML.NET secara manual, dan mereka membuat alat lain untuk memilih 20% himpunan data pelatihan secara acak sebagai himpunan data validasi. Mereka kemudian membuat model ML.NET secara manual untuk memprediksi artikel termasuk dalam kategori mana.
Setelah CLI ML.NET dengan AutoML tersedia untuk digunakan, proses tersebut disederhanakan dan menghasilkan hasil yang jauh lebih baik. Pertama, AutoML secara otomatis membuat himpunan data validasi dari himpunan data pelatihan, sehingga alat kustom kedua endjin tidak lagi diperlukan. Kedua, mengatur waktu eksplorasi maksimum selama satu jam, AutoML dapat melatih, menyetel, dan mengevaluasi beberapa model klasifikasi dan menampilkan 5 model berkinerja teratas.
Setelah endjin memiliki model ML.NET terlatih yang dihasilkan oleh AutoML, mereka mengintegrasikan model ke dalam platform konten yang ada, cukup dengan menukar algoritma klasifikasi kustom yang ada. Model ML.NET dihosting di dalam Azure Function untuk mengaktifkan skala elastis evaluasi model. Fungsi Tahan Lama baru digunakan untuk memungkinkan model dilatih ulang sesuai permintaan.
Pemrosesan data
Untungnya, tim di endjin mengetahui ketika mereka membuat versi asli platform konten yang suatu hari mereka ingin menyempurnakannya menggunakan pembelajaran mesin, sehingga mereka menyimpan semua data yang digunakan untuk membuat buletin dalam format mentah dan diproses (lebih dari 4.000 file JSON yang berukuran total sekitar 3 GB). Dataset ini diubah menjadi dua himpunan data pelatihan: 28 MB . File CSV untuk klasifikasi biner, dan 9 MB . File CSV untuk klasifikasi multiklasifikasi.
Transformasi data dan algoritma pembelajaran mesin
Karena judul dan konten posting blog yang diklasifikasikan adalah teks bebas, keduanya perlu dikonversi menggunakan transformasi data Fiturisasi Teks. Kemudian judul dan konten digabungkan ke dalam satu bidang menggunakan transformasi data Gabungkan.
Model asli yang dibuat secara manual menggunakan algoritma klasifikasi multikelas SdcaMaximumEntropy. Namun, ketika endjin menggunakan ML.NET CLI dengan AutoML, mereka menemukan model yang berkinerja lebih tinggi untuk skenario mereka.
Untuk skenario pertama ("apakah ini artikel tentang Azure?") AutoML memilih AveragedPerceptronBinary sebagai algoritme dengan performa terbaik. Untuk skenario kedua ("Area Azure mana yang tercakup dalam artikel ini?") AutoML memilih LightGbmMulti sebagai algoritme berkinerja tertinggi dan menghasilkan kode berikut untuk melatih penggolong multikelas:
public static IEstimator
BuildTrainingPipeline(MLContext mlContext){
// Data process configuration with pipeline data transformations
var dataProcessPipeline = mlContext.Transforms.Conversion.MapValueToKey("CategoryId", "CategoryId")
.Append(mlContext.Transforms.Text.FeaturizeText("Title_tf", "Title"))
.Append(mlContext.Transforms.Text.FeaturizeText("Content_tf", "Content"))
.Append(mlContext.Transforms.Concatenate("Features", new[] { "Title_tf", "Content_tf", "Issue" }));
// Set the training algorithm
var trainer = mlContext.MulticlassClassification.Trainers.LightGbm(labelColumnName: "CategoryId", featureColumnName: "Features")
.Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel", "PredictedLabel"));
var trainingPipeline = dataProcessPipeline.Append(trainer);
return trainingPipeline;
}
Endjin telah menggunakan ML.NET untuk memperbaiki proses mereka dalam memilih dan mengategorikan artikel untuk buletin Azure mereka. Menggunakan ML.NET dan AutoML untuk menghasilkan model pembelajaran mesin juga memungkinkan perusahaan untuk mengurangi fokus pada penyempurnaan parameter model dan lebih fokus untuk menciptakan nilai bisnis mereka.
Siap untuk memulai?
Tutorial langkah demi langkah kami akan membantu Anda menjalankan ML.NET di komputer.