пятница, 10 декабря 2021 г.

І ще стаття про квантові алгоритми і проблему дизайну протеїнів на DOU.UA

Написання статті зайняло більше місяця, напевне власне імплементація алгоритму для демо проекту зайняла менше в нашої команди. 

Власне посилання на статтю: #00 Квантові обчислення і дизайн протеїнів, D-Wave

З останніх цікавих подій приємно згадати лекцію про основи квантових обчислень у IT Step University, м. Львів, https://www.facebook.com/ITSTEPUniversity/

пятница, 5 ноября 2021 г.

Моя стаття про квантові алгоритми і фінтех на DOU.UA

Нещодавно відправив на DOU.UA для публікації статтю "Який стосунок квантові алгоритми мають до S&P 500 індексу". Власне, нещодавно це у вересні :) Мотивацією до написання було бажання розібратися в алгоритмі QEO, який ми використовували для тестування представлення проблеми дизайну протеїнів.

Це цікавий досвід перекладати з Англійської на Українську технічні речі, де квантові алгоритми і вища математика займають більшість статті. Спробував спрощувати виклад, наскільки я розумію. Мені дуже подобається читати і слухати лекції Річарда Фейнмана, його форма подання надзвичайно доступна для сприйняття.

пятница, 9 апреля 2021 г.

Квантовий алгоритм "Variational Quantum Eigensolver"

Алгоритм "Variational Quantum Eigensolver" - це гібридний алгоритм із використанням класичних і квантових обчислень.

В цьому алгоритмі класичний комп'ютер керує експериментальними параметрами, що контролюють підготовку квантового стану, потім квантовий комп’ютер реалізує цей стан із кубітами і обчислює його властивості.

Терміни (всього 3)

Для початку введемо визначення трьох ключових термінів:

  1. Хвильова функція (Wavefunction): математичний опис квантового стану.
  2. Гамільтоніан (Hamiltonian): квантовий енергетичний оператор, який описує загальну енергію квантової системи.
  3. Квантові вентилі (Quantum gates): операції, що виконуються над кубітами, маніпуляції квантовими станами. (Просто: аналогом квантових вентилів є базові операції в класичних алгоритмах - І, АБО, НІ і т.д.)

Приклад

Ось як виглядає використання VQE для обчислення довжини молекулярних зв'язків за допомогою квантового комп’ютера:

1. Перетворення Гамільтоніана молекули у кубітовий Гамільтоніан.

Береться репрезентація взаємодій електронів в молекулі і встановлюється співвідношення з системою кубітів. Ви можете уявити взаємодію між електронними орбіталями в молекулах як про створення квантової заплутаності у системі кубітів. Чим більша молекула, яку ви намагаєтеся змоделювати, тим більше у вас електронних орбіталей, отже, тим більше кубітів вам потрібно.

2. Вибір "пробної хвильової функції" або випадкового початкового стану і кодування його на квантовому комп'ютері.

Уявіть, що цей пробний стан - це здогадка щодо електронної конфігурації (оскільки ви ще не знаєте відповіді). Створюється квантовий стан на кванвому процесорі, який представляє конкретну версію хвильової функції, використовуючи комбінацію заплутаних вентилів, однокубітових вентилів та їх послідовності.

3. Оцінюється енергія пробного (початкового) стану.

Це робиться шляхом вимірювання аспектів квантового стану, який ви створили на попередньому кроці. Враховуючи те, що ви знаєте про Гамільтоніан молекули, ви можете зв’язати це з енергією в молекулі для даної електронної конфігурації.

4. Ця енергія передається оптимізатору, який працює на класичному комп’ютері.

Потім оптимізатор генерує новий набір параметрів, які створюють нову пробну хвильову функцію на квантовому комп'ютері з меншою енергією. Процес повторюється, поки енергія не зійдеться до найнижчого значення. Ця кінцева енергія відповідає рішенню енергії основного стану.

Кроки 2-4 повторюються для Гамільтоніанів, що відповідають різним міжатомним інтервалам. Тоді Гамільтоніан з найменшою енергією відповідає конфігурації рівноваги, і вуаля! Ви знаєте довжину зв’язку.

Здатність використовувати квантовий комп’ютер для виконання завдань, які зазвичай важкі для класичних комп’ютерів (наприклад, створення пробного стану та вимірювання його енергії), є важливою частиною того, чому такий підхід є настільки перспективним.

Універсальність VQE

Класна річ про Variational Quantum Eigensolver - це наскільки цей алгоритм універсальний.

Цей алгоритм можна використовуватися для широкого класу задач оптимізації. Замість енергії молекули представте "функцію втрат" (тобто річ, яку ви намагаєтеся звести до мінімуму або максимізувати) як кубітовий Гамільтоніан, до якого потім зверталися б за допомогою квантового комп'ютера. Решта кроків були б однаковими: ви мали б деякі параметри, які ви б змінювали, кожен з яких впливає на вартість, і для кожного стану випробування ви вимірювали б функцію витрат.

понедельник, 22 марта 2021 г.

Personal crawler or SPAM search requests

#00 - PERSONAL CRAWLER IDEA

My cell phone has 100x capacity bigger than first server of Google. Your cell phone most likely has 1000x bigger capacity (thats because mine is 4 years old).

This little bastard by the way also constantly connected to the network. 5G, 4G, Wi Fi - it has you all the day, 24 hours 7 days a week.

With such computational power and constant connection to the InterNET I'm capable to manage space ships and land a Lunar expedition. Another usecase - run own web crawler, or "personal Google". This is not a joke. As I said  previously, on my palm are 100 Google 96' servers. 

Just put your imagination out of the limits. Your personal web search engine in your pocket. It crawls web for you 24h a day, index sites and pages, and it wouldn't sale you to ads companies. One may say, well InterNET is much much bigger than in 90's. Sounds right, but text is still text and in 99% of cases we ask Google some text query.

One 64GB chip can store ~600 000 000 words, or ~60 000 000 sentences, or ~6 000 000 pages of text. As of March 2021, there are ~50 000 000 pages in the English Wikipedia. Thats less then my cell phone can store in a plain text. And if will talk about index, not a plain text, so index will be more compact representation of a text.

#01 - SPAM SEARCH

Well, nobody likes when somebody look at what you doing. Not all people like, when after a search in Google you got a ads suggestion "handfully selected" for you by their AI algorithm. And nobody wouldn't like if some private search query will be broadcasted to unknown ads company and stored forewer just because S3 storage is so cheap.

What do the spies to cover their patterns? Well they do a lot of "junk" actions. I mean normal, acceptable in their surroundings actions. It would be hard to show you a new car in ads if your last search requests are "enlarge my backyard" or "fun kitty pictures". This was joke about backyard, but hope you got the idea.

Why not to have this "personal assistant" application on my cell phone to send Google spam search requests - about sunny day or seaside. Surely, they may catch you and show a killing ads about seaside. So you end up on the seaside with pina colada.


четверг, 15 октября 2020 г.

[Links for myself] Clojure book, Machine Learning, preschool, free GPUs

Well, old good times - if you so old as me you should be familiar with lists of favorite links.

(Btw, on a picture - pub in my town, beer & rock'n'roll included)

Clojure web development book (HTTP, Routing , Middleware): https://grishaev.me/clj-book-web-1/ 

Writing Clojure web applications with RING (library, not a framework): https://www.baeldung.com/clojure-ring

Hitchhikers guide to Machine Learning (algorithms pros and cons, explanation like for school kids): https://tproger.ru/translations/hitchhikers-guide-to-ml/

Google's Colab (free GPU, notebook style): http://colab.research.google.com/

Kaggle (a lot of datasets for hardware, good to play with monitoring data, free GPU hours): https://www.kaggle.com

UML diagrams I used for AWS architecture trainings and classes: https://www.lucidchart.com

Fun explanation about quantum effects (and how/why quantum computing works) https://www.youtube.com/watch?v=g_IaVepNDT4

IBM quantum experience (and lego bricks to play with: https://quantum-computing.ibm.com

Quantum development kit (by M$, emulator (I wondering how they emulate frozen qubits on my hot laptop) included): https://www.microsoft.com/en-us/quantum/development-kit and simulator itself https://github.com/StationQ/Liquid

And Qiskit: https://qiskit.org/

Oh, The Lord, please give me power to read all of it and the calmness and eggs of steel to understand 10% of it.

Still alive? Wiki: https://en.wikipedia.org/wiki/Cloud-based_quantum_computing


четверг, 1 октября 2020 г.

Data streaming 101: AWS Kinesis, Redshift, MySQL, Athena

These are my notes from a discovery task I have had:
  • EC2 can write to Kinesis data stream and then Firehose delivery stream can transform data with Lambda and store result at S3 or EMR.
  • EMR is good choice to run Spark application (Python, Java, Scala) and may use S3 as a destination storage.
  • Athena performs 30% better with S3 data formatted as Parquet compared to JSON.
  • Redshift is read-optimized while MySQL is write-optimized. 
  • Application performance with MySQL would benefit in loading small volumes of data more frequently. 
  • Redshift is more efficient at loading large volumes of data less frequently.
And a great video with Vladimir and Benjamin discussing evolution of architecture: