Такая вот оказывается есть годнота по базе LLM
Forwarded from Data Secrets
Конспект LLM.pdf
38 MB
Большой коспект по LLM от нашей команды 👍
Мы долго трудились и наконец готовы представить вам наш большой авторский конспект по языковым моделям. Почти 50 страниц, 7 разделов и все, что нужно, чтобы понять, как работают современные LLM. Внутри:
➖ Краткая история LLM от перцептрона до ризонинг-моделей
➖ Необходимая математика: линал и матанализ на пальцах
➖ Все про механизм внимания и трансформеры от А до Я
➖ Дотошное объяснения процесса предобучения
➖ Практический гайд "Как самостоятельно затюнить модель"
➖ RL – с нуля до ризонинга
Все – в иллюстрациях, схемах и интуитивно понятных примерах.
Сохраняйте, делитесь с друзьями и ставьте ❤️
Мы долго трудились и наконец готовы представить вам наш большой авторский конспект по языковым моделям. Почти 50 страниц, 7 разделов и все, что нужно, чтобы понять, как работают современные LLM. Внутри:
Все – в иллюстрациях, схемах и интуитивно понятных примерах.
Сохраняйте, делитесь с друзьями и ставьте ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
Небольшое открытие про rate limits
Недавно понял, что всегда реализовывал rate-limit-ы и прочие ограничения у внешних сервисов вручную - счётчики , sleep-ы, retry-логика и т.п.
И только сейчас заметил, что для Python существует целый класс библиотек, решающих это из коробки.
Более того, есть shared rate limiters — которые используют общую БД или Redis для синхронизации лимитов между несколькими инстансами сервиса.
Наиболее интересные варианты, которые нашёл:
limits - самая популярная и довольно простая
asyncio-limiter - асинхронная и довольно низкоуровневая, если хочется что то сложное дописать поверх
redis-rate-limiters - понравилась больше всего, две довольно понятных концепции работы с токенами + атомарность
еще немного удивился что не нашел принципиально других лимитеров - кажется на поверхности лежит идея делать рейт-лимиты не для python-методов апи, а для доменов/урлов, например сделать либу-надстройку над httpx, которая позволяет клиенту httpx передать конфиг с рейт-лимитами по урлам, чтобы в коде дальше вообще про это не думать
Недавно понял, что всегда реализовывал rate-limit-ы и прочие ограничения у внешних сервисов вручную - счётчики , sleep-ы, retry-логика и т.п.
И только сейчас заметил, что для Python существует целый класс библиотек, решающих это из коробки.
Более того, есть shared rate limiters — которые используют общую БД или Redis для синхронизации лимитов между несколькими инстансами сервиса.
Наиболее интересные варианты, которые нашёл:
limits - самая популярная и довольно простая
asyncio-limiter - асинхронная и довольно низкоуровневая, если хочется что то сложное дописать поверх
redis-rate-limiters - понравилась больше всего, две довольно понятных концепции работы с токенами + атомарность
еще немного удивился что не нашел принципиально других лимитеров - кажется на поверхности лежит идея делать рейт-лимиты не для python-методов апи, а для доменов/урлов, например сделать либу-надстройку над httpx, которая позволяет клиенту httpx передать конфиг с рейт-лимитами по урлам, чтобы в коде дальше вообще про это не думать
👍4
Новая рубрика #нейрохрючево
Буду делиться самыми смешными ai-gen штуками, которые встречаю в работе.
Выпуск первый.
LLM генерила тесты и забыла поставить autocommit=True. Чтобы пофиксить — полезла в бизнес-логику:
Буду делиться самыми смешными ai-gen штуками, которые встречаю в работе.
Выпуск первый.
LLM генерила тесты и забыла поставить autocommit=True. Чтобы пофиксить — полезла в бизнес-логику:
if hasattr(self.repo._session, 'commit'):
await self.repo._session.commit()
❤3
#нейрохрючево
системник
КОДИК:
системник
### No hasattr()
# ❌
if hasattr(obj, "model"):
model = obj.model
КОДИК:
def from_litellm(cls, response: Union[ModelResponse, ResponsesAPIResponse]) -> 'LLMResponse':
if isinstance(response, ResponsesAPIResponse):
model = response.model
content = ""
structured_data = None
# Extract content from output
if response.output:
for item in response.output:
if hasattr(item, 'type') and item.type == 'message':
# item is usually a ChatCompletionAssistantMessageParam-like object
# or a dict if it was dumped.
if hasattr(item, 'content'):
if isinstance(item.content, list):
for part in item.content:
if hasattr(part, 'type') and part.type == 'output_text':
content += part.text
elif isinstance(part, dict) and part.get('type') == 'output_text':
content += part.get('text', '')
elif isinstance(item.content, str):
content += item.content
elif isinstance(item, dict) and 'content' in item:
if isinstance(item['content'], list):
for part in item['content']:
if part.get('type') == 'output_text':
content += part.get('text', '')
elif isinstance(item['content'], str):
content += item['content']
👍2👎1
Снял видос для ШВМ
https://www.youtube.com/watch?v=OZkXxuRuY1k&t=4s
https://www.youtube.com/watch?v=OZkXxuRuY1k&t=4s
YouTube
Почему AI-агент стоит 15$ за задачу
Почему ваш AI-агент обходится в $15 за одну задачу и как разорвать эту зависимость от дорогого инференса? В этом видео мы разбираем экономику LLM-агентов на примере реального кейса — нанобота для Discord. Вы узнаете, как оптимизировать архитектуру, снизить…
👍2❤1🖕1
За последние пол года активно работал с голосовыми агентами и открыл для себя pipecat
что то очень похожее на fastapi для api - очень удобный оркестратор для voice-pipelin-а
плюсом куча коннекторов и возможность кастомно докидывать любые из кубиков
общий пайплайн для voice-ассистентов обычно выглядит так:
микрофон → STT → LLM → TTS → динамик
в pipecat для этого есть удобные абстракции:
Frame - пакет данных: контент или event
FrameProcessor - блок работы с Frame
Pipeline - последовательность FrameProcessor
Transport - связь агента с браузером, мобильным клиентом/keycloak/внешними коннекторами
PipelineTask - life-cicle пайплайна
PipelineRunner - сам запуск
по коду в итоге все очень легко:
завели pipeline - основная сущность, в нем все степы:
создали из него task:
в таск накидываем event-handlerov - on_start/on_join/on_error и тп:
и просто запускаем все вместе:
по сути главное - выбрать и реализовать(а чаще - просто подключить) step-ы Pipeline-а, продумать логику on_event и по сути все!
и это только базовое использование sdk - pipecat еще умеет в cloud, у него есть свой VAD и еще много чего
что то очень похожее на fastapi для api - очень удобный оркестратор для voice-pipelin-а
плюсом куча коннекторов и возможность кастомно докидывать любые из кубиков
общий пайплайн для voice-ассистентов обычно выглядит так:
микрофон → STT → LLM → TTS → динамик
в pipecat для этого есть удобные абстракции:
Frame - пакет данных: контент или event
FrameProcessor - блок работы с Frame
Pipeline - последовательность FrameProcessor
Transport - связь агента с браузером, мобильным клиентом/keycloak/внешними коннекторами
PipelineTask - life-cicle пайплайна
PipelineRunner - сам запуск
по коду в итоге все очень легко:
завели pipeline - основная сущность, в нем все степы:
pipeline = Pipeline(
[
transport.input(),
stt_service,
user_aggregator,
llm_service,
tts_service,
transport.output(),
assistant_aggregator,
]
)
создали из него task:
task = PipelineTask(
pipeline,
params=PipelineParams(
enable_metrics=True,
enable_usage_metrics=True,
),
)
в таск накидываем event-handlerov - on_start/on_join/on_error и тп:
@task.event_handler("on_pipeline_started")
async def on_pipeline_started(task, frame):
...и просто запускаем все вместе:
runner = PipelineRunner(handle_sigint=handle_sigint)
await runner.run(task)
по сути главное - выбрать и реализовать(а чаще - просто подключить) step-ы Pipeline-а, продумать логику on_event и по сути все!
и это только базовое использование sdk - pipecat еще умеет в cloud, у него есть свой VAD и еще много чего
✍3🤔1
Три недели как тыкаю max-подписку chatgpt - начинал с sol с high/ultra ризонинга, теперь добрался до Terra и даже до Luna - и для большинства задачи вполне хватает их с средним ризонингом
дальше пошел смотреть бенчи/цены/траты по токенам - и ничего особо мне это не дало, какую модельку то выбрать для маленького бага? а для сложного маленького бага? а для простого бага но в котором нужно проследить очень длинный трейс?
по этому решил забилить свой небольшой бенч - дать реальные задачи разным моделям с разным ризонингом и сравнить - качество и цену
дальше пошел смотреть бенчи/цены/траты по токенам - и ничего особо мне это не дало, какую модельку то выбрать для маленького бага? а для сложного маленького бага? а для простого бага но в котором нужно проследить очень длинный трейс?
по этому решил забилить свой небольшой бенч - дать реальные задачи разным моделям с разным ризонингом и сравнить - качество и цену
👨💻6
Кто сильнее на реальных задачах?
Anonymous Poll
22%
🧠 Маленькая моделька с большим ризонингом
11%
💪 Большая моделька с минимальным ризонингом
67%
Зависит от задачи
Перед началом эксперимента мне казалось, что результат будет примерно одинаковым или чуть лучше у маленьких моделей с высоким уровнем рассуждений, но на моих задачах получилось довольно неожиданно.
Кейс 1: внести небольшие правки в код. Качество одинаковое, но Terra закончила задачу за 54 секунды, а Luna за 134 секунды. Terra использовала 111k токенов, а Luna 211k.
Кейс 2: большая задача по изменению бизнес-логики в среднем сервисе. Terra High 6,83/10, Sol Low 9,50/10. Sol Low оказался качественнее, быстрее и потратил в 2,5 раза меньше токенов.
Кейс 3: большая задача. Написать большой сервис, включая Bluetooth-логику и математику. По качеству результаты оказались довольно близкими, но Luna даже не стала запускать рантайм. Luna High 5,70/10, Sol Medium 6,63/10.
Какой тут можно сделать вывод?
Похоже, что небольшие модели имеют смысл только с low/medium уровнем рассуждений. Всё-таки лучше взять модель побольше, но с меньшим уровнем рассуждений. Она работает быстрее и дешевле.
Также есть вопросы к передовым моделям, например, к Soul 5.6 Ultra. Возникает ощущение, что они чуть лучше показывают себя на бенчмарках, а в реальных задачах не дают настолько большого прироста пользы. Но это уже тема отдельного поста.
Кейс 1: внести небольшие правки в код. Качество одинаковое, но Terra закончила задачу за 54 секунды, а Luna за 134 секунды. Terra использовала 111k токенов, а Luna 211k.
Кейс 2: большая задача по изменению бизнес-логики в среднем сервисе. Terra High 6,83/10, Sol Low 9,50/10. Sol Low оказался качественнее, быстрее и потратил в 2,5 раза меньше токенов.
Кейс 3: большая задача. Написать большой сервис, включая Bluetooth-логику и математику. По качеству результаты оказались довольно близкими, но Luna даже не стала запускать рантайм. Luna High 5,70/10, Sol Medium 6,63/10.
Какой тут можно сделать вывод?
Похоже, что небольшие модели имеют смысл только с low/medium уровнем рассуждений. Всё-таки лучше взять модель побольше, но с меньшим уровнем рассуждений. Она работает быстрее и дешевле.
Также есть вопросы к передовым моделям, например, к Soul 5.6 Ultra. Возникает ощущение, что они чуть лучше показывают себя на бенчмарках, а в реальных задачах не дают настолько большого прироста пользы. Но это уже тема отдельного поста.
1🤔4❤1
Описал интересный кейс с работы - когда разработка пошла как будто с конца в начало - все началось не с требований а с навайбкоженного сервиса который потом пришлось приводить в порядок
https://habr.com/ru/articles/1076140/
p.s. моя первая статья на хабре - поддержите up-ами🙈
https://habr.com/ru/articles/1076140/
p.s. моя первая статья на хабре - поддержите up-ами
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥6
openai дропнули астру https://openai.com/index/gpt-6-astra/
p.s. вчера ночью/вечером погонял на каких то сложных проектах с кодом - пока разницу не увидел с sol от слова совсем, будем посмотреть
p.s. вчера ночью/вечером погонял на каких то сложных проектах с кодом - пока разницу не увидел с sol от слова совсем, будем посмотреть
😁3🥴1
Наконец-то ИИ всех заменил!
…Но пока только по бенчам.
Пробую себя в видеоконтенте - собрал краткие новости уходящей недели про ИИ.
https://youtu.be/6-5AEvhlSZc
…Но пока только по бенчам.
Пробую себя в видеоконтенте - собрал краткие новости уходящей недели про ИИ.
https://youtu.be/6-5AEvhlSZc
YouTube
GPT‑6 Astra — убийца Fable? Попробовал в работе | Новости ИИ
GPT‑6 Astra — убийца Fable или очередной громкий релиз? Попробовал Astra в своих задачах разработки: пока без вау-эффекта. В этом выпуске — новые модели, сбои AI-сервисов, Qwen, компьютеры для локальных LLM и российское регулирование ИИ.
Больше контента…
Больше контента…
5🔥8
pydantic выпустил свой фреймворк для агентов - обещан рилтайм, ембеддинги, все типизированное(пример langchain) и ваще легко просто молодежно
постараюсь сделать обзорчик в ближайшее время - по quickstart пока нравится
https://pydantic.dev/docs/ai/overview/
постараюсь сделать обзорчик в ближайшее время - по quickstart пока нравится
https://pydantic.dev/docs/ai/overview/
2🔥5
Открыл для себя написание статей через надиктовывание в чатгпт - почитал бенчи/подписки и собрал все вместе в новой статье на хабре - го читать!
https://habr.com/ru/articles/1081060/
https://habr.com/ru/articles/1081060/
🤔2👍1👎1