Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Tensor Banana
Подключаем кучу видеокарт к мини-пк или ноутбуку

В наличии имею мини-пк GenMachine на Ryzen 7 7730u (брал за 27к) https://aliexpress.ru/item/1005005560402861.html?sku_id=12000036067533846
Есть 2 варианта подключения внешней видеокарты к ноуту или мини-пк: по Thunderbolt или через переходник m2->pcie. Thunderbolt есть только в дорогих моделях, и он обычно только один + к нему нужен будет корпус ценой еще в полвидюхи. У меня Thunderbolt нет, поэтому будем юзать m2-nvme.
У моего мини-пк есть целых три слота m2 (x4 SSD, x4 SSD, x1 m2-e-key-wifi), это довольно много. Чаще всего, в дешёвых мини-пк идёт ровно 1 слот для SSD и всё. Например, в beelink s12 pro (17к на озоне) всего 1 x1 слот, но и там есть варианты.

Следует отметить, что не все слоты m2 являются PCIE. В старых ноутах/мини-пк будет стоять m2-SATA, а не m2-nvme, нам такие не подходят.

Для подключения видеокарт нам понадобится переходник с m2 на PCIE x16. Он позволит подключить одну видеокарту. Я купил 2 штуки на PCIE 3.0 x4, они довольно быстрые.

Но одной видеокарты нам мало, нам надо 4, поэтому нужен ещё сплиттер с x1 на 4 x1. Такой обычно используют майнеры, он не супер быстрый, но зато позволяет подключить до 4 карт на один слот в режиме PCIE 2.0 x1 (полоса будет по умному делиться между всеми устройствами). Предположу, что для этого сплиттера не нужна поддержка бифуркации в матери, но это неточно (в моем биосе никакой бифуркации я не нашел). Карту с разъемом x1 можно воткнуть в разъем x16.


## Железки
Порядковый номер соответствует номеру на фотке.
1. Переходник m2 e key (wifi) to m2 m key (ssd) PCIE 3.0 x1 https://aliexpress.ru/item/1005004711422885.html?sku_id=12000030192041528
2. Переходник m2 to PCIE 3.0 x16 (использует от x1 до x4 линий, взял 2) https://aliexpress.ru/item/1005004727347382.html?sku_id=12000030249734865
3. Сплиттер (райзер) x1 to 4 x1 with USB cables, PCIE 2.0 x1 https://aliexpress.ru/item/1005003519054789.html
4. Переходник (райзер) PCIEUSB to PCIE 3.0 x16 https://aliexpress.ru/item/1005004134020455.html?sku_id=12000028145182159
5. Переходник m2 to 4 x1 with USB cables (работает, но нестабильно, иногда BSODит. Возможно, брак, отзывы были отличные) https://aliexpress.ru/item/1005004402356641.html?sku_id=12000029049805779
6. Переходник m2 to 1 x1 with USB cables https://www.ozon.ru/product/m-2-ngff-v-pci-e-x16-usb3-0-adapter-riser-card-card-adapter-342305387/
7. Переходник PCIE x16 to PCIE x16 + 2 m2 (у меня m2 слоты не заработали) https://aliexpress.ru/item/1005005277952427.html


Блок питания взял свой старый на 750W. Чтобы он автоматом включался, я замкнул нужный контакт на землю. Сперва включаю БП, потом мини-пк, иначе видюхи не определятся.

## Скорость загрузки

Слот x1 + 2 видюхи на сплиттере pcie 2.0 x1
- Скорость загрузки T-lite-instruct-0.1.Q8_0 (файнтюн llama-3-8b, 7.95 GB) из ram в vram - 22s (0.35 GB/s)
Полное время загрузки llama.cpp server от дабл клика до готовности:
- в одну видюху --tensor-split 1.0,0.0 - 34s
- в две видюхи --tensor-split 0.5,0.5 - 35s
- два экземпляра llama.cpp параллельно, каждый в свою видюху - 48s
- в одну видюху на x4 без сплиттера - 17s
- x1 в comfyui flux загружается со скоростью 0.08 GB/s (возможно, налету пересчитывает fp16 в fp8)

Скорость загрузки в режиме pcie 3.0 x4 (без сплиттера) в llama.cpp примерно 1.20 GB/s. В comfyui - 0.30 GB/s, холодный старт - 96s

Скорость чтения SSD в зависимости от слота. В родном PCIE 3.0 x4 - 3.65 GB/s, в x1 - 0.91 GB/s. На практике в винде почти не замечаю разницы, ощущую ее только, когда делаю полнотекстовой поиск по куче файлов. Я хз почему скорость чтения/записи с SSD в 2-3 раз выше чем при работе с видеокартой при аналогичном режиме.

## Скорость инференса
не влезла, вынес в комменты

В теории в эти 3 слота я смогу подключить через сплиттер до 12 видюх. Сколько получится на практике - пока неизвестно. В данный момент работают 2. Интернет говорит, что в этом проце 16 PCIE 3.0 линий. Но каждому сплиттеру нужна всего одна линия. Пока оставил 2 видюхи на x4, ssd на x1.
Forwarded from Tensor banana chat
## Скорость инференса
скорость инференса особо не страдает. как было, так и осталось. Стоит отметить, что обе видюхи у меня работают со слегка уменьшенной мощностью в afterburner (3060 работает на 144/170W, a 2080ti на 205/250W). Поэтому скорость инференса будет слегка ниже чем на стоковой мощности.

FLUX
comfy flux_fp8(22GB) + 3 loras, 1024x1024 7 steps на 2080ti-22GB:
x1: первый холодный запуск, загрузка всех моделей + 7 steps inference - 235s (скорость загрузки примерно 0.08 GB/s)
x4: первый холодный запуск, загрузка всех моделей + 7 steps inference - 96s (скорость загрузки примерно 0.30 GB/s)
x1: все модели уже загружены, 7 steps - 15s, 1.88s/it.
x4: все модели уже загружены, 7 steps - 12s, 1.74s/it.


llama.cpp
T-lite-instruct-0.1.Q8_0.gguf (файнтюн llama-3-8b, 7.95 GB)
3060-12GB (144W, сплиттер, слот x1)
prompt eval 1513 t/s
inference 23 t/s

2080ti-22GB (205W, сплиттер, слот x1)
prompt eval 2034 t/s
inference 29 t/s

2080ti-22GB (205W, без сплитерра, слот x4)
prompt eval 2041 t/s
inference 35 t/s

2080ti-22GB (стоковые 250W, без сплитерра, слот x4)
prompt eval 2186 t/s
inference 35 t/s

3060 + 2080ti-22GB --tensor-split 0.5,0.5. Обе через сплиттер, слот x1
prompt eval 1967 t/s
inference 23 t/s

3060 + 2080ti-22GB --tensor-split 0.5,0.5. Без сплиттера, обе на слотах x4
prompt eval 1696.26
inference 25 t/s

можно сказать, что скорость инференса на двух видюхах незначительно изменилась на -17% при наличии сплиттера в сравнение с честным x4
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п.п.

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

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