Для ЛЛ: Продолжение поста о том как сделал полезную для себя утилиту на Python не зная ни одного языка программирования при помощи ChatGPT.
В прошлом посте высказал мнение, что используя ChatGPT вполне себе можно решить свою небольшую цифровую проблемку, делюсь новостями по реализации задуманного.
Напомню, задача была перенаправлять трафик к определенным доменам через VPN. Сложность заключалась в том, что заворачивать в туннель нужно было трафик к доменам, а не IP адресам т.е. именно к DNS именам IP адреса которых постоянно меняются, что делает практически бесполезным их добавление в статические маршруты или VPN конфиг. Но основной проблемой был относительно слабый роутер Keenetic Air использовать на котором готовые решения было затруднительно или скорее даже невозможно в силу отсутствия USB порта и очень малого количества ROM, которого с трудом хватает даже для свежих родных прошивок.
Итак, благодаря тому, что OpenAI пусть и ограниченно но для всех желающих открыла доступ к ChatGPT Plus удалось сдвинутся с места и решить практически все имевшиеся проблемы.
С новой языковой моделью стало проще договориться, хотя правильнее наверное будет сказать, что она стала лучше понимать что я от нее хочу и в результате утилита была доработана. Основные изменения: - аптайм работы увеличен с нескольких минут до 100% времени. - повышена скорость работы. - убраны задержки при выполнении операций по SSH. - лог консоли стал более информативным.
Для тех кто дочитал до этого места, опишу логику работы: Программа запущена на VPS который одновременно является VPN сервером. На домашнем роутере основным DNS установлен IP адрес сервера с запущенной программой. Программа принимает DNS запрос от хоста, используя вышестоящий DNS сервер разрешает его в IP адрес и дает ответ хосту, после чего проверяет DNS имя (совпадения по первым октетам) на наличие в пользовательском списке и в случае совпадения через SSH отправляет роутеру команду на добавление IP адресов этого DNS имени в статические маршруты, указывая в качестве шлюза для этих IP адресов настроенное в роутере VPN соединение.
Что не получается решить: отправка всех команд за одну SSH сессию, сейчас для каждой команды инициируется отдельное подключение. Никак этот момент победить не получается. Что хочется добавить: работу с несколькими рекурсивными DNS серверами. Сейчас используется один вышестоящий DNS и очень редко, но бывает, он вылетает в таймаут по количеству запросов в секунду.
Однако производительности и текущей конфигурации хватает для обслуживания всех домашних устройств без каких-либо значительных задержек.
Пост запилил себе на память, но, если кто чего подскажет - будет хорошо, а если кому-то окажется полезным так и вообще - восторг. Код доступен на GitHub.
С начала прошлого года я наблюдал за появляющимися в больших количествах статьями и материалами на тему изучения английского языка с помощью ChatGPT. Конечно, как преподавателя английского языка, меня очень интересует этот вопрос, так же как и лодочников, сломавших первую лодку с паровым двигателем, и извозчиков, недовольных трамваями. Однако с течением времени моя тревога прошла, потому что полтора года спустя не объявилось ни одного человека, выучившего английский язык только с помощью нейросети. А отсутствие подтвержденных результатов – это достаточно мощный аргумент.
Сhat GPT пытается учить английскому языку, соединяя кусочки из различных учебников
Как вы относитесь к гомеопатии? Стали бы вы с ее помощью лечить опасное заболевание, если есть проверенные годами методы? Хотя можно привести и примеры с ГМО, где есть прослойка населения, опасающаяся использовать «новинку», но здесь у нас хотя бы есть некие исследования о безвредности, а в ChatGPT – нет свидетельств по типу «я использовал только ChatGPT и достиг отличных результатов». Под результатами мы конечно понимаем способность работать за границей, общаться с коллегами или хорошие баллы на экзамене типа IELTS или TOEFL.
Но это обывательский подход, конечно же, уже проводились некие исследования, задействующие фокус-группы, в ходе которых, например, было выяснено, что «ChatGPT оказывает позитивное воздействие на навыки письма и незначительное – на развитие разговорных и грамматических навыков, словарный запас, мотивирование участников занятия». Упоминается, что «хотя AI-технологии по типу ChatGPT могут оценивать уровень знания, и проводить инструктаж по обучению языкам, они должны рассматриваться скорее как дополнение, а не как замена людям».
Но, на днях вышла новая версия ChatGPT-4o, которая отвечает еще быстрее, распознает эмоции и изображения. Хотя не все возможности, продемонстрированные на презентации, уже доступны широкой аудитории, ясно, что это рано или поздно произойдет. И опять закралась мысль, неужели все скоро станут учить английский язык только с нейросетями? А ведь могут попытаться, учитывая, что упомянутые материалы (статьи и видео) преподносят ChatGPT, как нечто революционное в сфере обучения иностранным языкам. Более того, уже появились платные сервисы, работающие на основе нейросети, не берусь сказать, ChatGPT это или нет, но они способны запоминать контекст беседы, а также задавать вопросы. И все же, полагаем, что правильное использование нейросетей состоит в дополнении традиционных методов обучения, а никак не в полной их замене.
1. Почему идея использовать ChatGPT для изучения английского языка выглядит привлекательно? Во-первых, это либо почти бесплатно, либо очень дешево. Во-вторых, если ChatGPT может моментально ответить на любой вопрос, а теперь еще и в голосовом формате, то зачем нужен учитель? Можно просто напечатать на русском языке запрос «учи меня английскому» - и процесс пойдет. Но проблема в том, что вы не выучите язык за день, не перейдете на следующий уровень и за месяц. Вам нужно следовать учебной программе несколько месяцев, и тут начинаются вопросы к тем, кто просит «составить ChatGPT программу для обучения английскому языку» - программу нейросеть, так уж и быть, составит, но оценить ее адекватность она не в состоянии.
2. ChatGPT компилирует информацию из разных источников. Это наверное хорошо, если вам нужна курсовая, которая пройдет проверку на антиплагиат. А если ChatGPT возьмет одну половину из учебника Outcomes, а вторую половину из English File, учебников с похожим, но разным набором лексики, которая повторяется в определенном порядке, то эффективность изучения полученной компиляции будет ниже, чем если бы вы взяли только один учебник. Не очень понятно, как ChatGPT может подменить собой методолога. Да, если вы сделаете запрос «составь мне программу от нуля до продвинутого уровня английского языка за 3 месяца», то получите с виду адекватный ответ, но мы понимаем, что чудес не бывает, и любой интеллектуальный навык формируется в течение длительного периода времени.
Пример
Для достижения уровня B2 за месяц Сhat GPT рекомендует заниматься каждый день по 8 часов.
Рекомендует скачать Анки и запомнить "столько слов, сколько сможете". Хотя в целом рекомендация "занимайтесь много и все получится" - верная, но спрашивать ChatGPT для этого вовсе не обязательно. Программа не скажет вам, что-то то невозможно, наверное, потому, что в нее не заложена информация о всех людях, живущих на Земле. А любой человек-специалист сразу скажет, что даже гении учат языки несколько лет, а до B2 при условии изучения языка 8 часов в день и если у вас хорошие способности вы дойдете, ну, например, через полгода. Такой статистики просто нет.
Кроме того, для начинающего изучать язык преимущества одного метода над другими вовсе не очевидны. Это вообще проблема всех «гуру» и «коучей», блогеров, создающих «обучающий» контент, которые ориентированы на неспециалистов в сфере и готовы раздавать обещания, гарантии, которые могут выглядеть правдоподобно.
А ChatGPT по своей сути является сейчас именно таким всезнающим гуру, который может складно и вежливо ответить на любой вопрос, при этом сгенерировать совершенно неадекватный ответ. Поэтому, тот, кто решил изучать язык только с нейросетью, рискует попасть под каток экспериментальных методов и либо тренировать одни и те же навыки каждый день, не продвигаясь вперед, либо пытаться за один раз выучить огромное количество информации. Потому что ChatGPT пока еще берет информацию не только из книг по изучению английского языка, а и из статей копирайтеров.
3. На самом деле, ChatGPT в контексте изучения иностранных языков не является чем-то инновационным.
Что можно сделать в ChatGPT? Про составление «программы» мы уже написали, можно еще:
a) Перевести слово – так же как и в любом словаре;
b) Услышать, как слово звучит (в машинной озвучке (хотя уже и очень близкой к человеческой), в отличие от онлайн-словарей);
c) Перевести фразу – так же, как в Гугле и прочих переводчиках;
d) Задать вопрос на английском языке – и получить ответ. Если это вопрос по грамматическим правилам, то опять же, неясно, чем он будет лучше оригинала из статьи или учебника. При этом, читая оригинал, вы знаете, кто является автором материала, его опыт и квалификацию. В ChatGPT это сделать невозможно, хотя последние версии работают не только с заранее загруженной информацией, но и предоставляют актуальные ссылки на сайт – но непонятно, зачем тогда нужен ChatGPT, чем он лучше Гугла?
e) Подобные программы существовали и ранее, например, Rosetta Stone. Многие знают и про DuoLingо. Чем от них отличается ChatGPT? Это нейросеть, которая отвечает на запрос человеческим языком. Последние версии могут даже отвечать на голосовые запросы. При этом важную информацию, и это написано в самом окне запроса ChatGPT, лучше не искать.
4. Чего Chat GPT делать не может? Программа не сможет помочь с улучшением произношения. Последние версии нейросети каким-то образом распознают эмоции собеседника, но что касается качества вашего произношения – не удалось никаких подтверждений того, что ChatGPT может сказать, говорите вы с акцентом или нет, и что именно не так. То есть существует два режима – вас либо понимают (сравнивают образцы вашей речи с записанными в программу), либо нет. С одной стороны, это и неплохо – если вас понимают, то ваш акцент не такой уж и сильный. А с другой, программа может и не понимать, что ваш акцент на грани понимания и в следующий раз опустится ниже этой грани, и помочь она не сможет. Схожую проблему сложности тренировки произношения отмечает и известный носитель американского английского Рэйчел – неважно, как с какими бы искажениями она не произносила слово, приложение “Elsa Speak” считало его эталонным, если оно смогло понять это слово. А нужно отметить, что это неплохое специализированное приложение для повышения уровня языка (в отличие от «мастера на все руки» ChatGPT). Возможно, для детей младшего школьного возраста это не будет являться проблемой, так как они могут научиться говорить без акцента, просто повторяя за программой. Но при обучении детей еще возникает проблема мотивации – программу с нейросетью нужно адаптировать в изощренно увлекательный формат, иначе дети просто не смогут фокусироваться на ней сколь-нибудь длительное время. Поэтому, на наш взгляд, школьным учителям не стоит опасаться, что их заменят в обозримом будущем - по крайней мере пока Boston Dynamics не создаст робота, который бы вызывал учеников к доске, а родителей – в школу.
Мотивация вообще является основной проблемой изучения языка с нейросетью. При разговоре с искусственным интеллектом вы на самом деле тренируете навык разговора с искусственным интеллектом. А не человеком, с которым приходится задействовать и эмоции, проявлять заинтересованность, использовать невербальный язык. Представьте боксера, который тренируется без спаррингов, только с тренажерами и с грушей, причем несколько лет, сможет ли он потом противостоять настоящему противнику, несмотря на отработанные приемы и хорошую физическую форму? У меня серьезные подозрения, что люди не публикуют результаты обучения с ChatGPT потому, что им это в какой-то момент надоело и они забросили и нейросеть и английский.
5. Есть примеры из других сфер. Конечно, можно вспомнить симуляторы игр – автогонки, шутеры, авиатренажеры. Но если посадить такого, например, любителя автосимуляторов в болид «Формулы-1» или в трактор, то тронуться с места он не сможет, что уж там говорить о неготовности к перегрузкам от высоких скоростей.
Есть и менее известный пример, но близкий к нашей теме. В шахматах аналоги ChatGPT появились уже больше 20 лет назад. Это программы, которые показывают лучший ход в любой позиции. Изначально такие шахматные движки играли лучше человека только за счет перебора лучших ходов, при этом были позиции, к которых, из-за сложности перебора, человек мог с первого взгляда определить исход партии, а программа давала неопределенные и неправильные оценки.
С течением времени оценка позиции на доске у таких программ значительно улучшилась и теперь не уступает человеческой, более того, последние программы могут и играть в более человечном стиле, жертвуя фигуры за инициативу. Казалось бы, если есть возможность спросить программу, «а что делать в этой позиции» и получить правильный ответ в виде варианта, то изучать шахматы стало легче?
И да, и нет. Профессиональным шахматистам сейчас невозможно подготовиться к партии без шахматных движков, им приходится запоминать тысячи вариантов, выданных программой – просто потому, что иначе их, эти самые лучшие варианты запомнит соперник.
Однако, ни один тренер не порекомендует новичкам и любителям игры много работать с компьютером, потому что они еще не могут объяснить, почему именно тот-или иной ход является лучшим. Для профессионалов это не так важно, потому они могут довести позицию, полученную в результате подсказанного компьютером варианта, до победы. Но научить оценке позиции может книга или, что еще лучше – тренер, который, как правило и закладывает основы шахматного мышления. И это не заговор тренеров – шахматные движки находятся в свободном доступе, но общий шахматный уровень, несмотря на это, не растет, развитие мастерства требует кропотливой работы и большого количества практики. Трансформация знаний в умения, релевантные запросу – та сфера, где использование ИИ еще не доказало эффективности.
Известный боец, чемпион UFC Фрэнсис Нганну, несмотря на хорошую физическую подготовку и долгие тренировки, проиграл нокаутом профессиональному боксеру Энтони Джошуа уже во втором раунде, потому что это был только боксерский поединок в его жизни. Иными словами, общение с ИИ отличается от общения с человеком, хотя с каждым годом все меньше и меньше, но все еще стоит его рассматривать скорее как подготовку, а не полноценное общение.
6. Заменит ли ChatGPT переводчиков? Можно поставить вопрос так, а нужно ли вообще изучать иностранные языки, если программы могут переводить мгновенно и точно? Можем даже пренебречь впечатлениями от общения, ведь возможность понимать сразу, что вам сказали, не сравнить с получением ответа от машины.
Видится, что там, где уровень разговора превышает повседневный, нейросети еще не скоро заменят людей. Ведь с нейросетей, в отличие от переводчиков, нельзя «спросить» за ошибку; можно спросить с их разработчиков, но вариативность человеческого языка пока что так велика, что ошибки будут возникать и дальше.
Налаживанию международных отношений нейросети не способствуют, художественную и техническую литературу (например, чертежи самолетов, на которых вы будете летать) переводить могут только с помощью людей – за машинами нужен глаз да глаз. Можно вспомнить курьез, связанный с продажей на Amazon написанный ИИ книг про собирание грибов. Нейросеть рекомендовала «идентифицировать грибы путем пробования их на вкус», более того – считала бледную поганку неплохим вариантом для перекуса.
Справедливости ради, сейчас уже не удается убедить ChatGPT в том, что можно есть мухоморы и поганки.
Chat GPT предупреждает об опасности, но при этом знает, что есть некий вид мухоморов-шампиньонов, из которых все-таки можно приготовить гарнир. Но мне пришлось задействовать другие источники, чтобы убедиться в этом наверняка
7. Совсем не обязательно возможность узнать информацию быстро хороша для обучения. По этой теме уже был интересный пост на Habr «Чего нас лишит нейросеть». Нейросеть используется для самообучения, но достаточно ли одного ответа? Когда вы ищете информация, вам приходится анализировать разные источники, смотреть, например, варианты употребления фразы, в результате информация запоминается гораздо лучше. ChatGPT тоже может создать контекст, но за адекватность фраз поручиться не может. Иными словами, возможно, что для расширения словарного запаса гораздо лучше будет потратить время на чтение статьи, нежели на чтение искусственных текстов, сгенерированных нейросетью.
Я могу сказать из своего опыта, что некоторые моменты построения предложения, даже некоторые слова вполне возможно проигнорировать, перевести их согласно языковой догадке. Вы можете перевести каждое слово, спросить у нейросети нюансы каждой грамматической конструкции, но не всегда это нужно знать на начальных уровнях – гораздо важнее тренировать навык (например, произносить целую фразу из диалога, не вдаваясь в принципы ее построения), поэтому может, как это часто бывает в современном мире, произойти перегруз информацией, что приведет к замедлению прогресса в изучении языка.
8. Как должна выглядеть программа для обучения английскому языку? Сейчас ChatGPT, если проводить аналогии – очень образованный и вежливый носитель английского языка, который, однако, не может следовать никакой системе. Практика английского с настоящим человеком гораздо увлекательнее, и для этого не нужно больших денег – уроки с носителями на сервисах типа Italki начинаются от 5$, а в приложении Tandem можно практиковать английский с иностранцами бесплатно.
Если мы возьмем учебник английского языка, то в нем будут упражнения для улучшения пассивных навыков (Reading, Listening) и активных (Writing, Speaking). Очевидно, что если мы хотим по максимуму устранить учителя из учебного процесса, то ChatGPT должен выполнять все его функции, а именно, идти по программе урока, задавать вопросы и обеспечивать фидбек. К каждому учебному пособию прилагается книга для учителя, в которой даются инструкции и дополнительные упражнения/сценарии, возможные варианты ответов. Так, необходимо убедиться, что студенты понимают задание, уточнять заранее, понятна ли лексика и помнят ли они ранее выученный материал. По объему инструкции иногда могут быть длиннее, чем сам материал из соответствующего объема учебника. Для качественного обучения приложению нужна хорошая база данных по уровню изучаемого языка, оно должно помнить контекст (насколько я понимаю, сейчас память у ChatGPT не бесконечна), чтобы не спрашивать очевидные вещи снова и снова. Иными словами, нейросеть должна быть специализированной, с вшитой, проверенной программой обучения иностранному языку, потому что то, что есть сейчас в контексте изучения английского – это быстрый поисковик который ищет за вас. В создании такой программы должны участвовать лингвисты и учителя.
Несмотря на минусы, очевидно, что ChatGPT является неплохим подспорьем в изучении языка, причем, чем выше ваш уровень – тем больше вы потенциально сможете выжать из программы.
Кроме отмеченных ограничений в оценке качества произношения, все другие аспекты могут быть проработаны, при условии, если у вас уже есть база языка и вы знаете свои слабые стороны и конечную цель, например, подготовку к экзамену. Но пока оценивать экзамены будут люди, то видится, что и в подготовке к экзаменам должны участвовать тоже люди, потому что пока что у нас с машинами разные ценности.
Всем привет, в последние годы я исследую Искусственный Интеллект, мой контент об этом можно найти на канале Ruslan Dev на YouTube. В этой статье я расскажу о том, как я сделал файнтюнинг Llama 3 70B - лучшей базовой модели на сегодняшний день. Я обучал модель на мультиязычном датасете Tagengo, в котором есть русскоязычная выборка.
Очевидно, обучение такой модели требует серьезных вычислительных мощностей, поэтому полного цикла на 3-4 эпохи я делать не стал. Я рассчитывал потратить пять-десять GPU-часов, чтобы проверить мой код для файнтюнинга на работоспособность, посмотреть метрики обучения, запустить инференс модели и оценить первые результаты.
Моей второй целью была квантизация обученной модели и сохранение в формате GGUF. Этот формат позволяет запустить Большую Языковую Модель (LLM) на любом компьютере с достаточно мощным процессором.
Базовая модель, которую я файнтюнил -unsloth/llama-3-70b-bnb-4bit. Cначала я проверил, как эта модель справляется с русскоязычным промптом, задав ей вопрос - "Из чего состоит нейронная сеть?"
Очевидно, что базовая модель не обучена следовать инструкциям. Она просто повторяла мой вопрос, итерация за итерацией, пока генерация не достигла максимальной заданной длины. Я рассчитывал на то, что после файнтюнинга модель будет следовать инструкциям на русском языке.
Сначала я собирался обучать на нескольких видеокартах параллельно и выбрал два GPU A100c NvLink.
Однако, я не учел тот факт, что библиотека unsloth, которую я использую в моем фреймворке, еще не поддерживает model parallelism, а это серьезное ограничение. В их дискорде нашел пост, что в ближайшее время обучение на нескольких GPU станет возможным. Если этого не случится, мне придется искать альтернативные пути.
Поскольку файнтюнинг базовой модели Llama 70B c квантизацией в 4 bit на 3 эпохи на одном A100 требует порядка 5 дней, мне пришлось сократить количество шагов обучения.
Также я решил перейти на другую видеокарту - H100, самую мощную из того что есть.
Настройка рабочего окружения у меня довольно простая. Мне нужен только python >= 3.9, а затем клонирую свой фреймворк gptchain с github:
На странице датасета заявлено, что "Tagengo - самый большой в мире мультиязычный датасет высокого качества". 78 тысяч примеров диалога на разных языках, включая русский. Здесь есть серьезная выборка на русском - 8 тысяч строк.
Я обучил модель на 2,400 шагов, на это ушло 7 часов на H100.
Если использовать A100, по моим расчетам, потребовалось бы примерно 10 часов.
Я запустил файнтюнинг на Виртуальной Машине в бэкграунд-процессе. Для этого я воспользовался systemd, стандартным способом создания фоновых процессов (демонов) в Linux.
Как настроить фоновый процесс для файнтюнинга через systemd:
Я создал файл gptchain.service в /etc/systemd/system. В него вставил вот такую конфигурацию:
Здесь главное - команда gptchain.py train, которая запускает файнтюнинг модели.
А теперь нужно выполнить:
sudo systemctl daemon-reload
sudo systemctl start gptchain
И все, остается ждать завершения файнтюнинга, но метрики вроде Train Loss хотелось бы как-то отслеживать. Самое простое - посмотреть логи процесса:
journalctl -u gptchain.service
Чтобы иметь возможность нормально наблюдать метрики, лучше, конечно, использовать wandb или tensorboard.
В этот раз я использовал wandb - просто указал ключ доступа в переменной WANDB_API_KEY в файле .env. Мой процесс подключается к wandb автоматически и экспортирует метрики в реальном времени.
Внутри команды train (вкратце) происходит следующее:
К базовой модели применяется LoRA (Low Rank Adaptation), метод, позволяющий файнтюнить параметры более эффективно - исходная матрица параметров оставляется неизменной ( "замораживается"). В процессе обучения изменяется представление параметров модели в виде двух матриц более низкой размерности. Реализация LoRA, с которой мы обычно имеем дело, работая на стеке Huggingface Transformers (как и в данном случае) - через библиотеку peft.
Дальше происходит загрузка датасета и приведение к нужной структуре. Данные в Tagengo представлены в виде массивов json, какие принимает и возвращает OpenAI API. Чтобы использовать эти данные для файнтюнинга, я сконвертировал их в формат ChatML. У библиотеки Unsloth есть хорошая поддержка СhatML, что мне очень помогло конвертировать данные из вот этого:
[
{
"from": "human",
"value": "The user’s message goes here"
},
{
"from": "gpt",
"value": ""
}
]
Вот в это:
<|im_start|>user
The user’s message goes here
<|im_end|>
<|im_start|>assistant
Следующее, что происходит в моем коде - конфигурируется экземпляр Supervised Fine-tuning Trainer (SFTTrainer) - класса, предоставленного библиотекой trl. В нем задаются параметры файнтюнинга.
Основные из них:
learning_rate: 2e-4
seed: 3407
gradient_accumulation_steps: 4
per_device_train_batch_size: 2
optimizer: adamw_8bit
lr_scheduler_type: linear
warmup_steps: 5
max_steps: 2400
weight_decay: 0.01
Через семь часов файнтюнинг завершился. Я убедился, что Train Loss медленно, но верно сходится. Хотелось бы обучить на несколько полных эпох, но, как я уже говорил, надо значительно больше GPU часов. Обучать нужно минимум на 2, а лучше на 4 видеокартах параллельно.
Затем я проверил, начала ли Llama следовать инструкциям на русском языке:
-q '[{"from": "human", "value": "Из чего состоит нейронная сеть?"}]' \
--chatml true
Да, начала - вместо бессмысленных повторений я получил правильный, очень подробный ответ на вопрос "Из чего состоит нейронная сеть?" Рекомендую посмотретьвидео, чтобы оценить качество ответа и скорость инференса Llama 3 70B наH100.
Стиль ответа напоминает GPT-4, это длинный детализированный текст. Неудивительно, так как датасет tagengo включает именно ответы GPT-4.
Затем я выполнил квантизацию модели и сконвертировал ее в формат GGUF, чтобы ее можно было запускать без GPU, на обычном процессоре.
Для этого в моем фреймворке есть консольная команда quant. Среди прочих аргументов она принимает метод квантизации. В интерфейсе llama.cpp, который используется под капотом, есть также полезная команда quantize --help, которая покажет много полезной информации по методам квантизации, в том числе какие из них рекомендуются в плане баланса качества модели, скорости инференса и размера файла. Я воспользовался методом q4_k_m:
Для Llama 3 70B непосредственно квантизация занимает примерно полчаса, перед этим еще произойдет сборка llama.cpp из C++ исходников, что необходимо для конвертации весов модели в GGUF формат.
В итоге вы получите файл gguf в папке quants, его можно запустить с помощью llama.cpp.
Я задал модели тот же вопрос "Из чего состоит нейронная сеть?", и модель начинала генерировать просто completion - завершила фразу, выдала в конце токен end-of-text и остановилась.
Это потому, что я не задал формат промпта. Здесь ведь нет автоматической конвертации инпута в формат СhatML, которую мне обеспечивал Unsloth при инференсе несжатой модели.
-p "<|im_start|>user \nИз чего состоит нейронная сеть?<|im_end|>"
Модель на этот раз поняла, что от нее хотят. Она сгенерировала ответ в нужном формате.
Это такой же развернутый ответ в том же стиле, что у несжатой модели. Но инференс GGUF значительно медленнее, чем на GPU. Зато вы можете запустить этот файл на любом компьютере, лишь бы хватило мощности CPU, иначе инференс будет длиться вечность.
Однако ближе к концу ответа модель стала генерировать странную последовательность обратных слэшей и других символов. У несжатой модели такого дефекта не было. Возможно, если бы файнтюнинг был проведен полностью, эта проблема бы не возникла.
Тем не менее, в целом мне понравилось качество ответов обеих моделей - с квантизацией и без. Я бы хотел протестировать свою модель на разных бенчмарках, например MT-Bench, в особенности меня интересуют результаты для русского языка. Это, вероятно, тема для новой статьи. А пока я рекомендую посмотреть видео о том, как происходил файнтюнинг, описанный в этой статье.
Слушайте трейлер первого тематического сезона «Стартап-секретов» и готовьтесь к выходу первого эпизода.
Весь этот месяц я провожу по три интервью в неделю, чтобы создать самую подробную картину жизни стартапов на нейросетях. Какие деньги зарабатывают. Какие проблемы испытывают. Где находят финансирование.
Я отошел от стандартного формата 1 выпуск = 1 гость. Теперь за 1,5 часа можно услышать истории трех основателей в одной нише, но с разными продуктами, успехами и трудностями.
Вас ждут 30 интервью, собранных в 10 тематических выпусков с основателями стартапов из всех областей: от транскрибаторов и генераторов картинок до медицинских стартапов с ИИ.
Как вы понимаете, это сложнее, но и более информативно.
А еще я превращаю полные интервью и невошедшие в подкаст материалы в конспекты, на основе которых создаю базу знаний по ИИ-стартапам. Ранний доступ к ней можно получить на сайте подкаста.
Поддерживает спец-сезон Yandex Cloud, за что им большое спасибо!
Надеюсь, вы оцените мой труд и примените эти знания для ваших проектов 🌚
На моем опыте, одна итерация работы агентской команды может съесть порядка $0.18 с баланса на OpenAI. При настройке команды агентов придется проводить много итераций, поэтому хотелось бы экономить при реализации этого процесса.
Можно осуществлять работу AI-агентов бесплатно, но с лимитами. Для этого понадобится API сервиса Groq. Через него мы будем использовать бесплатную LLM, например, llama-3.
Groq – это стартап, который создает специальное оборудование для скоростного взаимодействия с языковыми моделями. На данный момент они предоставляют бесплатный облачный сервис.
Я пользуюсь фреймворком CrewAI для работы агентских команд. Этот фреймворк по дефолту использует GPT, поэтому нужен кусок кода для переключения на Groq.
Почти полторы тысячи раз были просмотрены мои ролики
Как теперь выглядит мой ежедневный график: с утра до вечера на работе, потом два часа семья и дети, потом два-три часа создаю контент, или записываю ролик, или занимаюсь монтажом. Потом уставший, но довольный иду спать, а наутро все повторяется.
Все говорят, что алгоритмы ютуба сильнее прочих ценят последовательность. Поэтому, если я хочу раскрутить свой канал, я должен выпускать ролики с одинаковой периодичностью. Желательно не реже 1 раза в неделю, но у меня пока выходит примерно 1 раз в 9-10 дней.
Моя админка выглядит так
Кто я вообще такой и зачем мне нужен свой блог?
Я - программист. Сейчас Senior Frontend Developer, карьеру начал в 2010 году и мне есть, о чем рассказать начинающим коллегам.
Вообще, идея для канала была следующей: пишу полноценное приложение, но весь код для него генерирует chatGPT. Такой вот инновационный эксперимент. Однако, со временем выяснилось, что людям меньше всего на свете интересно смотреть, как кто-то возится с кодом, поэтому я пока поставил публичный эксперимент на паузу и стал выпускать ролики на тему программирования для широкой аудитории. Когда будет сто тыщ миллионов подписчиков (ну или хотя бы 5000), тогда для них продолжу эксперимент.
Зачем мне это нужно? Ну, во-первых, это интересно. Во-вторых, это может стать неплохим портфолио для рекрутеров. В-третьих, со временем такой канал может приносить доход (но ближайший год я об этом точно не думаю).
Кстати, насчет дохода - есть у меня идея завести отдельный канал, где я все те же самые ролики озвучиваю не на русском, а на английском. На иностранную аудиторию монетизация ютуба будет работать. Как думаете, зайдет?
Перед тем как дать ссылку на свой канал и призвать вас поддержать его и подписаться, скину еще несколько картинок из админки, для любопытных :)
Видео "Какой язык программирования выбрать" имеет примерно 40% досматриваемости. Это, вроде как, хороший показатель.
Моя аудитория за последний месяц
Большинство зрителей приходит из рекомендаций самого ютуба - мои ролики выборочно показываются некоторым пользователям на главной странице. На втором месте внешние источники - про них на следующей картинке
В основном, это поиск в гугле. Выведем Пикабу на первое место?
Такую задачу поставил Little.Bit пикабушникам. И на его призыв откликнулись PILOTMISHA, MorGott и Lei Radna. Поэтому теперь вы знаете, как сделать игру, скрафтить косплей, написать историю и посадить самолет. А если еще не знаете, то смотрите и учитесь.
Меня зовут Алексей, и я создатель нового сервиса под названием CyberEducate. Хочу рассказать вам об этом проекте от первого лица.
Многие из вас наверняка хотели изучить какую-либо тему или нишу, чтобы получить новые знания и навыки. Однако зачастую вас останавливали не сложность самого процесса или нехватка времени, а дикие ценники от так называемых "бизнес-инфлюенсеров". Не все, но большинство этих товарищей втридорога продают публичную информацию, которую можно легко найти в открытых источниках.
Разве нормально платить бешеные деньги за то, что и так доступно каждому? Я считаю, что знания должны быть доступны для всех без исключения, независимо от размера кошелька. Именно поэтому я создал CyberEducate - платформу, которая избавит вас от необходимости переплачивать инфобизнесменам, онлайн-школам и т.д.
Сервис создан на базе ChatGPT, способен автоматически создавать достаточно качественные обучающие курсы по любой тематике на основе публичных данных. Причем делает это быстро, эффективно и за смешные деньги по сравнению с ценниками инфоцыган. Пока достигнуты следующие результаты - Программа курса генерируется в зависимости от темы курса и нагрузки на текущий момент - от 10 сек до 30 секунд. На генерацию каждого урока уходит от 30 сек до 1 минуты. Есть идеи как еще ускорить генерацию, пока в процессе.
Именно этим я и руководствовался, когда придумывал концепцию CyberEducate.
Это сервис, который позволяет создавать полноценные онлайн-курсы с нуля в кратчайшие сроки и с минимальными усилиями.
ИИ конечно еще далеко не идеален, иногда пытается генерировать всякую чушь, но в целом уже сейчас работает не плохо.
Курсы реально можно генерировать по любой тематике - от вязания, кулинарии и техники знакомств, до квантовой физики, программирования и тактике игры в CS2 ))))
Как "оно" работает:
Вбиваем интересующую Вас тему, например - Основы правильного питания
Получаем программу курса из 4 модулей
По 5 уроков в каждом из модулей
Генерируем урок и впитываем знания))
Более того, в планах добавить массу дополнительных возможностей по кастомизации курса, адаптации его под разные уровни сложности, добавлению мультимедийных материалов, тестовых занятий, и прочее
Сейчас, когда проект находится на начальной стадии, у меня есть уникальный шанс напрямую пообщаться с первыми пользователями и услышать их обратную связь.
Буду рад конструктивной и не очень критике, замечаниям, пожеланиям.
И да, это мой первый самостоятельно написанный проект и сделан в одно лицо на коленке с помощью Chatgpt и огромного количества кофе, но и при этом он как то работает)))) Так что я криворукий мудак-самоучка, цены-конь, и прочее - я в принципе и сам знаю, но не смогу отказать Вам себя порадовать этим, так что даже с такой критикой - велком!
Поэтому я призываю вас не стесняться и активно делиться своими впечатлениями, идеями по улучшению и пожеланиями.
После регистрации доступно создание 1 курса бесплатно, так что каждый может попробовать.