Pull to refresh
54
10.1
Михаил Кнутарев@mmMike

User

Send message

Хрень какая. Даже если не учитывать что такую конструкцию быстро не сбросишь (хотя захочешь жить может и сбросишь)
Для меня даже разница в ластах (JetFin vs другие) весьма заметна. Особенно в сухаре.
И компенсируется грузиком на баллоне.
А с такими грузами в районе коленей только в позе морского конька плавать. Поскольку горизонтально точно не повисишь.

й с участием шести опытных дайверов.

врут. Нагло врут.

да чего же все.

где процессы рутинные, объемные и хорошо формализованы

И первой строчкой в списке

HR и управление персоналом

Это наем персонала то рутинное по бумажке!
А мне потом с этим человеком работать/общаться и давать задания.
Я работать буду с конкретным человеком, а не с его резюме отобранном тупыми промтами.

Да идите лесом HR, которые считают что LLM с них работу снимают.

Все это красиво и замечательно когда свежее. И даже не слишком принципиально на чем.
И красиво и замечательно для того кто придумал классификацию и разложил по ней.

А для другого человека эта классификация будет 100% не очевидной.
Сам с этим много раз сталкивался с такими диалогами (на любое место себя поставьте, не ошибетесь)

  • А где документ лежит?

  • Да вот в этом же разделе. Это же очевидно!

  • Очевидно? ну ну..

И потом, в перспективе нескольких лет "протухает". И становится похожим на помойку..

Лично мне надоело с этим бороться и лично для себя сделал поисковую систему c контекстным и прямым поиском по всем корпоративным помойкам включая Confluence и гору разрозненной документации (pdf и doc) в разных местах (включая мамонта VSS). Ибо задрало искать по "очевидным" местам/разделам.

Qwen3-Coder, например, если не уточнять контекст (типа "use plain js"), все норовит на Vue примеры выдавать.
Кто на что учился. В Китае, похоже, Vue более распространен, чем React

К сожалению, в следующем запросе (если не зафиксировать seed random) модель скорее всего поведет себя чуть по другому. И результат выдаст возможно другой.
промт помогает. Но не универсально.

gpt-oss:20b как я не пытался ее настроить, включая игру с температурой и прочим тонкими параметрами, склонна к не предсказуемым долгим задержкам (от 7-10 сек лично для себя считаю долгим) от начала выдачи токенов. С любым промтом. И с таким классически то же.
А так же, склонна к переходу в режим бреда и зацикливания на последней последовательности токенов.
И с русским у нее существенно хуже, чем с английским.
Мне она не понравилась. Возможно это на тех данных что лично мне нужно (тех документация). На примерах типа "вот кусок статьи про .. дай мне обзор" не гонял. Мне это не нужно было.

Qwen3-Code-25B, лично для меня, оказалась более подходящая. Отвечает быстро и короче чем gpt-oss и редко сбивается (типа попытки не ответить, а перевести на китайский). И видно что объем русских текстов для обучения был больше чем у gpt

Кстати, пробовал извратную схему

  1. Перевести чанк на английский

  2. промт на английском

  3. перевести ответ на русский (ну или оставить так. В принципе и танк норм и понятно)

Все локальные сетки так работают существенно лучше на обычных данных.
Но, увы, не в моем случае с обилием частных аббревиатур в служебных доках.

Я остановился на чанке где то в районе 3Кб (GPU 16gb). Сильно больше - время отклика растет не линейно (объем вычислений растет). Меньше - обычно не помещается все нужное.

И вообще, если вот по таким "красивым" текстам как статье еще нормально, то по фактической технической документации из частных мало известных разделов (не было в данных обучения), LLM - чаще всего несет банальности, полностью или частично игнорируя данные.

Так что.
Пришел к тому, эти 3Кб лучше глазами пробежать для контроля, чем гадать "то что выдало LLM это так и есть или фигня".
И вообще, доверять ответам LLM можно только, если этот ответ тебе нужен не критично (на поболтать).
Впрочем, как и любой информации в Интернете доверять не стоит.

VLLM(id='/Qwen3-14B', base_url='http://192.168.0.108:8000/v1')

Вот если бы я регулярно не пользовался то же Qwen3 (25B FP4) на своем локальном сервере (GPU 16Gb), в частности, и для обработки чанков RAG, я бы поверил в столь благостную картинку, описанную автором.

Да. Для статьи можно подобрать пример (один удачный на где то с пяток мусорных).
Но не надо обольщаться. Так "красиво" как у автора в статье все одно не выйдет. В жизни оно так не будет. Что локальная LLM, что облачная LLM часто

Данные будут не такие красивые как в примере.

LLM будут игнорировать данные из RAG и создавать текст на основе того, на чем LLM обучали (особенно, если обучающих данных конкретной темы больше было)

Будут нести бред который не отличишь от правды, если сам большую часть ответа не знаешь.

Будут просто нести явный бред (локальные LLM чаще всего)

И даже не понятно, что хуже, не правильный ответ или бред в ответ. Бред можно отсечь, а не правильны ответ еще пойми, что он не правильный.

Но у автора же цель продать свои курсы. Так что вполне понятно, что рассказывает "красиво".

Может.
Смысл спорить. Давно все это было. Да и какая разница лично мне по сути.

Я не знаю тот перфоратор из детства был какого конкретного производства.
Но 100% на нем не было "иностранных букав". Потому что ЭТО бы память не пропустила.

Если вы жили в то время.. Середина 80-х
Любая надпись на латинице на какой ни будь хрени (одежда ли, железка ли) это повод для обсуждения и "гордости". В детской среде, как минимум.
Даже если это надпись "Tesla" (просто пример) или подобная не совсем "заграница".

Никогда не понимал людей, которые "ненавижу СССР" и "люблю СССР". Приводя частные эпизоды в защиту того или другого. Причем делать это до сих пор :) Да "закопайте уже стюардессу"

Опыт у всех разные. Кто то был приближенным к.. и жил очень хорошо. А кто то бичевал.
И что. У каждого свой личный опыт.

Было.. прошло. Все проходит. Все не постоянно. Неизбежно только одно. Все умрут. А все остальное суета.

это то же было. тырили на стройках эти патроны и кидали их в костры.
Но электро перфоратор (дырки делать и штробить стены) и строительный пистолет - это совсем разные вещи.

Вы показали как сделать конкретно на SpringBoot + RestTemplate. Это очень частный вариант. Да и тривиальный. Я верю что Вы умеете писать эти обертки (тривиальная задача), но этому посвящено 3/4 статьи.

Как бы мир не замыкается на SpringBoot и использовании DTO и прочей многословной обертки вокруг простого http client
Но при этом:

  1. Не сказав откуда взялась информация по API (типа вот вам OllamaRequest). Если что, там еще куча параметров настройки (например температура и пр.)

  2. Управление stream как бы присутствует, но вообще ни на что не влияет. Схлопыватется в реализации до ожидания полного ответа от LLM). Зачем его вообще тогда делать не константой false?

Кстати, никогда не проверял что сделает getBody, если HTTP ответ будет в режиме stream.
restTemplate.postForEntity(__).getBody();
Есть подозрение (уверенность), что обработает некорректно. Потому что из ollama летят куски в виде json объектов, из которых нужно выдирать и склеивать ответ. (летят токны)

Живьем это выглядит так (сам запрос не привожу, но в нем "stream": true,)
И 100% restTemplate.postForEntity(___, OllamaResponse.class).getBody();
работать не будет.

curl http://192.168.0.101:11434/api/generate -d @rq2.json {"model":"Qwen3-Coder-REAP-25B-A3B-MXFP4_MOE-GGUF:latest","created_at":"2025-11-12T04:45:12.532813997Z","response":" ","done":false}
{"model":"Qwen3-Coder-REAP-25B-A3B-MXFP4_MOE-GGUF:latest","created_at":"2025-11-12T04:45:12.598434939Z","response":"请","done":false}
{"model":"Qwen3-Coder-REAP-25B-A3B-MXFP4_MOE-GGUF:latest","created_at":"2025-11-12T04:45:12.611161221Z","response":" translate","done":false}
{"model":"Qwen3-Coder-REAP-25B-A3B-MXFP4_MOE-GGUF:latest","created_at":"2025-11-12T04:45:12.623824174Z","response":" this","done":false}
{"model":"Qwen3-Coder-REAP-25B-A3B-MXFP4_MOE-GGUF:latest","created_at":"2025-11-12T04:45:12.636252126Z","response":" to","done":false}
{"model":"Qwen3-Coder-REAP-25B-A3B-MXFP4_MOE-GGUF:latest","created_at":"2025-11-12T04:45:12.648964908Z","response":" Chinese","done":false}
{"model":"Qwen3-Coder-REAP-25B-A3B-MXFP4_MOE-GGUF:latest","created_at":"2025-11-12T04:45:12.66136273Z","response":"\n\n","done":false}
{"model":"Qwen3-Coder-REAP-25B-A3B-MXFP4_MOE-GGUF:latest","created_at":"2025-11-12T04:45:12.674073212Z","response":"5","done":false}
...

Это, если что, пример бреда локальной LLM, который можно остановить (услышав шум вентиляторов GPU) оборвав TCP/IP HTTP клиента, в котором был послан вопрос и полетел (визуально) бред.
Локальные LLM с настройками по умолчанию, иногда впадают в бесконечный цикл генерации бреда.
И должна быть возможность сказать "стоп", а не пытаться сложить этот бесконечный ответ в буфер для показа "сразу"

Я был мелким. Но кое что помню.
На даче (от родителей) до сих пор валяются куски ламинированной фанеры от съемной опалубки. Я так понимаю, что были списаны по повреждениям (сломаны со следами траков гусениц)
В 90-х годах обнесли квартиру и сперли перфоратор. Ну 100% по воспоминаниям на нем не было "иностранных букв". Появился у нас где что в начале 80-х. Списан (где то пробивало на алюминиевый корпус и током бился, если на земле работать. Но так норм)

А вообще, хотя и не стоит идеализировать те времена, но забавно когда начинают сравнивать СССР 80-х с Eвропой/US 2000х например.

Прикольно было посмотреть фильм типа "Фантоцци против всех" и т.п. И сравнивать с реалиями ТЕХ же годов в СССР. И просто фильмы не стиля "про красивую жизнь Бонда 007", а жизнь обычных людей в 80-x. Как то общий уровень (не берем Африку) был приблизительно одинаков.

А узнать личные воспоминания от человека (Испанец кажется по происхождению. хиппи тогда), который в конце 60-х начале 70x "зарабатывал" на том, что нелегально завозил порнушку в Испанию (а та порнушка невинна по сравнению с..) и ему грозил приличный тюремный срок за это.

Запускаем докер контейнер с ollama - docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama в качестве порта можно использовать любые значения

Судя по отсутствию ключей "--runtime nvidia --gpus all" запуск в ОЗУ. Даже для поиграться вызовет разочарование.

А вместо 3/4 статьи с обрывками кодов, можно было бы привести ссылку https://docs.ollama.com/api

типа для вот этого "curl http://127.0.0.1:11434/api/chat -d '{"model": "llama3.2", "messages": [{ "role": "user", "content": "why is the sky blue?" }]}'"

нужно обязательно и DTO и прочую обвязку растягивать на несколько страниц в статье?

А что такого удивительного, что в wireshark добавлен анализатор PG протокола?
Он не секретный. Все в исходниках есть. Это не Oracle.

дело не в раге а в самой информации, уберите из нее воду,

К сожалению, такой вариант эквивалентен совету из анекдота "мышки, станьте слонами"
Увы. Есть техническая готовая документация (как 100 пар томов "Война и Мир") и ее переписывание так что бы "было понятно LLM" это не реальная задача.

Все примеры в Интернете, почему то на "идеальных" текстах. Замечательно работает на коротких рассказах (особенно детских), разбитых на чанки. Mожете сами опробовать (я пробовал)

  1. Взять, например сказку "маша и медведи"

  2. разбить на чанки

  3. найти чанк где упоминается кровать (идеально находит) по вопросу типа "а что делала маша с кроватью"

  4. скормить LLM это чанк (а лучше весь рассказ + выделить конкретный чанк)

  5. Получится идеальный ответ на этот вопрос от LLM :). Часто избыточно многословный, но получится.

А теперь возьмем да любую спецификацию, которой 100% не было в интернете и в наборе обучающих данных для любой LMM. Документацию предполагающую знание контекста (другие документы), не полный глоссарий, кучу таблиц, перекрестных ссылок (в том числе на другие документы) и пр.
И хорошо, что если есть ссылки на другие документы и глоссарий.. А не просто "ну это же и так было понятно" когда писали.

Вот хоть целиком, ее скармливай LLM, хоть найденный чанк +/-. Ответ будет со "случайной адекватностью" вопросу.
Я проверял. Да и кто мешает проверить любому скептику.

Мне нравятся статьи от продаванов AI агентов и RAG систем. Где они пишут "наивный RAG не позволяет, а вот у нас....". Но не приводят никаких описания КАК (что бы можно было хотя бы оценить сколько токенов/времени на ответ потратится). Типа купите - сами увидите. А все примеры на документации типа "маша и медведи"

Я боюсь, что у меня скоро провайдер разорвет договор. Модели все не мелкие..
Уже этими скачиваниями два диска по 1Tb забиты.
Моделей много. Все не перепробуешь.

Я наткнулся на qwen3-embedding и на ней эксперименты остановил.

А вы статью как назвали?

Статью назвал, потому что прикрутил к векторному поиску еще и обработку результата для реальных документов. И оценил, что для 16Gb GPU и реальных документов это не имеет смысла. К слову, для реальной документации и запихивание всего документа в облачную LLM то же не имеет смысла. Ну по крайней мере для меня и тех документов и задач что мне нужны.

Считаете, что информация о том, что RAG на не больших чанках в локальных LLM не работает - это "очевидно для всех"?

А то, в интернете полно примеров, когда вылизанные данные подставляются LLM и получается красивый ответ (для примера, наверняка подобранный за несколько попыток).

Я не согласен с метриками...они абсолютно бессмысленные...впрочем, это даже не метрики.

А что конкретно в метриках тестов разных эмбеддинг моделей не устраивает?
Я столкнулся с тем, что модель (выбранная первая попавшаяся) выдала мне не релевантные ответы.

Сделал тесты НА ОДНИХ И ТЕХ ЖЕ данных (случайно сгненеренных LLM). Все пары вопрос + "правильный" ответ весьма далеки от друг друга по смыслу. И "правильная" модель для вопроса и ответа из этого набора должна генерить "близкие" вектора.

Весьма наглядно видно как на одних и тех же данных одна модель генерит эмбеддинг (вектор) вопроса близко к вектору правильного ответа. А другая нет.

Мне нужна была просто поисковая система по контексту. Ну и еще по явным подстрокам вчера прикрутил.
В первую очередь off-line (служебные документы).
Но даже если не были служебными, то загружать около 200-300 pdf (2Gb) в облако для поиска по документам.. Да нет таких халявных сервисов.

Я ее сделал для себя в виде готового персонального решения. Все.
И я уже трачу меньше времени на поиски нужно документа и страницы в нем.
Надо будет еще сделать выдергивание страниц из confluence (лично мне надо) и на этом лично моя задача будет закрыта.

А прикрутить к результатам поиска RAG. Да просто не сложно было и все. Но результат без облачного LLM весьма сомнительный.
Он сомнительный и с облачным LLM.
Я пробовал запихивать техническую документацию и получать ответы на вопросы по ней. Результаты меня не устроили. Для моих целей. Лучше самому прочитать документ, чем целиком полагаться на то что LLM "скажет".

Я сделал для себя лично свою локальную поисковую систему для своих персональных целей.
По служебным документам, в частности, которые нельзя выкладывать в " Закинуть в гугл док"
Выложил готовый результат на github. Который можно просто запустить и пользоваться.
Поделился этим.

Далее, Смысл возвращаться чанк? Верните документ по чанку.

Вы вообще хотя бы на скриншот в заголовке статьи обратили внимания?
А обратили внимание, что я сказал, что RAG по результатам был "а просто прикручу попробовать" и вывод "что при таком подходе (просто по чанку) он не имеет смысла."

Мне кажется, все ваши замечания явно не в тему. Вы точно под этой статьей коммент писали?

Ps там были какие-то метрики...

Ну точно.. "я это не читал, но не согласен" :)

Information

Rating
711-th
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity