/ Модель

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

Контекст
4 096 токенов
Параметры
7,2 млрд
Размер весов
93,9 ГБ
Лицензия
Apache 2.0
Архитектура
Tanuki · MoE
Библиотека
transformers
Опубликована
12 авг 2024

Tanuki-8x8B-dpo-v1.0

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

Диалоговая японская MoE-модель, настроенная методами SFT и DPO для генерации ответов и выполнения инструкций.

113скачиваний за 30 дней41лайквеса обновлены9 окт 2024

Бенчмарки

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

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

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

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

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

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

Tanuki-8x8B-dpo-v1.0 — диалоговая большая языковая модель проекта GENIAC, разработанная командой добровольных участников под руководством лаборатории Мацуо. Базовая Tanuki-8x8B обучалась с нуля примерно на 1,7 трлн токенов; эта версия дополнительно настроена для диалога с помощью SFT и DPO. Это модель типа Mixture of Experts с общим числом параметров около 47 млрд и примерно 13 млрд активных параметров. В метаданных указаны 7,2 млрд параметров; README приводит отдельные значения для базовой архитектуры Tanuki-8x8B.

Модель предназначена для генерации ответов в диалоге и выполнения инструкций, в первую очередь на японском языке. Также заявлена поддержка английского. Она использует контекст до 4096 токенов и японский вариант формата Alpaca; авторы рекомендуют заданный в карточке системный промпт, поскольку модель обучалась с ним. По опубликованной оценке Japanese MT-Bench версия 8x8B получила средний балл 7,96.

Для инференса требуются Flash Attention; для использования через vLLM нужна изменённая версия с поддержкой архитектуры. Модель распространяется в формате safetensors, лицензия Apache-2.0. В README также описаны квантованные варианты, но они не являются заявленным форматом этого репозитория.

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

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

Ограничения

Для инференса требуется Flash Attention; для запуска через vLLM нужна изменённая версия с поддержкой архитектуры Tanuki. Авторы рекомендуют использовать обученный системный промпт и отмечают возможное снижение качества у GGUF-квантизации.

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

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

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

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

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

Открыть на Hugging Face

Tanuki-8x8B-dpo-v1.0

モデルについて

Tanuki-8x8Bは、フルスクラッチで約1.7Tトークン事前学習を行った8x8Bパラメータ(総パラメータ約47B、アクティブパラメータ約13B)の大規模言語モデルです。
Tanuki-8x8B-dpo-v1.0は、SFTおよびDPOにより対話用に調整されています。
より詳細な情報についてはブログ記事を参照してください。

GENIAC 松尾研 LLM開発プロジェクトのもと、一般公募により集まった有志の参加者(企業所属、学生、研究者等)が開発を実施しました。

量子化モデル

AWQ 4bit量子化 GPTQ 4bit量子化 GPTQ 8bit量子化 GGUF量子化*
*GGUF版は性能低下が発生している可能性があり、非推奨

使い方

こちらの記事にTanuki-8x8Bおよびその量子化モデルの各種推論方法についてまとめていますので、ご確認ください。
以下に一部の推論方法を解説します。

本モデルの推論にはflash attentionが必須です。以下のようにインストールしてください。

pip install --no-build-isolation flash_attn

以下はHuggingFace Transformersを使った推論のサンプルコードです。

from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer

model = AutoModelForCausalLM.from_pretrained("weblab-GENIAC/Tanuki-8x8B-dpo-v1.0", device_map="auto", torch_dtype="auto", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("weblab-GENIAC/Tanuki-8x8B-dpo-v1.0")
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)

messages = [
    {"role": "system", "content": "以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"},
    {"role": "user", "content": "たぬきに純粋理性批判は理解できますか?"}
]

input_ids = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
output_ids = model.generate(input_ids,
                            max_new_tokens=1024,
                            temperature=0.5,
                            streamer=streamer)

また、vLLMを使って推論をする場合は独自アーキテクチャへの対応が必要となります。こちらから改変済みvLLMを以下のようにビルドしてご利用ください。

git clone https://github.com/team-hatakeyama-phase2/vllm.git
cd vllm
LD_LIBRARY_PATH="" MAX_JOBS=16 pip install -e .

以下はvLLMを使った推論のサンプルコードです。

from time import time
from vllm import LLM, SamplingParams

model_name = "weblab-GENIAC/Tanuki-8x8B-dpo-v1.0"
# model_name = "team-hatakeyama-phase2/Tanuki-8x8B-dpo-v1.0-AWQ"
# model_name = "team-hatakeyama-phase2/Tanuki-8x8B-dpo-v1.0-GPTQ-4bit"
# model_name = "team-hatakeyama-phase2/Tanuki-8x8B-dpo-v1.0-GPTQ-8bit"

# vllm = LLM(model_name, trust_remote_code=True, tensor_parallel_size=1)  # 1GPUの場合
vllm = LLM(model_name, trust_remote_code=True, tensor_parallel_size=2)  # 2GPUを使う場合
tokenizer = vllm.get_tokenizer()

messages = [
    {"role": "system", "content": "以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"},
    {"role": "user", "content": "たぬきに純粋理性批判は理解できますか?"}
]

inputs_text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
print(f"inputs_text: {inputs_text}")

sampling_params = SamplingParams(temperature=0.0, max_tokens=1024, seed=1, repetition_penalty=1.1)
start = time()
outputs = vllm.generate(inputs_text, sampling_params=sampling_params, use_tqdm=False)
end = time()
outputs_text = outputs[0].outputs[0].text
print(f"outputs_text: {outputs_text}")
print(f"Elapsed time: {(end - start):.4f} sec.")

プロンプト形式

Tanuki-8x8B-dpo-v1.0は日本語版Alpacaのプロンプト形式を利用します。

  • シングルターン
    <s>以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。
    
    ### 指示:
    たぬきに純粋理性批判は理解できますか?
    
    ### 応答:
    
    
  • マルチターン
    <s>以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。
    
    ### 指示:
    {1ターン目の入力}
    
    ### 応答:
    {1ターン目の応答}</s>
    
    ### 指示:
    {2ターン目の入力}
    
    ### 応答:
    

なお、本モデルはデフォルトのシステムプロンプトである「以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。」以外を学習していないため、このシステムプロンプトの使用を推奨します。タスクの詳細はユーザープロンプトに記述してください。

ベンチマーク

人手評価
Chatbot Arenaを模したシステムを作成し、人手によるブラインドテストを実施しました。 (詳細はこちら)
全評価データ(約2000件)を公開しています。 image/png

Japanese MT-Bench
GPT-4による評価 (gpt-4-0613、平均スコア算出においてスコア-1は除外)

Tanuki-8B-dpo-v1.0Tanuki-8x8B-dpo-v1.0
平均スコア7.247.96
coding5.46.75
extraction6.656.90
humanities9.19.3
math3.95.75
reasoning5.757.35
roleplay8.758.95
stem9.359.40
writing9.058.85

開発メンバー

畠山 歓 [リーダー]、asaoka_tadashi、Atsushi Saito、Chattso-GPT、Chihiro Arata、Chihiro HIGUCHI、Daichi Kohmoto、Esty、Hideaki Hayashi、hiroaki shioya、Issei Fujimoto、Jie Zeng、Jinsei Shiraishi、K. Nishizawa、Kazutaka Nishimae、Kunihiro Watanabe、masaki okamura、Minami Someya、Mさん、Nishi、Nishijima、p1atdev、Rumi Nakagawa、Ryota Mitsuhashi、Susumu Ota、takagi、Toshio Nishida、y_morinaga、Yuki Namiuchi、Yukie Kawano、永原恒治、加藤純、河越 淳、岩田 兼太朗、菊池満帆、熊田匡仁、江國翔太、佐野敏幸、山口 裕輝、西井康隆、川村 正春、片上 舜、堀江吏将、林寛太 (Kanta Hayashi)

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

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

GPU в ailist

vLLM

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
TanukiForCausalLM
Ревизия весов
4a18628

0 моделей