書生浦語2-對話-20B大模型部署實踐

2024年2月6日 22点热度 0人点赞

簡介

書生·浦語2.0是一個大語言模型,是商湯科技與上海 AI 實驗室聯合香港中文大學和復旦大學發佈的新一代大語言模型。

具體特性

  • 有效支持20萬字超長上下文:模型在 20 萬字長輸入中幾乎完美地實現長文“大海撈針”,而且在 LongBench 和 L-Eval 等長文任務中的表現也達到開源模型中的領先水平。 可以通過 LMDeploy 嘗試20萬字超長上下文推理。
  • 綜合性能全面提升:各能力維度相比上一代模型全面進步,在推理、數學、代碼、對話體驗、指令遵循和創意寫作等方面的能力提升尤為顯著,綜合性能達到同量級開源模型的領先水平,在重點能力評測上 InternLM2-Chat-20B 能比肩甚至超越 ChatGPT (GPT-3.5)。
  • 代碼解釋器與數據分析:在配合代碼解釋器(code-interpreter)的條件下,InternLM2-Chat-20B 在 GSM8K 和 MATH 上可以達到和 GPT-4 相仿的水平。基於在數理和工具方面強大的基礎能力,InternLM2-Chat 提供了實用的數據分析能力。
  • 工具調用能力整體升級:基於更強和更具有泛化性的指令理解、工具篩選與結果反思等能力,新版模型可以更可靠地支持復雜智能體的搭建,支持對工具進行有效的多輪調用,完成較復雜的任務。

1月23日官方更新發佈了InternLM2-Math-7B 和 InternLM2-Math-20B 以及相關的對話模型。在此次發佈中,InternLM2 包含兩種模型規格:7B 和 20B。7B 為輕量級的研究和應用提供了一個輕便但性能不俗的模型,20B 模型的綜合性能更為強勁,可以有效支持更加復雜的實用場景。每個規格不同模型關系如下圖所示:

項目實操

依賴環境:

·Python >= 3.8

·PyTorch >= 1.12.0 (推薦 2.0.0 和更高版本)

·Transformers >= 4.34

通過Transformers 加載:

通過以下的代碼從 Transformers 加載 InternLM2-7B-Chat 模型 (可修改模型名稱替換不同的模型)

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("internlm/internlm2-chat-7b", trust_remote_code=True)# 設置`torch_dtype=torch.float16`來將模型精度指定為torch.float16,否則可能會因為您的硬件原因造成顯存不足的問題。
model = AutoModelForCausalLM.from_pretrained("internlm/internlm2-chat-7b", device_map="auto",trust_remote_code=True, torch_dtype=torch.float16)# (可選) 如果在低資源設備上,可以通過bitsandbytes加載4-bit或8-bit量化的模型,進一步節省GPU顯存.
# 4-bit 量化的 InternLM 7B 大約會消耗 8GB 顯存.
# pip install -U bitsandbytes
# 8-bit: model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", trust_remote_code=True, load_in_8bit=True)
# 4-bit: model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto", trust_remote_code=True, load_in_4bit=True)
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
# 模型輸出:你好!有什麼我可以幫助你的嗎?
response, history = model.chat(tokenizer, "請提供三個管理時間的建議。", history=history)
print(response)

通過前端網頁對話:

pip install streamlit
pip install transformers>=4.34
streamlit run ./chat/web_demo.py

界面展示:

​微調:

官方推薦使用XTuner微調.XTuner 是一個高效、靈活、全能的輕量化大模型微調工具庫。支持大語言模型 LLM、多模態圖文模型 VLM 的預訓練及輕量級微調。XTuner 支持在 8GB 顯存下微調 7B 模型,同時也支持多節點跨設備微調更大尺度模型(70B )

詳情可參考官方文檔:

https://github.com/InternLM/InternLM/blob/main/finetune/README_zh-CN.md

性能評分:

InternLM2-Chat在AlpacaEval 2.0 上的性能,結果表明InternLM2-Chat在AlpacaEval上已經超過了 Claude 2, GPT-4(0613) 和 Gemini Pro.