У мене було досить багато роботи з часу мого останнього допису. Не можу сказати, що я приділив багато часу стабільному дифузійному або іншим візуальним AI моделям, але, ймовірно, я повернусь до них з часом з цікавості. Варто зазначити, що я завершив отримання ступеня бакалавра в галузі комп'ютерних інформаційних систем в Університеті штату Арізона. Відчувається добре, що я закінчив навчання на даний момент, і тепер можу зосередитись на переході до професії, удосконалюючи навички, що я сам обрав (риболовля ніколи не припиняється).
Це твій хлопець
В результаті, я почав розробляти Flask веб-додаток, який буде фінальним користувацьким інтерфейсом для моєї щоденної системи аналізу подань SEC. Система складається з 3 Python скриптів, написаних для взаємодії з обліковим записом зберігання Azure та SQL базою даних, які намагаються парсити подання наступних типів (наразі):
- 10-Q, 10-K
- 6-K
- 13F-HR, 13F-NT
- SC 13D, SC 13G
- S1, S3
- 8K
- 4
- DEF 14A
- SEC STAFF ACTION, SEC STAFF LETTER
Я розробив кілька структур даних для організації інформації, що містять ці подання:
- Текстові секції
- Фінансові звіти
- PDF файли (текст витягується)
- Звіти про володіння
- Інформація про події 8K
- Транзакції інсайдерів
В кінці кожного дня подання завантажуються та парситься в JSON об'єкти зазначених типів, які потім використовуються для заповнення SQL бази даних. Ось тут і починає працювати Flask додаток.
Заповнена SQL база даних
Головна сторінка надає розподіл типів подань і індустрій, до яких вони належать, і додаток навігується здебільшого по цих 2 вимірах. Наприклад, користувач може натискати на вкладку 10-K, щоб побачити розподіл усіх 10-K, що були проаналізовані того дня, згрупованих за галузями, а потім за подавачами. Для кожного подавача відображаються текстові секції та фінансові звіти (мої дві JSON структури даних, що стосуються 10-K подань). Вкладки для інших типів подань, для яких я вже почав писати HTML шаблони, мають подібну загальну структуру з організацією у вигляді акордеону за галузями->подавачами.
Головна / стартова сторінка
Сторінка 10-K
Користувач також може вибрати перегляд подань за індустріями, в такому випадку вони побачать розподіл подань по індустріях, згрупованих як за типом подання, так і за подавачем/компанією.
Індустріальний підсумок
Все це було достатньо тривіально для мене і мого молодшого розробника GPT, але мені потрібно прийняти кілька рішень щодо того, коли і де саме я хочу ввести більш просунуту аналітику. Наприклад, я планую використати модель NLP для аналізу текстових секцій, але потрібно вирішити, чи хочу я, щоб ця робота виконувалась заздалегідь за допомогою пайплайну/сервера, або тільки коли ці дані будуть запитуватись користувачем веб-додатку. Я також хотів би проводити аналіз настроїв для конкретних типів подань, індустрій та подавачів; подібні питання, коли саме це робити, виникають у контексті робочого процесу.
Моя перша думка — переважно робити всю важку роботу заздалегідь, а не на етапі веб-додатку. По-перше, це лише одне добове подання (кілька тисяч подань за нашими цілями, згідно з моїм досвідом), тому, чесно кажучи, це не повинно бути занадто обтяжливим або дорогим, щоб виконувати деякий аналіз, який кінцевий користувач може ніколи не запитати/використати.
По-друге, здається, що такий аналіз на основі машинного навчання в реальному часі може уповільнити роботу панелі приладів, але це я говорю без значного тестування цього аспекту. Таким чином, мій пайплайн з трьох скриптів може перетворитись на чотири, щоб зберегти простоту веб-додатку. У такому разі я, ймовірно, додам кілька додаткових таблиць до моєї SQL бази даних для зберігання даних аналізу, які Flask додаток просто буде витягувати.
Тож, коли я буду розробляти HTML шаблони для додатку, я також вирішуватиму, на якому етапі саме я хочу впровадити машинне навчання або будь-який інший аналіз, і на яких рівнях агрегації або групування це робити (за замовчуванням?: рівень подання, рівень подавача, рівень індустрії, рівень типу подання, індустрія X тип подання, подавач X тип подання). Наприклад, аналіз 10-K подань певної індустрії може дати дуже різний результат для настроїв, порівняно з 10-K поданнями іншої, як ви, ймовірно, могли б собі уявити.
Я з нетерпінням чекаю можливості поділитися своїм прогресом і сподіваюся, що незабаром ми зможемо побачити щось досить круте. З Новим роком, продовжуйте вчитися, як дитина.
З повагою.
Перекладено з: Piecing it Together