Задать вопрос
  • Как научиться делать ИИ?

    Maksim_64
    @Maksim_64
    Data Analyst
    Что бы не использовать готовое, а делать свое.

    1. Сильные математические знания, которые позволят читать научные стать или хотя бы подходящую литературу, по RL например Reinforcement Learning, second edition An Introduction by Richard S. Sutton and Andrew G. Barto. Это главная базовая литература.

    2. Сильные скилы в программировании определенные алгоритмы очень сложны.

    3. Очень много времени.

    4. Вычислительные мощности.

    В легких для чтения статьях рассматриваются, отдельные компоненты, и их применения, а не ИИ с нуля.
    Ответ написан
    3 комментария
  • Как поставить правильные инструкции для GPT API для обхода цензуры?

    @rPman
    Полистай идеи в старых jailbreak типа таких (лучше погугли, можно найти больше)

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

    p.s. ты пробовал открытые аналоги, ты пробовал уйти от изображений к текстовому описанию, который получаешь сторонними средствами (недавно вышла facebook sam - модель для сегментирования объектов на изображении, можно разобрать, каждое по отдельности проанализировать, и серией запросов набрать описание)
    Ответ написан
    Комментировать
  • Можно ли заставить LLama2 выполнять действия?

    @rPman
    И нет и, может быть, да. Помимо llama существует лучше модели, например mistral и основанные на нем типа openchat35 или лучше mixtral (он неожиданно умный и скорости как 7b) или или еще лучше от databrix (по скорости как llama30b).

    У разработчиков языковых моделей например есть chat версии, есть instruct, а есть base. Общий смысл каждой определяется тем, на какое именно использование их заточили. Например instruct позволяет описывать инструкции на естественном языке и главное получать ответ тоже на естественном языке, со всеми вытекающими от сюда неудобствами (api предполагает стандартизацию форматов вывода). chat ожидает что с ним будут общаться в формате user: xxx, ну а base модели изначально работают только как completion, и их обычно дообучают до своих форматов и наборов знаний.

    Кстати, к примеру модели, которые обучали программированию (а это почти все, ищи в бенчмарках HumanEval, потому что openai говорили что именно с этого начинали свою модель обучать и это очень было ей полезно), можно буквально попросить давать ответ в виде json, описав в промпте его формат и оно будет пытаться это делать, точно помню что прбовали за основу взять принцип - модель генерирует готовую программу, решающую вашу задачу, бакэнд ее запускает и выдает ответ и так на каждый запрос. Но чем глупее и проще модель, тем с большей вероятностью она будет отходить от строгого формата, а значит бакэнд приложение, которое будет обслуживать уже твой api должно ожидать эти расхождения и обрабатывать их не как ошибка (например лишнее текстовое описание типа "вот вам ответ в формате json: ...".

    Так как llm это посимвольная (по токенам точнее) генерация ответа, на каждом из них, в момент когда происходит выбор следующего токена, можно вставить свой алгоритм, ограничивающий доступный список своими, по своему правилу. Например можно описать регулярное выражение, которое будет применяться к сгенерированному тексту плюс выбираемый токен и если оно не подходит, отказывать в выборе этого токена. Например какая то реализация этого есть в llama.cpp ищи grammar, это ключ у api вызова к server.

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

    Есть общепринятые лайфхаки, повышающие качество ответа. Это добавление примеров (вопрос+ответ+вопрос+ответ+вопрос+...) т.е. one-shot/multi-shot, именно так слабые модели могут встать по бенчмаркам с zero-shot у сильных моделей, без примеров. Или попросить в запросе модель поразмышлять (think step by step), надавить на эмоции (найти ответ очень важно для меня, от этого зависит моя жизнь), ценой места в окне контекста. Еще есть подход, делать один и тот же запрос (или кстати слегка менять prompt) много раз, и сделать какой то механизм валидации ответа (например большая часть одних и тех же ответов считать верной) - как защита от галлюцинаций (был пример когда модель заставили миллион раз генерировать программу, запускать ее и проверять результат - так сделали реальное научное открытие)

    НО! Просто не будет.
    Ответ написан
    Комментировать
  • Возможно ли установить Windows XP на внешний жесткий диск?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Проблема не в самом диске Hitachi, а в интерфейсе (драйвер материнки который отвечает за подключение). XP не умеет с ним работать и поэтому не видит диска.
    Если для этой материнки нет драйверов на XP (производитель не выпускал), то не факт что у вас получится что-то сделать.
    Ответ написан
    Комментировать
  • Как исправить ошибку php Call to a member function bind_param() on boolean in?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Call to a member function bind_param() on boolean
    Где вызывается bind_param()?
    $stmt->bind_param("ssisss", $plaintiffs_json, $respondents_json, $type, $reason, $petition, $video);
    Где stmt получает значение?
    $stmt = $conn->prepare("INSERT INTO `cases`(`nickname`, `respondent`, `type`, `reason`, `petition`, `video`) VALUES (?, ?, ?, ?, ?, ?)");
    В каком случае prepare может вернуть значение типа boolean?
    mysqli_prepare() returns a statement object or false if an error occurred.
    Вывод - при вызове prepare возникает ошибка.
    Как найти ошибку? Либо проверить $conn->error после вызова prepare, либо, что правильнее, сразу настроить mysqli на выброс исключений при ошибке, добавив перед соединением с базой вызов
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    Ответ написан
    Комментировать
  • Как мне отобразить выключен ли элемент?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    <?php 
    $elements = (тут вытаскиваем из бд все элементы);
    ?>
    ...
    <?php 
    if($elements[35]['status'] ==1){?>
    <div class="absolute top-[514px] left-[30px]" style="transform: rotate(15deg);">
    ...
    <?php } ?>
    Ответ написан
    2 комментария
  • Какой ивент поставить чтобы работало при вводе?

    ddv88
    @ddv88
    Binance Futures
    Ответ написан
    Комментировать
  • Как сделать вывод юзеров из бд?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Делаем загадочные движения руками, незаметно меняем тег br на td и... Магия!
    foreach($row as $v) {
        echo "<td>$v</td>";
    }


    Но на самом деле обычно так не делают, и действительно вытаскивают "что-то одно". Попутно разделяя работу с SQL и HTML и защищаясь от инъекцй. Для этого:

    • сначала получаем нужные на странице данные. Если выводим список, то записываем его в массив
    • только после того как все данные получены и обработаны, можно начинать вывод. В простейшем варианте закрываем тег РНР и начинаем выводить HTML и в нужных местах - запрошенные выше данные
    • не забывая их в обязательном порядке экранировать

    $data = $mysqli->query('SELECT * FROM users')->fetch_all(MYSQLI_ASSOC);
    ?>
    <table>
      <?php foreach($data as $row): ?>
        <tr>
            <td><?=htmlspecialchars($row['id'], ENT_QUOTES) ?></td>
            <td><?=htmlspecialchars($row['name'], ENT_QUOTES) ?></td>
            <td><?=htmlspecialchars($row['email'], ENT_QUOTES) ?></td>
        </tr>
      <?php endforeach ?>
    </table>
    Ответ написан
    1 комментарий