切换到中文 | En ligne : Chat et jeux de rôle | QQ : Groupe QQ
La série Index-1.9B est une version allégée des modèles de la série Index, comprenant les modèles suivants :
Modèle | Note moyenne | Score moyen en anglais | MMLU | CEVAL | CMMLU | HellaSwag | Arc-C | Arc-E |
---|---|---|---|---|---|---|---|---|
Google Gemma 2B | 41.58 | 46,77 | 41.81 | 31.36 | 31.02 | 66,82 | 36.39 | 42.07 |
Phi-2 (2,7B) | 58,89 | 72.54 | 57.61 | 31.12 | 32.05 | 70,94 | 74.51 | 87.1 |
Qwen1.5-1.8B | 58,96 | 59.28 | 47.05 | 59.48 | 57.12 | 58.33 | 56,82 | 74,93 |
Qwen2-1.5B (rapport) | 65.17 | 62,52 | 56,5 | 70,6 | 70.3 | 66,6 | 43,9 | 83.09 |
MiniCPM-2.4B-SFT | 62,53 | 68,75 | 53,8 | 49.19 | 50,97 | 67.29 | 69.44 | 84.48 |
Index-1.9B-Pur | 50.61 | 52,99 | 46.24 | 46.53 | 45.19 | 62,63 | 41,97 | 61.1 |
Indice-1.9B | 64,92 | 69,93 | 52.53 | 57.01 | 52,79 | 80,69 | 65.15 | 81.35 |
Lama2-7B | 50,79 | 60.31 | 44.32 | 32.42 | 31.11 | 76 | 46.3 | 74,6 |
Mistral-7B (rapport) | / | 69.23 | 60,1 | / | / | 81,3 | 55,5 | 80 |
Baichuan2-7B | 54.53 | 53.51 | 54,64 | 56.19 | 56,95 | 25.04 | 57.25 | 77.12 |
Lama2-13B | 57.51 | 66,61 | 55,78 | 39,93 | 38,7 | 76.22 | 58,88 | 75.56 |
Baichuan2-13B | 68.90 | 71,69 | 59,63 | 59.21 | 61.27 | 72.61 | 70.04 | 84.48 |
MPT-30B (rapport) | / | 63.48 | 46,9 | / | / | 79,9 | 50,6 | 76,5 |
Falcon-40B (rapport) | / | 68.18 | 55.4 | / | / | 83,6 | 54,5 | 79.2 |
Le code d'évaluation est basé sur OpenCompass avec des modifications de compatibilité. Voir le dossier d'évaluation pour plus de détails.
ÉtreindreVisage | ModèlePortée |
---|---|
? Index-1.9B-Chat | Index-1.9B-Chat |
? Index-1.9B-Personnage (Jeu de rôle) | Index-1.9B-Personnage (Jeu de rôle) |
? Index-1.9B-Base | Index-1.9B-Base |
? Index-1.9B-Base-Pure | Index-1.9B-Base-Pure |
? Index-1.9B-32K (Contexte long 32K) | Index-1.9B-32K (Contexte long 32K) |
Index-1.9B-32K
ne peut être lancé qu'à l'aide de cet outil : demo/cli_long_text_demo.py
!!!git clone https://github.com/bilibili/Index-1.9B
cd Index-1.9B
pip install -r requirements.txt
Vous pouvez charger le modèle Index-1.9B-Chat pour le dialogue en utilisant le code suivant :
import argparse
from transformers import AutoTokenizer , pipeline
# Attention! The directory must not contain "." and can be replaced with "_".
parser = argparse . ArgumentParser ()
parser . add_argument ( '--model_path' , default = "./IndexTeam/Index-1.9B-Chat/" , type = str , help = "" )
parser . add_argument ( '--device' , default = "cpu" , type = str , help = "" ) # also could be "cuda" or "mps" for Apple silicon
args = parser . parse_args ()
tokenizer = AutoTokenizer . from_pretrained ( args . model_path , trust_remote_code = True )
generator = pipeline ( "text-generation" ,
model = args . model_path ,
tokenizer = tokenizer , trust_remote_code = True ,
device = args . device )
system_message = "你是由哔哩哔哩自主研发的大语言模型,名为“Index”。你能够根据用户传入的信息,帮助用户完成指定的任务,并生成恰当的、符合要求的回复。"
query = "续写 天不生我金坷垃"
model_input = []
model_input . append ({ "role" : "system" , "content" : system_message })
model_input . append ({ "role" : "user" , "content" : query })
model_output = generator ( model_input , max_new_tokens = 300 , top_k = 5 , top_p = 0.8 , temperature = 0.3 , repetition_penalty = 1.1 , do_sample = True )
print ( 'User:' , query )
print ( 'Model:' , model_output )
Dépend de Gradio, installez avec :
pip install gradio==4.29.0
Démarrez un serveur Web avec le code suivant. Après avoir saisi l'adresse d'accès dans le navigateur, vous pouvez utiliser le modèle Index-1.9B-Chat pour le dialogue :
python demo/web_demo.py --port= ' port ' --model_path= ' /path/to/model/ '
Remarque : Index-1.9B-32K
ne peut être lancé qu'à l'aide de cet outil : demo/cli_long_text_demo.py
!!!
Démarrez une démo de terminal avec le code suivant pour utiliser le modèle Index-1.9B-Chat pour le dialogue :
python demo/cli_demo.py --model_path= ' /path/to/model/ '
Dépend de Flask, installez avec :
pip install flask==2.2.5
Démarrez une API Flask avec le code suivant :
python demo/openai_demo.py --model_path= ' /path/to/model/ '
Vous pouvez mener des dialogues via la ligne de commande :
curl http://127.0.0.1:8010/v1/chat/completions
-H " Content-Type: application/json "
-d ' {
"messages": [
{"role": "system", "content": "你是由哔哩哔哩自主研发的大语言模型,名为“Index”。你能够根据用户传入的信息,帮助用户完成指定的任务,并生成恰当的、符合要求的回复。"},
{"role": "user", "content": "花儿为什么这么红?"}
]
} '
Index-1.9B-32K est un modèle de langage avec seulement 1,9 milliard de paramètres, mais il prend en charge une longueur de contexte de 32 Ko (ce qui signifie que ce modèle extrêmement petit peut lire des documents de plus de 35 000 mots en une seule fois). Le modèle a fait l'objet d'une pré-formation continue et d'un réglage fin supervisé (SFT) spécifiquement pour les textes de plus de 32 000 jetons, sur la base de données de formation de texte long soigneusement organisées et d'ensembles d'instructions de texte long auto-construits. Le modèle est désormais open source sur Hugging Face et ModelScope.
Malgré sa petite taille (environ 2 % des modèles comme GPT-4), l'Index-1.9B-32K démontre d'excellentes capacités de traitement de texte long. Comme le montre la figure ci-dessous, le score de notre modèle de taille 1,9B dépasse même celui du modèle de taille 7B. Vous trouverez ci-dessous une comparaison avec des modèles comme GPT-4 et Qwen2 :
Comparaison de l'Index-1.9B-32K avec GPT-4, Qwen2 et d'autres modèles en capacité de contexte long
Lors d'un test d'aiguille dans une botte de foin d'une longueur de 32 K, l'Index-1.9B-32K a obtenu d'excellents résultats, comme le montre la figure ci-dessous. La seule exception était une petite tache jaune (91,08 points) dans la région de (32 000 longueur, 10 % de profondeur), toutes les autres zones affichant d'excellentes performances dans des zones principalement vertes.
Évaluation NeedleBench
Pour plus de détails sur le téléchargement, l'utilisation et le rapport technique pour Index-1.9B-32K, voir :
Rapport technique à contexte long Index-1.9B-32Kweb_demo.py
pour obtenir les sorties Index-1.9B-Chat. System Message
pour incarner un stéréotype d'utilisateur de bilibili ! Nous avons simultanément rendu open source le modèle de jeu de rôle et le cadre qui l'accompagne.
三三
intégré.生成角色
pour le créer avec succès.Role name
, saisissez votre query
et cliquez sur submit
pour démarrer la conversation.Pour une utilisation détaillée, veuillez vous référer au dossier Roleplay.
cd demo/
CUDA_VISIBLE_DEVICES=0 python cli_long_text_demo.py --model_path ' /path/to/model/ ' --input_file_path data/user_long_text.txt
Traduction et résumé (rapport financier Bilibili publié le 2024.8.22)
Dépend des bits et octets, commande d'installation :
pip install bitsandbytes==0.43.0
Vous pouvez utiliser le script suivant pour effectuer une quantification int4, ce qui entraîne moins de perte de performances et économise davantage l'utilisation de la mémoire vidéo.
import torch
import argparse
from transformers import (
AutoModelForCausalLM ,
AutoTokenizer ,
TextIteratorStreamer ,
GenerationConfig ,
BitsAndBytesConfig
)
parser = argparse . ArgumentParser ()
parser . add_argument ( '--model_path' , default = "" , type = str , help = "" )
parser . add_argument ( '--save_model_path' , default = "" , type = str , help = "" )
args = parser . parse_args ()
tokenizer = AutoTokenizer . from_pretrained ( args . model_path , trust_remote_code = True )
quantization_config = BitsAndBytesConfig (
load_in_4bit = True ,
bnb_4bit_compute_dtype = torch . float16 ,
bnb_4bit_use_double_quant = True ,
bnb_4bit_quant_type = "nf4" ,
llm_int8_threshold = 6.0 ,
llm_int8_has_fp16_weight = False ,
)
model = AutoModelForCausalLM . from_pretrained ( args . model_path ,
device_map = "auto" ,
torch_dtype = torch . float16 ,
quantization_config = quantization_config ,
trust_remote_code = True )
model . save_pretrained ( args . save_model_path )
tokenizer . save_pretrained ( args . save_model_path )
Suivez les étapes du didacticiel de réglage fin pour affiner rapidement le modèle Index-1.9B-Chat. Essayez-le et personnalisez votre modèle Index exclusif !
Index-1.9B peut générer un contenu inexact, biaisé ou autrement répréhensible dans certaines situations. Le modèle ne peut pas comprendre, exprimer des opinions personnelles ou porter des jugements de valeur. Ses résultats ne représentent pas les points de vue et les positions des développeurs du modèle. Par conséquent, veuillez utiliser le contenu généré avec prudence. Les utilisateurs doivent évaluer et vérifier de manière indépendante le contenu généré par le modèle et ne doivent pas diffuser de contenu préjudiciable. Les développeurs doivent effectuer des tests de sécurité et des réglages précis en fonction d'applications spécifiques avant de déployer des applications associées.
Nous vous déconseillons fortement d'utiliser ces modèles pour créer ou diffuser des informations préjudiciables ou pour vous engager dans des activités susceptibles de nuire à la sécurité publique, nationale ou sociale ou de violer les réglementations. N'utilisez pas les modèles pour les services Internet sans un examen et un classement de sécurité appropriés. Nous avons tout mis en œuvre pour garantir la conformité des données de formation, mais en raison de la complexité du modèle et des données, des problèmes imprévus peuvent encore subsister. Nous ne serons pas tenus responsables des problèmes découlant de l'utilisation de ces modèles, qu'ils soient liés à la sécurité des données, aux risques d'opinion publique ou à tout risque et problème causés par une incompréhension, une mauvaise utilisation, une diffusion ou une utilisation non conforme du modèle.
L'utilisation du code source de ce référentiel nécessite la conformité à Apache-2.0. L'utilisation des pondérations du modèle Index-1.9B nécessite le respect de l'INDEX_MODEL_LICENSE.
Les pondérations du modèle Index-1.9B sont entièrement ouvertes à la recherche universitaire et prennent en charge une utilisation commerciale gratuite .
Si vous pensez que notre travail vous est utile, n’hésitez pas à le citer !
@article{Index,
title={Index1.9B Technical Report},
year={2024}
}
libllm : https://github.com/ling0322/libllm/blob/main/examples/python/run_bilibili_index.py
chatllm.cpp:https://github.com/foldl/chatllm.cpp/blob/master/docs/rag.md#role-play-with-rag
ollama:https://ollama.com/milkey/bilibili-index
auto-llm : https://github.com/datawhalechina/self-llm/blob/master/bilibili_Index-1.9B/04-Index-1.9B-Chat%20Lora%20微调.md