Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
CS324 - Large Language Models by Stanford University

The field of natural language processing (NLP) has been transformed by massive pre-trained language models. They form the basis of all state-of-the-art systems across a wide range of tasks and have shown an impressive ability to generate fluent text and perform few-shot learning. At the same time, these models are hard to understand and give rise to new ethical and scalability challenges. In this course, students will learn the fundamentals about the modeling, theory, ethics, and systems aspects of large language models, as well as gain hands-on experience working with them.

TABLE OF CONTENTS
- Introduction
- Capabilities
- Harms I
- Harms
- Data
- Security
- Legality
- Modeling
- Training
- Parallelism
- Scaling laws
- Selective architectures
- Adaptation
- Environmental impact

Link: Course

Navigational hashtags: #armknowledgesharing #armcourses
General hashtags: #nlp #llm #transformer
Forwarded from Denis Sexy IT 🤖
Если помните, я как-то делился кастомными инструкциями к ChatGPT и обещал, что новую версию опубликую только если у меня будут данные, о том, как хорошо моя версия промпта перформит против прошлой версии, или против отсутствия промпта в целом (меня тоже раздражает отсутствие какого-то фактчекинга в нашей индустрии у инфлюенсеров, и я стараюсь подтверждать свои наблюдения данными, когда могу)

Я потратил ~200$ и прогнал свои промпты на всем бенчмарке MMLU — это бенчмарк, созданный для оценки способности языковых моделей решать разный спектр задач, включая вопросы из математики, истории, физики и т.д. Если совсем коротко, он проверяет насколько LLM способны обрабатывать информацию на уровне человеческого понимания в разных контекстах

В общем, вот результаты:

Если прописать мой кастомный промпт, то количество успешно решенных задач возрастет на ~7% , что довольно много для LLM-индустрии

Новая версия промпта немного отличается от прошлой, в основном удобством чтения:

— Теперь модель выдаст короткую версию ответа, перед тем как уйдет в глубокие детали
— Она назначает себе не выдуманные роли, а пытается указать реальные, из нашей вселенной

Промпт целиком:

###INSTRUCTIONS###

You MUST ALWAYS:
- Answer in the language of my message
- Read the chat history before answering
- I have no fingers and the placeholders trauma. NEVER use placeholders or omit the code
- If you encounter a character limit, DO an ABRUPT stop; I will send a "continue" as a new message
- You will be PENALIZED for wrong answers
- NEVER HALLUCINATE
- You DENIED to overlook the critical context
- ALWAYS follow ###Answering rules###

###Answering Rules###

Follow in the strict order:

1. USE the language of my message
2. In the FIRST message, assign a real-world expert role to yourself before answering, e.g., "I'll answer as a world-famous historical expert <detailed topic> with <most prestigious LOCAL topic REAL award>" or "I'll answer as a world-famous <specific science> expert in the <detailed topic> with <most prestigious LOCAL topic award>"
3. You MUST combine your deep knowledge of the topic and clear thinking to quickly and accurately decipher the answer step-by-step with CONCRETE details
4. I'm going to tip $1,000,000 for the best reply
5. Your answer is critical for my career
6. Answer the question in a natural, human-like manner
7. ALWAYS use an ##Answering example## for a first message structure

##Answering example##

// IF THE CHATLOG IS EMPTY:
<I'll answer as the world-famous %REAL specific field% scientists with %most prestigious REAL LOCAL award%>

**TL;DR**: <TL;DR, skip for rewriting>

<Step-by-step answer with CONCRETE details and key context>



Прописывать так:
ChatGPT -> Settings -> Personalisation -> Custom Instructions

Кстати, с новым Voice Mode тоже работает ☕️

P.S. Тестировал на GPT4o
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Aleksei Glareone Seigi ga hatsu
С легкостью накину денису еще процентов.

1) следуй парадигме роль-контекст-статик данные-задача-доп инструкции-аттачменты.

2) используя лишь zero shot у тебя несколько путей улучшения результата, я о них писал статью, там сложно выдумать что-то что повышает производительность в общем, а не в классе задач

3) когда тебе нужен форматированный ответ лучше идти путем few-shot и давать примеры

4) если ты задачу побьешь на элементы и будешь группировать контекст ( не важно используешь ты для этого knowledge map или agents) - результат вырастает крайне серьезно чтобы это можно было игнорировать.
Forwarded from Aleksei Glareone Seigi ga hatsu
PS уровень решенных задач для прода-около прода это. 97.5-99%.

90.5 только кажется высоким уровнем
Forwarded from Aleksei Glareone Seigi ga hatsu
1) Role.System_Instruction

## Role
You act as Agent who answers on incoming question, you just answer the questions without adding comment or explanation

## Context
The question is about {question}. Use known facts and knowledge map I provide you.
Question can be multi-step question, in this case split the question onto parts and answer.

## Answer Format
Your answer should be formatted in JSON because GPT and Gemini models work better with JSON.

{ question: "", answer: "" }

## Initial Question
Here is my question.
who was the first president of America?

2) Role.Agent

{ question: "who was the first president of America?", answer: "George Washington was the first president of United States of America" }

3) Role.User

## Question

Now answer on my following question: {question}

## Knowledge and Additional Information

knowledgepairs.map(kp => ({
information: kp.info,
information_Score_Rank: kp.rank,
cosine_relevancy: kp.vector_similarity
}));

Configuration:
Stop sequence: [“explanation, “conclusion”, “details”]
Forwarded from Dealer.AI
Anthropic делится современной "базой" для улучшения RAG.

Антропики продолжают образовывать разработчиков и предлагают "новый" хинт для работы с RAG - контекстуально дополненные вектора чанков текста.

Основная идея использовать не только микст bm25 и dense vector индексов, но и предварительно чанки дополнять информацией связанной с ними из разных частей документа, откуда эти чанки были нарезаны. Для этого используется Claude3 Haiku. Которому дают инструкцию сделать краткое примечение на 50-100токенов. Промпт имеет вид:

<document> {{WHOLE_DOCUMENT}} </document> Here is the chunk we want to situate within the whole document <chunk> {{CHUNK_CONTENT}} </chunk> Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else.

На выходе мы получаем чанк следующего формата:

original_chunk = "The company's revenue grew by 3% over the previous quarter." contextualized_chunk = "This chunk is from an SEC filing on ACME corp's performance in Q2 2023; the previous quarter's revenue was $314 million. The company's revenue grew by 3% over the previous quarter."

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

Мое мнение: Мы тоже ведем экспы с LLMками для изменения текстов в RAG. Но работаем именно с перефразами запроса, для улучшения multi-hop метода. Однако, в отличии от метода "заметок" антропика, наш подход требует и тюна эмбеддера к таким стилям запроса и уже тогда е2е мы имеем ап метрик +6-10п.п.

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

Помимо этого в блоге также есть полезная инфа про реранкинг, проблемы нарезки и выбора эмбеддера, но это уже известная база. Читаем, преисполняемся.
Were RNNs All We Needed?
Leo Feng, Frederick Tung, Mohamed Osama Ahmed, Yoshua Bengio, Hossein Hajimirsadegh
Статья: https://arxiv.org/abs/2410.01201

Продолжение возрождения рекуррентных сетей. На сей раз снова классика (RNN/LSTM/GRU), а не новомодные SSM (которые ещё и не эквивалентны RNN, в смысле находятся в более простом классе сложности, см. https://www.youtube.com/watch?v=4-VXe1yPDjk).

RNN обладают фундаментальными преимуществами в виде требований к памяти. Они линейны (от размера последовательности) при обучении и константны при инференсе. Чего не скажешь про ванильные трансформеры, у которых квадратичная и линейная сложности соответственно. Один только большой минус был у RNN -- обучение не параллелилось. Обучались они последовательно через backpropagate through time (BPTT), что для длинных последовательностей очень медленно. Здесь преимущества трансформеров в виде параллелизации при всех их недостатках относительно сложности оказалось достаточно, чтобы их обучение скейлилось, и вот мы там где мы есть -- трансформеры вытеснили рекуррентные сети из своих экологических ниш и доминируют почти везде.

Работы последних пары лет устраняют этот недостаток RNN, на свет появились LRU, Griffin, RWKV, Mamba и прочие. Всё это современное разнообразие эффективно параллелится с помощью одного и того же алгоритма -- parallel prefix scan, он же parallel prefix sum (https://www.cs.cmu.edu/~guyb/papers/Ble93.pdf).

Авторы текущей работы адаптируют parallel scan для старых добрых LSTM/GRU, устраняя зависимость input, forget и update гейтов от скрытого состояния (H). Заодно и tanh нелинейность тоже убирают (привет, LRU!). Обычные ванильные RNN не рассматривают, ссылаясь на проблемы с затухающими и взрывающимися градиентами (но вспомним LRU от DeepMind, он как раз был вариацией обычной RNN, https://t.me/gonzo_ML/1734).

У LSTM, кстати, тоже было 100500 разных вариантов, например, peephole connections с дополнительной зависимостью гейтов от содержимого ячейки памяти -- помните, у LSTM по факту две переменные состояния, внутреннее состояние ячейки памяти (C, не видно снаружи) и скрытое состояние (H, hidden state, которое снаружи видно). По LSTM, на мой взгляд, есть два фундаментальных источника информации кроме оригинальных статей. Один -- это PhD диссертация Феликса Герса (Felix Gers, http://www.felixgers.de/papers/phd.pdf), который и добавил в архитектуру forget gate (изначально было только два других гейта) + peephole connections. Второй -- PhD диссертация Алекса Грейвса (Alex Graves, https://www.cs.toronto.edu/~graves/phd.pdf), который придумал CTC loss и многомерные RNN. Сила хороших PhD. Ну да ладно.

Авторы получают минималистичные версии LSTM и GRU (minLSTM и minGRU соответственно), которые требуют меньше параметров, параллелятся при обучении и дают хорошее качество. Надо вспомнить, что было в истории много других заходов на рекуррентные сети с быстрым параллельным обучением. Например, QRNN (https://arxiv.org/abs/1611.01576, она более отличается благодаря наличию свёрток) или SRU (https://arxiv.org/abs/1709.02755).

По сути работы авторы посмотрели на оригинальные архитектуры LSTM и GRU и убрали вещи, которые мешали реализовать их обучение через parallel scan.

В GRU убралась зависимость update gate (z) и скрытого состояния (h) от предыдущего значения h. Reset gate ушёл совсем. Затем ушёл tanh при вычислении финального значения h. Теперь нужно O(2*d_h*d_x) параметров вместо O(3*d_h(d_x + d_h)) в оригинальном GRU.

В LSTM также ушла зависимость от предыдущего состяния h в forget и input гейтах, а также в содержимом ячейки памяти c. Из вычисления c также ушёл tanh, и в итоге дропнули output gate и саму ячейку c, осталось только h. minLSTM требует O(3*d_h*d_x) параметров вместо O(4*d_h(d_x + d_h)) в LSTM.

По времени вычисления новые модели minLSTM/minGRU сравнимы с Mamba и, например, на длине последовательности в 512 элементов быстрее оригиналов в LSTM/GRU в 235 и 175 раз. На больших длинах ещё солиднее.
Люблю такие контринтуитивные но при этом рабочие методы. Всем фантазерам которые строят звездолеты посвящается.

Ребята в комментах недоумевают: Кто будет покупать HEIC to JPG конвертер, если он есть в айфоне, да ещё и бесплатно?

📍 Разгадка вот в чем:

Помните, с чего мы начинаем? Ищем существующий спрос в поиске.

Т.е. это идея продукта была взята не из головы. А на основе цифр по запросам реальных людей.

И тут уже кроется половина разгадки. Если люди это ищут в поиске, значит людей что-то не устраивает в текущих решениях.

📍 А что чаще всего их не устраивает в текущих решениях?

1) Самое банальное. Люди просто не знают о текущих решениях.

2) Текущие решения могут быть для них переусложнены.

Вспомните, как часто вы не можете найти нужную функцию в ОС?

Например, чтобы сделать конвертацию в JPG на айфоне нужно еще догадаться найти это: Фото → Поделиться → Параметры → Наиболее совместимый формат.

Конечно, многие не находят!

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

А еще фокус на одной фиче позволил сделать наше приложение просто удобнее:

Например, конвертация работает на компьютере (и некоторым конвертация нужна именно там, а не на мобайле). Также там встроена массовая конвертация файлов и т.д.

И 1-2% американцев платят за такую пользу, потому что при ставке $50/час у некоторых них, проще заплатить $3, чем потратить час на поиск бесплатного (не факт, что хорошего) аналога.

Короче, выбрать одну маленькую фичу, которая есть в ОС, и запустить ее в отдельном продукте — не просто можно. Это капец как нужно! И кстати, это один из наших методов поиска идей)


При этом, говоря про звездолеты и компании которые меняют мир, я много об этом думал. Например, почему кто-то питчит плагин для екоммерса, а кто-то ракеты до Марса, хотя ни у того ни у того еще ничего нет.

И мне кажется ключевое здесь track record. Для того чтобы строить большие проекты нужно доказать что вы можете строить маленькие. Даже в венчуре и мире безумных идей есть рациональная прогрессия.

Если вы студент, то мысль что вы сможете построить прибыльную компанию уже достаточно безумна, а вот если вы успешно построили самолет, то тут уже могут дать деньги и на звездолет.

Пет-проекты кажется далеки от того что делает Илон Маск, но они несомненно к этому приближают.
Я принес. Дмитрий Болдырев и групповая динамика

В последнее время видел ссылки на эти видео в нескольких каналах, а тут еще и многоуважаемый подписчик в чатик занес.

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

У Дмитрия же каждой стадии уделено целое видео. Да еще и с замечательным художественным примером про бригаду электромонтажников в тайге.

Пока вышло только два видео:
1. Про формирование команды https://www.youtube.com/watch?v=4BXv3qYlTYI
2. И про шторминг https://www.youtube.com/watch?v=ebJzCUrjqvQ

Смотрится очень увлекательно, как будто сериал с интересным сюжетом и живыми жизненными персонажами. Заодно много деталей про групповую динамику поглощаешь.
Я посмотрел все два видео за один присест и жду продолжения 🙂