Повстання машин: застосування ШІ в реальному світі
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Традиційні підходи до розробки важко підтримувати при використанні складних моделей машинного навчання у виробництві. Розробка на ноутбуці або локальній машині може бути повільною для навчання моделі машинного навчання для інженерів глибокого навчання. У результаті ми зазвичай використовуємо хмарні машини з більш потужним обладнанням для навчання та запуску наших моделей машинного навчання. Це хороша практика, оскільки ми абстрагуємо складні обчислення і замість цього робимо запити AJAX за потреби. У цьому підручнику ми зробимо попередньо навчену модель глибокого навчання під назвою Word2Vec доступною для інших служб, створивши API REST з нуля.
sudoкористувачВбудовування слів — це нещодавня розробка в обробці природної мови та глибокому навчанні, яка революціонізувала обидві галузі завдяки швидкому прогресу. Вбудовування слів – це по суті вектори, кожен з яких відповідає одному слову, так що вектори означають слова. Це можна продемонструвати певними явищами, такими як вектор для king - queen = boy - girl. Вектори Word використовуються для створення всього, від механізмів рекомендацій до чат-ботів, які насправді розуміють англійську мову.
Вбудовування слів не є випадковим; вони генеруються шляхом навчання нейронної мережі. Нещодавня потужна реалізація вбудовування слів надходить від Google під назвою Word2Vec, який навчається шляхом передбачення слів, які з’являються поруч із іншими словами в мові. Наприклад, для слова "cat"нейронна мережа передбачить слова "kitten"та "feline". Ця інтуїція слів, що з’являються поруч один з одним, дозволяє нам розмістити їх у векторному просторі.
Однак на практиці ми зазвичай використовуємо попередньо навчені моделі інших великих корпорацій, таких як Google, щоб швидко створити прототип і спростити процеси розгортання. У цьому посібнику ми завантажимо та використаємо попередньо навчені вбудовування слів від Google Word2Vec. Ми можемо зробити це, виконавши наступну команду в нашому робочому каталозі.
wget http://magnitude.plasticity.ai/word2vec/GoogleNews-vectors-negative300.magnitude
Модель вбудовування слів, яку ми завантажили, має .magnitudeформат. Цей формат дозволяє нам ефективно запитувати модель за допомогою SQL, і тому є оптимальним форматом вбудовування для виробничих серверів. Оскільки нам потрібно мати можливість прочитати .magnitudeформат, ми встановимо pymagnitudeпакет. Ми також встановимо, flaskщоб пізніше обслуговувати передбачення глибокого навчання, зроблені моделлю.
pip3 install pymagnitude flask
Ми також додамо його до нашого трекера залежностей за допомогою наступної команди. Це створює файл з іменем requirements.txtі зберігає наші бібліотеки Python, щоб ми могли повторно встановити їх пізніше.
pip3 freeze > requirements.txt
Для початку ми створимо файл для обробки відкриття та запиту вбудовування слів.
touch model.py
Далі ми додамо наступні рядки model.pyдля імпорту Magnitude.
from pymagnitude import Magnitude
vectors = Magnitude('GoogleNews-vectors-negative300.magnitude')
Ми можемо пограти з pymagnitudeпакетом і моделлю глибокого навчання, використовуючи queryметод, надавши аргумент для слова.
cat_vector = vectors.query('cat')
print(cat_vector)
Для ядра нашого API ми визначимо функцію, яка повертає різницю у значенні двох слів. Це основа більшості рішень глибокого навчання для таких речей, як механізми рекомендацій (тобто показ вмісту з подібними словами).
Ми можемо пограти з цією функцією, використовуючи функції similarityта most_similar .
print(vectors.similarity("cat", "dog"))
print(vectors.most_similar("cat", topn=100))
Реалізуємо калькулятор подібності наступним чином. Цей метод буде викликано Flask API у наступному розділі. Зауважте, що ця функція повертає реальне значення від 0 до 1.
def similarity(word1, word2):
return vectors.similarity(word1, word2)
Ми створимо наш сервер у файлі service.pyз наступним вмістом. Ми імпортуємо flaskта requestобробляємо можливості нашого сервера, а також імпортуємо similarityдвигун із модуля, про який ми писали раніше.
from flask import Flask, request
from model import similarity
app = Flask(__name__)
@app.route("/", methods=['GET'])
def welcome():
return "Welcome to our Machine Learning REST API!"
@app.route("/similarity", methods=['GET'])
def similarity_route():
word1 = request.args.get("word1")
word2 = request.args.get("word2")
return str(similarity(word1, word2))
if __name__ == "__main__":
app.run(port=8000, debug=True)
Наш сервер доволі звичайний, але його можна легко розширити, створивши більше маршрутів за допомогою @app.routeдекоратора.
Ми можемо запустити наш сервер Flask, виконавши такі команди, щоб активувати наше віртуальне середовище, встановити наші пакунки та запустити пов’язаний з ним файл Python.
source venv/bin/activate
pip3 install -r requirements.txt
python3 service.py
Наш сервер буде доступний за адресою localhost:8000. Ми можемо запитувати нашу базу даних localhost:8000/similarity?word1=cat&word2=dogі переглянути відповідь у нашому браузері або через інший клієнт AJAX.
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше