|
影响LLM效果的因素
- 模型能力(智力)
- 通识理解和泛化能力
- 输入信息理解、推理、规划、执行能力
- 输入信息补充知识学习能力
- 文字生成创作的风格
- 相关信息(知识)
- 与任务相关的信息
- 与互动背景相关的信息
- 模型输出控制(行动方法)
- 单次请求控制
- Prompt表达优化
- 以CoT为代表的思维链控制方法
- 输出格式控制(文本格式语法、工程结构化数据输出…)
- 多次请求控制
- 以ReAct(Action-Observation-Reflection)为代表的多轮自我反思优化
- 复杂任务的执行过程编排管理
|
### 单次请求的局限性 - 上下文窗口长度限制、输出长度限制(早期的LangChain长文本Summarize) - 直接进行CoT控制(尤其是用自然语言表达CoT)会输出思考过程,但我们不希望用户看到这个过程 - 随着工作进展出现的新信息,对任务时序、编排有依赖的信息,不一定能在单次请求中一次性完成输入
### 工作流的优势
- 将工作任务拆分成多个工作节点
- 能够将模型单次请求调用视作一个工作节点
- 能够灵活将其他代码逻辑也写入工作节点
- 能够对工作节点进行任务编排
- 能够在工作节点之间进行数据传递
|
输入 第1阶段:原始的任务,初次执行 第2阶段:对第1阶段进行反思,思考哪些地方还有待提高 第3阶段:执行建议, 输出 反思调整阶段 复杂的任务就需要复杂的思考,反复的调整 这是因为第一次尝试得到的效果通常不好,需要进一步分析,反思,调整 发现问题/差异,给出建议,执行建议,确认效果, 反复重复这个过程,使问题/差异朝着小的方向改变 |
|
|
|
|
关于ChatGLM的Agent Bank(这里我假设您指的是基于ChatGLM构建的智能体或代理集合,因为“Agent Bank”并非一个直接对应的术语),我们可以从以下几个方面来探讨:
一、ChatGLM简介
ChatGLM是由智谱AI和清华大学KEG实验室联合发布的新一代对话预训练模型。ChatGLM系列模型,如ChatGLM3-6B,在保留了对话流畅、部署门槛低等优点的基础上,引入了更强大的基础模型、更完整的功能支持以及更全面的开源序列。ChatGLM不仅支持多轮对话,还原生支持工具调用、代码执行和Agent任务等复杂场景。
二、Agent Bank的概念
虽然“Agent Bank”不是ChatGLM官方直接使用的术语,但我们可以将其理解为基于ChatGLM构建的一系列智能体或代理的集合。这些智能体或代理可以根据用户的输入和上下文,自主执行一系列操作,完成特定任务。
三、基于ChatGLM构建Agent Bank的步骤
模型选择与加载:
选择合适的ChatGLM模型,如ChatGLM3-6B,并根据需求加载模型。
工具封装:
将特定的业务逻辑或功能封装成独立的工具或模块。这些工具可以是API调用、数据库查询、文件操作等。
Prompt设计:
设计合理的Prompt,以指导ChatGLM在特定场景下选择合适的工具并执行相应的操作。
Agent开发:
利用langchain等框架,将ChatGLM模型与封装好的工具结合,构建具有自主性的Agent。
Agent可以基于用户的输入和上下文,自主判断并调用相应的工具,完成复杂任务。
测试与优化:
对构建的Agent进行测试,确保其在各种场景下都能正常工作。
根据测试结果对Agent进行优化,提高其性能和准确性。
部署与应用:
将优化后的Agent部署到实际的应用场景中,为用户提供智能化的服务。
四、示例
假设我们想要构建一个基于ChatGLM的客服Agent Bank,该Bank包含多个客服Agent,
每个Agent负责处理不同领域的用户问题。
我们可以按照上述步骤进行开发:
首先,加载ChatGLM模型。
然后,将常见的客服问题分类并封装成独立的工具或模块,如订单查询、商品咨询、售后服务等。
设计合理的Prompt,以指导ChatGLM在接收到用户问题时选择合适的工具进行回复。
利用langchain等框架构建客服Agent,并测试其性能。
最后,将优化后的客服Agent部署到企业的客服系统中,为用户提供智能化的客服服务。
五、结论
虽然“Agent Bank”不是ChatGLM官方直接使用的术语,
但基于ChatGLM构建一系列智能体或代理集合是完全可行的。
通过合理的模型选择与加载、工具封装、Prompt设计、Agent开发、测试与优化以及部署与应用等步骤,
我们可以构建出功能强大、性能优越的Agent Bank,为用户提供智能化的服务。
|
|
|
|
|
|
|
|
# 安装所需要使用的包,langchain 0.2.10 !pip install openai langgraph Agently==3.3.1.9 mermaid-python nest_asyncio
# 使用nest_asyncio确保异步稳定性
import nest_asyncio
nest_asyncio.apply()
from ENV import deep_seek_url, deep_seek_api_key, deep_seek_default_model
import Agently
agent = (
Agently.create_agent()
.set_settings("current_model", "OAIClient")
.set_settings("model.OAIClient.url", deep_seek_url)
.set_settings("model.OAIClient.auth", { "api_key": deep_seek_api_key })
.set_settings("model.OAIClient.options", { "model": deep_seek_default_model })
)
result = agent.input(input("[请输入您的要求]: ")).start()
print("[回复]: ", result)
[请输入您的要求]: 我想学习音频算法,成为一名音频算法工程师,我该怎么做?
[回复]: 成为一名音频算法工程师需要掌握一系列的技能和知识,包括音频信号处理、数学、编程、机器学习等。以下是一些步骤和建议,帮助你在这个领域取得进步:
1. 基础知识学习
数学基础:线性代数、概率论、统计学、微积分等。
信号处理:学习傅里叶变换、滤波器设计、采样理论等。
编程技能:掌握至少一种编程语言,如Python、C++或MATLAB。
2. 专业课程和书籍
在线课程:Coursera、edX、Udacity等平台上有关于信号处理和音频处理的课程。
专业书籍:《数字信号处理》(Oppenheim & Schafer)、《音频信号处理与识别》(Wang & Brown)等。
3. 实践经验
项目实践:尝试实现一些基本的音频处理算法,如回声消除、噪声抑制、音频压缩等。
开源项目:参与或贡献音频处理相关的开源项目,如Audacity、Librosa等。
4. 深入研究
机器学习:了解深度学习在音频处理中的应用,如语音识别、音乐生成等。
论文阅读:定期阅读音频处理领域的最新研究论文,如IEEE Transactions on Audio, Speech, and Language Processing等期刊。
5. 专业工具和软件
音频处理软件:学习使用如Audacity、Adobe Audition等软件。
开发工具:熟悉音频处理库和框架,如PyAudio、PortAudio、FFmpeg等。
6. 建立作品集
个人项目:完成一些个人项目,展示你的技能和创新。
技术博客:撰写技术博客,分享你的学习经验和项目成果。
7. 职业发展
实习机会:寻找音频算法相关的实习机会,积累实际工作经验。
行业交流:参加音频处理相关的会议和研讨会,如AES(Audio Engineering Society)会议。
网络建设:加入专业社群,与行业内的专家和同行建立联系。
8. 持续学习
关注行业动态:音频技术不断发展,需要持续关注最新的技术和研究趋势。
终身学习:不断提升自己的技能和知识,适应行业的变化。
通过上述步骤,你可以逐步建立起成为音频算法工程师所需的知识体系和实践经验。记住,这是一个持续学习和实践的过程,不断挑战自己,才能在这个领域取得成功。
|
|
|
|
|
|
|
|
|
⚡ Building language agents as graphs ⚡ https://langchain-ai.github.io/langgraph/ langgraphjs https://github.com/langchain-ai/langgraphjs
|
|
环境
(base) xt@llm:/opt/wks/jupyter$ wkflow
!pip install langgraph openai
|
|
|
|
|
|
|
Huggingface 镜像站