初始化项目,由ModelHub XC社区提供模型
Model: Josephgflowers/Qllama-5B-RAG-1 Source: Original Platform
This commit is contained in:
51
.gitattributes
vendored
Normal file
51
.gitattributes
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.model filter=lfs diff=lfs merge=lfs -text
|
||||
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
||||
*.tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
*.db* filter=lfs diff=lfs merge=lfs -text
|
||||
*.ark* filter=lfs diff=lfs merge=lfs -text
|
||||
**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
|
||||
**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
|
||||
**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
|
||||
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
||||
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
||||
*.gguf* filter=lfs diff=lfs merge=lfs -text
|
||||
*.ggml filter=lfs diff=lfs merge=lfs -text
|
||||
*.llamafile* filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
||||
*.npy filter=lfs diff=lfs merge=lfs -text
|
||||
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
*.pickle filter=lfs diff=lfs merge=lfs -text
|
||||
*.pkl filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
merges.txt filter=lfs diff=lfs merge=lfs -text
|
||||
tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
||||
vocab.json filter=lfs diff=lfs merge=lfs -text
|
||||
30
README.md
Normal file
30
README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
license: mit
|
||||
---
|
||||
This model needs further fine tuning.
|
||||
|
||||
See:
|
||||
txtai-rag.py for rag implimentation with txt ai wikipedia.
|
||||
|
||||
Llamafyd version of Qwen .5B further fine tuned 1 epoch on wiki, math, science, and chat datasets. Based on Cinder data. This model further fine tuned 1 epoch on rag data.
|
||||
|
||||
Rough list of final datasets:
|
||||
formatted_beaugogh-openorca-multiplechoice-10k.txt
|
||||
formatted_BYC-Sophie-samsum-chatgpt-summary.txt
|
||||
formatted_conversation_bio.txt
|
||||
formatted_conversation_create_cinder_1.txt
|
||||
formatted_conversation_Electrical-engineering.txt
|
||||
formatted_conversation_multiturn_stem.txt
|
||||
formatted_conversation_physics.txt
|
||||
formatted_conversation_qa_rag_chem_prog_dataset.txt
|
||||
formatted_conversation_qa_robot_ai_dataset.txt
|
||||
formatted_conversation_qa_shopify_dataset1_rag.txt
|
||||
formatted_conversation_qa_shopify_dataset_rag.txt
|
||||
formatted_dyumat-databricks-dolly-5k-rag-split.txt
|
||||
formatted_Hypoxiic-wikipedia-summary-subset1k-summary_token.txt
|
||||
formatted_neural-bridge-rag-dataset-12000.txt
|
||||
formatted_rachid16-rag_finetuning_data.txt
|
||||
formatted_tiny_stories_1_summary_token_tag_token-xaa.txt
|
||||
formatted_tiny_stories_2_summary_token_assistant-xah.txt
|
||||
med_rag_small.txt
|
||||
z_formatted_cinder_test.txt
|
||||
32
config.json
Normal file
32
config.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"_name_or_path": "/home/joe/Downloads/RAG-Summay/RAG-Summary",
|
||||
"architectures": [
|
||||
"LlamaForCausalLM"
|
||||
],
|
||||
"attention_bias": true,
|
||||
"attention_dropout": 0.0,
|
||||
"bos_token_id": 1,
|
||||
"eos_token_id": 2,
|
||||
"hidden_act": "silu",
|
||||
"hidden_size": 1024,
|
||||
"initializer_range": 0.02,
|
||||
"intermediate_size": 2816,
|
||||
"max_position_embeddings": 4096,
|
||||
"max_window_layers": 21,
|
||||
"mlp_bias": false,
|
||||
"model_type": "llama",
|
||||
"num_attention_heads": 16,
|
||||
"num_hidden_layers": 24,
|
||||
"num_key_value_heads": 16,
|
||||
"pretraining_tp": 1,
|
||||
"rms_norm_eps": 1e-06,
|
||||
"rope_scaling": null,
|
||||
"rope_theta": 1000000.0,
|
||||
"sliding_window": 32768,
|
||||
"tie_word_embeddings": true,
|
||||
"torch_dtype": "float16",
|
||||
"transformers_version": "4.41.0.dev0",
|
||||
"use_cache": true,
|
||||
"use_sliding_window": false,
|
||||
"vocab_size": 151936
|
||||
}
|
||||
1
configuration.json
Normal file
1
configuration.json
Normal file
@@ -0,0 +1 @@
|
||||
{"framework": "pytorch", "task": "text-generation", "allow_remote": true}
|
||||
11
generation_config.json
Normal file
11
generation_config.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"bos_token_id": 151643,
|
||||
"do_sample": true,
|
||||
"eos_token_id": [
|
||||
151645,
|
||||
151643
|
||||
],
|
||||
"repetition_penalty": 1.1,
|
||||
"top_p": 0.8,
|
||||
"transformers_version": "4.41.0.dev0"
|
||||
}
|
||||
BIN
merges.txt
(Stored with Git LFS)
Normal file
BIN
merges.txt
(Stored with Git LFS)
Normal file
Binary file not shown.
3
model.safetensors
Normal file
3
model.safetensors
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ff655c413b73d2c107197a7e975300f24bcd648419dea17f25ec5fb22a15c7e0
|
||||
size 928059544
|
||||
3
optimizer.pt
Normal file
3
optimizer.pt
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2dd3a4a175c2ba2bd3e951f33ef04530b45254edf27496327f1f966e3dfb941c
|
||||
size 3324282
|
||||
3
rng_state.pth
Normal file
3
rng_state.pth
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:386fcc8cc1089aade9450d86fb239ea3483f455fd2d78d8378645feecfec9d69
|
||||
size 14244
|
||||
3
scheduler.pt
Normal file
3
scheduler.pt
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:52145e9f4901b4541897486decac06eff0f2707a063183b7c45ddf68fa72c4c2
|
||||
size 1064
|
||||
20
special_tokens_map.json
Normal file
20
special_tokens_map.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"additional_special_tokens": [
|
||||
"<s>",
|
||||
"</s>"
|
||||
],
|
||||
"eos_token": {
|
||||
"content": "</s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
},
|
||||
"pad_token": {
|
||||
"content": "<|endoftext|>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false
|
||||
}
|
||||
}
|
||||
3
tokenizer.json
Normal file
3
tokenizer.json
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a12e3ba5d5e0ad173cf7b408ab8534c6be8cbc6a146714e9c7dc8cf2346603b1
|
||||
size 7028043
|
||||
43
tokenizer_config.json
Normal file
43
tokenizer_config.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"add_prefix_space": false,
|
||||
"added_tokens_decoder": {
|
||||
"128247": {
|
||||
"content": "</s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"128245": {
|
||||
"content": "<s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
},
|
||||
"128247": {
|
||||
"content": "</s>",
|
||||
"lstrip": false,
|
||||
"normalized": false,
|
||||
"rstrip": false,
|
||||
"single_word": false,
|
||||
"special": true
|
||||
}
|
||||
},
|
||||
"additional_special_tokens": [
|
||||
"<s>",
|
||||
"</s>"
|
||||
],
|
||||
"bos_token": null,
|
||||
"chat_template": "{% for message in messages %}{{'<s>' + message['role'] + '\n' + message['content'] + '</s>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|assistant|>\n' }}{% endif %}",
|
||||
"clean_up_tokenization_spaces": false,
|
||||
"eos_token": "</s>",
|
||||
"errors": "replace",
|
||||
"model_max_length": 32768,
|
||||
"pad_token": "<|endoftext|>",
|
||||
"split_special_tokens": false,
|
||||
"tokenizer_class": "Qwen2Tokenizer",
|
||||
"unk_token": null
|
||||
}
|
||||
285
trainer_state.json
Normal file
285
trainer_state.json
Normal file
@@ -0,0 +1,285 @@
|
||||
{
|
||||
"best_metric": null,
|
||||
"best_model_checkpoint": null,
|
||||
"epoch": 1.0,
|
||||
"eval_steps": 500,
|
||||
"global_step": 3643,
|
||||
"is_hyper_param_search": false,
|
||||
"is_local_process_zero": true,
|
||||
"is_world_process_zero": true,
|
||||
"log_history": [
|
||||
{
|
||||
"epoch": 0.02744990392533626,
|
||||
"grad_norm": 1.856189489364624,
|
||||
"learning_rate": 4.865495470765852e-05,
|
||||
"loss": 1.7566,
|
||||
"step": 100
|
||||
},
|
||||
{
|
||||
"epoch": 0.05489980785067252,
|
||||
"grad_norm": 1.998369574546814,
|
||||
"learning_rate": 4.728245951139171e-05,
|
||||
"loss": 1.7366,
|
||||
"step": 200
|
||||
},
|
||||
{
|
||||
"epoch": 0.08234971177600878,
|
||||
"grad_norm": 1.8302088975906372,
|
||||
"learning_rate": 4.59099643151249e-05,
|
||||
"loss": 1.7086,
|
||||
"step": 300
|
||||
},
|
||||
{
|
||||
"epoch": 0.10979961570134504,
|
||||
"grad_norm": 1.9259424209594727,
|
||||
"learning_rate": 4.453746911885809e-05,
|
||||
"loss": 1.688,
|
||||
"step": 400
|
||||
},
|
||||
{
|
||||
"epoch": 0.1372495196266813,
|
||||
"grad_norm": 1.6357027292251587,
|
||||
"learning_rate": 4.316497392259127e-05,
|
||||
"loss": 1.7272,
|
||||
"step": 500
|
||||
},
|
||||
{
|
||||
"epoch": 0.16469942355201755,
|
||||
"grad_norm": 1.7630338668823242,
|
||||
"learning_rate": 4.179247872632446e-05,
|
||||
"loss": 1.7032,
|
||||
"step": 600
|
||||
},
|
||||
{
|
||||
"epoch": 0.19214932747735383,
|
||||
"grad_norm": 2.0980162620544434,
|
||||
"learning_rate": 4.041998353005765e-05,
|
||||
"loss": 1.7523,
|
||||
"step": 700
|
||||
},
|
||||
{
|
||||
"epoch": 0.21959923140269008,
|
||||
"grad_norm": 1.4029771089553833,
|
||||
"learning_rate": 3.904748833379083e-05,
|
||||
"loss": 1.6537,
|
||||
"step": 800
|
||||
},
|
||||
{
|
||||
"epoch": 0.24704913532802636,
|
||||
"grad_norm": 1.5694669485092163,
|
||||
"learning_rate": 3.767499313752402e-05,
|
||||
"loss": 1.7099,
|
||||
"step": 900
|
||||
},
|
||||
{
|
||||
"epoch": 0.2744990392533626,
|
||||
"grad_norm": 1.5211464166641235,
|
||||
"learning_rate": 3.630249794125721e-05,
|
||||
"loss": 1.688,
|
||||
"step": 1000
|
||||
},
|
||||
{
|
||||
"epoch": 0.30194894317869886,
|
||||
"grad_norm": 1.527065396308899,
|
||||
"learning_rate": 3.493000274499039e-05,
|
||||
"loss": 1.6995,
|
||||
"step": 1100
|
||||
},
|
||||
{
|
||||
"epoch": 0.3293988471040351,
|
||||
"grad_norm": 1.5144612789154053,
|
||||
"learning_rate": 3.355750754872358e-05,
|
||||
"loss": 1.6237,
|
||||
"step": 1200
|
||||
},
|
||||
{
|
||||
"epoch": 0.3568487510293714,
|
||||
"grad_norm": 1.7216092348098755,
|
||||
"learning_rate": 3.218501235245677e-05,
|
||||
"loss": 1.6544,
|
||||
"step": 1300
|
||||
},
|
||||
{
|
||||
"epoch": 0.38429865495470766,
|
||||
"grad_norm": 1.5754574537277222,
|
||||
"learning_rate": 3.081251715618996e-05,
|
||||
"loss": 1.6567,
|
||||
"step": 1400
|
||||
},
|
||||
{
|
||||
"epoch": 0.4117485588800439,
|
||||
"grad_norm": 1.5684128999710083,
|
||||
"learning_rate": 2.944002195992314e-05,
|
||||
"loss": 1.6806,
|
||||
"step": 1500
|
||||
},
|
||||
{
|
||||
"epoch": 0.43919846280538016,
|
||||
"grad_norm": 1.3534952402114868,
|
||||
"learning_rate": 2.8067526763656326e-05,
|
||||
"loss": 1.5953,
|
||||
"step": 1600
|
||||
},
|
||||
{
|
||||
"epoch": 0.46664836673071647,
|
||||
"grad_norm": 1.4534939527511597,
|
||||
"learning_rate": 2.669503156738952e-05,
|
||||
"loss": 1.6146,
|
||||
"step": 1700
|
||||
},
|
||||
{
|
||||
"epoch": 0.4940982706560527,
|
||||
"grad_norm": 1.3850529193878174,
|
||||
"learning_rate": 2.53225363711227e-05,
|
||||
"loss": 1.5718,
|
||||
"step": 1800
|
||||
},
|
||||
{
|
||||
"epoch": 0.5215481745813889,
|
||||
"grad_norm": 1.536191701889038,
|
||||
"learning_rate": 2.395004117485589e-05,
|
||||
"loss": 1.6358,
|
||||
"step": 1900
|
||||
},
|
||||
{
|
||||
"epoch": 0.5489980785067252,
|
||||
"grad_norm": 1.4949287176132202,
|
||||
"learning_rate": 2.2577545978589075e-05,
|
||||
"loss": 1.6173,
|
||||
"step": 2000
|
||||
},
|
||||
{
|
||||
"epoch": 0.5764479824320615,
|
||||
"grad_norm": 1.489922046661377,
|
||||
"learning_rate": 2.1205050782322264e-05,
|
||||
"loss": 1.6291,
|
||||
"step": 2100
|
||||
},
|
||||
{
|
||||
"epoch": 0.6038978863573977,
|
||||
"grad_norm": 2.090135097503662,
|
||||
"learning_rate": 1.983255558605545e-05,
|
||||
"loss": 1.6579,
|
||||
"step": 2200
|
||||
},
|
||||
{
|
||||
"epoch": 0.631347790282734,
|
||||
"grad_norm": 1.798261284828186,
|
||||
"learning_rate": 1.8460060389788635e-05,
|
||||
"loss": 1.7008,
|
||||
"step": 2300
|
||||
},
|
||||
{
|
||||
"epoch": 0.6587976942080702,
|
||||
"grad_norm": 1.43966805934906,
|
||||
"learning_rate": 1.7087565193521824e-05,
|
||||
"loss": 1.5593,
|
||||
"step": 2400
|
||||
},
|
||||
{
|
||||
"epoch": 0.6862475981334065,
|
||||
"grad_norm": 1.5113532543182373,
|
||||
"learning_rate": 1.571506999725501e-05,
|
||||
"loss": 1.576,
|
||||
"step": 2500
|
||||
},
|
||||
{
|
||||
"epoch": 0.7136975020587428,
|
||||
"grad_norm": 1.5978457927703857,
|
||||
"learning_rate": 1.4342574800988198e-05,
|
||||
"loss": 1.6075,
|
||||
"step": 2600
|
||||
},
|
||||
{
|
||||
"epoch": 0.741147405984079,
|
||||
"grad_norm": 1.7422983646392822,
|
||||
"learning_rate": 1.2970079604721382e-05,
|
||||
"loss": 1.634,
|
||||
"step": 2700
|
||||
},
|
||||
{
|
||||
"epoch": 0.7685973099094153,
|
||||
"grad_norm": 1.7618128061294556,
|
||||
"learning_rate": 1.1597584408454571e-05,
|
||||
"loss": 1.6333,
|
||||
"step": 2800
|
||||
},
|
||||
{
|
||||
"epoch": 0.7960472138347516,
|
||||
"grad_norm": 1.4939252138137817,
|
||||
"learning_rate": 1.0225089212187758e-05,
|
||||
"loss": 1.5678,
|
||||
"step": 2900
|
||||
},
|
||||
{
|
||||
"epoch": 0.8234971177600878,
|
||||
"grad_norm": 1.3491543531417847,
|
||||
"learning_rate": 8.852594015920946e-06,
|
||||
"loss": 1.5577,
|
||||
"step": 3000
|
||||
},
|
||||
{
|
||||
"epoch": 0.8509470216854241,
|
||||
"grad_norm": 1.800729751586914,
|
||||
"learning_rate": 7.480098819654131e-06,
|
||||
"loss": 1.5562,
|
||||
"step": 3100
|
||||
},
|
||||
{
|
||||
"epoch": 0.8783969256107603,
|
||||
"grad_norm": 1.4192384481430054,
|
||||
"learning_rate": 6.107603623387318e-06,
|
||||
"loss": 1.6218,
|
||||
"step": 3200
|
||||
},
|
||||
{
|
||||
"epoch": 0.9058468295360966,
|
||||
"grad_norm": 1.487561583518982,
|
||||
"learning_rate": 4.735108427120506e-06,
|
||||
"loss": 1.6313,
|
||||
"step": 3300
|
||||
},
|
||||
{
|
||||
"epoch": 0.9332967334614329,
|
||||
"grad_norm": 1.393309235572815,
|
||||
"learning_rate": 3.3626132308536925e-06,
|
||||
"loss": 1.5928,
|
||||
"step": 3400
|
||||
},
|
||||
{
|
||||
"epoch": 0.9607466373867691,
|
||||
"grad_norm": 1.397757649421692,
|
||||
"learning_rate": 1.990118034586879e-06,
|
||||
"loss": 1.568,
|
||||
"step": 3500
|
||||
},
|
||||
{
|
||||
"epoch": 0.9881965413121054,
|
||||
"grad_norm": 1.2685039043426514,
|
||||
"learning_rate": 6.176228383200659e-07,
|
||||
"loss": 1.5983,
|
||||
"step": 3600
|
||||
}
|
||||
],
|
||||
"logging_steps": 100,
|
||||
"max_steps": 3643,
|
||||
"num_input_tokens_seen": 0,
|
||||
"num_train_epochs": 1,
|
||||
"save_steps": 3643,
|
||||
"stateful_callbacks": {
|
||||
"TrainerControl": {
|
||||
"args": {
|
||||
"should_epoch_stop": false,
|
||||
"should_evaluate": false,
|
||||
"should_log": false,
|
||||
"should_save": true,
|
||||
"should_training_stop": true
|
||||
},
|
||||
"attributes": {}
|
||||
}
|
||||
},
|
||||
"total_flos": 1.1045534257958093e+17,
|
||||
"train_batch_size": 4,
|
||||
"trial_name": null,
|
||||
"trial_params": null
|
||||
}
|
||||
3
training_args.bin
Normal file
3
training_args.bin
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a4a252b43f42ad4d12be07cca1972ae8f64ffeeb2711dd370328e2c07e87a23c
|
||||
size 5048
|
||||
127
txtai-rag.py
Normal file
127
txtai-rag.py
Normal file
@@ -0,0 +1,127 @@
|
||||
|
||||
import os
|
||||
from transformers import AutoTokenizer, AutoModelForCausalLM
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
from torchsummary import summary
|
||||
from accelerate import dispatch_model, infer_auto_device_map
|
||||
from txtai import Embeddings
|
||||
from txtai.pipeline import LLM
|
||||
#pip3 install git+https://github.com/neuml/txtai#egg=txtai[pipeline-llm]
|
||||
|
||||
# Wikipedia Embeddings Database
|
||||
embeddings = Embeddings()
|
||||
embeddings.load(provider="huggingface-hub", container="neuml/txtai-wikipedia")
|
||||
|
||||
#os.environ['OMP_NUM_THREADS'] = '6'
|
||||
|
||||
# Load model and tokenizer
|
||||
model_path = "Josephgflowers/Qllama-.5B-RAG-1"#
|
||||
# Define the device (CPU or GPU)
|
||||
device = torch.device("cuda")
|
||||
#device = torch.device("cpu")
|
||||
model = AutoModelForCausalLM.from_pretrained(model_path,ignore_mismatched_sizes=True,torch_dtype=torch.float16).to(device)
|
||||
|
||||
print(model)
|
||||
total_params = sum(p.numel() for p in model.parameters())
|
||||
print("Total number of parameters: ", total_params)
|
||||
|
||||
sequence_length = 4096 # or whatever your specific sequence length is
|
||||
embedding_size = 2048 # as per your model's definition
|
||||
|
||||
tokenizer = AutoTokenizer.from_pretrained(model_path)
|
||||
stop_token = 128247
|
||||
#'</s>' 2
|
||||
|
||||
def chat_with_model(prompt_text, stop_token, model, tokenizer):
|
||||
# Encode the prompt text
|
||||
encoded_prompt = tokenizer.encode(prompt_text, add_special_tokens=False, return_tensors="pt").to(device)
|
||||
|
||||
# Generate response
|
||||
output_sequences = model.generate(
|
||||
input_ids=encoded_prompt,
|
||||
#max_length=len(encoded_prompt[0]) + 256,
|
||||
max_new_tokens=1024,
|
||||
temperature=0.1,
|
||||
repetition_penalty=1.2,
|
||||
top_k=20,
|
||||
top_p=0.9,
|
||||
do_sample=True,
|
||||
num_return_sequences=1,
|
||||
eos_token_id=stop_token
|
||||
)
|
||||
|
||||
# Decode the generated sequence
|
||||
generated_sequence = output_sequences[0].tolist()
|
||||
text = tokenizer.decode(generated_sequence, clean_up_tokenization_spaces=True)
|
||||
response_text = text[len(prompt_text):].strip() # Extract only the response text
|
||||
#response_text = response_text.replace("<s>","").replace("</s>","")
|
||||
return response_text
|
||||
|
||||
# Initialize conversation history
|
||||
|
||||
conversation_history = ''
|
||||
# Get user's preference for input mode and character name
|
||||
input_mode = 'text' ##input("Enter 'text' for text input or 'speech' for speech input: ").lower()
|
||||
character_name = '<|user|>' # input("Enter your character name (USER, JONAH, JOSEPH, KIMBERLY, etc.): ")
|
||||
|
||||
# Chat loop
|
||||
num_chat = 1
|
||||
while num_chat <= 20:
|
||||
if input_mode == 'text':
|
||||
question = input(f"{character_name}: ")
|
||||
user_input = question # Get text input from user
|
||||
context = "\n".join([x["text"] for x in embeddings.search(question)])
|
||||
elif input_mode == 'speech':
|
||||
print("Press Enter and then speak your input.")
|
||||
input() # Wait for user to hit Enter
|
||||
with sr.Microphone() as source:
|
||||
print("Listening...")
|
||||
audio_data = recognizer.listen(source, timeout=5, phrase_time_limit=10)
|
||||
try:
|
||||
user_input = recognizer.recognize_google(audio_data)
|
||||
print(f"USER: {user_input}")
|
||||
except sr.RequestError:
|
||||
print("API request failed. Please try again.")
|
||||
continue
|
||||
except sr.UnknownValueError:
|
||||
print("Could not understand the audio. Please try again.")
|
||||
continue
|
||||
else:
|
||||
print("Invalid input mode. Please restart and choose a valid mode.")
|
||||
break
|
||||
#print('History: '+ conversation_history)
|
||||
prompt_text = f"""
|
||||
<s>
|
||||
<|system|>
|
||||
You will be given text as context to answer a users question.
|
||||
</s>
|
||||
<|data|>
|
||||
{context}
|
||||
</s>
|
||||
<|user|>
|
||||
{question}
|
||||
</s>
|
||||
<|assistant|>
|
||||
"""
|
||||
response_text = chat_with_model(prompt_text, stop_token, model, tokenizer)
|
||||
response_text = response_text.replace('<s>','')
|
||||
|
||||
|
||||
# Extract assistant's response from the response_text
|
||||
response_text = response_text.split('</s>\n', 1)[0] # Extract the first message from the assistant
|
||||
|
||||
print(f"Assistant: {response_text}","\n")
|
||||
|
||||
# Update conversation history
|
||||
conversation_history += f"<s>\n<|system|>\nYou will are a helpful assistant.</s>\n{character_name}\n{user_input}\n</s>\n<|assistant|>\n {response_text}</s>\n\n"
|
||||
if len(conversation_history) > 3092:
|
||||
conversation_history = conversation_history[2048:]
|
||||
else:
|
||||
conversation_history = conversation_history
|
||||
|
||||
num_chat += 1
|
||||
|
||||
|
||||
#"You will receive a user question and context that should be used to answer the question."
|
||||
|
||||
BIN
vocab.json
(Stored with Git LFS)
Normal file
BIN
vocab.json
(Stored with Git LFS)
Normal file
Binary file not shown.
Reference in New Issue
Block a user