
DGA-जनित डोमेन पहचान डीप लर्निंग मॉडल का उपयोग करके
डीप लर्निंग मॉडल की सहायता से DGA-जनरेटेड डोमेन का पता लगाना

मैं वर्तमान में विकास के लिए Conda (Anaconda/Miniconda) का उपयोग कर रहा हूँ, लेकिन आप शामिल requirements.txt का उपयोग करके Pipenv या virtualenv का भी उपयोग कर सकते हैं।
conda:
conda env create -f environment.yml
conda activate degas
Pipenv:
pipenv install -r requirements.txt
pipenv shell
Virtualenv भी समान है, लेकिन अब Pipenv की जगह virtualenv का उपयोग करने का वास्तव में कोई कारण नहीं है।
models निर्देशिका में एक प्रशिक्षित मॉडल चेक इन किया गया है। यदि आप अपना खुद का प्रशिक्षित करना चाहते हैं, तो आपको पहले S3 से प्रशिक्षण डेटा डाउनलोड करना होगा:
python degas/runner download-data
डेटा को उस सरल CSV रूप में संसाधित करें जिसकी मॉडल बिल्डर अपेक्षा करता है:
python degas/runner process-data data/raw data/processed
इन चरणों को केवल एक बार चलाने की आवश्यकता है, जब तक कि आप प्रशिक्षण डेटा नहीं बदलते।
फिर जनरेट किए गए डेटासेट का उपयोग करके मॉडल को फिर से प्रशिक्षित करने के लिए, पहले अपने पसंदीदा पैकेज मैनेजर का उपयोग करके tensorflow-gpu इंस्टॉल करें (conda install tensorflow-gpu या pip install tensorflow-gpu) ताकि प्रशिक्षण GPU-त्वरित हो।
फिर, चलाएँ:
python degas/runner train-model data/processed
कुछ उपलब्ध ट्यूनिंग विकल्पों के लिए python degas/runner train-model --help चलाएँ।
GTX 1070 पर इसमें लगभग डेढ़ घंटा लगता है। यह केवल लगभग 9 epochs चलता है और फिर रुक जाता है; आप इसे, मान लीजिए, 5 epochs के लिए चला सकते हैं और आधे प्रशिक्षण समय में भी अच्छी सटीकता प्राप्त कर सकते हैं:
python degas/runner train-model --epochs 5 data/processed
चूँकि यह प्रोजेक्ट अंतर्निहित डीप लर्निंग लाइब्रेरी के रूप में Tensorflow का उपयोग करता है, इसलिए inference के लिए इसका उपयोग करने का अनुशंसित तरीका Tensorflow Serving का उपयोग करना है।
आप इसे इस प्रकार serve कर सकते हैं:
docker run -p 8501:8501 \
--mount type=bind,source=models/degas,target=/models/degas\
-e MODEL_NAME=degas -t tensorflow/serving
उपलब्ध विकल्पों के बारे में अधिक जानकारी के लिए Tensorflow Serving docs देखें।
इस कार्य के लिए डीप लर्निंग क्यों? क्योंकि यह अच्छी तरह काम करता है, और इसे लागू करना कठिन नहीं है। Byu et al, 2018 से:
"डीप न्यूरल नेटवर्क हाल ही में DGA पहचान पर साहित्य में प्रकट हुए हैं Woodbridge et al. (2016); Saxe & Berlin (2017); Yu et al. (2017)। वे सटीकता में पारंपरिक मशीन लर्निंग विधियों से काफी बेहतर प्रदर्शन करते हैं, मॉडल के प्रशिक्षण की जटिलता बढ़ाने और बड़े डेटासेट की आवश्यकता की कीमत पर।"
चूँकि प्रशिक्षण के लिए बहुत सारा डेटा उपलब्ध है, डीप लर्निंग मॉडल बनाना उतना ही आसान है या विकल्पों से भी आसान है।
https://openreview.net/forum?id=BJLmN8xRW¬eId=BJLmN8xRW http://faculty.washington.edu/mdecock/papers/byu2018a.pdf
egrep -i '^d.*g.*a.* /usr/share/dict/words )रिकॉर्ड के लिए, मैं इसे "de-gah" उच्चारित कर रहा हूँ, जैसे Edgar Degas, न कि "de-gas", जैसे "सभी गैस निकालना।"