[書生·浦語大模型實戰營]——第二節:輕松玩轉書生·浦語大模型趣味 Demo

1. 部署InternLM2-Chat-1.8B 模型進行智能對話

1.1配置環境

創建開發機
Intern Studio 官網網址:https://studio.intern-ai.org.cn/
在這里插入圖片描述
進入官網后,選擇創建開發機,填寫 開發機名稱 后,點擊 選擇鏡像 使用 Cuda11.7-conda 鏡像,然后在資源配置中,使用 10% A100 * 1 的選項,立即創建開發機器。
在這里插入圖片描述
然后機器會排隊創建(等待的有點久嗷,不知道為啥)。
配置環境
進入開發機在terminal后輸入環境配置命令如下:

studio-conda -o internlm-base -t demo
# 與 studio-conda 等效的配置方案
# conda create -n demo python==3.10 -y
# conda activate demo
# conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia

激活環境

conda activate demo

安裝其他依賴包:

pip install huggingface-hub==0.17.3
pip install transformers==4.34 
pip install psutil==5.9.8
pip install accelerate==0.24.1
pip install streamlit==1.32.2 
pip install matplotlib==3.8.3 
pip install modelscope==1.9.5
pip install sentencepiece==0.1.99

1.2 下載 InternLM2-Chat-1.8B 模型

創建文件夾

mkdir -p /root/demo
touch /root/demo/cli_demo.py #touch主要用于創建空文件或設置文件的時間戳
touch /root/demo/download_mini.py
cd /root/demo

在download_mini.py中復制以下代碼:

import os
from modelscope.hub.snapshot_download import snapshot_download# 創建保存模型目錄
os.system("mkdir /root/models")# save_dir是模型保存到本地的目錄
save_dir="/root/models"snapshot_download("Shanghai_AI_Laboratory/internlm2-chat-1_8b", cache_dir=save_dir, revision='v1.1.0')

然后運行該文件以下載模型參數文件。

1.3 運行cli_demo

在cli_demo.py中復制以下內容,然后運行

import torch
from transformers import AutoTokenizer, AutoModelForCausalLMmodel_name_or_path = "/root/models/Shanghai_AI_Laboratory/internlm2-chat-1_8b"tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True, device_map='cuda:0')
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='cuda:0')
model = model.eval()system_prompt = """You are an AI assistant whose name is InternLM (書生·浦語).
- InternLM (書生·浦語) is a conversational language model that is developed by Shanghai AI Laboratory (上海人工智能實驗室). It is designed to be helpful, honest, and harmless.
- InternLM (書生·浦語) can understand and communicate fluently in the language chosen by the user such as English and 中文.
"""messages = [(system_prompt, '')]print("=============Welcome to InternLM chatbot, type 'exit' to exit.=============")while True:input_text = input("\nUser  >>> ")input_text = input_text.replace(' ', '')if input_text == "exit":breaklength = 0for response, _ in model.stream_chat(tokenizer, input_text, messages):if response is not None:print(response[length:], flush=True, end="")length = len(response)

運行效果如下:
在這里插入圖片描述
有點怪啊,最后總是有一句總結句>_<

2.部署實戰營優秀作品 八戒-Chat-1.8B模型

2.1簡介

八戒-Chat-1.8B 是利用《西游記》劇本中所有關于豬八戒的臺詞和語句以及 LLM API 生成的相關數據結果,進行全量微調得到的豬八戒聊天模型。作為 Roleplay-with-XiYou 子項目之一,八戒-Chat-1.8B 能夠以較低的訓練成本達到不錯的角色模仿能力,同時低部署條件能夠為后續工作降低算力門檻。
項目鏈接:https://www.modelscope.cn/models/JimmyMa99/BaJie-Chat-mini/summary

2.2環境配置

基本環境和上一節一致,只需要激活

conda activate demo

從git倉庫拉取

cd /root/
git clone https://gitee.com/InternLM/Tutorial -b camp2
# git clone https://github.com/InternLM/Tutorial -b camp2
cd /root/Tutorial

2.3下載運行Demo

下載

python /root/Tutorial/helloworld/bajie_download.py

運行

streamlit run /root/Tutorial/helloworld/bajie_chat.py --server.address 127.0.0.1 --server.port 6006

端口映射
在powershell中運行下述命令

# 從本地使用 ssh 連接 studio 端口
# 將下方端口號 38374 替換成自己的端口號
ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 38374

這個38374端口號可以在SSH連接中查看,然后輸入下方的密碼(我似乎沒有輸入密碼,但是仍然可以用?)
打開 http://127.0.0.1:6006 后,結果如下:
在這里插入圖片描述

3.實戰:使用 Lagent 運行 InternLM2-Chat-7B 模型

3.1 初步介紹 Lagent 相關知識

Lagent 是一個輕量級、開源的基于大語言模型的智能體(agent)框架,支持用戶快速地將一個大語言模型轉變為多種類型的智能體,并提供了一些典型工具為大語言模型賦能。它的整個框架圖如下:
在這里插入圖片描述
Lagent的特點:

  • 流式輸出:提供 stream_chat 接口作流式輸出,本地就能演示酷炫的流式 Demo。
  • 接口統一,設計全面升級,提升拓展性,包括:
    Model : 不論是 OpenAI API, Transformers 還是推理加速框架 LMDeploy 一網打盡,模型切換可以游刃有余;
    Action: 簡單的繼承和裝飾,即可打造自己個人的工具集,不論 InternLM 還是 GPT 均可適配;
    Agent:與 Model 的輸入接口保持一致,模型到智能體的蛻變只需一步,便捷各種 agent 的探索實現;
  • 文檔全面升級,API 文檔全覆蓋。

3.2配置環境

激活環境

conda activate demo

切換目錄

cd /root/demo

拉取代碼庫

git clone https://gitee.com/internlm/lagent.git
# git clone https://github.com/internlm/lagent.git
cd /root/demo/lagent
git checkout 581d9fb8987a5d9b72bb9ebd37a95efd47d479ac
pip install -e . # 源碼安裝

3.3 使用 Lagent 運行 InternLM2-Chat-7B 模型為內核的智能體

切換路徑

cd /root/demo/lagent

構造軟鏈接

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/models/internlm2-chat-7b

打開 lagent 路徑下 examples/internlm2_agent_web_demo_hf.py 文件,并修改對應位置 (71行左右) 代碼,修改運行demo中的模型路徑為本地路徑

# 其他代碼...
value='/root/models/internlm2-chat-7b'
# 其他代碼...

運行

streamlit run /root/demo/lagent/examples/internlm2_agent_web_demo_hf.py --server.address 127.0.0.1 --server.port 6006

端口映射,同上一節
結果展示如下,(未勾選數據分析)
在這里插入圖片描述
勾選數據分析
在這里插入圖片描述
似乎沒什么區別?

4.實戰:實踐部署 浦語·靈筆2 模型

4.1 初步介紹 XComposer2 相關知識

浦語·靈筆2 是基于 書生·浦語2 大語言模型研發的突破性的圖文多模態大模型,具有非凡的圖文寫作和圖像理解能力,在多種應用場景表現出色,總結起來其具有:

  • 自由指令輸入的圖文寫作能力: 浦語·靈筆2 可以理解自由形式的圖文指令輸入,包括大綱、文章細節要求、參考圖片等,為用戶打造圖文并貌的專屬文章。生成的文章文采斐然,圖文相得益彰,提供沉浸式的閱讀體驗。
  • 準確的圖文問題解答能力:浦語·靈筆2 具有海量圖文知識,可以準確的回復各種圖文問答難題,在識別、感知、細節描述、視覺推理等能力上表現驚人。
  • 杰出的綜合能力: 浦語·靈筆2-7B 基于 書生·浦語2-7B 模型,在13項多模態評測中大幅領先同量級多模態模型,在其中6項評測中超過 GPT-4V 和 Gemini Pro。

在這里插入圖片描述
可以看到該模型在開源模型中效果非常好,在閉源模型和開源SOTA中也表現強勁。

4.2 環境配置

啟動環境

conda activate demo

補充安裝依賴包

pip install timm==0.4.12 sentencepiece==0.1.99 markdown2==2.4.10 xlsxwriter==3.1.2 gradio==4.13.0 modelscope==1.9.5

拉取InternLM-XComposer 代碼

cd /root/demo
git clone https://gitee.com/internlm/InternLM-XComposer.git
# git clone https://github.com/internlm/InternLM-XComposer.git
cd /root/demo/InternLM-XComposer
git checkout f31220eddca2cf6246ee2ddf8e375a40457ff626

創建軟鏈接

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-7b /root/models/internlm-xcomposer2-7b
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-vl-7b /root/models/internlm-xcomposer2-vl-7b

4.3圖文寫作實戰

啟動InternLM-XComposer:

cd /root/demo/InternLM-XComposer
python /root/demo/InternLM-XComposer/examples/gradio_demo_composition.py  \
--code_path /root/models/internlm-xcomposer2-7b \
--private \
--num_gpus 1 \
--port 6006

記得開端口映射
實現效果如下
在這里插入圖片描述

4.4圖片理解實戰

運行InternLM-XComposer2-vl

conda activate democd /root/demo/InternLM-XComposer
python /root/demo/InternLM-XComposer/examples/gradio_demo_chat.py  \
--code_path /root/models/internlm-xcomposer2-vl-7b \
--private \
--num_gpus 1 \
--port 6006

效果展示:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15137.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15137.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15137.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS中的Flex布局

目錄 一.什么是Flex布局 二.Flex布局使用 2.1Flex使用語法 2.2基本概念 三.容器的屬性 3.1所有屬性概述 3.2flex-direction 3.3flex-wrap 3.4flex-flow 3.5justify-content 3.6align-items 3.7align-content 四.項目(子元素)的屬性 4.1所有屬性概述 4.2order 4…

遺傳算法(Genetic Algorithm, GA)哪些步驟該丟給GPU

遺傳算法&#xff08;Genetic Algorithm, GA&#xff09;是一種啟發式搜索算法&#xff0c;受到生物進化的啟發。在遺傳算法中&#xff0c;種群中的每個個體代表問題的一個候選解&#xff0c;通過迭代選擇、交叉和變異操作&#xff0c;來模擬自然選擇和遺傳過程&#xff0c;從而…

九、OpenAI之圖片生成(Image generation)

學習用DALL.E的API怎樣生成和操作圖片 1 介紹 圖片API提供3個方法來和圖片進行交互&#xff1a; 從0開始基于文字提示創建圖片(DALL.E 3 and DALL.E2)基于一個新的提示詞&#xff0c;通過讓模型替換已有圖像的某些區域來創建圖像的編輯版本;&#xff08;DALL.E2&#xff09;…

【FPGA】Verilog:解碼器 | 編碼器 | 多路復用器(Mux, Multiplexer)

0x00 什么是解碼器 解碼器是根據輸入信號在多個輸出位中選擇一個輸出位的裝置。例如,當解碼器接收2位二進制值作為輸入時,它可以接收00、01、10、11四種輸入值,并根據每個輸入值在4個輸出位中選擇一個,輸出為1000、0100、0010、0001中的一種。這樣的解碼器被稱為高電平有效…

ICML 2024 Mamba 論文總結

2024ICML&#xff08;International Conference on Machine Learning&#xff0c;國際機器學習會議&#xff09;在2024年7月21日-27日在奧地利維也納舉行 &#x1f31f;【緊跟前沿】“時空探索之旅”與你一起探索時空奧秘&#xff01;&#x1f680; 歡迎大家關注時空探索之旅 …

【數據結構與算法 | 基礎篇】數組模擬棧

1. 前言 前文我們剛提及了如何用單向鏈表來模擬棧. 我們還可以用數組來模擬棧.使用棧頂指針top來進行棧頂的操作. 2. 數組模擬棧 (1). 棧接口 public interface stack<E> {//壓棧boolean push(E value);//彈棧, 棧非空返回棧頂元素E pop();//返回棧頂元素, 但不彈棧E…

IntelliJ IDEA常用快捷鍵 + 動圖演示!

本文參考了 IntelliJ IDEA 的官網&#xff0c;列舉了IntelliJ IDEA &#xff08;Windows 版&#xff09; 的所有快捷鍵。并在此基礎上&#xff0c;為 90% 以上的快捷鍵提供了動圖演示&#xff0c;能夠直觀的看到操作效果。 該快捷鍵共分 11 種&#xff0c;可以方便的按各類查找…

【通義千問—Qwen-Agent系列2】案例分析(圖像理解圖文生成Agent||多模態助手|| 基于ReAct范式的數據分析Agent)

目錄 前言一、快速開始1-1、介紹1-2、安裝1-3、開發你自己的Agent 二、基于Qwen-Agent的案例分析2-0、環境安裝2-1、圖像理解&文本生成Agent2-2、 基于ReAct范式的數據分析Agent2-3、 多模態助手 附錄1、agent源碼2、router源碼 總結 前言 Qwen-Agent是一個開發框架。開發…

Excel提取某一列的唯一值

點擊【篩選】&#xff08;【高級篩選】&#xff09;&#xff0c;參數里&#xff1a; 列表區域&#xff1a;為需要選擇唯一值的那一列復制到&#xff1a;生成唯一值的目標區域 據說新版本的excel有了unique()函數&#xff0c;可以很快捷的選擇某一列的唯一值&#xff0c;但是博…

儀器校準中移液器的使用規范,應當注意哪些細節?

校準行業中&#xff0c;移液器的使用是非常多的&#xff0c;尤其是理化室&#xff0c;經常需要借助到移液器來校準。作為常規的溶液定量轉移器具&#xff0c;其在校準過程中的使用也需要遵守規范&#xff0c;既是保證校準結果準確低誤差&#xff0c;也是為了規范實驗室校準人員…

類與對象:接口

一.概念 接口&#xff08;英文&#xff1a;Interface&#xff09;&#xff0c;在JAVA編程語言中是一個抽象類型&#xff0c;是抽象方法的集合&#xff0c;接口通常以interface來聲明。 二.語法規則 與定義類相似&#xff0c;使用interface關鍵詞。 Idea可以在開始時直接創建…

高德地圖PlaceSearch標記點清除

在開發過程中發現引入 AMap.PlaceSearch 插件之后 增加map屬性之后&#xff0c;地圖上會出現自帶的marker點&#xff0c; 這時通過 searchNearBy()成員方法獲取到的地點值含有省市區等詳細信息 但是將map屬性注釋掉之后 發現不返回省市區&#xff0c;但是又不想關聯上展示mar…

動靜態庫

說明&#xff1a;使用動靜態庫&#xff0c;一般直接安裝即可&#xff0c;其他使用方法了解即可 靜態庫 靜態庫&#xff08;Static Library&#xff09;是一種將代碼和數據打包成一個單獨的文件的庫文件&#xff0c;主要用于編譯時的鏈接&#xff0c;而不是運行時。靜態庫通常…

Android Studio 所有歷史版本下載

一、官網鏈接 https://developer.android.google.cn/studio/archive 操作 二、AndroidDevTools地址 https://www.androiddevtools.cn/ 參考 https://blog.csdn.net/qq_27623455/article/details/103008937

Mybatis源碼剖析---第二講

Mybatis源碼剖析—第二講 那我們在講完了mappedstatement這個類&#xff0c;它的一個核心作用之后呢&#xff1f;那下面我有一個問題想問問各位。作為mappedstatement來講&#xff0c;它封裝的是一個select標簽或者insert標簽。但是呢&#xff0c;我們需要大家注意的是什么&am…

社交媒體數據恢復:soma messenger

步驟1&#xff1a;檢查備份文件 首先&#xff0c;我們需要確認您是否已開啟Soma Messenger的自動備份功能。若已開啟&#xff0c;您可以在備份文件中找到丟失的數據。 步驟2&#xff1a;清除緩存并重啟應用 有時候&#xff0c;清除Soma Messenger的緩存文件可以幫助恢復丟失的…

為什么股票市場里有認賊為父的現象?

文章大綱&#xff1a;&#xff08;本文2648字&#xff0c;完整版本應該3500以上&#xff0c;耗時一個鐘&#xff09; 1、前言&#xff1a;邏輯與博弈 2、直覺引入博弈焦點 3、上周4-5的市場博弈視角 4、下周一視角能看到的東西 5、視角背后看到的情緒周期市場共識下的博弈…

請說說 Java中 static 修飾符是干啥的?

好的,面試官. static英文含義是靜態的,也就是在修飾成員(對象,方法,代碼塊,變量)時,表明他們都是屬于靜態成員 其次被修飾的成員有幾大特性: 1.一個被static修飾的靜態成員不再屬于實例出來的對象,而是只屬于這個類自己. 2.訪問static修飾的成員要通過類名訪問,在類加載時初…

特殊變量筆記

執行demo4.sh文件,輸入輸出參數itcast itheima的2個輸入參數, 觀察效果 特殊變量&#xff1a;$# 語法 $#含義 獲取所有輸入參數的個數 案例需求 在demo4.sh中輸出輸入參數個數 演示 編輯demo4.sh, 輸出輸入參數個數 執行demo4.sh傳入參數itcast, itheima, 播仔 看效果…