Добро пожаловать в VerbaFlow, нейронную архитектуру, написанную на Go и предназначенную специально для задач языкового моделирования. Эта модель, созданная на основе надежного RWKV RNN, оптимизирована для эффективной работы на стандартных процессорах, обеспечивая плавную работу относительно больших языковых моделей даже на потребительском оборудовании.
Благодаря возможности использовать предварительно обученные модели в наборе данных Pile, VerbaFlow работает сравнимо с GPT-подобными моделями Transformer при прогнозировании следующего токена, а также в других задачах, таких как обобщение текста, классификация текста, ответы на вопросы и общий разговор.
Требования:
Клонируйте этот репозиторий или получите библиотеку:
go get -u github.com/nlpodyssey/verbaflow
Чтобы начать использовать VerbaFlow, мы рекомендуем использовать предварительно обученную модель RWKV-4-Pile-1B5-Instruct
, доступную на Hugging Face Hub. Эта модель была доработана с использованием набора данных Pile и специально разработана для понимания и выполнения человеческих инструкций, как и доработанная в наборе данных xP3. Исходную модель RWKV-4-Pile-1B5-Instruct-test2-20230209
, на основе которой создана эта модель, можно найти здесь.
Библиотека оптимизирована для работы на процессорах x86-64. Если вы хотите запустить его на другой архитектуре, вы можете использовать переменную среды
GOARCH=amd64
.
Для сборки и использования VerbaFlow можно использовать следующие команды:
go build ./cmd/verbaflow
Эта команда собирает программу go и создает исполняемый файл с именем verbaflow
.
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct download
Эта команда загружает указанную модель (в данном случае «nlpodyssey/RWKV-4-Pile-1B5-Instruct» в каталоге «models»).
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct convert
Эта команда преобразует загруженную модель в формат, используемый программой.
./verbaflow -log-level trace -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct inference --address :50051
Эта команда запускает конечную точку вывода gRPC в указанной модели.
Прежде чем запускать приведенные выше команды, убедитесь, что установлены необходимые зависимости.
Одной из наиболее интересных особенностей LLM является возможность реагировать на подсказки.
Запустите конечную точку gRPC verbaflow
с помощью команды вывода, затем запустите пример prompttester
введя следующие запросы:
Быстрый:
echo 'nQ: Briefly: The Universe is expanding, its constituent galaxies flying apart like pieces of cosmic shrapnel in the aftermath of the Big Bang. Which section of a newspaper would this article likely appear in?nnA:' | go run ./examples/prompttester --dconfig ./examples/prompttester/config.yaml
Ожидаемый результат:
Science and Technology
Быстрый:
echo 'nQ:Translate the following text from French to English Je suis le père le plus heureux du mondennA:' | go run ./examples/prompttester --dconfig ./examples/prompttester/config.yaml
Ожидаемый результат:
I am the happiest father in the world.
Список основных зависимостей следующий:
Спасибо PENG Bo за создание RWKV RNN и всех связанных с ним ресурсов, включая предварительно обученные модели!
«VerbaFlow» сочетает в себе «верба», что на латыни означает слова , и «поток», который намекает на характеристики рекуррентных нейронных сетей, вызывая идею плавного и непрерывного потока слов, который становится возможным благодаря сети. способность сохранять внутреннее состояние и «помнить» предыдущие слова и контекст при генерации новых слов.