模型概述
模型特點
模型能力
使用案例
🚀 Mistral-7B-Customer-Support-v1
本模型專為客戶支持領域打造,是在基礎模型上微調而來,能快速準確地回答客戶關於銀行服務的問題。通過使用混合合成數據訓練,它為特定領域的定製化提供了便利,有助於創建更貼合實際需求的聊天機器人、虛擬助手和副駕駛。
🚀 快速開始
本模型是Bitext公司針對客戶支持領域,在大語言模型微調的兩步走策略中的第一步。它能夠為客戶提供關於銀行服務需求的快速準確解答,適用於創建聊天機器人、虛擬助手和副駕駛等應用。
✨ 主要特性
- 領域定製:專門針對客戶支持領域進行微調,能更好地處理該領域的問題。
- 定製便捷:通用的垂直化模型,便於使用少量自有數據進行進一步定製。
- 數據優質:使用混合合成數據和自動化數據標註工具進行訓練,數據質量有保障。
💻 使用示例
基礎用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("bitext-llm/Mistral-7B-Customer-Support-v1")
tokenizer = AutoTokenizer.from_pretrained("bitext-llm/Mistral-7B-Customer-Support-v1")
inputs = tokenizer("<s>[INST] I want to change to the standard account [/INST] ", return_tensors="pt")
outputs = model.generate(inputs['input_ids'], max_length=50)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
📚 詳細文檔
模型描述
本模型名為 ["Mistral-7B-Customer-Support-v1"],是 mistralai/Mistral-7B-Instruct-v0.2 的微調版本,專為客戶支持領域量身定製。它經過優化,能夠回答問題並協助用戶處理各種支持事務。該模型使用了通過我們的NLP/NLG技術和自動化數據標註(DAL)工具生成的混合合成數據進行訓練。
此模型的目標是展示通用的垂直化模型能讓最終用例的定製變得更加容易。例如,如果你是 “ACME公司”,可以使用這個微調後的模型,並使用少量你自己的數據進行額外的微調,從而創建你自己的定製模型。這種方法的概述可在 從通用大語言模型到垂直化企業模型 中找到。
預期用途
- 推薦應用:該模型旨在作為Bitext公司在客戶支持領域進行大語言模型微調的兩步走策略的第一步,用於創建聊天機器人、虛擬助手和副駕駛,為客戶提供關於銀行服務需求的快速準確解答。
- 非適用範圍:該模型不適用於一般對話目的,也不應用於提供醫療、法律或安全關鍵建議。
數據集描述
概述
用於微調的數據集可用於訓練大語言模型進行微調與領域適配,其中包括:
- 用例:意圖檢測
- 領域:客戶服務
- 27個意圖,分為10個類別
- 26,872個問答對,每個意圖約1000個
- 30種實體/槽類型
- 12種不同類型的語言生成標籤
類別和意圖
數據集涵蓋以下類別和意圖:
- 賬戶相關:創建賬戶、刪除賬戶、編輯賬戶、切換賬戶
- 取消費用相關:查詢取消費用
- 配送相關:配送選項
- 反饋相關:投訴、評價
- 發票相關:查詢發票、獲取發票
- 新聞通訊相關:訂閱新聞通訊
- 訂單相關:取消訂單、更改訂單、下單
- 支付相關:查詢支付方式、支付問題
- 退款相關:查詢退款政策、跟蹤退款
- ** shipping地址相關**:更改 shipping地址、設置 shipping地址
實體
數據集中包含各種實體,如:訂單編號、發票編號、在線訂單交互、在線支付交互、在線導航步驟、在線客戶支持渠道、個人資料、個人資料類型、設置、在線公司門戶信息、日期、日期範圍、 shipping截止時間、配送城市、配送國家、稱呼、客戶名字、客戶姓氏、客戶支持電話號碼、客戶支持電子郵件、在線聊天支持、網站URL、升級賬戶、賬戶類型、賬戶類別、賬戶變更、項目、退款金額、金額、商店位置。
語言生成標籤
數據集包含各種語言現象的標籤:
- 詞彙變體:形態學(M)、語義(L)
- 句法結構變體:基本(B)、疑問(I)、並列(C)、否定(N)
- 語言風格變體:禮貌(P)、口語化(Q)、冒犯性(W)
- 文體變體:關鍵詞(K)、縮寫(E)、錯誤和拼寫錯誤(Z)
- 其他標籤:間接引語(D)、區域變體(G)、尊重結構(R)、代碼切換(Y)
限制和偏差
- 該模型在特定領域的數據集上進行了微調,在客戶支持領域之外的表現可能不佳。
- 用戶應注意訓練數據中可能存在的偏差,因為模型的回答可能會無意中反映這些偏差。儘管數據集旨在涵蓋一般的客戶服務查詢,但特定用例可能仍存在偏差。
倫理考量
使用此模型時應負責任,考慮到自動化客戶服務的倫理影響。重要的是確保模型的建議能夠補充人類專業知識,並遵守相關的客戶服務指南。
致謝
該模型由Bitext公司開發,並在Bitext提供的基礎設施上進行訓練。
🔧 技術細節
模型架構
該模型採用 MistralForCausalLM
架構和 LlamaTokenizer
。它保留了基礎Mistral模型的配置,但經過微調,能夠更好地理解和生成與客戶服務相關的響應。
訓練數據
該模型使用 bitext/Bitext-customer-support-llm-chatbot-training-dataset 進行微調,該數據集專為客戶服務領域的問答交互而設計。此數據集包含各種客戶服務主題的指令和響應,確保模型能夠處理該領域的各種查詢。數據集涵蓋了分配到10個類別的27個意圖,如 cancel_order
、place_order
、change_order
和 check_invoice
等。每個意圖約有1000個示例,展示了旨在理解和生成準確客戶服務交互響應的訓練過程。
訓練過程
超參數
- 優化器:AdamW,beta值為(0.9, 0.999),epsilon為1e-08
- 學習率:0.0002,採用餘弦學習率調度器
- 訓練輪數:1
- 批量大小:8
- 梯度累積步數:4
- 最大序列長度:1024個標記
環境
- Transformers版本:4.40.0.dev0
- 框架:PyTorch 2.2.1+cu121
- 分詞器:Tokenizers 0.15.0
訓練結果
訓練損失 | 訓練輪數 | 步數 | 驗證損失 |
---|---|---|---|
1.6865 | 0.01 | 1 | 2.0557 |
0.6351 | 0.25 | 32 | 0.8355 |
0.5724 | 0.5 | 64 | 0.7859 |
0.5249 | 0.75 | 96 | 0.7711 |
0.516 | 1.0 | 128 | 0.7667 |
📄 許可證
此模型 “Mistral-7B-Customer-Support-v1” 由Bitext Innovations International, Inc. 根據Apache License 2.0許可。該開源許可證允許免費使用、修改和分發該模型,但要求對Bitext給予適當的認可。
Apache 2.0許可證要點
- 許可範圍:用戶可以自由使用、修改和分發此軟件。
- 歸屬要求:使用此模型時,必須按照原始版權聲明和許可證的要求,向Bitext Innovations International, Inc. 提供適當的認可。
- 專利授權:許可證包含模型貢獻者授予的專利權利。
- 無擔保聲明:模型 “按原樣” 提供,不提供任何形式的保證。
你可以在 Apache License 2.0 查看完整的許可證文本。
這種許可方式確保了模型可以被廣泛自由地使用,同時尊重了Bitext的知識產權貢獻。如需瞭解更多詳細信息或關於使用此許可證的具體法律問題,請參考上述鏈接的官方許可證文檔。
查看axolotl配置
axolotl版本:0.4.0
base_model: mistralai/Mistral-7B-Instruct-v0.2
model_type: MistralForCausalLM
tokenizer_type: LlamaTokenizer
is_mistral_derived_model: true
hub_model_id: malmarjeh/Mistral-7B-instruct-v0.2
load_in_8bit: false
load_in_4bit: true
strict: false
datasets:
- path: bitext/Bitext-customer-support-llm-chatbot-training-dataset
type:
system_prompt: 'You are an expert in customer support.'
field_instruction: instruction
field_output: response
format: '[INST] {instruction} [/INST]'
no_input_format: '[INST] {instruction} [/INST]'
#datasets:
# - path: json
# type: alpaca_w_system.load_open_orca
#data_files: file.zip
dataset_prepared_path:
val_set_size: 0.05
output_dir: ./qlora-out
adapter: qlora
lora_model_dir:
sequence_len: 1024
sample_packing: true
pad_to_sequence_len: true
eval_sample_packing: False
lora_r: 32
lora_alpha: 16
lora_dropout: 0.05
lora_target_linear: true
lora_fan_in_fan_out:
lora_target_modules:
- gate_proj
- down_proj
- up_proj
- q_proj
- v_proj
- k_proj
- o_proj
wandb_project: axolotl
wandb_entity:
wandb_watch:
wandb_name:
wandb_log_model:
gradient_accumulation_steps: 4
micro_batch_size: 8
num_epochs: 1
optimizer: adamw_bnb_8bit
lr_scheduler: cosine
learning_rate: 0.0002
train_on_inputs: false
group_by_length: false
bf16: auto
fp16:
tf32: false
gradient_checkpointing: true
early_stopping_patience:
resume_from_checkpoint:
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true
loss_watchdog_threshold: 5.0
loss_watchdog_patience: 3
warmup_steps: 10
evals_per_epoch: 4
eval_table_size:
eval_max_new_tokens: 128
saves_per_epoch: 1
debug:
deepspeed:
weight_decay: 0.0
fsdp:
fsdp_config:
special_tokens:
bos_token: '<s>'
eos_token: '</s>'
unk_token: '<unk>'



