甘肃省住房和城乡建设厅网站首页wordpress用户管理员教程

当前位置: 首页 > news >正文

甘肃省住房和城乡建设厅网站首页,wordpress用户管理员教程,网页设计动画网站,购买网站广告位天池-蚂蚁AFAC大模型挑战赛-冠军方案 前言 ❝ 作者     彭欣怡 华东师大; 马千里 虾皮; 戎妍 港科广 说在前面     在当今信息技术迅猛发展的背景下#xff0c;大模型技术已经成为推动人工智能领域进步的重要力量。     前段时间备受瞩目的AFAC赛题聚焦于金融对话…天池-蚂蚁AFAC大模型挑战赛-冠军方案 前言 ❝ 作者     彭欣怡 华东师大; 马千里 虾皮; 戎妍 港科广 说在前面     在当今信息技术迅猛发展的背景下大模型技术已经成为推动人工智能领域进步的重要力量。     前段时间备受瞩目的AFAC赛题聚焦于金融对话领域旨在推动大模型在金融场景中的应用和落地。我们有幸脱颖而出拿到冠军。技术之路永无止境每一次的成功都是新的起点所以在这里分享我们团队在其中的一些想法期望能和大家共同进步。 比赛链接 https://tianchi.aliyun.com/competition/entrance/532193/rankingList 赛题背景 参赛者需要根据用户的自然语言查询(用户请求)从给定的API集合中筛选出合适的API列表设计出正确的API调用逻辑(模型回答)并生成准确的答案。 数据案例解析 下面先给出一个样本案例帮助大家理解比赛的目标。 用户请求(input) 我一年前购买了2000元浙商智选先锋A基金并且在6个月前追加了3000元我到现在总的收益是多少 模型回答(output)
{ relevant APIs: [{ api_id: 0, api_name: 查询代码, required_parameters: [[浙商智选先锋一年持有期混合型证券投资基金A类]], rely_apis: [], tool_name: 基金查询 }, { api_id: 1, api_name: 查询近期收益率, required_parameters: [api_0的结果, 1年], rely_apis: [0], tool_name: 基金查询 }, { api_id: 2, api_name: 查询近期收益率, required_parameters: [api_0的结果, 6个月], rely_apis: [0], tool_name: 基金查询 }, { api_id: 3, api_name: 乘法计算, required_parameters: [api_1的结果, 2000], rely_apis: [1], tool_name: 数值计算 }, { api_id: 4, api_name: 乘法计算, required_parameters: [api_2的结果, 3000], rely_apis: [2], tool_name: 数值计算 }, { api_id: 5, api_name: 加法计算, required_parameters: [api_3的结果, api_4的结果], rely_apis: [3, 4], tool_name: 数值计算 }], result: [api_5的结果] } 模型回答解析 这段API链的意思是: 首先提取用户提到的基金名(产品)用查询代码提取该产品。然后根据用户的需求用查询近期收益率提取该产品的近期信息如一年收益率。最后用四则运算组合几个数值结果拿到用户想要的信息并返回。 评价指标 评价方法采用API运行通过率作为评价标准官网给出的具体计算方法如下: 最终得分 主指标*0.8 副指标*0.2 执行准确率(主指标) : 执行后得到结果的准确率 逻辑准确率(副指标) : 各种出入参的逻辑准确率 抖个激灵为了简化评测逻辑hē hē实际是用字符串提取方法进行静态评估的但我们没从中找到空子[旺柴]。
赛题理解 根据对样本进行分析再结合一些经验我们可以总结出比赛的三个要点: 标准产品名提取 查询类别API需要传入标准产品名(e.g. 浦发银行)才能执行但query中只有缩写(e.g. 浦发最近一月的最高价是多少)若不加入提示大模型很难还原真实的标准名称。 用户意图识别 根据所需要调用的API可以把用户意图分为4类基金查询、股票查询、条件选基、条件选股。不同的意图用到的API有较大不同规范也有差异。 相关例子召回 若要让大模型理解各种API的用法需要给出相似的例子让模型从例子中理解。例子与目标query的相关性极大程度的影响了模型表现若只给标准例子模型难以学会API的规范用法。
具体样例 用户查询产品名用户意图部分标签我打算用100万元买三羊马的股票如果按照三羊马的最高价来计算我能买多少股呢三羊马股票查询{“API_id”: “0”, “API_name”: “查询代码”, “required_parameters”: [[“三羊马”]], “rely_APIs”: [], “tool_name”: “股票查询”}上周结束的时候有哪些股票的收盘价是不超过0.47元的呢/条件选股{“API_id”: “0”, “tool_name”: “条件选股”, “API_name”: “查询收盘价”, “required_parameters”: [“小于”, “0.47”, “上周”], “rely_APIs”: []}我今年5月1日用5000块买的国金金腾通C如果我现在全部卖出交易费用是多少国金金腾通货币市场证券投资基金C类条件选股{“API_id”: “0”, “API_name”: “查询代码”, “required_parameters”: [[“国金金腾通货币市场证券投资基金C类”]], “rely_APIs”: [], “tool_name”: “基金查询”}请问有哪些基金最近一个月中最长的解套期是20天并且在今年已经创下新高达70次的/条件选基{“API_id”: “0”, “tool_name”: “条件选基”, “API_name”: “查询近期最长解套天数”, “required_parameters”: [“等于”, “20.0”, “1个月”], “rely_APIs”: []} 算法实现 分析完赛题和数据接下来我们将深入探讨实现方案。 框架介绍 首先给出我们的整体框架。根据实现流程我们可以将框架将分为三个部分: Prompt构造 我们设计了三个核心子模块以帮助模型规范其输出。这三个子模块分别是产品召回、意图识别和例子召回。这些模块相互配合确保模型能够更准确地理解和执行任务。 训练阶段 为了获得多样化的结果我们对Prompt中的内容进行了部分删减并调整了few-shot逻辑从而得到五个不同的Lora微调模型。这种多样化的训练策略有助于模型在不同场景下的表现更加全面和可靠。 推理阶段 除了句子级别的多数投票外我们还进行了许多其他尝试。同时我们还实施了一些针对赛题的后处理技巧如产品名称投票和错误API过滤这些技巧对提升最终结果也有一定的帮助。同时为了确保模型严格按照规定生成结果我们的最终方案是使用五套差异化的Prompt对GLM进行Lora微调然后对生成的五套执行语句进行句子级别的多数投票以得出最终结果。
Prompt设计技巧 大模型比赛中最关键的就是prompt设计。这一节我们将深入探讨如何利用意图识别和few-shot技术来设计高质量的Prompt。     需要强调的是我们采用技术的灵感源自统计学、传统机器学习和推荐系统的相关研究。尽管这些技术在原领域已经得到了广泛应用但我们通过调整与优化将它们迁移至大模型场景并取得了效果。 1.产品名召回-Text Match 思路 因为用户的询问往往不够精准比如用户可能会简称平安银行为平安但系统只能识别标准名称平安银行。所以我们设计了产品召回模块其核心任务是针对用户查询找到对应的标准产品名称。 实现 具体来说我们设计了四种字符串匹配算法包括最长公共子序列匹配、最长公共子串匹配以及我设计的一个变体算法(公共子串占总字符串比例的算法) 。每个算法找到多个候选结果然后拼接到一起再让大模型从中选出最符合意图的一个作为最终结果。 细节 之所以需要召回多个结果是因为整个系统中涉及的产品总数超过三万个单靠简单的匹配算法很难精准捕捉到用户真正提及的对象。我们的思路是先用这些算法先召回十几个可能正确的候选产品接着再让大模型从中挑选。 示意图 示例代码
def match_product(query: str, candidates: list): # query: 用户请求, e.g. 三羊马今日股价是多少 # candidates: 代表所有可能的产品, e.g. [三羊马,中国平安,浦发银行, …] products difflib.get_close_matches(query, candidates, n 200, cutoff0.01) pro [] # 多流量召回 pro products[:1] products sorted(products[1:], keylambda x: len(LCS(x, query)) / len(x), reverseTrue) pro products[:4] products sorted(products[4:], keylambda x: len(LCS(x, query)), reverseTrue) pro products[:4] products sorted(products[4:], keylambda x: len(LSC(x, query)), reverseTrue) pro products[:4] # 重排 return sorted(pro, keylambda x: len(LCS(translate(x), query)) / len(translate(x)), reverseTrue) 2.意图识别-KNN 思路 具有相同意图的查询往往具有许多共性。在API链中我们将第一条API定义为用户意图识别的节点。根据分析用户查询主要有四类意图股票查询、基金查询、条件选股以及条件选基。 实现 这里的意图识别方法不同于传统的NLP任务我们有大量的同源训练样本。所以我们使用了KNN算法来处理用户请求取最邻近的20个样本的意图的众数作为该请求的最终意图。 细节 为了找到最邻近的20个样本我们选择了四种方法编辑距离、SimCSE嵌入相似度、E5嵌入相似度和Bge嵌入相似度。每种方法分别召回5个最邻近的样本最终将这20个邻居样本混合起来通过投票来确定用户请求的意图。 参考 更多的文本嵌入方法可以参考以下链接: https://huggingface.co/spaces/mteb/leaderboard 示例代码
def getintention(row): query row[query] # intentions 总共四类意图 intentions [基金查询, 股票查询, 条件选基, 条件选股] # KNN选取每种算法的前五个邻居 for i in range(5): intentions.append(train.iloc[row[fedit{i}]][label]) intentions.append(train.iloc[row[fsim{i}]][label]) intentions.append(train.iloc[row[fm3e{i}]][label]) intentions.append(train.iloc[row[fe5_{i}]][label]) # 意图修正 if (股票 in query and not any([x in query for x in [型, A, B, C, D, E, F]])): intentions [x for x in intentions if 股 in x] elif any([x in query for x in stock_word]): intentions [x for x in intentions if 股 in x] elif any([x in query for x in fund_word]): intentions [x for x in intentions if 基 in x] if any([x in query for x in search_word]) and ( not in query and ( not in query: intentions [x for x in intentions if 查询 in x] elif any([x in query for x in select_word]): intentions [x for x in intentions if 选 in x] # 用邻居意图的mode代替 return Counter(intentions).most_common(1)[0][0] 3.例子召回-RAG 思路 在大模型的提示词中加入少量示例能够帮助模型更好地理解任务few-shot是大模型比赛中非常常用的技巧。 实现 我们采用了与意图识别类似的思路来实现few-shot。首先使用多种嵌入算法找到与当前查询相似的邻居并将其对应的问答作为例子放入Prompt中作为few-shot提示。我们最终选取了三套嵌入方法并使用蛇形召回算法来逐步从每个模型中提取结果最终排出了六个示例。 参考 更多的prompt构造技术可以参考以下链接: https://www.Promptingguide.ai/zh/techniques/consistency few-shot示例
Q1: Shawn有五个玩具。圣诞节他从他的父母那里得到了两个玩具。他现在有多少个玩具 A1: 他有5个玩具。他从妈妈那里得到了2个所以在那之后他有5 2 7个玩具。然后他从爸爸那里得到了2个所以总共他有7 2 9个玩具。答案是9。 Q2: 服务器房间里有9台计算机。从周一到周四每天都会安装5台计算机。现在服务器房间里有多少台计算机 A2: 从周一到周四有4天。每天都添加了5台计算机。这意味着总共添加了4 * 5 20台计算机。一开始有9台计算机所以现在有9 20 29台计算机。答案是29。 Q3: Olivia有23美元。她用每个3美元的价格买了五个百吉饼。她还剩多少钱 A3: 她用每个3美元的价格买了5个百吉饼。这意味着她花了15美元。她还剩8美元。 Q4: 当我6岁时我的妹妹是我的一半年龄。现在我70岁了我的妹妹多大 A4: ? 训练技巧 1.模型选型 限制 为了减少资源chāo piào的影响让选手们更公平的比拼技术赛题对参赛者使用的模型大小做出了限制要求模型参数量不得超过15B。 选型 经过多次尝试和比较我们发现Qwen系列和GLM系列的模型在性能上非常接近最终我们选择了更经济的GLM-4-9B模型。
2.Lora微调 介绍 Lora微调是一种高效的微调方法特别适用于大型语言模型。其核心理念是避免对整个模型进行训练而是仅对模型中的一小部分参数进行调整从而减少计算资源的消耗并提高训练效率。 优势 相比与全参微调Lora微调的优势在于它可以让模型快速适应新的任务只需调整与特定任务相关的参数。赛后与其他选手的交流也证实了这一点-Lora微调与全参微调在效果上几乎没有差别。我们认为这是因为微调的主要目标是规范模型的输出格式而Lora已经足以实现这一目的。 实现 最简单的实现方式就是用llama-factory框架能直接在UI界面完成lora微调。因为后续要用投票法来综合多个模型的答案我们设计了五套Prompt分别做了Lora微调从而得到差异较大的多个模型然后用它们做投票。 微调示意图
推理技巧 1.温度设置 解释LLM推理过程中有一个耐人寻味的参数温度。其用于调整模型生成文本时创造性和多样性的超参数。温度会影响模型生成文本时采样预测词汇的概率分布。 用法当模型的温度较高时模型会更倾向于从较多样且不同的词汇中选择这使得生成的文本风险性更高、创意性更强。反之模型主要会从具有较高概率的词汇中选择从而产生更平稳、更连贯的文本。在你需要稳定的结果时尽量把温度调低。在vllm推理框架中当你将温度设置为0时代表使用贪心推理生成新文本在本题中我们使用贪心推理生成文本。 示例代码
from vllm import LLM, SamplingParams TEMP 0 SEED 42 MAX_TOKENS 1024 sampling_params SamplingParams(temperatureTEMP, seedSEED, max_tokensMAX_TOKENS) model LLM( modelmodel_path, enforce_eagerTrue, max_model_len2048 ) outputs model.generate(prompts prompts, sampling_paramssampling_params) 推理采样示意图 2.多数投票 方案 在推理阶段我们使用了产品级别和句子级别的多数投票方法。首先对于五个模型输出的最终产品结果选择出现次数最多的产品作为最终结果。其次我们对五条API取句子级别的众数若没有就随机抽一条。 优势 这种双层多数投票的策略有助于增强结果的稳定性和一致性特别是在多个模型输出稍有差异的情况下可以有效避免单一模型可能带来的偶然性错误。 示例代码
model_list [model1,model2,model3] for model_name in model_list: model models[model_name] df[model_name] model.predict(df[feature_cols]) df[pred] df[model_list].mode(axis1)[0] 结尾 大模型AI产品经理如何学习 求大家的点赞和收藏我花2万买的大模型学习资料免费共享给你们来看看有哪些东西。 1.学习路线图 第一阶段 从大模型系统设计入手讲解大模型的主要方法 第二阶段 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用 第三阶段 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统 第四阶段 大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统 第五阶段 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型 第六阶段 以SD多模态大模型为主搭建了文生图小程序案例 第七阶段 以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。 2.视频教程 网上虽然也有很多的学习资源但基本上都残缺不全的这是我自己整理的大模型视频教程上面路线图的每一个知识点我都有配套的视频讲解。 都打包成一块的了不能一一展开总共300多集 因篇幅有限仅展示部分资料需要点击下方图片前往获取 3.技术文档和电子书 这里主要整理了大模型相关PDF书籍、行业报告、文档有几百本都是目前行业最新的。
4.LLM面试题和面经合集 这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
学会后的收获 • 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力 • 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求 • 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握 • 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。 1.AI大模型学习路线图 2.100套AI大模型商业化落地方案 3.100集大模型视频教程 4.200本大模型PDF书籍 5.LLM面试题合集 6.AI产品经理资源合集 获取方式 有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】