笔记
1、智能体的意义
大模型回答的幻觉:模型可能会产生虚假信息,与现实严重不符或者脱节。
模型训练数据过时,无法反应最新趋势和信息。
面对复杂任务时,可能频发错误输出现象,影响信任度。
2、智能体范式
AutoGPT/ReWoo/ReAct
3、Lagent
Lagent是一个轻量级框架,专门用于构建基于LLM(Logical Layered Modeling)的代理。这种框架的设计目的是为了简化和提高基于这种模型的代理的开发效率。LLM模型是一种强大的工具,可以用于模拟和管理复杂的系统,而Lagent就是这种模型的实现。它的出现让开发者能够更加方便地创建和管理基于LLM模型的代理,无论是在开发过程中还是在实际应用中都可以大大提高效率。
4、AgentLego
AgentLego 通过提供一个易于扩展、易于使用、易于部署的工具集合,让大家能够轻松地在各种 Agent 系统中发挥想象力,赋予大模型更强大的能力。
作业
Lagent Web Demo
1、配置agent所需环境,这里我装在前面的LMDeploy的环境里
2、部署LMDeploy的api_server
conda activate agent
lmdeploy serve api_server /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b \
--server-name 127.0.0.1 \
--model-name internlm2-chat-7b \
--cache-max-entry-count 0.1
3、启动并使用 Lagent Web Demo
conda activate agent
cd /root/agent/lagent/examples
streamlit run internlm2_agent_web_demo.py --server.address 127.0.0.1 --server.port 7860
4、将 LMDeploy api_server 的23333端口以及 Lagent Web Demo 的7860端口映射到本地
ssh -CNg -L 7860:127.0.0.1:7860 -L 23333:127.0.0.1:23333 root@ssh.intern-ai.org.cn -p 你的 ssh 端口号
5、接下来在本地的浏览器页面中打开 http://localhost:7860 以使用 Lagent Web Demo。首先输入模型 IP 为 127.0.0.1:23333,在输入完成后按下回车键以确认。并选择插件为 ArxivSearch,以让模型获得在 arxiv 上搜索论文的能力。结果很好地利用检索工具检索到相关的文献。
直接使用 AgentLego
1、下载demo文件
cd /root/agent
wget http://download.openmmlab.com/agentlego/road.jpg
2、AgentLego 所实现的目标检测工具是基于 mmdet (MMDetection) 算法库中的 RTMDet-Large 模型,因此我们首先安装 mim,然后通过 mim 工具来安装 mmdet
conda activate agent
pip install openmim==0.3.9
mim install mmdet==3.3.0
3、新建检测脚本文件
touch /root/agent/direct_use.py
4、填入检测代码
import re
import cv2
from agentlego.apis import load_tool
# load tool
tool = load_tool('ObjectDetection', device='cuda')
# apply tool
visualization = tool('/root/agent/road.jpg')
print(visualization)
# visualize
image = cv2.imread('/root/agent/road.jpg')
preds = visualization.split('\n')
pattern = r'(\w+) \((\d+), (\d+), (\d+), (\d+)\), score (\d+)'
for pred in preds:
name, x1, y1, x2, y2, score = re.match(pattern, pred).groups()
x1, y1, x2, y2, score = int(x1), int(y1), int(x2), int(y2), int(score)
cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 1)
cv2.putText(image, f'{name} {score}', (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 1)
cv2.imwrite('/root/agent/road_detection_direct.jpg', image)
5、执行推理
python /root/agent/direct_use.py
结果如下: