开源大模型提示指南(以ChatGLM3为例)

1. 简介

注意:该项目需要在GPU环境下执行,如16G V100

随着大型语言模型(LLM)技术日渐成熟,提示工程(Prompt Engineering)变得越来越重要。一些研究机构如微软、OpenAI等都发布了 LLM 提示工程指南。最近,Llama 系列开源模型的提出者 Meta 也针对 Llama 2 发布了一份交互式提示工程指南,涵盖了 Llama 2 的快速工程和最佳实践。不过都是英文的,受此启发,我针对中文开源模型的调用写了一个Prompt指南。使用的模式是ChatGLM3-6B。

本来还想写一个商业模型的指南,后来发现这些优化内容很多都已经内置在商业模型中了,例如让文心一言做数学题: 

所以就只写了开源模型的指南。

Meta的关于LLama 2的Prompt的优化建议:https://github.com/facebookresearch/llama-recipes/blob/main/examples/Prompt_Engineering_with_Llama_2.ipynb

2. 环境安装

安装官方文档首先需要仓库:

git clone https://github.com/THUDM/ChatGLM3 cd ChatGLM3

然后使用 pip 安装依赖:

pip install -r requirements.txt

考虑到方便大家使用,本项目已经下载ChatGLM仓库,直接解压即可。

In [1]

# 解压ChatGLMS3项目, 也可以直接从Github上clone
!unzip /home/aistudio/ChatGLM3-main.zip
!mv ChatGLM3-main ChatGLM3
Archive:  /home/aistudio/ChatGLM3-main.zip
40c6dc126e50311c86cc33d4adf0102a2cad72d3
   creating: ChatGLM3-main/
  inflating: ChatGLM3-main/DEPLOYMENT.md  
  inflating: ChatGLM3-main/MODEL_LICENSE  
  inflating: ChatGLM3-main/PROMPT.md  
  inflating: ChatGLM3-main/README.md  
  inflating: ChatGLM3-main/cli_demo.py  
  inflating: ChatGLM3-main/requirements.txt  
   creating: ChatGLM3-main/resources/
  inflating: ChatGLM3-main/resources/WECHAT.md  
  inflating: ChatGLM3-main/resources/cli-demo.png  
  inflating: ChatGLM3-main/resources/web-demo.gif  
  inflating: ChatGLM3-main/resources/web-demo2.gif  
  inflating: ChatGLM3-main/resources/web-demo2.png  
  inflating: ChatGLM3-main/resources/wechat.jpg  
   creating: ChatGLM3-main/tool_using/
  inflating: ChatGLM3-main/tool_using/README.md  
  inflating: ChatGLM3-main/tool_using/cli_demo_tool.py  
  inflating: ChatGLM3-main/utils.py  
  inflating: ChatGLM3-main/web_demo.py  
  inflating: ChatGLM3-main/web_demo2.py  

在安装需要的包的时候,因为模块比较多,所以进行持久化安装, 使用持久化路径, 方便下次使用。在使用的时候只需要增加如下代码即可:

import sys

sys.path.append('/home/aistudio/external-libraries')

In [1]

# 添加如下代码, 这样每次环境(kernel)启动的时候
import sys 
sys.path.append('/home/aistudio/external-libraries')

In [ ]

# 因为模块比较多,所以进行持久化安装, 使用持久化路径, 方便下次使用
!mkdir /home/aistudio/external-libraries
%cd ChatGLM3
!pip install -r requirements.txt -t /home/aistudio/external-libraries

调用代码的时候,官方给的例子是:

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True)

model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True, device='cuda')

model = model.eval()

在执行的时候自动下载模型文件,因为文件很大,所以本项目已经下载完毕。大家只要解压即可。

3. Prompt演示

首先是获取模型,在本项目中,直接使用本地模型。然后就可以与模型对话了。

In [1]

%cd /home/aistudio/data/data245452
!unzip chatglm3-6b.zip
/home/aistudio/data/data245452
/opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/magics/osm.py:417: UserWarning: using dhist requires you to install the `pickleshare` library.
  self.shell.db['dhist'] = compress_dhist(dhist)[-100:]
Archive:  chatglm3-6b.zip
  inflating: configuration_chatglm.py  
  inflating: config.json             
  inflating: README.md               
  inflating: MODEL_LICENSE.txt       
  inflating: gitattributes.txt       
  inflating: tokenization_chatglm.py  
  inflating: tokenizer_config.json   
  inflating: tokenizer.model         
  inflating: quantization.py         
  inflating: pytorch_model.bin.index.json  
  inflating: modeling_chatglm.py     

In [2]

# 添加如下代码, 这样每次环境(kernel)启动的时候
import sys 
sys.path.append('/home/aistudio/external-libraries')
# 获取model
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("/home/aistudio/data/data245452", trust_remote_code=True)
model = AutoModel.from_pretrained("/home/aistudio/data/data245452", trust_remote_code=True, device='cuda')
model = model.eval()
/opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
  from .autonotebook import tqdm as notebook_tqdm
Loading checkpoint shards: 100%|██████████| 7/7 [00:47<00:00,  6.79s/it
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

军哥说AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值