Desain AI untuk analisis file log

12

Saya sedang mengembangkan alat AI untuk menemukan kesalahan peralatan yang dikenal dan menemukan pola kegagalan baru. File log ini berbasis waktu dan telah mengetahui pesan (informasi dan kesalahan). Saya menggunakan JavaScript library drop Event untuk menunjukkan data dengan cara yang lembut, tetapi pekerjaan saya yang sebenarnya dan keraguan adalah bagaimana melatih AI untuk menemukan yang diketahui pola dan temukan kemungkinan pola baru. Saya punya beberapa persyaratan:

1 - Alat harus a. tidak memiliki ketergantungan pada instalasi lingkungan ekstra atau b. semakin sedikit semakin baik (skenario sempurna adalah menjalankan alat sepenuhnya pada browser dalam mode mandiri);

2 - Kemungkinan untuk membuat penganalisa pola terfragmentasi, semacam modularitas, satu modul per kesalahan;

Apa jenis algoritma yang direkomendasikan untuk melakukan ini (jaringan saraf, algoritma genetika, dll)? Ada sesuatu untuk bekerja menggunakan JavaScript? Jika tidak, apa bahasa terbaik untuk membuat AI ini?

Juliano Oliveira
sumber
1
Saya menduga sesuatu berdasarkan aturan akan lebih tepat untuk ini daripada pembelajaran mesin
antlersoft
@ antlersoft Untuk masalah yang diketahui, saya setuju, tetapi saya ingin mencari pola untuk membuat korelasi dengan cacat juga.
Juliano Oliveira
Direkomendasikan? Mari berfikir ... Menggunakan regexp? Jaringan saraf direkomendasikan untuk masalah yang tidak memiliki solusi menggunakan algoritma klasik. Hampir semua jaringan saraf mendapatkan data yang diproses. Jika Anda "memproses" log, Anda juga mendapatkan solusinya.
betontalpfa

Jawaban:

9

Korelasi Antar Entri

Rekomendasi pertama adalah untuk memastikan bahwa entri peringatan dan informasi yang sesuai dalam file log disajikan bersama dengan kesalahan ke dalam komponen pembelajaran mesin dari solusi. Semua entri log berpotensi memasukkan data yang berguna jika ada kemungkinan ada korelasi antara pesan informasi, peringatan, dan kesalahan. Terkadang korelasinya kuat dan karenanya penting untuk memaksimalkan tingkat pembelajaran.

Administrator sistem sering mengalami ini sebagai serangkaian peringatan diikuti oleh kesalahan yang disebabkan oleh kondisi yang ditunjukkan dalam peringatan. Informasi dalam peringatan lebih menunjukkan akar penyebab kegagalan daripada entri kesalahan yang dibuat ketika sistem atau subsistem gagal.

Jika seseorang sedang membangun dashboard kesehatan sistem untuk peralatan atau rangkaian mesin yang saling beroperasi, yang tampaknya menjadi kasus dalam pertanyaan ini, akar masalah dan beberapa kemampuan peringatan dini adalah informasi kunci untuk ditampilkan.

Selain itu, tidak semua kondisi kesehatan sistem yang buruk berakhir dengan kegagalan.

Satu-satunya entri log yang harus dihilangkan dengan penyaringan sebelum presentasi ke mekanisme pembelajaran adalah orang-orang yang pasti tidak relevan dan tidak berkorelasi. Ini mungkin terjadi ketika file log adalah agregasi dari logging dari beberapa sistem. Dalam kasus seperti itu, entri untuk sistem independen yang dianalisis harus diekstraksi sebagai isolat dari entri yang tidak mungkin berkorelasi dengan fenomena yang dianalisis.

Penting untuk dicatat bahwa membatasi analisis pada satu entri pada satu waktu sangat membatasi kegunaan dasbor. Kesehatan suatu sistem tidak sama dengan indikasi kesehatan dari entri log terbaru. Ini bahkan bukan jumlah linear dari indikasi kesehatan dari entri N terbaru.

Kesehatan sistem memiliki hubungan yang sangat tidak linier dan sangat sementara dengan banyak entri. Pola dapat muncul secara bertahap selama beberapa hari pada banyak jenis sistem. Basis (atau pangkalan) jaring saraf dalam sistem harus dilatih untuk mengidentifikasi indikasi kesehatan non-linier ini, bahaya yang akan datang, dan kondisi risiko jika dashboard yang sangat berguna diinginkan. Untuk menampilkan kemungkinan kegagalan yang akan datang atau masalah kontrol kualitas, seluruh jendela waktu entri log dengan panjang yang cukup harus masuk ke jaringan saraf ini.

Perbedaan Antara Pola Yang Dikenal dan Tidak Diketahui

Perhatikan bahwa identifikasi pola yang dikenal berbeda dalam satu hal penting daripada identifikasi pola baru. Keistimewaan dari entri sintaksis kesalahan diketahui telah diidentifikasi, sangat mengurangi beban belajar dalam tahap normalisasi input pemrosesan untuk entri tersebut. Keunikan sintaksis dari tipe kesalahan baru harus ditemukan terlebih dahulu.

Entri dari tipe yang dikenal juga dapat dipisahkan dari yang tidak dikenal, memungkinkan penggunaan tipe entri yang diketahui sebagai data pelatihan untuk membantu dalam pembelajaran pola sintaksis baru. Tujuannya adalah untuk menyajikan informasi yang dinormalisasi secara sintaksis ke analisis semantik.

Tahap Normalisasi Pertama untuk File Log

Jika cap waktu selalu berada di tempat yang sama dalam entri, mengonversinya menjadi milidetik relatif dan mungkin menghapus karakter 0x0d sebelum 0x0 karakter dapat dilakukan sebelum hal lain sebagai langkah pertama dalam normalisasi. Stack traces juga dapat dilipat menjadi array dibatasi tingkat jejak tab sehingga ada korespondensi satu-ke-satu antara entri log dan garis log.

Informasi yang dinormalisasi secara sintaksis yang muncul dari entri yang dikenali dan tidak dikenal baik yang bertipe error maupun non-error kemudian dapat disajikan kepada jaring tanpa pengawasan untuk identifikasi naif kategori-kategori struktur semantik. Kami tidak ingin mengategorikan angka atau variabel teks seperti nama pengguna atau nomor seri bagian.

Jika informasi yang dinormalkan secara sintaksis ditandai dengan tepat untuk menunjukkan simbol yang sangat bervariasi seperti jumlah, kapasitas, metrik, dan stempel waktu, ekstraksi fitur dapat diterapkan untuk mempelajari pola ekspresi dengan cara yang menjaga perbedaan antara struktur semantik dan variabel. Mempertahankan perbedaan itu memungkinkan pelacakan tren yang lebih berkelanjutan (kurang diskrit) dalam metrik sistem. Setiap entri mungkin memiliki nol atau lebih variabel seperti itu, apakah diketahui apriori atau baru-baru ini diperoleh melalui ekstraksi fitur.

Tren dapat dibuat grafik berdasarkan waktu atau terhadap jumlah contoh dari jenis tertentu. Grafik tersebut dapat membantu dalam mengidentifikasi kelelahan mekanis, pendekatan kondisi kelebihan kapasitas, atau risiko lain yang meningkat ke titik kegagalan. Selanjutnya jaring saraf dapat dilatih untuk menghasilkan indikator peringatan ketika tren menunjukkan kondisi seperti itu akan datang.

Penebangan Malas

Semua analisis log ini akan diperdebatkan jika arsitek perangkat lunak dan petugas teknologi berhenti meninggalkan format penyimpanan informasi sistem penting ke berbagai keinginan pengembang perangkat lunak. File log umumnya berantakan, dan ekstraksi informasi statistik tentang pola di dalamnya adalah salah satu tantangan paling umum dalam kontrol kualitas perangkat lunak. Kemungkinan bahwa kekakuan akan pernah diterapkan secara universal untuk penebangan kecil karena tidak ada kerangka kerja penebangan populer yang mendorong kekakuan. Itu kemungkinan besar mengapa pertanyaan ini sering dilihat.

Bagian Persyaratan dari Pertanyaan Khusus ini

Dalam kasus khusus yang disajikan dalam pertanyaan ini, persyaratan # 1 menunjukkan preferensi untuk menjalankan analisis di browser, yang mungkin tetapi tidak disarankan. Meskipun ECMA adalah bahasa scripting yang luar biasa dan mesin ekspresi reguler yang dapat membantu dalam mempelajari parser dimasukkan ke dalam ECMA (yang sesuai dengan bagian lain dari persyaratan # 1, tidak memerlukan instalasi tambahan) bahasa yang belum dikompilasi hampir sama efisien seperti Java. Dan bahkan Java tidak seefisien C karena pengumpulan sampah dan inefisiensi yang terjadi dengan mendelegasikan pemetaan kode byte ke kode mesin untuk menjalankan waktu.

Banyak eksperimen dalam pembelajaran mesin menggunakan Python, bahasa lain yang luar biasa, tetapi sebagian besar pekerjaan yang saya lakukan dengan Python kemudian dipindahkan ke C ++ yang efisien secara komputasi untuk hampir 1.000 hingga satu peningkatan kecepatan dalam banyak kasus. Bahkan pencarian metode C ++ adalah hambatan, sehingga port menggunakan pewarisan sangat sedikit, dalam gaya ECMA, tetapi jauh lebih cepat. Dalam kode kernel tipikal tradisional, struktur C dan penggunaan fungsi pointer menghilangkan overhead vtable.

Persyaratan kedua dari handler modular adalah masuk akal dan menyiratkan lingkungan aturan yang dipicu yang mungkin tergoda untuk dianggap tidak sesuai dengan arsitektur NN, tetapi tidak. Setelah kategori pola telah diidentifikasi, mencari yang paling umum pertama kali dalam input data lebih lanjut sudah tersirat dalam perbedaan yang diketahui / tidak diketahui yang sudah tertanam ke dalam proses di atas. Namun ada tantangan dengan pendekatan modular ini.

Karena kesehatan sistem sering diindikasikan oleh tren dan bukan entri tunggal (seperti yang dibahas di atas) dan karena kesehatan sistem bukan jumlah linear dari nilai kesehatan entri individu, pendekatan modular untuk menangani entri tidak boleh hanya disalurkan ke layar tanpa lebih lanjut. analisis. Ini sebenarnya di mana jaring saraf akan memberikan keuntungan fungsional terbesar dalam pemantauan kesehatan. Keluaran modul harus memasuki jaringan saraf yang dapat dilatih untuk mengidentifikasi indikasi kesehatan nonlinier, bahaya yang akan datang, dan kondisi risiko.

Selain itu, aspek temporal dari perilaku pra-kegagalan menyiratkan bahwa seluruh jendela waktu entri log dengan panjang yang cukup harus masuk ke jaring ini. Ini lebih lanjut menyiratkan ketidaktepatan ECMA atau Python sebagai pilihan untuk bagian solusi yang intensif secara komputasi. (Catat bahwa tren dalam Python adalah melakukan apa yang saya lakukan dengan C ++: Gunakan desain berorientasi objek, enkapsulasi, dan mudah untuk mengikuti pola desain untuk kode pengawasan dan kode seperti kernel yang sangat efisien secara komputasi untuk pembelajaran aktual dan intensif komputasi lainnya atau data intensif) fungsi.)

Memilih Algoritma

Tidak disarankan untuk memilih algoritma pada tahap awal arsitektur (seperti yang tersirat di akhir pertanyaan). Arsitek prosesnya terlebih dahulu. Tentukan komponen pembelajaran, jenis yang mereka butuhkan, status tujuan mereka setelah pelatihan, di mana penguatan dapat digunakan, dan bagaimana sinyal wellness / error akan dihasilkan untuk memperkuat / memperbaiki perilaku jaringan yang diinginkan. Basis penentuan ini tidak hanya pada konten tampilan yang diinginkan tetapi pada throughput yang diharapkan, kebutuhan sumber daya komputasi, dan tingkat pembelajaran minimal yang efektif. Algoritma, bahasa, dan perencanaan kapasitas untuk sistem hanya dapat dipilih secara bermakna setelah semua hal itu setidaknya didefinisikan secara kasar.

Pekerjaan Serupa dalam Produksi

Penguraian adaptif sederhana dijalankan di lab di sini sebagai bagian dari otomatisasi jejaring sosial, tetapi hanya untuk rangkaian simbol dan pola sekuensial yang terbatas. Ia melakukan skala tanpa konfigurasi ulang ke unit linguistik basis besar yang sewenang-wenang, awalan, ujung, dan sufiks, hanya dibatasi oleh kapasitas dan throughput perangkat keras kami. Keberadaan perpustakaan ekspresi reguler sangat membantu untuk menjaga desain tetap sederhana. Kami menggunakan pustaka seri PCRE versi 8 yang diumpankan oleh bentuk DCNN ansiotropik untuk ekstraksi fitur dari jendela yang bergerak melalui teks input dengan ukuran jendela yang dapat dikonfigurasi dan memindahkan ukuran kenaikan. Heuristik yang diterapkan untuk memasukkan statistik teks yang dikumpulkan dalam lintasan pertama menghasilkan serangkaian PCRE hipotetis yang disusun dalam dua lapisan.

Optimalisasi terjadi untuk menerapkan bobot probabilistik yang lebih tinggi ke PCRE terbaik dalam pencarian teks yang kacau balau. Ini menggunakan strategi konvergensi gradient descent yang sama yang digunakan dalam propagasi kembali NN dalam pelatihan. Ini adalah pendekatan naif yang tidak membuat asumsi seperti adanya jejak balik, file, atau kesalahan. Ini akan beradaptasi secara seimbang dengan pesan-pesan Arab dan Spanyol.

Outputnya adalah grafik yang diarahkan sewenang-wenang dalam memori, yang mirip dengan dump database berorientasi objek.

قنبلة -> dangereux -> 4anlyss
bomba -> dangereux
ambiguïté -> 4anlyss -> préemption -> قنبلة

Meskipun algoritme pendaftar ulang untuk versi penguatan dihilangkan dan sinyal kesehatan sudah tersedia, pekerjaan lain lebih dulu melanjutkan pengurai adaptif atau bekerja menuju langkah selanjutnya untuk menggunakan pekerjaan untuk bahasa alami: Menyesuaikan grafik berarah dengan grafik berarah yang bertahan menyaring mewakili gagasan, yang akan meniru aspek perenungan gagasan pemahaman bahasa.

Komentar Terakhir

Sistem memiliki komponen dan arsitektur proses yang mirip dengan masalah analisis log dan membuktikan konsep yang tercantum di atas. Tentu saja, semakin banyak kekacauan dalam cara penebangan dilakukan antara pengembang sistem melakukan penebangan, semakin sulit bagi manusia atau agen buatan untuk mengacaukan entri. Beberapa sistem logging telah begitu buruk kontrol kualitasnya begitu lama sehingga log hampir tidak berguna.

Douglas Daseeco
sumber