挑战第六天:结构化提示词

基础任务:结构化提示词

可能是缺少基础加上课程没有详细介绍每步操作,导致看懂了什么是提示词,有什么作用。但是上手要交作业,发现根本找不到入口!于是开启了艰难的闯关之路:

还好有大神的帖子帮忙,帖中的操作一步步完成了操作:

Camp4-L1:浦语提示词工程实践-CSDN博客

浦语提示词工程实践-CSDN博客

(本篇重点推荐)书生.浦江大模型实战训练营——(六)浦语提示词工程实践(Prompt Engineering)_浦语 模型的prompt-CSDN博客 

0.1创建虚拟环境: 

首先点击左上角图标,打开Terminal,运行如下脚本创建虚拟环境:

 # 创建虚拟环境
conda create -n langgpt python=3.10 -y

运行下面的命令,激活虚拟环境:

 conda activate langgpt

之后的操作都要在这个环境下进行。激活环境后,安装必要的Python包,依次运行下面的命令: 

# 安装一些必要的库
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia -y

# 安装其他依赖
pip install transformers==4.43.3

pip install streamlit==1.37.0
pip install huggingface_hub==0.24.3
pip install openai==1.37.1
pip install lmdeploy==0.5.2

0.2 创建项目路径 

 运行如下命令创建并打开项目路径:

## 创建路径
mkdir langgpt
## 进入项目路径
cd langgpt

0.3 安装必要软件 

运行下面的命令安装必要的软件:

apt-get install tmux 

1. 模型部署 

这部分基于LMDeploy将开源的InternLM2-chat-1_8b模型部署为OpenAI格式的通用接口。

1.1 获取模型


如果使用intern-studio开发机,可以直接在路径/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b下找到模型

如果不使用开发机,可以从huggingface上获取模型,地址为:https://huggingface.co/internlm/internlm2-chat-1_8b

可以使用如下脚本下载模型:

from huggingface_hub import login, snapshot_download
import os
 
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
 
login(token=“your_access_token")
models = ["internlm/internlm2-chat-1_8b"]
for model in models:
    try:
        snapshot_download(repo_id=model,local_dir="langgpt/internlm2-chat-1_8b")
    except Exception as e:
        print(e)
        pass

1.2 部署模型为OpenAI server 


由于服务需要持续运行,需要将进程维持在后台,所以这里使用tmux软件创建新的命令窗口。运行如下命令创建窗口:

tmux new -t langgpt

创建完成后,运行下面的命令进入新的命令窗口(首次创建自动进入,之后需要连接):

tmux a -t langgpt 

进入命令窗口后,需要在新窗口中再次激活环境,命令参考0.1节。然后,使用LMDeploy进行部署,参考如下命令:

使用LMDeploy进行部署,参考如下命令:

 CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm

出以下提示说明成功:

部署成功后,先按ctrl+B,再按d,退出子界面,回到主界面。

可以利用如下脚本调用部署的InternLM2-chat-1_8b模型并测试是否部署成功,

新建一个test.py文件,在文件中复制以下代码:

from openai import OpenAI
 
client = OpenAI(
    api_key = "internlm2",
    base_url = "http://0.0.0.0:23333/v1"
)
 
response = client.chat.completions.create(
    model=client.models.list().data[0].id,
    messages=[
        {"role": "system", "content": "请介绍一下你自己"}
    ]
)
 
print(response.choices[0].message.content)

在主界面输入:

python test.py

服务启动完成后,可以按Ctrl+B进入tmux的控制模式,然后按D退出窗口连接.

1.3 图形化界面调用

InternLM部署完成后,可利用提供的chat_ui.py创建图形化界面,在实战营项目的tools项目中。

首先,从Github获取项目,运行如下命令:

git clone https://github.com/InternLM/Tutorial.git

下载完成后,运行如下命令进入项目所在的路径: 

cd Tutorial/tools 

进入正确路径后,运行如下脚本运行项目:

python -m streamlit run chat_ui.py 

参考L0/Linux的2.3部分进行端口映射,在本地终端中输入映射命令,可以参考如下命令: 

ssh -p {ssh端口,从InternStudio获取} root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:8501 -o StrictHostKeyChecking=no

如果未配置开发机公钥,还需要输入密码,从InternStudio获取。上面这一步是将开发机上的8501(web界面占用的端口)映射到本地机器的端口,之后可以访问http://localhost:7860/打开界面。

左侧边栏为对话的部分设置,其中最大token长度设置为0时表示不限制生成的最大token长度。API Key和Base URL是部署InternLM时的设置,必须填写。在保存设置之后,可以启动对话界面:

若要控制模型执行某些具体的特殊任务,也可于左侧边栏设置系统提示。

2.测试

首先不使用提示词,直接提问,模型给出了错误答案,示例如下:

然后将自己编写的or模型生成的提示词写入到系统提示中,再提问得到了正确回答:

进阶任务:

温柔男友

不使用提示词工程:
在这里插入图片描述
使用提示词工程:
在这里插入图片描述
 

科幻小说生成

未使用提示词:
在这里插入图片描述
使用提示词:
在这里插入图片描述
在这里插入图片描述
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值