/ Модель

Характеристики

Контекст
131 072 токена
Параметры
3,2 млрд
Размер весов
6,4 ГБ
Лицензия
Apache 2.0
Архитектура
llama · dense
Опубликована
8 окт 2024

mini-Ichigo-llama3.2-3B-s-instruct

Генерация текстаТекст → текст3 профессии

Англоязычная модель Llama 3 на 3,2 млрд параметров, которая принимает текст и аудио и отвечает текстом, в том числе на инструкции по звуковому содержимому.

49скачиваний за 30 дней32лайкавеса обновлены19 ноя 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

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

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

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Menlo/mini-Ichigo-llama3.2-3B-s-instruct — модель семейства Ichigo-llama3s, разработанная Homebrew Research. Это плотная авторегрессионная модель на архитектуре Llama 3 с 3,2 млрд параметров, дообученная для понимания аудио и текста. Она принимает текст и звук и генерирует текст; для обработки аудио используется токенизатор WhisperVQ. Модель предназначена для экспериментов с пониманием речи и выполнения инструкций, связанных с аудио.

В метаданных указан контекст длиной до 131 072 токенов и поддержка английского языка. Лицензия — Apache-2.0. Качество следует проверять на целевых сценариях: приведённые в карточке оценки относятся к другим версиям семейства.

Сценарии применения

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

Ограничения

Карточка не приводит оценок именно для этой версии; опубликованные таблицы относятся к другим вариантам семейства. Поддержка языков, кроме английского, не заявлена.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

GitHub stars

Model Details

We have developed and released the family Ichigo-llama3s. This family is natively understanding audio and text input.

We expand the Semantic tokens experiment with WhisperVQ as a tokenizer for audio files from homebrewltd/mini-Ichigo-llama3.2-3B-s-base with nearly 1B tokens from Instruction Speech WhisperVQ v3 dataset.

Model developers Homebrew Research.

Input Text and sound.

Output Text.

Model Architecture Llama-3.

Language(s): English.

Intended Use

Intended Use Cases This family is primarily intended for research applications. This version aims to further improve the LLM on sound understanding capabilities.

Out-of-scope The use of llama3-s in any manner that violates applicable laws or regulations is strictly prohibited.

How to Get Started with the Model

Try this model using Google Colab Notebook.

First, we need to convert the audio file to sound tokens

device = "cuda" if torch.cuda.is_available() else "cpu"
if not os.path.exists("whisper-vq-stoks-medium-en+pl-fixed.model"):
    hf_hub_download(
        repo_id="jan-hq/WhisperVQ",
        filename="whisper-vq-stoks-medium-en+pl-fixed.model",
        local_dir=".",
    )
vq_model = RQBottleneckTransformer.load_model(
        "whisper-vq-stoks-medium-en+pl-fixed.model"
    ).to(device)
vq_model.ensure_whisper(device)
def audio_to_sound_tokens(audio_path, target_bandwidth=1.5, device=device):

    wav, sr = torchaudio.load(audio_path)
    if sr != 16000:
        wav = torchaudio.functional.resample(wav, sr, 16000)
    with torch.no_grad():
        codes = vq_model.encode_audio(wav.to(device))
        codes = codes[0].cpu().tolist()

    result = ''.join(f'<|sound_{num:04d}|>' for num in codes)
    return f'<|sound_start|>{result}<|sound_end|>'

Then, we can inference the model the same as any other LLM.

def setup_pipeline(model_path, use_4bit=False, use_8bit=False):
    tokenizer = AutoTokenizer.from_pretrained(model_path)

    model_kwargs = {"device_map": "auto"}

    if use_4bit:
        model_kwargs["quantization_config"] = BitsAndBytesConfig(
            load_in_4bit=True,
            bnb_4bit_compute_dtype=torch.bfloat16,
            bnb_4bit_use_double_quant=True,
            bnb_4bit_quant_type="nf4",
        )
    elif use_8bit:
        model_kwargs["quantization_config"] = BitsAndBytesConfig(
            load_in_8bit=True,
            bnb_8bit_compute_dtype=torch.bfloat16,
            bnb_8bit_use_double_quant=True,
        )
    else:
        model_kwargs["torch_dtype"] = torch.bfloat16

    model = AutoModelForCausalLM.from_pretrained(model_path, **model_kwargs)

    return pipeline("text-generation", model=model, tokenizer=tokenizer)

def generate_text(pipe, messages, max_new_tokens=64, temperature=0.0, do_sample=False):
    generation_args = {
        "max_new_tokens": max_new_tokens,
        "return_full_text": False,
        "temperature": temperature,
        "do_sample": do_sample,
    }

    output = pipe(messages, **generation_args)
    return output[0]['generated_text']

# Usage
llm_path = "homebrewltd/llama3.1-s-instruct-v0.2"
pipe = setup_pipeline(llm_path, use_8bit=True)

Training process

Training Metrics Image: Below is a snapshot of the training loss curve visualized.

image/png

MMLU:

ModelMMLU Score
llama3.1-instruct-8b69.40
ichigo-llama3.1-s-v0.3: phase 363.79
ichigo-llama3.1-s-v0.3: phase 263.08
ichigo-llama3.1-s-base-v0.342.11
mini-ichigo-llama3.2-3B-s-instruct58.60
mini-ichigo-llama3.2-3B-s-base59.61
llama3.1-s-instruct-v0.250.27

AudioBench Eval:

Model BenchOpen-hermes Instruction Audio (GPT-4-O judge 0:5)Alpaca Instruction Audio (GPT-4-O judge 0:5)
Llama3.1-s-v23.453.53
Ichigo-llama3.1-s v0.3-phase2 -cp70003.423.62
Ichigo-llama3.1-s v0.3-phase2-cplast3.313.6
Ichigo-llama3.1-s v0.3-phase33.643.68
mini-Ichigo-llama3.2-3B-s-instruct2.582.07
Qwen2-audio-7B2.632.24

Hardware

GPU Configuration: Cluster of 10x NVIDIA A6000-48GB.

GPU Usage:

  • Fine-tuning: 12 hours.

Training Arguments

We utilize torchtune library for the latest FSDP2 training code implementation.

ParameterInstruction Fine-tuning
Epoch1
Global batch size360
Learning Rate7e-5
Learning SchedulerLambdaLR with warmup
OptimizerAdam torch fused
Warmup Ratio0.01
Weight Decay0.005
Max Sequence Length4096

Examples

  1. Good example:
  1. Misunderstanding example:
  1. Off-tracked example:

Citation Information

BibTeX:

@article{Llama3-S: Sound Instruction Language Model 2024,
  title={Llama3-S},
  author={Homebrew Research},
  year=2024,
  month=August},
  url={https://huggingface.co/homebrewltd/llama3.1-s-2024-08-20}

Acknowledgement

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
9d1c6f9

0 моделей