Складывается впечатление, что нужно готовое решение
Всё так. Даже в заголовке об этом упомянуто. И фреймворки ищутся максимально специализарованные под мои хотелки. Так-то да, я примерно представляю как это сделать, но так же представляю сколько (много, очень много) времени я буду разрабатывать вменяемый пользовательский интерфейс.
Импорт (скрейпинг) данных - относительно просто (5 часов)
Выставление ранга, ранжирование, методом ближайших соседей - наивная реализация за пару часов, FAISS подольше. Векторные БД еще подольше.
Построение пользовательского интерфейса - долго (40 часов и более).
Есть такой продукт Obsidian - локальное (или облачное) ведение заметок с markdown разметкой, все заметки хранятся в виде текстовых файлов. Для моей задачи вполне приемлемое решение. Но я не знаю как сортировать по полю Ранг.
Notion - немного прикоснулся, но не вижу может ли быть локальное решение? И будет ли нужный мне функционал?
Почтовые клиенты - почти отлично (хороший пользовательский интерфейс, возможность поиска и, у некоторых, фильтрации, разбиение по папкам и т.п.), но нет возможности выставить оценку.
Нашел упоминание Joplin, TiddlyWiki, AirTable, TreeDBNotes, KeyNote NF. Наверняка я ещё что-то упустил.
Postgresql в чистом виде для меня слишком жирно. Всё решение локальное однопользовательское, размер всех данных максимум гигабайт (скорее всего много меньше).
Хотелось бы что-то, что я мог бы сделать за пару дней. Т.е. полноценное написание всего кода не очень годится. Я думал что-то вроде:
1. Настройка формата хранилища (дата, заголовок, тело, ранг, оценка пользователя)
2. Настройка записи в БД через питон (тут я пишу свой скрипт сбора данных)
2.1. Скрипт должен иметь доступ к оценкам
2.2. В идеале нечеткий поиск средствами СУБД (фреймворка)
3. Пользовательский интерфейс. Приоритет - лёгкость настройки. Чтение, выставление оценки, возможно установка флажков или звёздочек, фильтрация, удаление, поиск. Т.е. что-то, что очень сильно напоминает интерфейс почтового клиента, за исключением пользовательских оценок.
ThunderCat, Точно -- postgresql. И в самом начале. Тогда может стоит сказать какие шаги были сделаны для настройки? Хотя в вопросе много чего не сказано (к примеру параметры инстансов, размеры БД, характер запросов, соотношение записи к чтению и т.п.) - всего не скажешь в коротком вопросе...
Мне почему-то кажется, что после добавления кэширования нужно сразу посмотреть SQL запросы и посмотреть индексы в БД. Кстати, добавьте в вопрос какую СУБД используете, может гуру подскажут "серебряную" пулю :-)
https://qudata.com/ml/ru/NN_RNN_Torch.html - довольно сносное описание.
Объясню "на пальцах":
а) на вход нейросети подаются N блоков (фиксированной длинны), к примеру для N ботов это будут координаты x,y поэтому у нас будет вектор [N , 2]
б) у нас есть некое внутреннее состояние нейросети (почти всегда инициализируется нолями) которое задается всегда определенным образом перед каждым запуском. Это массив длинной K (например 10).
в) сеть состоит из двух частей - рекуррентная (перебирает по очереди вход) и финальная часть, которая на основе внутреннего состояния дает окончательный вывод (прогноз, результат).
Теперь чуть подробнее. Рекуррентная часть это простая нейросеть любой конфигурации, которая на вход принимает массив "внутреннее состояние нейросети" и одну из N строк входного массива (в твоем случае "внутреннее состояние нейросети" + 2 числа). Обрабатывает это и на выходе получается новый массив "внутреннее состояние нейросети". Т.е. (как пример) на входе 12 чисел, на выходе 10 чисел.
После обработки всех N строк входного массива в дело вступает финальная часть нейросети. Она может быть тоже любой конфигурации (структуры). На вход принимает "внутреннее состояние нейросети" (например 10 чисел), на выходе какой-то уже конечный результат (к примеру "угол" и "скорость").
Евгений Лернер, Поэтому широко используется..... в очень узких кругах. Специально сползал в гугл трендс - градиентный спуск в разы популярнее ГА.
Что касается самого ГА: он (видимо) незаменим, когда оптимизируемая функция у нас черный ящик, т.е. мы не можем найти производные, градиенты и т.п. А в реальности функции еще не имеют монотонности, непрерывности и прочих важных вещей для быстрой оптимизации. В этих случаях генетический алгоритм это, видимо, лучший выбор.
Нейросети мы можем проектировать сами, закладывая структуру, которую [относительно] легко оптимизировать.
Дядя Богдан, это загрузка и инициализация (случайными числами?). Случайные числа будут только если не получится загрузить (а у тебя ведь получается?). И где тут изменение весов? (Даже если убрать загрузку, то у тебя получатся случайные блуждания, а это очееееень медленно.)
Может реально нужно тебе прочитать про алгоритм обратного распространения ошибки, про Генетический алгоритм, Симуляцию отжига и другие алгоритмы нахождения минимума функции?
Вопрос требует больше конкретики. Сейчас не совсем понятно в чем проблема - кто мешает использовать базу данных для хранения ID? Или совсем отказываемся от серверов? Тогда локальное хранение любым образом сгенерированного ID или ID получаем через хэширование e-mail+пароль и тогда можно не хранить его на диске.
все приложения проксифицированы? Конечно же, далеко не все.
попробуйте следующий тест: сделайте два приложения (пусть ftp клиент с хорошими логами), одну прогу проксируйте, вторую нет. Поочередно (1-2 и 2-1) запускайте соединение с внешними серверами и смотрите ip адреса.
Написание собственных библиотек слишком затратно по времени (слишком!), особенно когда есть хорошие бесплатные альтернативы. К сожалению я по неопытности тоже написал свой велосипедик (реализацию обучения деревья решений).
Всё так. Даже в заголовке об этом упомянуто. И фреймворки ищутся максимально специализарованные под мои хотелки. Так-то да, я примерно представляю как это сделать, но так же представляю сколько (много, очень много) времени я буду разрабатывать вменяемый пользовательский интерфейс.
Импорт (скрейпинг) данных - относительно просто (5 часов)
Выставление ранга, ранжирование, методом ближайших соседей - наивная реализация за пару часов, FAISS подольше. Векторные БД еще подольше.
Построение пользовательского интерфейса - долго (40 часов и более).
Есть такой продукт Obsidian - локальное (или облачное) ведение заметок с markdown разметкой, все заметки хранятся в виде текстовых файлов. Для моей задачи вполне приемлемое решение. Но я не знаю как сортировать по полю Ранг.
Notion - немного прикоснулся, но не вижу может ли быть локальное решение? И будет ли нужный мне функционал?
Почтовые клиенты - почти отлично (хороший пользовательский интерфейс, возможность поиска и, у некоторых, фильтрации, разбиение по папкам и т.п.), но нет возможности выставить оценку.
Нашел упоминание Joplin, TiddlyWiki, AirTable, TreeDBNotes, KeyNote NF. Наверняка я ещё что-то упустил.
Что-нибудь ещё подобное есть?