[实验内容]
-
设计一个Prompt,完成选题中的一个任务。
-
需要同时部署本地大模型和使用远程大模型。
-
需要提供后续的相关应用代码。
[完成人数]
-
这次作业鼓励单人完成。
-
本次的部署和之后的作业/期末紧密相关,请认真完成。
-
单人不限制本地模型的部署类型,3人完成最多和另一个3人的模型一样,6人完成必须独立一种大模型。
-
无论模型是否和别的组一样,均需要独立完成部署
[选题]
知识挖掘类Prompt:
KE1. 给定一段文本,抽取其中常识知识三元组,每一个三元组的组织形式为(头实体,关系,尾实体)。
KE2. 给定一段文本,抽取其中存在的命名实体(人物、地点、机构等),分每一个类别存储。
KE3. 给定一段文本,以及指定的实体(任五、地点、机构等),抽取与该实体相关的Key-Value知识。
Question-Answer 类Prompt:
QA1. 给定一段背景材料和一个问题和四个答案(A、B、C、D), 要求模型输出对应的答案以及理由。
QA2. 给定一段背景材料和一个问题, 要求模型写出对应的答案以及理由。
QA3. 给定一段背景材料,要求模型从中发现问题以及答案(即生成问题、答案对)。
QA4. 给定一段背景材料,以及指定的人物/地点/时间等,要求模型根据给定的信息生成问题和答案。
QA5. 给定一段背景材料,题目,以及正确答案(文字),以及一个学生答案。 设计一个评分Prompt让模型对这个答案进行打分,评分需要是从多个有不同具体含义的指标进行,打分需要在1-10分之间。
[评分要求]
基本要求(每一个⭐️=10分):
- [Remote LLM 测试 ⭐️⭐️] 自己准备不少于3个例子,在远程大模型上测试。
- [Local LLM 测试效果 ⭐️⭐️] 自己准备不少于3个例子(保持同上),在本地大模型上测试。
- [Local LLM 部署情况 ⭐️] 检查是否已经在本地部署了大模型
- [Local LLM 应用开发 ⭐⭐️⭐️] 是否已经将所选定的大模型、任务封装成了一个可以直接调用的代码(实现批量输入、批量输出、错误异常管理等,需要自己准备大量测试数据)
- [文档⭐️⭐️] 本次作业每个小组都必须以Github/Gitlab项目的方式提交,其中的Readme.md 为本次实验报告的文档。
额外政策:
- 第二周开始可以检查测试效果和部署效果(前三项),检查周数和分数上限的关系为:第二周-100分,第三周-95分,第四周85分,第五周80分,第六周75分,之后只记60分。
- 后两项必须在第前三项检查完后再做检查,原则上为检查完两次课内完成(可能会要求返修),之后每延迟一周上限扣减10分,最低上限75。
- 原则上要获得高分,需要同时提供中文和英文版本的Prompt,给分优先度为: 中文+英文 > 英文 > 中文。
优点:方便
缺点:在国内微软商店容易出现连接不稳定的情况
wsl --list --online
wsl --install -d Ubuntu-18.04
#此处使用Ubantu-18.04作为示例
wsl -l
wsl -d Ubuntu-18.04
sudo passwd root
sudo apt update
sudo apt upgrade
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
bash Anaconda3-2024.02-1-Linux-x86_64.sh
#重启
sudo reboot
#或者不想重启
source ~/.bashrc
conda create -n Python3.10+cuda12.1 python=3.10
conda activate Python3.10+cuda12.1
安装Pytorch(官网 https://pytorch.org/get-started/locally/)
conda install <指定版本>
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
本指南基于 英伟达官网针对wsl2的cuda安装指南 https://docs.nvidia.com/cuda/wsl-user-guide/index.html#getting-started-with-cuda-on-wsl-2
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_network
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4
nvcc -V
https://developer.nvidia.com/rdp/cudnn-archive
tar -xvf <你下载的cudann文件名>
cd <解压后的文件夹>
sudo cp ./include/* /usr/local/cuda/include/
sudo cp ./lib/* /usr/local/cuda/lib64/
cat /usr/local/cuda/targets/x86_64-linux/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
cd lab1
conda activate <你的环境>
pip install -r requirements.txt
项目地址:https://github.com/THUDM/ChatGLM3
python dowload.py #存储路径为项目根目录下的model文件夹中
cd sample
python LocalLLMChat.py <prompt语言> #English或Chinese 默认Chinese
cd sample
python RemoteLLMChat.py <prompt语言> #English或Chinese 默认Chinese
参数名 | 作用 | 可选项 |
---|---|---|
language | 选定prompt的语种(默认中文) | CN / EN |
filepath | 指定待抽取文本文件的路径 | 文件路径 |
output | 输出文件的路径 | 文件路径 |
model | 指定使用本地模型或是远程模型(默认本地) | gpt-3.5-turbo / chatglm3-6b |
api_key | 远程模型的apikey | api_key |
base_url | 远程模型的api网址 | base_url |
文件名 | 作用 |
---|---|
last_position | 存储当前文件以执行到的行数与当前文件最后编辑的时间 |
output.txt | 默认输出路径 |
txt.txt | 默认的待处理文本 |
config.json | 脚本配置文件 |
sample | 内含远程模型与本地模型的交互体验脚本 |
跳转至项目根目录,并激活环境
cd project
conda activate Python3.10+cuda12.1
请提前将待处理文本按行放入你所指定的文件中,随后使用python执行指定脚本
python run.py #<可附加的参数>
随后文件将输出到output.txt(默认路径)