Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Квас

Pages: [1] 2 3 ... 105
1
Ну не совсем, конечно. У символьной математики корни в классическом ИИ. Для "максимы" можно писать функции на лиспе. :) Или, например, штрихкоды прекрасно читаются классическим компьютерным зрением, безо всякого машинного обучения. Но всё-таки это очень ограниченный подход.
  • 0
  • 0

2
Так продвинутые модели тем и отличаются от непродвинутых, что в них зашили специальные конструкции и опоры для ответов. И эти конструкции на правилах логики, как минимум согласованность ответа надо проверить через логику. И у ЖПТ ответы до того согласованные получаются, что если самому не фактчекать, введёт в заблуждение на раз.

По идее, продвинутые модели в первую очередь отличаются "объёмом мозга": больше коэффициентов, больше данных для обучения, более продвинутые алгоритмы обучения, больше контекста для разговора. При этом, конечно, можно прокачивать те или иные качества, например, умения писать код. И можно добавлять "косметику": например, раньше надо было писать промпты типа "представь, что ты специалист по SQL...", а сейчас это где-то само собой под капотом происходит (может быть, в предварительной обработке). Но всё равно основной смысл машинного обучения состоит в том, что оно происходит само собой. Обучение "вручную", в виде явных правил и логики - это то, что пытались делать в прошлом веке, неуспешно.
  • 0
  • 0

3
Поясните, пожалуйста, мысль. Если у нейросети нет нужной информации, она может уверенно выдумать ложный факт, который выглядит логичным, но является ошибочным по существу.

Может, конечно, и такое бывает нередко.

Я с языковыми моделями не работал, а немного работал с моделями компьютерного зрения, но матчасть та же самая. В компьютерном зрении выглядит так. Например, мне надо различать кошек и собак. У меня есть две папки, в одной тысяча фоток кошек, в другой - тысяча фоток собак. Я создаю необученную нейронку - функцию, у которой много числовых коэффициентов, которые изначально имеют, например, случайные значения. Начинаю ей показывать фотки и спрашивать, кошка или собака? Если отвечает неправильно, чуть-чуть подправляем коэффициенты. И так несколько кругов по всему датасету, и каждый раз капельку подправлять коэффициенты в случае неправильных ответов. В результате коэффициенты сами собой подбираются так, что нейронка неплохо различает кошек и собак. После этого её можно экспортировать и использовать в приложениях.

Но когда нейронка используется в приложении, она "не помнит" конкретные фотографии, которые ей показывали в обучении. Эффект фотографий заключается в том, что благодаря ним как-то изменялись коэффициенты и в конце концов получили работающие значения. "Мышление" нейронки заключается в этих коэффициентах.

Поэтому можно представлять себе, что нейронка обладает "врождённым" объёмом знаний, в том числе умением говорить, если речь о языковой модели. Но ответы она генерирует исходя не из логики и не из сознательно составленной программы, а исходя из коэффициентов, то есть "по наитию". Коэффициенты содержат в себе информацию, но не непосредственно, а в "переваренном" виде, как результат наслоений крошечных изменений на каждом шагу обучения.

Конечно, можно тренировать нейронку рассуждать по законам логики. Но для нейронки логика - примерно то же, что для живого человека. Это не нечто, безусловно зашитое в мозг. Во-первых, в "сознательной жизни" она ими пользуется "интуитивно", то есть более-менее логические ответы появляются сами собой в результате вычислений по коэффициентам.
Во-вторых, в принципе, можно в явном виде попросить её следовать правилам логики (или любым другим, например - оформление кода), и таким требованиям она будет стараться следовать, но может, например, их забыть. Что кардинально отличается от обычного программирования, в котором логика является фундаментальным способом организации программы,  и отклонение от которой немыслимо.

У слабых моделей иногда ощущается вайб студента-троечника: слышал звон, но не знаю где он, и стараюсь экспромтом накидать умных слов, чтобы получилось правдоподобно и наукообразно. По-моему, это неплохо иллюстрирует их психологию. У продвинутых моделей получается лучше, но матчасть та же.
  • 1
  • 0

4
Т.е. нейронка не может выдать того, чего не знает.

Нейронка ничего не знает. Это не база знаний, из которых она выуживает ответы. Она отвечает "интуитивно". Поэтому может дать ответ на вопрос, которого в обучении не было. И поэтому за точность ответов ответственности не несёт. :)

Мне кажется забавным, как в научной фантастике противопоставляли рассудочный и логичный ИИ человеческому интеллекту, а оказалось наоборот: логика не нужна, а нейронки руководствуются чутьём.
  • 1
  • 0

5
У node.js, console.log пишет в стандартный вывод, то есть тоже, можно сказать, в консоль. Хитрость моего примера в том, что она пишет в стандартный вывод процесса в контейнере, но этот же текст доступен и хосту. Также в контейнере можно запустить интерактивную консольную программу, и работать с ней в терминале хоста. Даже графические приложения запускал в контейнере, чтобы они открывались в окнах хоста.
  • 0
  • 0

6
Я VirtualBox иногда юзал - громоздкая графическая программа. Графическая - значит, плохо интегрируется. А с докером можно так:

Печатаю "hello world" из node.js:
Code: [Select]
$ docker run --rm node -e 'console.log("hello world")'
hello world

Переворачиваю строку на лиспе:
Code: [Select]
$ echo 'hello world' | docker run -i --rm clfoundation/sbcl sbcl --noinform --quit --eval '(write-line (reverse (read-line)))'
dlrow olleh
  • 0
  • 0

7
Вот пример. У вас есть сайт, и вы хотите раздавать его nginx-ом.

Для примера, сайт будет такой: в папке mysite файл index.html
Code: [Select]
<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
    </head>
    <body>
        <p>This is an example of a simple HTML page with one paragraph.</p>
    </body>
</html>

Запускаете контейнер nginx:
Code: [Select]
docker run -v /path/to/mysite:/usr/share/nginx/html:ro -p 8080:80 nginx
Можно открыть localhost:8080 и посмотреть.

-v - сокращение от --volume. Эта опция монтирует директорию хоста в контейнер. nginx предполагает, что раздаваемые файлы лежат в директории /usr/share/nginx/html, и мы "подсовываем" туда локальную директорию.

Опция -p перенаправляет порт. nginx по умолчанию раздаёт файлы на порту 80. Когда он используется в контейнере, это порт 80 контейнера. Опция -p 8080:80 перенаправляет запросы на порт 8080 локалхоста на порт 80 контейнера.

Так мы используем nginx, не устанавливая его и не конфигурируя.

Но, конечно, можно запускать nginx и с кастомной конфигурацией, скопировав или примонтировав локальный конфиг-файл в контейнер.
  • 1
  • 0

8
Это вроде кучи виртуальных машин, но гораздо легковеснее. С виндоусом в контексте докера никогда не работал, не знаю деталей. Контейнеры с линуксом хорошо работают на линуксе. :)
  • 1
  • 0

9
Да, это для приложений, а не для данных. Вместо того, чтобы ставить приложения непосредственно в свою ОС, можно их ставить в их собственные ОС, работающие в контейнерах. И на hub.docker.com есть большое количество готовых образов с установленным софтом. Преимущества:
- контроль над версиями
- легко воспроизводимо
- упрощается установка и конфигурирование софта
- основная ОС не забивается хламом

Например,
- контейнер 1: бэкенд
- контейнер 2: postgresql
- контейнер 3: pgadmin
Можете для практики попробовать реализовать такую конфигурацию. Для усложнения можно добавить фронтенд:
- контейнер 4: дев-сервер фронтенда
- контейнер 5: nginx, за которым работают бэкенд и фронтенд, чтобы не было ошибок CORS.

Контейнеры общаются друг с другом по внутридокерной сети. Поэтому, например, для postgresql не нужно конфигурировать порт. Он может использовать порт по умолчанию, потому что это не порт компьютера-хоста, а порт контейнера.
  • 1
  • 0

10
а если бы порицали бы не его лично, а неких коллективных сферических “rusos” в вакууме, то у Иванова сразу бы отлегло на сердце? Спрашиваю для друга ;D

Ну наверно, ибо какое к нему отношение имеют сферические в вакууме? Пример из жизни: жил я в районе, заслуженный имидж жителей которого - шпана, наркоманы, алкаши. Но мне не стыдно за них, и я их также порицал. Проживание в одном районе создаёт слабые "узы" между людьми, а принадлежность к одной национальности - вообще ничто.
  • 1
  • 0

11
Если Иванова, к которому персонально претензий нет, стали бы "порицать" только на основании национальности, это называется дискриминация.
  • 2
  • 0

12
Разве это фреймворки? Фреймворк - это ангуляр, например! Задаёт стиль написания приложений и содержит набор инструментов.

А это - библиотеки какие-то. Пример из гугла: https://github.com/liabru/matter-js/blob/master/examples/mixed.js Код как код, функции вызываются одна за другой.
  • 0
  • 0

13
Компьютеры и интернет / Re: Python
« on: 09 April 2026, 15:11:26 »
Я имел в виду далеко не только питон а вообще языки программирования.

Я тоже про языки вообще. Моя точка зрения, что на работе лучше статическая типизация построже, а на отдыхе - то, что доставляет наибольшее удовольствие.
  • 0
  • 0

14
Компьютеры и интернет / Re: Python
« on: 09 April 2026, 15:09:43 »
А как связаны автодополнение и статическая типизация? В DevTools и IDLE тоже автодополнение методов через точку работает, хотя в JS и Python никакой типизации нет.

Вопрос в доступной информации. Например, в DevTools есть объект в рантайме, и конечно, DevTools про него знает абсолютно всё. Или типы можно выводить. Но при статической типизации такой информации обычно больше. Например, один раз работал с кодом на JS, в котором было много функций типа payload => ... . Конечно, в теле такой функции автодополнение не работает. И это полбеды, потому что я сам, так же как алгоритм автодополнения, не имел возможности понять, что это за payload в каждом конкретном случае.
  • 0
  • 0

15
Компьютеры и интернет / Re: Python
« on: 08 April 2026, 15:26:52 »
но почему???

В общем, у меня сложилось такое впечатление. Типизация выступает минимальной документацией; легче модифицировать код, например, если требуется превратить
Code: [Select]
interface I {
  foo;
  bar;
}
в
Code: [Select]
interface I {
  foo;
  bar;
  baz;
}
автодополнение работает, особенно при вызове методов через точку, что, в частности, улучшает discoverability. Если в каких-то ситуациях статическая типизация оказывается ограничительной, то на работе, может быть, это даже хорошо.

Я помню как некоторые знакомые лет пять назад утверждали что без статической типизации вообще делать нечего. А сейчас сидят и молча учат питон  :)

Mypy существует уже давно.
  • 1
  • 0

Pages: [1] 2 3 ... 105