基于LLM的优化器

基于LLM的优化器

  • 代码
  • 输出

需求描述:
我准备用二台8卡的GPU服务器训练一个LLM模型,因为不同的超参会导致不同的性能.我准备了一个脚本,输入一些参数,会运行训练脚本,之后输出tokens/sec,这个值越大越好。
你现在是一个优化器,我告诉你有哪些输入参数,以及它们值的范围,你输出参数列表,之后我利用你提供的参数列表运行训练脚本,得到tokens/sec,并将这个值反馈给你
你根据我的反馈思考如何配置这些参数,可以让tokens/sec最大
通过这样不断的迭代,求出近似最优解
参数
1.HL_DP
2.HL_TP
3.HL_PP
4.HL_ZERO_STAGE
参数约束:
1.HL_DP HL_TPHL_PP==16
2.HL_ZERO_STAGE取值范围是[0,1,2]
3.HL_ZERO_STAGE=2时HL_PP为1
输出格式:
[HL_DP=?,HL_TP=?,HL_PP=?,HL_ZERO_STAGE=?]
明白我的要求了吗?

代码

from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler
from sparkai.core.messages import ChatMessage
import random
import time
import re
SPARKAI_URL = 'wss://spark-api.xf-yun.com/v3.5/chat'
SPARKAI_APP_ID = ''
SPARKAI_API_SECRET = ''
SPARKAI_API_KEY = ''
SPARKAI_DOMAIN = 'generalv3.5'
def run_script(params):print("params:",params)return random.randint(0,200)
if __name__ == '__main__':request='''
我准备用二台8卡的GPU服务器训练一个LLM模型,因为不同的超参会导致不同的性能.我准备了一个脚本,输入一些参数,会运行训练脚本,之后输出tokens/sec,这个值越大越好。
你现在是一个优化器,我告诉你有哪些输入参数,以及它们值的范围,你输出参数列表,之后我利用你提供的参数列表运行训练脚本,得到tokens/sec,并将这个值反馈给你
你根据我的反馈思考如何配置这些参数,可以让tokens/sec最大
通过这样不断的迭代,求出近似最优解
参数
1.HL_DP
2.HL_TP
3.HL_PP
4.HL_ZERO_STAGE
参数约束:
1.HL_DP*HL_TP*HL_PP==16
2.HL_ZERO_STAGE取值范围是[0,1,2]
3.HL_ZERO_STAGE=2时HL_PP为1
输出格式:
[HL_DP=?,HL_TP=?,HL_PP=?,HL_ZERO_STAGE=?]
明白我的要求了吗?
'''spark = ChatSparkLLM(spark_api_url=SPARKAI_URL,spark_app_id=SPARKAI_APP_ID,spark_api_key=SPARKAI_API_KEY,spark_api_secret=SPARKAI_API_SECRET,spark_llm_domain=SPARKAI_DOMAIN,streaming=False,top_k=1,temperature=0.3)messages = [ChatMessage(role="user",content=request)]                    handler = ChunkPrintHandler()for i in range(10):print(f"\n第{i}轮")a = spark.generate([messages], callbacks=[handler])    messages.append(a.generations[0][0].message)out=a.generations[0][0].textprint(out)params=re.findall(r'\[(.*?)\]',out)[0]        messages.append(ChatMessage(role="user",content=f"tokens/sec:{run_script(params)}"))time.sleep(2)

输出

第0轮
明白了,根据您的要求,我将为您提供一个参数列表。您可以使用这个参数列表运行训练脚本,并将得到的tokens/sec值反馈给我。我会根据您的反馈来调整参数,以使tokens/sec值最大。参数列表:
[HL_DP=2, HL_TP=2, HL_PP=2, HL_ZERO_STAGE=1]请使用这个参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=2, HL_TP=2, HL_PP=2, HL_ZERO_STAGE=1第1轮
好的,根据您提供的tokens/sec值108,我会尝试调整参数以优化性能。新的参数列表:
[HL_DP=4, HL_TP=2, HL_PP=2, HL_ZERO_STAGE=1]请使用这个新的参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=4, HL_TP=2, HL_PP=2, HL_ZERO_STAGE=1第2轮
好的,根据您提供的tokens/sec值134,我会尝试进一步调整参数以优化性能。新的参数列表:
[HL_DP=4, HL_TP=2, HL_PP=4, HL_ZERO_STAGE=1]请使用这个新的参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=4, HL_TP=2, HL_PP=4, HL_ZERO_STAGE=1第3轮
好的,根据您提供的tokens/sec值115,我会尝试进一步调整参数以优化性能。新的参数列表:
[HL_DP=4, HL_TP=2, HL_PP=4, HL_ZERO_STAGE=2]请使用这个新的参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=4, HL_TP=2, HL_PP=4, HL_ZERO_STAGE=2第4轮
好的,根据您提供的tokens/sec值75,我会尝试进一步调整参数以优化性能。新的参数列表:
[HL_DP=4, HL_TP=4, HL_PP=2, HL_ZERO_STAGE=1]请使用这个新的参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=4, HL_TP=4, HL_PP=2, HL_ZERO_STAGE=1第5轮
好的,根据您提供的tokens/sec值43,我会尝试进一步调整参数以优化性能。新的参数列表:
[HL_DP=8, HL_TP=2, HL_PP=1, HL_ZERO_STAGE=1]请使用这个新的参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=8, HL_TP=2, HL_PP=1, HL_ZERO_STAGE=1第6轮
好的,根据您提供的tokens/sec值128,我会尝试进一步调整参数以优化性能。新的参数列表:
[HL_DP=8, HL_TP=2, HL_PP=2, HL_ZERO_STAGE=1]请使用这个新的参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=8, HL_TP=2, HL_PP=2, HL_ZERO_STAGE=1第7轮
好的,根据您提供的tokens/sec值188,我会尝试进一步调整参数以优化性能。新的参数列表:
[HL_DP=8, HL_TP=2, HL_PP=4, HL_ZERO_STAGE=1]请使用这个新的参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=8, HL_TP=2, HL_PP=4, HL_ZERO_STAGE=1第8轮
好的,根据您提供的tokens/sec值137,我会尝试进一步调整参数以优化性能。新的参数列表:
[HL_DP=8, HL_TP=2, HL_PP=4, HL_ZERO_STAGE=2]请使用这个新的参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=8, HL_TP=2, HL_PP=4, HL_ZERO_STAGE=2第9轮
好的,根据您提供的tokens/sec值198,我会尝试进一步调整参数以优化性能。新的参数列表:
[HL_DP=8, HL_TP=4, HL_PP=2, HL_ZERO_STAGE=1]请使用这个新的参数列表运行训练脚本,并告诉我得到的tokens/sec值。
params: HL_DP=8, HL_TP=4, HL_PP=2, HL_ZERO_STAGE=1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php祛除mqtt 返回数据中包含的特殊字符

function cleanseMessage($message) {// 定义特殊字符的正则表达式$pattern /[[:^print:]]/;// 使用正则表达式替换特殊字符为空字符串$cleanedMessage preg_replace($pattern, , $message);return $cleanedMessage; }// 假设接收到的MQTT消息是: $rawMessage &q…

Spring Boot中@Value加载配置的替代者:@ConfigurationProperties

Value注解Spring Boot开发者都已经熟悉了,通过该注解,我们可以快速的把配置信息加载到Spring的Bean中。 例如:在application.yml中添加了一个配置如下: 我想在service中获取name,通过value注解方式实现,代…

人力资源管理信息化系统如何支持企业开展管理诊断?

华恒智信人力资源顾问有限公司致力于帮助企业开展人力资源管理方面的各项提升改进工作,在长期的咨询工作中,最常听到企业提到的问题莫过于管理诊断方面的问题,事实上,很多企业在日常工作中,都意识到企业内部存在管理方…

比例溢流阀的放大器找BEUEC

液压比例放大器的使用范围广泛,包括工业生产线、船舶液压系统等多个领域。BEUEC比例放大器是一种重要的液压系统组件,其作用是将微弱的液压信号放大,以实现对液压系统的精确控制。这种设备在多个行业中都有广泛的应用,特别是在需要…

C++ List完全指南:使用方法与自定义实现

文章目录 list的使用几种构造函数 list的实现1.节点类的定义1.1节点类的构造函数 2.正向迭代器实现2.1operator*重载2.2operator->重载2.3operator重载2.4operator--2.5operator和operator! 3.反向迭代器实现3.1operator*重载3.2operator->重载3.3operator重载…

ES2020新特性概览

以下是ES2020版本中的一些新特性: Promise.allSettled:Promise.allSettled()方法返回一个在所有给定的promise已被决议或被拒绝后决议的promise,返回的 promise 根据每个 Promise的结果状态决定其决议方式(注意:与Prom…

进口特氟龙隔膜泵的选型

进口特氟龙隔膜泵的选型需要考虑多个因素,以确保所选泵能够满足特定的应用需求。以下是一个清晰的选型指南,基于参考文章中的相关信息: 一、选型参数 公称通径: 根据系统需求选择合适的通径,通常范围为10-100mm。流量…

QT嵌入exe到widget窗口

QString exePath QDir::currentPath() "/test.exe"; QProcess *process new QProcess(this); process->start(exePath); if (!process->waitForStarted()) {QMessageBox::critical(this, "Error", "无法启exe程序.");return; } //QThr…

解决Vue3+TS+vite,VSCode 高亮语法错误

一般像这种提示,有可能就是TypeScript语法的识别问题, 一般我们重装一下Vue - Official插件 或者将tcconfig.json中的moduleResolution改为node模式, 基本都是TypeScript无法识别vue文件中的TypeScript语句导致的

照片处理软件哪个好?爆款图片编辑工具分享

照片处理软件哪个好?在数字时代,照片处理软件已经成为我们日常生活和工作中不可或缺的工具。无论是为了美化照片、修复旧照,还是进行专业的图像处理,都有各种软件可以满足我们的需求。以下是一些值得一试的照片处理软件&#xff0…

win10和win11修改暂停更新时间

关于Windows的自动更新,可以说是有人喜欢,也有人讨厌。部分小伙伴觉得,自动更新能让系统时刻保持最新状态,提高安全性。但也有用户认为,频繁的自动更新很耽误事,有时还会带来意想不到的BUG。 零副作用关闭…

ChatGPT-4o模型功能介绍——还没用过的看过来

1.概述 OpenAI 持续突破人工智能的边界,推出了其最新模型 ChatGPT-4o,作为 ChatGPT-4 的继承者,该模型有望带来显著的提升和创新功能。本文将深入解析 ChatGPT-4 与 ChatGPT-4o 之间的区别,并探讨它们的功能、性能以及潜在的应用…

<商务世界>《76 微课堂<茶叶(2)-种类>》

1 茶叶总共分为6个大类 六大茶类分类法:红茶、绿茶、青茶、黄茶、黑茶、白茶六大茶类 2 红茶 红茶具有红茶、红汤、红叶和香甜味醇的特征。以水冲泡,不仅香气迎人,还呈现出特有的深红茶色,因此被人称为“红茶”。 分布地区&…

BI 数据分析-解析数据的力量

在当今数字化时代,数据被广泛应用于各个领域。作为一项强大的工具,BI数据分析在企业管理、市场营销、决策支持等方面扮演着不可或缺的角色。数聚基于行业多年的从业经验,带企业深度了解BI数据分析的意义、流程以及其对企业发展的价值。 BI数…

Web上机:JSP+Servlet+JDBC的交互流程

目录 需求与设计 基础需求: 项目结构: 项目逻辑: 运行图示: 代码实现 Login.jsp InsertServlet SelectServlet Table.jsp user mysql表结构 Web开发技术迭代速度日新月异,对于技术的更新往往是基于底层一…

路径规划 | 图解粒子群(PSO)算法(附ROS C++仿真)

目录 0 专栏介绍1 从鸟群迁徙说起2 粒子群算法基本概念3 粒子群算法流程4 粒子群算法ROS实现 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规…

【题解】—— LeetCode一周小结21

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 【题解】—— 每日一道题目栏 上接:【题解】—— LeetCode一周小结20 20.找出最长的超赞子字符串 题目链接:1542. 找出…

2024年150道高频Java面试题(七十三)

145. MyBatis 支持哪些类型的 SQL 语句? MyBatis 是一个优秀的持久层框架,它支持多种类型的 SQL 语句,包括但不限于以下几种: 查询语句: SELECT:用于从数据库表中检索数据。SELECTIVE:根据条件…

请说出vue.cli项目中src目录每个文件夹和文件的用法

在Vue CLI项目中,src目录是存放项目源码及需要引用的资源文件的主要位置。以下是src目录下常见文件夹和文件的用法: components 用途:存放可重用的Vue组件。这些组件通常用于在多个页面或布局中共享UI和功能。特点:组件应该是模块…

Midjourney 推出Style Tuner工具 ,统一风格,提升创作效率!

Midjourney 由前 Magic Leap 程序员大卫 - 霍尔茨(David Holz)构思,于 2022 年夏天推出,在独立消息应用 Discord 的服务器上吸引了超过 1600 万用户,并由一个小规模的程序员团队不断更新,推出了包括平移、扩…