AI4Dev — AI for Development
3.85K subscribers
109 photos
25 videos
5 files
215 links
Что надо знать, чтобы остаться востребованным ИТ специалистом в мире с LLM?

• Обзоры продуктов, фреймворков и способы взаимодействия с LLM для разработки софта

• Реальные кейсы, pet и бизнес проекты с LLM

• Публичные лекции

В будущее берут не всех!
Download Telegram
Скоро на нашем YouTube-канале пройдут новые лекции:

🔸18 апреля в 12:00 Денис Пиманкин, основатель и генеральный директор компании SOTA+, прочитает лекцию «Генеративные модели: между технологическим чудом и обманом», в которой раскроет следующие вопросы:

- Каковы принципы работы современных генеративных моделей?
- Как сравнить и оценить модели генерации изображений и видео?
- Как отличить действительно инновационную модель от пустышки?

🔸23 апреля в 12:00 Александр Константинов, СТО компании Raft, выступит с лекцией «Co-pilots и LLM для разработчиков», в которой ответит на следующие вопросы:

- Как современные LLM ускоряют процесс разработки?
- Как стать тимлидом «копайлота» и СhatGPT?
- Как сгенерировать целый проект, не написав ни одной строчки кода?

Вопросы лекторам можно оставить под этим постом! Ответим на них в конце трансляций.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Сделали обзор на Open Source AI программиста Devika. Программистку, если быть точнее. На русском кажется такого мы еще не встречали. Как и ожидалось - пока очень сырое решение.
Пара UX наблюдений:
1. Devika работает достаточно долго и часто совершенно непонятно чем она там собственно занята - все так же, как и с живыми разработчиками. Было бы здорово как-то детальней отображать статус того, чем конкретно занят агент

2. Агент подгрузил все Ract JS зависимости и попытался отправить в LLM 68млн токенов, если бы ему это удалось, то при цене $10 за 1млн входящих токенов один запрос обошелся бы нам в $680. Выбрать часть кода, необходимую для решения текущей задачи из всего проекта возможно не такая уж и тривиальная задача, которая кроме всего прочего может влиять и на стоимость AI разработки. Представьте, что у вас сотни таких итераций в день.

Итого: проекты обещающие решать любые задачи по программированию пока выглядят неубедительно. Мы планируем пристальнее присмотреться к более узкоспециализированным AI агентам разработчикам, типа CRUD Apps, Text to SQL и т.д.
https://youtu.be/fHM0E5ux4Qs
1
В пятницу вышла статья от исследователей из Google Deep Mind в которой они утверждают (на основе проведенных испытаний), что если положить в контекст LLM большое количество примеров  подобных решаемой задаче, то результат будет лучше. Подход назвали Many-Shot In-Context Learning. В целом кажется логичным и не удивительно, что исследование провели разработчики LLM в которой есть контекстное окно в миллион токенов, в которое, собственно, можно положить это большое (сотни и даже тысячи) количество примеров.  

Вот, например, как делали с проверкой адекватности кода: Взяли датасет  скриптов решающих задания из датасета GSM8K (набор математических задач), у Гугла такой был c решениями от Gemini 1.0.  Датасет представляет из себя набор программ (предположу, что на Python) с разметкой на корректные и некорректные решения. Так вот, если подложить в промпт 128 таких примеров, то точность в проверке кода от LLM (когда вы даете ей код и просите проверить корректность) повышается на 5%  относительно случая когда в таком запросе было только  4 примера.

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

Что интересно, также в исследовании отмечено, что датасет с примерами может быть синтетическим, или состоять только из похожих вопросов без ответов и это так же повышает эффективность решений от LLM. Ссылка на arixv.
👍4
Делимся подборкой статей о RAG

"Сегодня мы наблюдаем экспоненциальный рост интереса к проектированию и использованию RAG. Практически все разрабатываемые приложения LLM теперь содержат интеграцию LLM и RAG. Мы предлагаем вашему вниманию одно из наиболее подробных и практичных изложений основ построения RAG и их эволюции за последний год. Автор цикла публикаций Florian June, молодой исследователь ИИ, пишет статьи о больших языковых моделях, структурах данных и алгоритмах, а также НЛП с точки зрения практики построения, основанной на его личном опыте и экспериментах. Это делает материал доступным и полезным для наших разработчиков программных систем, использующих LLM", — заметил профессор В. В. Крылов.

Итак, статьи:
• A Brief Introduction to Retrieval Augmented Generation (RAG)
• Advanced RAG 01: Problems of Naive RAG
• Advanced RAG 02: Unveiling PDF Parsing
• Advanced RAG 03: Using RAGAs + LlamaIndex for RAG evaluation
• Advanced RAG 04: Re-ranking
• Advanced RAG 05: Exploring Semantic Chunking
• Advanced RAG 06: Exploring Query Rewriting
• Advanced RAG 07: Exploring RAG for Tables
• Advanced RAG 08: Self-RAG
• Advanced RAG 09: Prompt Compression
• Advanced RAG 10: Corrective Retrieval Augmented Generation (CRAG)

Как вы видите, материалы написаны на английском, но мы планируем перевести их на русский и опубликовать на Хабре.

P.S. Статьи размещены на платформе Medium, так что вам понадобится VPN, чтобы их прочитать ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🥰1
Хотим обратить ваше внимание на интересный фреймворк: DSPy –𝗗eclarative 𝗦elf-improvement of language 𝗣rograms (in p𝘆thon). Т.е. фреймворк для алгоритмической оптимизации промптов и весов для пайплайнов из LM (языковых моделей) и RM ( моделей поиска). Главный слоган сообщества - Programming—not prompting. Проект от группы исследователей Stanford NLP, 10000+ звезд на гитхабе, 760 форков.

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

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

Основные понятия в фреймворке это Signatures, Modules и Optimizers (они же ex Teleprompters). Signatures описывает какую задачу решает система, чего должна выдать модель, избегая диктовки конкретных промптов, например "context, question -> answer". Из модулей (например ChainOfThought или Predict) собирается пайплайн и передается оптимайзерам вместе с входными данными. Оптимайзеры итеративно выбирают лучшие варианты из генерируемых пайплайнов. Т.е. для оптимизации датасеты конечно нужны и чем больше данных тем лучше, но создатели утверждают что и с несколькими примерами можно получить результаты. Есть несколько разных оптимайзеров, например по методу k-ближайших соседей.

Во так это может выглядеть:

self.generate_answer = dspy.ChainOfThought("context, question -> answer")


или

sentence = "it's a charming and often affecting journey."
# 1) Declare with a signature.
classify = dspy.Predict('sentence -> sentiment')
# 2) Call with input argument(s).
response = classify(sentence=sentence)
# 3) Access the output.
print(response.sentiment)


Сам проект, документация, примеры и сообщество на Github.

«Попытка программистов потянуть одеяло обратно на себя», - как сформулировал это Владимир Владимирович Крылов.
GitHub в лице RnD подразделения GitHubNext заявили о выпуске GitHub Copilot Workspace – пока вот тут можно записаться в лист ожидания.

Планируется, что это будет решение позволяющее реализовывать проекты по разработке ПО от начала до конца на естественном языке или совмещая программирование на естественном языке с классическим программированием. В обзоре обещают task-centric подход с возможностью контролировать каждый шаг: задача, план решения, реализация, коммит.

По концепции все это очень похоже на Devin, Devika, GPT-Engineer и т.д. (мы обозревали их выше), только теперь об этом заявляют серьезные игроки, а значит больше шансов, что у них действительно все получится. Почитать пост в блоге создателей и посмотреть видео тут.
Amazon выпустили новую версию AI помощника разработчика - Q-Developer. В ней присутствуют плагины для Visual Studio и JetBrain IDE в которых предоставляется бесплатный доступ к Amazon Q Developer Agent for software development и Amazon Q Developer Agent for code transformation.

Developer Agent позволяет составить и при необходимости скорректировать план для решения задачи (например: «Add an API to list all support cases. Expose this API as a new Lambda function»), а после того как вы утвердите план, плагин напишет код по нажатию кнопки «Insert code».

Agent for Сode Transformation - с этой штукой вы можете автоматически переписать приложение написанное на Java 8 и11 использующее Apache Maven на Java 17. Тул анализирует все зависимости, проводит обновления до последних версий популярных фреймворков (это было и в прошлой версии), автоматически переписывает вызовы deprecated методов (это новая фича), создает и запускает юнит тесты, исправляя обнаруженные баги.

В рамках AWS Q Developer также умеет:
• Перечислять и листать список ресурсов на естественном языке (например: "List my Lambda functions in the Singapore Region").
• Писать команды для командного окна AWS CLI (например: "Change the timeout for Lambda function <NAME of AWS LAMBDA FUNCTION> in the Singapore Region to 10 seconds."), копипастить в терминал и запускать надо самостоятельно.
• Отвечать на вопросы по затратам на сервисы (например: "What were the top three highest-cost services in Q1? List services in my account which increased the most from February to March?") Ответ предоставляется со ссылкой для визуализации в AWS Cost Explorer.

Больше подробностей в официальном блоге.
Сегодня в 10:00 am PCT (20:00 по московскому времени) состоится презентация OpenAI на которой продемонстрируют обновления ChatGPT и GPT-4.

Напомним, что на прошлой неделе было много обсуждений загадочной модели  «im-a-good-gpt2-chatbot» которая неожиданно появилась в списке LMSYS и показала очень высокие результаты в программировании и решении математических задач (общественность предположила, что это  как раз таки OpenAI тестирует обновление продукта). Ждем разъяснений от Сэма Альтмана и возможности попробовать поработать с новой более умной версией GPT!

В качестве ссылки на презентацию OpenAI указывают свой сайт:  https://openai.com/
👍4
Вот первая информация после презентации GPT-4o от команды Open AI : https://openai.com/index/hello-gpt-4o/ . Мне было приятно узнать, что модель радикально сменила токенизатор и теперь число токенов промпта для языков, отличных от английского существенно сократится. Так для русского языка в 1.7 раза: Russian 1.7x fewer tokens (from 39 to 23)
"Привет, меня зовут GPT-4o. Я — новая языковая модель, приятно познакомиться!" Впечатляет как модель работает с кодом, (посмотрите сюда - https://codepen.io/shir-man/pen/GRaKzLg), но об этом потом.
👍1
Вчера Google провели очередную  конференцию  с последними новостями - Google I/O 24. Мы переводили ее on-line  на русский на нашем канале. Сегодня кратко пересказываем для тех, кто не готов смотреть 2 часа видео. В целом все про большое контекстное окно и мультимодальность:
• Анонсировали  Gemini 1.5 Pro с контекстным окном 2 млн. токенов. Модель мультимодальная, попробовать пока не дают.
• Представили проект Astra - универсальный AI агент, который может  через камеру телефона прочитать и объяснить код с экрана, и по видео комнаты напомнить где в комнате вы забыли очки.
• Анонсировали Gemini 1.5 Flash   - уменьшенная версия модели, более быстрая и легковесная, но все еще мультимодальная с большим (каким точно не ясно) контекстным окном.
• Анонсировали Gemini Nano способна работать на смартфоне, также мультимодальная.
• Анонсировали набор открытых моделей Gemma, включая уже доступную PaliGemma – языковая модель способная работать с картинками. В июне анонсируется Gemma 2 на  27 млрд параметров.
• Анонсировали Learn LM – модель специализирующуюся на обучении, которую например можно прикрутить к видео на Youtube, и дополнительно позадавать ей вопросы или попросить подготовить и затем пройти тест по пройденному материалу.
• Veo –Анонсировали модель для генерации видео по тексту, конкурент Sora от Open AI.  Пока можно записаться в вейтлист.
• Анонсировали музыкалную модель.
• Анонсировали Gemini 1.5  в продуктах Google: в Gmail – помогает с поиском  и саммаризацией по письмам, а также в поиске по фоткам.    
• Анонсировали, что планируют до конца года встроить Gemini в поиск, включая видео запросы, т.е.   вы что-то снимаете на телефон и параллельно голосом спрашивае, а Google вам отвечает
• Выпустили новые процессоры Trillium для датацентров, а так же планируют предоставлять  NVIDA Blackwell в 2025ом году. 
 
🔥2
Учитывая необычайный спрос на умения разрабатывать RAG для приложений с использованием LLM , рекомендую посмотреть это подробное изложение построения RAG на открытых моделях.
https://youtu.be/HRvyei7vFSM?feature=shared
👍3
Провел эксперимент с моделями на https://arena.lmsys.org/. Если вдруг вы не в курсе - это портал с рейтингом LLM. Работает так:
1. Вы формулируете задачу, а две LLM выбранные вслепую или указанные вами из списка (Arena side-by-side) ее решают
2. Вы голосуете какое решение лучше, на основе таких голосов собирается рейтинг. Можно попробовать все модели в одном месте и бесплатно.

Возможно вы уже слышали, что пару недель назад там появилась темные лошадки - две LLM под именами:

1. im-a-good-gpt2-chatbot
2. im-also-a-good-gpt2-chatbot,

которые показали удивительно хорошие результаты в программировании. В отчетах их тестировали на написании игр, мне же было интересно попробовать с более прикладными задачами. Как раз потребовалось написать python метод, на вход ему прилетает JSON c данными – доходы, расходы, дата, описание. Метод должен положить эти данные в google sheet на один лист (в разные колонки доходы и расходы) и отсортировать вместе с уже имеющимися на листе данными по датам отдельно доходы, отдельно расходы. Звучит не очень сложно, но на деле получилось под сотню строчек кода и справилась только одна LLM.

В моем соревновании участвовали:
3. GPT4o
4. Yi-large-preview
5. Claude 3 Opus
6. Im-a-good-gpt2-chatbot
7. Im-also-a-good-gpt2-chatbot

Итог: полностью справилась с задачей только im-also-a-good-gpt2-chatbot.

Подробнее:
1. Im-also-a-good-gpt2-chatbot - написала полностью работающий код, данные сортируются. Запустился с первого раза, я поправил руками один небольшой баг.
2. GPT4o – код запустился, но сортировка уже имеющихся данных в таблице реализована некорректно. Т.е. сортировались только данные из JSON и дописывались в конец таблицы
3. Im-a-good-gpt2-chatbot – аналогично GPT4o - код запустился, сортировка проигнорирована
4. Claude 3 Opus – код на вид самый изящный, учитывающий сортировку, но промучившись минут 15 с багами запустить я его так и не смог. LLM запуталась и в сортировке, и в записи в таблицы, и в авторизации.
5. Yi-large-preview - Аналогично с Claude не запустилось, запуталась в сортировке.
6. Все модели использовали deprecated библиотеку oauth2client, а im-a-good-gpt2-chatbot продолжала ее использовать даже после того, как я прямо попросил в промте ее не использовать. Через пару попыток перестал.
7. Промпт по-прежнему имеет значение. Например, такой прием как попросить модель повторить вопрос перед тем, как давать ответ повысил вероятность того, что код запустится. Но об этом в одном из следующих постов.
👍91
Выпустили на Хабре статью "Шпаргалка для создания идеального промпта для LLM". Это перевод статьи, ссылку на которую которую мы уже публиковали тут в канале месяц назад. За это время уже довольно много поменялось и мы дополнили ее своими комментариями. Там, кстати, есть пример промпта, которым я генерил код из предыдущего поста.
👍3
Одна из лучших на сегодня LLM для генерации кода на 80 языках программирования и других задач с кодом открыта для пользователей
Mistral has released a new code model.

It is called Codestral-22B, trained on more than 80 programming languages, and it outperforms bigger models such as Llama 3 70B in code benchmarks!

You can try it here

Click the link, then sign in and click the model drop down and select “codestral” it’s got nothing on GPT-4o but still free and fun. (And opensource!)
🔥6
Продолжая разговор о промптинге, делимся ссылкой на новую лекцию профессора В. В. Крылова, в которой он рассказал об эволюции промптинга.

В лекции разобрали:
🔸Как изменялось понимание важности правильного формулирования промпта для получения от LLM желаемого, правильного, полезного ответа?
🔸Как и почему появился «промпт инжиниринг»?
🔸Как развивались техники проектирования эффективных промптов?

«Основное внимание в лекции уделяется трендам в развитии приложений, основанных на применении LLM, превратившим разработку промптов в часть общего проектирования программных систем. Вы узнаете о том, какие технологии используются для реализации встроенных промптов в концепциях RAG и AI Agents. Лекция познакомит с подходом сведения промтинга к программированию и перспективой новой технологии общения с LLM – Flow Engineering», — уточнил сам лектор.

💬 Если при просмотре лекции у вас возникнут вопросы, пишите их в комментариях к этому посту, чтобы Владимир Владимирович ответил на них.

Оставляем ссылку на подкаст AI4Dev для тех, кому удобнее слушать лекции, а не смотреть.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
Сделали youtube обзор на SWE-Agent. Это опенсорсный AI разработчик, созданный инженерами из Принстона для исправления багов и issues из GitHub репозиториев. Запустили для реального бага из небольшого Python проекта. Спойлер – баг он реально пофиксил, впрочем, только правильно описанный баг. В очередной раз сталкиваемся с тем, что задачу надо корректно и точно сформулировать, а после формулировки часто уже остается и не так много работы.

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

Вывод: хотя пока и видны слабые места, но концепция классная, я думаю уже через год-два такие агенты будут работать с нами бок о бок в рамках стандартных процессов разработки.
👍3
AI-агенты, AI-агенты… А зачем они собственно нужны в разработке ПО? LLM прекрасно пишут код при общении напрямую через чат и мы, как и несколько миллионов разработчиков, с удовольствием этим пользуемся. Однако не все задачи в разработке можно решить через чат с LLM. Чем же конкретно нам могут помочь AI агенты?

Синергия агентов, управление сложными проектами
В фреймворке с агентами несколько агентов могут работать одновременно, каждый из которых специализируется на определенном типе задач, как в обычной проектной команде. Это позволяет распределить работу и добиться более высокого качества выполнения. Например, один агент может заниматься управлением и хранением кода, коммитами, CI и т.д., другой —планированием, третий – написанием backend кода, еще один— тестированием. Уложить все эти активности в один запрос LLM, да так чтобы они корректно выполнились – нереальная задача. Если вы создаете под каждую роль разработки отдельных агентов и агента-менеджера, который оркестрирует всю вашу команду, задача кажется куда более решаемой. Крупные проекты требуют координации большого количества задач. При работе с LLM напрямую через чат, где каждая задача решается отдельно без связи с остальными, координация остается за кадром. Это ответственность живого человека - разработчика, который решает отдельные задачи через LLM, а потом сам собирает это все в единый проект. Агенты же могут самостоятельно работать над большим проектом.

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

При этом использование агентов создает некоторые риски, о которых тоже стоит упомянуть:

Риск бесконечных циклов
Обратная сторона автономности агентов – риск бесконечных циклов. Пытаясь решить задачу, агент может впасть в цикл, раз за разом отправляя в LLM последовательность одинаковых или очень похожих запросов. Это может привести к потере времени и ресурсов.

Высокая стоимость запросов
При интенсивном использовании агенты могут отправлять сотни запросов к LLM, что может значительно увеличить затраты на использование облачных сервисов и API. Задачу, которую человек решит с LLM за один запрос, агент может решать десятками и сотнями запросов.

Сложность настройки и управления
Создание и управление агентами требует высокого уровня технических знаний и навыков. Мы пока еще не видели AI-агентов разработчиков которые могли бы решать много сложных разнообразных задач на равных с людьми. Это не так просто придумать и запрограммировать, но все впереди!
❤‍🔥3