- BrainTools - https://www.braintools.ru -
Вдруг кому-то будет полезно. Возникла задача быстрого распознавания данных с фотографий и получения из них структурированной информации. Так же важно было отсутствие требовательного к ресурсам ПО и легкость разворачивания системы. Поэтому было решено попробовать использовать в качестве подключаемого модуля мультимодальные LLM запускаемые под Ollama, т.к. у неё есть REST API по которому удобно обращаться к модели.
В последних версиях Ollama [1]появился графический интерфейс, но он неудобен. Модели в ollama проще всего загрузить из командной строки. Например: ollama pull codellama.
В этом случае на экране должно быть выведено что-то вроде:
Документацию по Rest Api Ollama можно найти на их сайте: https://docs.ollama.com/api/introduction [2]
Все тесты производились на следующем железе:
M/B Asus Prime B450M-A, ЦП Ryzen 5 2400G, 32GB ОЗУ, Видеокарта KFA 2 RTX 3060 12 GB. OC Win10 установлена на M2 SSD FX900 Plus, на ней же расположены участвующие в тестах модели. К сожалению, материнская плата, в отличие от видеокарты, поддерживает только PCI-E 3, поэтому потенциал карты остался не раскрыт.
В сравнении участвовали следующие модели:
|
Модель |
Размер ollama list |
Размер ollama ps |
|
qwen3-vl:8b |
6.1 GB |
11 GB |
|
qwen2.5vl:32b |
21 GB |
24 GB |
|
gemma3:27b |
17 GB |
20 GB |
|
llava:latest |
4.7 GB |
4.9 GB |
Для проведения тестирования и выбора модели было написано тестовое приложение OllamaTestClient [3]на dotnet 9, которое обращалось к Ollama через RestAPI.
Сравнение проводилось на фотографиях титульных страниц книг со следующим промтом:
Файлы на каких проводились тесы можно найти в репозитории на гитхабе:
https://github.com/BlackEric001/OllamaTestClient/tree/main/Images [4].
При работе нужно учитывать, что при первом запуске ollama загружает модель, поэтому время первого ответа будет больше. В таблице везде время второго запуска.
В результате получилась следующая картина:
Файл: Скоробогачева_Айвазовский.jpg [5]
|
Модель |
Результат |
Время распознавания |
Есть ошибки [6] |
Использование ресурсов (ollama ps) |
|
llava:latest |
{“Автор”: “Стефан Иванов”, “Название”: “Абдulбакир Абдулрахман”, “Год издания”: 2019, “Издательство”: “Московский университет”, “Гoрод издания”: null} |
00:06.0577822 |
Совсем неверно. Каждый раз другой вывод. |
100% GPU |
|
gemma3:27b |
{ “Автор”: “Екатерина Скоробогатова”, “Название”: “Айвазовский”, “Год издания”: null, “Издательство”: “Молодая гвардия”, “Город издания”: “Москва” } |
00:42.9661306 |
Да. Ошибка в фамилии автора |
48%/52% CPU/GPU |
|
qwen2.5vl:32b |
{ “Автор”: “Екатерина Скоробогачева”, “Название”: “Айвазововский”, “Год издания”: 2021, “Издательство”: “Молодая Гвардия”, “Город издания”: “Москва” } |
01:08.2151583 |
Нет |
55%/45% CPU/GPU |
|
qwen3-vl:8b |
{“Автор”: “Екатерина Скоробогачева”, “Название”: “АЙВАЗОВСКИЙ”, “Год издания”: 2021, “Издательство”: “МОЛОДАЯ ГВАРДИЯ”, “Город издания”: “МОСКВА”} |
00:10.6235716 |
Нет |
18%/82% CPU/GPU |
llava:latest дальше не тестировали, т.к. совсем не работает.
Файл: Орир_Физика.jpg [7]
|
gemma3:27b |
{ “Автор”: “Джей Орир”, “Название”: “ФИЗИКА. ПОЛНЫЙ КУРС. примеры, задачи, решения”, “Год издания”: null, “Издательство”: null, “Город издания”: null } |
00:41.5113788 |
Нет |
48%/52% CPU/GPU |
|
qwen2.5vl:32b |
{ “Автор”: “Джей Орир”, “Название”: “Физика. Полный курс. Примеры, задачи, решения”, “Год издания”: null, “Издательство”: “Учебник”, “Город издания”: null } |
00:59.6325552 |
Да. Неверно указано издательство |
55%/45% CPU/GPU |
|
qwen3-vl:8b |
{“Автор”: “Джей Орир”, “Название”: “ФИЗИКА полный курс примеры, задачи, решения”, “Год издания”: null, “Издательство”: “Университет”, “Город издания”: null} |
00:06.0786742 |
Нет |
18%/82% CPU/GPU |
Файл: Школьник_Птицы.jpg [8]
|
gemma3:27b |
{ “Автор”: “null”, “Название”: “Птицы. Полная энциклопедия”, “Год издания”: “2007”, “Издательство”: “Эксмо”, “Город издания”: “Москва” } |
00:37.9917091 |
Да. Потерян автор |
48%/52% CPU/GPU |
|
qwen2.5vl:32b |
{ “Автор”: “Юлия Школьник”, “Название”: “Птицы”, “Год издания”: 2007, “Издательство”: “Эксмо”, “Город издания”: “Москва” } |
00:57.0005204 |
Нет. Отсутствие в выводе «Полная энциклопедия» не критично |
57%/43% CPU/GPU |
|
qwen3-vl:8b |
{“Автор”: “Юлия Школьник”, “Название”: “Птицы. Полная энциклопедия”, “Год издания”: 2007, “Издательство”: “ЭКСМО”, “Город издания”: “Москва”} |
00:06.2948445 |
Нет |
18%/82% CPU/GPU |
Файл: Kirby_History.jpg [9]
|
gemma3:27b |
{ “Автор”: “RICHARD SHELTON KIRBY, SIDNEY WITHINGTON, ARTHUR BURR DARLING, FREDERICK GRIDLEY KILGOUR”, “Название”: “ENGINEERING IN HISTORY”, “Год издания”: null, “Издательство”: null, “Город издания”: null } |
00:46.2798199 |
Нет |
48%/52% CPU/GPU |
|
qwen2.5vl:32b |
{ “Автор”: “Richard Shelton Kirby, Sidney Withington, Arthur Burr Darling, Frederick Gridley Kilgour”, “Название”: “Engineering History”, “Год издания”: null, “Издательство”: null, “Город издания”: null } |
00:55.4729723 |
Да. Пропущено In в названии |
55%/45% CPU/GPU |
|
qwen3-vl:8b |
{“Автор”: “RICHARD SHELTON KIRBY, SIDNEY WITHINGTON, ARTHUR BURR DARLING, FREDERICK GRIDLEY KILGOUR”, “Название”: “ENGINEERING IN HISTORY”, “Год издания”: null, “Издательство”: null, “Город издания”: null} |
00:06.8475652 |
Нет |
18%/82% CPU/GPU |
Файл: Ионцева_Биология.jpg [10]
|
gemma3:27b |
{ “Автор”: “А.Ю. Ионцева”, “Название”: “БИОЛОГИЯ. ВЕСЬ ШКОЛЬНЫЙ КУРС В СХЕМАХ И ТАБЛИЦАХ”, “Год издания”: “2019”, “Издательство”: null, “Город издания”: “Москва” } |
00:53.5258399 |
Нет |
48%/52% CPU/GPU |
|
qwen2.5vl:32b |
{ “Автор”: “А.Ю. Ионцева”, “Название”: “Биология”, “Год издания”: “2019”, “Издательство”: null, “Город издания”: “Москва” } |
00:54.0656173 |
Нет |
57%/43% CPU/GPU |
|
qwen3-vl:8b |
{“Автор”: “А.Ю. Ионцева”, “Название”: “Биология”, “Год издания”: 2019, “Издательство”: null, “Город издания”: “Москва”} |
00:08.5062277 |
Нет. Считаем, что эмблему издательства можно не распознавать. Название только «Биология» |
18%/82% CPU/GPU |
Qwen3-vl:8b оказался оптимальным для этой задачи. Собственно, все эти сравнения проводились еще летом, незадолго до выхода qwen3. Поэтому мы не могли сразу найти оптимальное соотношение по ресурсам, качеству и времени распознавания.
Автор: BlackEric001
Источник [11]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/22596
URLs in this post:
[1] Ollama : https://ollama.com/
[2] https://docs.ollama.com/api/introduction: https://docs.ollama.com/api/introduction
[3] OllamaTestClient : https://github.com/BlackEric001/OllamaTestClient
[4] https://github.com/BlackEric001/OllamaTestClient/tree/main/Images: https://github.com/BlackEric001/OllamaTestClient/tree/main/Images
[5] Скоробогачева_Айвазовский.jpg: https://github.com/BlackEric001/OllamaTestClient/blob/main/Images/%D0%A1%D0%BA%D0%BE%D1%80%D0%BE%D0%B1%D0%BE%D0%B3%D0%B0%D1%87%D0%B5%D0%B2%D0%B0_%D0%90%D0%B9%D0%B2%D0%B0%D0%B7%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9.jpg
[6] ошибки: http://www.braintools.ru/article/4192
[7] Орир_Физика.jpg: https://github.com/BlackEric001/OllamaTestClient/blob/main/Images/%D0%9E%D1%80%D0%B8%D1%80_%D0%A4%D0%B8%D0%B7%D0%B8%D0%BA%D0%B0.jpg
[8] Школьник_Птицы.jpg: https://github.com/BlackEric001/OllamaTestClient/blob/main/Images/%D0%A8%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA_%D0%9F%D1%82%D0%B8%D1%86%D1%8B.jpg
[9] Kirby_History.jpg: https://github.com/BlackEric001/OllamaTestClient/blob/main/Images/Kirby_History.jpg
[10] Ионцева_Биология.jpg: https://github.com/BlackEric001/OllamaTestClient/blob/main/Images/%D0%98%D0%BE%D0%BD%D1%86%D0%B5%D0%B2%D0%B0_%D0%91%D0%B8%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F.jpg
[11] Источник: https://habr.com/ru/articles/971842/?utm_source=habrahabr&utm_medium=rss&utm_campaign=971842
Нажмите здесь для печати.