/ Модель

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

Контекст
2 048 токенов
Параметры
6,6 млрд
Размер весов
27 ГБ
Лицензия
cc-by-sa-3.0
Архитектура
llama · dense
Библиотека
transformers
Опубликована
11 июл 2023

open-llama-7b-v2-open-instruct

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

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

91скачиваний за 30 дней35лайковвеса обновлены30 окт 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VMware/open-llama-7b-v2-open-instruct — инструктивно дообученная версия OpenLLaMA 7B v2 от VMware на наборе Open-instruct. Это плотная авторегрессионная модель семейства LLaMA с 6,6 млрд параметров и контекстом 2048 токенов, предназначенная для генерации текста и ответов на инструкции. В карточке отмечено улучшение результатов на задачах программирования относительно первой версии OpenLLaMA; для инструктивного дообучения использован шаблон Alpaca. Основной язык карточки — английский.

Модель подходит для диалоговых ответов, выполнения текстовых инструкций, объяснения понятий и генерации примеров кода. Она распространяется в форматах PyTorch и safetensors по лицензии CC BY-SA 3.0. Для корректной токенизации в README рекомендуется отключить быстрый токенизатор, поскольку он может кодировать текст неверно.

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

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

Ограничения

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

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

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

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

Также подходит для

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

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

Открыть на Hugging Face

VMware/open-llama-7B-v2-open-instruct

Instruction-tuned version of the fully trained Open LLama 7B v2 model. The model is open for COMMERCIAL USE.

  • This model performs better on code compared to v1 due to the improvements made on the base model by the openlm-research team.
  • The instruction model is trained on an improved instruction tuning dataset compared to v1

NOTE: The model was trained using the Alpaca prompt template NOTE: Fast tokenizer results in incorrect encoding, set the use_fast = False parameter, when instantiating the tokenizer

License

Datasets used for Fine-Tuning

Open-instruct

Open-instruct-v1

  • Mosaic/Dolly-HHRLHF + filtered OASST1 - cc by 3.0

Subset of COT SUBMIX (FROM FLAN V2) Zeroshot examples

  • ESNLI - MIT
  • ECQA - CDLA 1.0 - Sharing
  • Strategy - MIT
  • CREAK - MIT
  • gsmk8 - MIT
  • aqua - MIT
  • qasc - Apache 2.0

Nomenclature

  • Model : Open-llama-v2
  • Model Size: 7B parameters
  • Dataset: Open-instruct

Use in Transformers

import os
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = 'VMware/open-llama-7b-v2-open-instruct'


tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False)

model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map='sequential')

prompt_template = "Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Response:"

prompt = """What is attention mechanism of a transformer model? 
 Write a python code to illustrate how attention works within a transformer model using numpy library. Donot use pytorch or tensorflow."""


inputt = prompt_template.format(instruction= prompt)
input_ids = tokenizer(inputt, return_tensors="pt").input_ids.to("cuda")

output1 = model.generate(input_ids, max_length=512)
input_length = input_ids.shape[1]
output1 = output1[:, input_length:]
output = tokenizer.decode(output1[0])

print(output)

Output

Sure, I can help you with that!

Attention mechanisms in transformer models are typically implemented using the attention mechanism in the self-attention layer. Self-attention allows the model to focus on different parts of the input sequence when processing it. This is achieved by computing a set of attention weights, which are used to weigh the contribution of each input element to the output.

Here's an example code using NumPy to illustrate how attention works in a transformer model:

import numpy as np

def attention_weights(query, key, value, mask):
    # Query, key, and value are input tensors. Mask is a tensor of zeros and ones that represents the attention mask.
    # It is used to prevent the model from attending to certain positions in the input sequence if they are not relevant.
    # The attention weights are the element-wise product of the query, key, and mask tensors.
    # The result is a tensor of the same shape as the query tensor.
    
    # Compute the dot product between the query tensor and the key tensor
    dot = np.matmul(query, key)
    
    # Compute the element-wise softmax of the dot product tensor
    exp_dot = np.exp(dot)
    
    # Multiply the dot product and the softmax of the dot product tensors
    weights = dot * exp_dot
    
    # Return the attention weights as a NumPy tensor
    return weights

# Define the input sequence
query = np.array([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]])
key = np.array([[0.1, 0.2], [0.3, 0.4]])
value = np.array([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]])
mask = np.array([[False, True, True], [False, True, True]])

# Compute the attention weights
weights = attention_weights(query, key, value, mask)

# Print the attention weights
print(weights)

In this example, the attention_weights function takes as input the query tensor, key tensor, value tensor, and mask tensor. It computes the dot product between the query and key tensors using the np.matmul function, and then applies a softmax function using the np.exp function to the element-wise dot product tensor. It then multiplies the dot product and softmax tensors using the np.matmul function, and returns the result as a NumPy tensor.

The query, key, and value tensors represent the input sequence to the transformer model. The mask tensor represents the attention mask, which is used to prevent the model from attending to certain positions in the input sequence if they are not relevant.

The output of the attention_weights function is a NumPy tensor that represents the attention weights for the input sequence. These weights are used by the transformer model to weigh the contribution of each input element to the output.

I hope this helps!

Finetuning details

The finetuning scripts will be available in our RAIL Github Repository

Open LLM Leaderboard Evaluation Results

Detailed results can be found here

MetricValue
Avg.40.34
ARC (25-shot)39.76
HellaSwag (10-shot)70.31
MMLU (5-shot)35.16
TruthfulQA (0-shot)39.53
Winogrande (5-shot)64.33
GSM8K (5-shot)7.43
DROP (3-shot)25.88

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей