Ділимось прикладами використання моделі o1

Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!

Цей топік створений для того, щоб ділитись цікавими прикладами використання o1. Будемо вести обговорення і ділитись цікавими кейсами

Топік призначений як для початківців так і професіоналів, тому буде цікавий для людей з любим рівнем знань. Я вже впевнений що на o1 можна створювати нові види програмного забезпечення, тому можливості там дуже значні.

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

В основном хлопцы, для решения учебных задач! Модель O1 (или O1-алгоритм) часто используется в контексте оптимизации и поиска решений, особенно в задачах, где необходимо находить оптимальные параметры или решения в сложных пространствах. Генетические алгоритмы (ГА) являются одним из методов, которые могут быть использованы для решения таких задач. Ниже приведены примеры использования модели O1 с применением генетических алгоритмов.
1.Оптимизация параметров машинного обучения для повышения точности предсказаний.
Применение:
Генетический алгоритм используется для поиска оптимальных значений гиперпараметров модели (например, коэффициенты регуляризации, количество деревьев в случайном лесе и т.д.).
Каждая индивидуальная особь в популяции представляет собой набор гиперпараметров.
Оценка приспособленности (fitness) осуществляется на основе точности модели на валидационном наборе данных.
Процесс включает селекцию, кроссовер и мутацию для создания новых поколений гиперпараметров
2. Оптимизация проектирования сетей (например, электрических или компьютерных).
Применение:
Генетические алгоритмы могут помочь в нахождении оптимального расположения узлов и соединений в сети.
Каждая особь представляет собой конфигурацию сети.
Приспособленность может оцениваться по критериям, таким как минимизация потерь энергии или максимизация пропускной способности.
Алгоритм использует механизмы селекции и мутации для улучшения конфигураций сети.
3. Оптимизация портфеля инвестиций
Задача: Оптимизация распределения активов в инвестиционном портфеле.
Применение:
Генетический алгоритм может использоваться для нахождения оптимального распределения средств между различными активами.
Каждая особь представляет собой набор долей активов в портфеле.
Приспособленность определяется по критериям, таким как максимизация ожидаемой доходности при минимизации риска.
Алгоритм включает селекцию успешных портфелей и их комбинацию для создания новых вариантов распределения активов.
4. Решение задач коммивояжера
Задача: Поиск кратчайшего пути, проходящего через заданный набор городов.
Применение:
Генетические алгоритмы могут эффективно решать задачу коммивояжера путем представления каждого маршрута как особи.
Приспособленность оценивается по общему расстоянию маршрута.
Алгоритм использует селекцию лучших маршрутов и их комбинирование для нахождения более коротких путей.

Як на мене краще взяти Open Source рішення, де можна керувати процесом beam search та додавати свої верифікатори.

В якій реальності це альтернатива о1? Так, модель на 400 млрд. параметрів, яку ви навіть не запустите, може бути альтернативою 4о, но про о1 і мови йти не може.

Це альтернатива в тому плані, що я можу локально керувати перебором варіантів, а не про параметри, кількість яких впливає не дуже сильно. От як подивитися у o1 які токени пропонуються на кроці генерації, та з якими ймовірностями? А якщо запускати локально, то усе видно.

В о1 пользователи могут увидеть, какие токены предлагаются на каждом шаге генерации и с какими вероятностями. В случае с LLaMa, несмотря на возможность локального запуска, сложность модели может затруднить анализ промежуточных результатов. Чтобы увидеть предлагаемые токены и их вероятности в о1 можно используйте API или интерфейс: Если модель предоставляет API, возможно, есть параметры для возврата всех токенов с их вероятностями. Использовать логирование т.е. процессе генерации можно добавить логирование для вывода информации о текущих токенах и их вероятностях.
Можно засетить параметры некоторые модели позволяют настраивать параметры генерации так, чтобы они возвращали больше информации о процессе.
Например,вот так можно заюзать в питоне, через питонячие словари

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("model_name")
tokenizer = AutoTokenizer.from_pretrained("model_name")

input_text = "Ваш текст"
input_ids = tokenizer.encode(input_text, return_tensors="pt")

# Настройки генерации
output = model.generate(
    input_ids,
    num_beams=5,  # Увеличиваем ширину луча
    num_return_sequences=3,  # Возвращаем 3 лучших варианта
    output_scores=True,  # Включаем вывод вероятностей
    return_dict_in_generate=True  # Возвращаем результаты в словаре
)

# Извлечение токенов и их вероятностей
for i in range(len(output.sequences)):
    print(f"Sequence {i}: {tokenizer.decode(output.sequences[i])}")
    print(f"Scores: {output.scores[i]}")
Когда мне выходить на работу?

Щось код нагадує Huggings Face, тобто це працює на всіх інших LLM, окрім OpenAI

Так яка це альтернатива якщо щоб ти не робив, навіть якщо ти відтвориш їх pipeline (який дуже нетривіальний раз ніхто не повторив ще), результат все-одно буде на порядки гірший ніж о1? Чисто із-за слабості відкритих ллм порівняно з тією, яка використовується в о1.

Теоретично ти можеш затюнити свій pipeline з локальними моделями під дуже специфічні для тебе задачі який буде працювати не гірше о1, но він буде обмежений специфічними для тебе задачами — крок в сторону і труба.

результат все-одно буде на порядки гірший ніж о1?

на llmarena я не бачу на порядки гірші результати.

но він буде обмежений специфічними для тебе задачами

Мені як раз треба вирішувати специфічні задачі. Наприклад, якщо генерується код в унікальному контексті, то мені набагато простіше швидко відкидати варіанти, які не проходять банально синтаксичну перевірку.

Ну значить у вас запити такі. На простих запитах всі гарні. Но ось дати щось складніше, чи з великим контекстом, так опенсоурсні моделі до 70б параметрів на порядок гріше якогось 4о чи claude 3.5. А ті що більше 70б просто так не запустиш.

llmarena не показник, якщо їй вірити, то llama 7b лише на 20% гірша за о1. Но блін, це ж абсурд. Коли о1 шахи пише, llama 7b не може результат в json нормально видати. Ну я якщо спитати які побочки від панадола, то да, llama 7b буде не гірша за о1 )

Ось які знайшов приклади застосувань

1. 3D FPS гра на Javascript/HTML
2. Створення повнофункціональної шахової гри
3. Створення гри-платформера клону Маріо
4. Мобільний додаток для показу погоди
5. Створення гри про динозаврів з Chrome
6. Створення гри-скроллера для NFT-проекту
7. Створення наукового калькулятора в стилі iPhone
9. Створення фізичного середовища на Python

привіт, пане Олег, хочу подивитись промпт на створення шахів.

+ з кастомізацією, щоб наприклад ладья ходила максимум на 5 клітин, а ферьз міг ходити ще як кінь. Просто щоб чат не взяв повністю готове рішення якесь.

Хоча це все одно досить прості і прямолінійні зміни, мабуть впорається.

В залежності від генератора ходів, самий швидкий це bitboards, але... там такі зміни просто не зробляться... Треба буде перегенерувати допоміжні таблиці.

щось схоже на дзигу там за посиланням і більше нічого не побачив.

В коментарях є

Проблема у тому, що таких проектів у відкритому доступі (читай у навчальному наборі), я думаю, дуже багато. Тому простіше знайти готовий проект на github. А от коли треба враховувати великий контекст готового проекту, то... можуть бути питання...

Підписатись на коментарі