计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-29

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-29


目录

文章目录

  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-29
    • 目录
    • 1. Does your LLM truly unlearn? An embarrassingly simple approach to recover unlearned knowledge
      • 摘要
      • 研究背景
      • 问题与挑战
      • 如何解决
      • 创新点
      • 算法模型
      • 实验效果(包含重要数据与结论)
      • 推荐阅读指数:4.5
    • 2. Comparative Study of Multilingual Idioms and Similes in Large Language Models
      • 摘要
      • 研究背景
      • 问题与挑战
      • 如何解决
      • 创新点
      • 算法模型
      • 实验效果(包含重要数据与结论)
      • 推荐阅读指数: 4.0
    • 3. Beyond Browsing: API-Based Web Agents
      • 摘要
      • 研究背景
      • 问题与挑战
      • 如何解决
      • 创新点
      • 算法模型
      • 实验效果(包含重要数据与结论)
      • 推荐阅读指数: 4.0
    • 4. Multi-head Sequence Tagging Model for Grammatical Error Correction
      • 摘要
      • 研究背景
      • 问题与挑战
      • 如何解决
      • 创新点
      • 算法模型
      • 实验效果(包含重要数据与结论)
      • 推荐阅读指数: 5
      • 代码:
    • 5. BIG5-CHAT: Shaping LLM Personalities Through Training on Human-Grounded Data
      • 文章标题翻译
      • 摘要
      • 研究背景
      • 问题与挑战
      • 如何解决
      • 创新点
      • 算法模型
      • 实验效果(包含重要数据与结论)
      • 推荐阅读指数:4.0
    • 后记


1. Does your LLM truly unlearn? An embarrassingly simple approach to recover unlearned knowledge

Authors: Zhiwei Zhang, Fali Wang, Xiaomin Li, Zongyu Wu, Xianfeng Tang, Hui
Liu, Qi He, Wenpeng Yin, Suhang Wang
https://arxiv.org/abs/2410.16454
在这里插入图片描述
你的大型语言模型真的“忘记”了吗?一种令人尴尬的简单方法来恢复“遗忘”的知识

摘要

这篇论文探讨了大型语言模型(LLMs)在进行“机器卸载”(machine unlearning)操作后,是否真的能够忘记不需要的知识。作者发现,通过对经过卸载处理的模型应用量化(quantization)技术,可以恢复那些被“忘记”的信息。研究通过多种量化技术和不同精度级别的实验,评估了这一现象。结果显示,在全精度下,卸载模型平均保留了21%的被意图遗忘的知识,而在4位量化后,这一比例显著增加到83%。基于实验结果,论文提供了理论解释,并提出了一种量化鲁棒的卸载策略,旨在缓解这一复杂问题。研究强调了在保持卸载模型效用和防止通过量化恢复知识之间的基本张力,突出了现有LLM卸载方法的重大失败,并强烈主张需要更全面和鲁棒的策略,以确保真正的卸载,同时不牺牲模型效用。

研究背景

大型语言模型(LLMs)在文本生成方面展现出了卓越的能力,但同时也可能从训练数据中习得不想要的行为,如版权和隐私问题。机器卸载被提出作为一种解决方案,旨在从LLMs中移除特定知识,而无需重新训练模型。尽管当前的卸载方法有效,但人们对这些方法是否真的能够实现遗忘,或者仅仅是隐藏知识,这一点关注不足。

问题与挑战

主要挑战在于验证现有的LLMs卸载方法是否真正实现了遗忘,还是仅仅隐藏了知识,特别是在模型量化后,是否能够防止知识的恢复。此外,如何在保持模型效用的同时实现真正的遗忘,是一个需要解决的关键问题。

如何解决

研究者们通过实验发现,量化技术可以恢复被卸载模型“忘记”的知识。基于此发现,论文提出了一种理论解释,并开发了一种量化鲁棒的卸载策略,称为基于显著性的大学习率卸载(SURE)。SURE策略通过构建模块级别的显著性图来指导卸载过程,仅更新与被遗忘数据最相关的组件,从而在应用大学习率时减少对模型效用的负面影响。

创新点

  1. 揭示量化对卸载影响:首次系统地评估了量化技术对LLMs卸载性能的影响,揭示了量化可能导致被卸载的知识恢复的问题。
  2. 理论解释:为观察到的现象提供了理论解释,解释了为什么量化可能导致卸载失败。
  3. SURE策略:提出了一种新的卸载策略,通过显著性图和大学习率来指导卸载过程,以减少量化对卸载效果的影响。

算法模型

论文中提到的主要算法包括:

  • Gradient Ascent (GA):通过梯度上升减少对遗忘数据集的正确预测概率。
  • Negative Preference Optimization (NPO):将遗忘数据集视为负偏好数据,调整模型以降低对遗忘数据集的预测概率。
  • SURE策略:基于显著性的大学习率卸载策略,通过构建模块级别的显著性图来指导卸载过程。

实验效果(包含重要数据与结论)

实验在多个数据集和不同的量化技术下进行,包括NEWS和BOOKS数据集。实验结果显示:

  • 在全精度下,卸载模型平均保留了21%的被意图遗忘的知识。
  • 在4位量化后,保留的知识比例显著增加到83%。
  • SURE策略能够有效地减少量化对卸载效果的影响,提高卸载性能。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

推荐阅读指数:4.5

2. Comparative Study of Multilingual Idioms and Similes in Large Language Models

Authors: Paria Khoshtab, Danial Namazifard, Mostafa Masoudi, Ali Akhgary, Samin
Mahdizadeh Sani, Yadollah Yaghoobzadeh
https://arxiv.org/abs/2410.16461
在这里插入图片描述
多语言成语和比喻在大型语言模型中的比较研究

摘要

本研究填补了文献中关于大型语言模型(LLMs)在解释多种语言中不同类型的比喻性语言(包括成语和比喻)的比较性能的空白。通过使用两个多语言数据集对LLMs进行评估,研究了包括思维链(chain-of-thought)、少量样本(few-shot)和英语翻译提示在内的各种提示工程策略的有效性。研究者还将这些数据集的语言扩展到了波斯语,构建了两个新的评估集。评估涉及闭源(GPT-3.5、GPT-4o mini、Gemini 1.5)和开源模型(Llama 3.1、Qwen2),揭示了不同语言和比喻类型间显著的性能差异。研究发现,尽管提示工程方法通常有效,但其成功程度因比喻类型、语言和模型而异。此外,开源模型在低资源语言的比喻解释上尤其困难。研究还观察到,对于许多语言来说,成语解释的性能已接近饱和,这需要更具挑战性的评估。

研究背景

大型语言模型(LLMs)在理解和生成人类语言方面展现出了显著的能力,但理解比喻性语言(包括比喻、成语和隐喻)是LLMs面临的一个挑战。比喻性语言通过丰富的文化参考和判断来隐含地表达复杂的想法和情感,对LLMs来说至关重要,因为它们需要与用户自然而有效地互动。因此,研究LLMs如何处理比喻性语言对于提升它们的能力至关重要。现有研究表明,LLMs不仅在生成上存在困难,还经常误解比喻性表达,这强调了需要更复杂的技术来弥合这些差距。在多语言环境中,这一挑战变得更加突出,因为比喻性语言与文化细微差别密切相关。

问题与挑战

主要挑战在于比较LLMs在解释不同类型比喻性语言(英语和多语言环境)的性能,以及探索不同提示工程策略的有效性。此外,需要为低资源语言(如波斯语)创建新的评估集,并评估LLMs在这些语言中的表现。

如何解决

研究者们通过以下方式解决上述挑战:

  1. 数据集扩展:将现有数据集的语言扩展到波斯语,构建了两个新的评估集。
  2. 提示工程策略:评估了包括思维链、少量样本和英语翻译提示在内的不同提示工程策略。
  3. 模型评估:对闭源和开源模型进行了综合评估,以了解它们在处理多语言比喻性语言方面的能力。

创新点

  1. 多语言数据集扩展:将数据集扩展到波斯语,为低资源语言的比喻性语言理解提供了新的资源。
  2. 全面的模型评估:不仅评估了闭源模型,还评估了开源模型,提供了对不同模型在多语言环境中性能的深入理解。
  3. 提示工程策略的比较:系统地比较了不同的提示工程策略,揭示了它们在不同语言和比喻类型中的有效性。

算法模型

研究中评估了多种LLMs,包括闭源模型(GPT-3.5、GPT-4o mini、Gemini 1.5)和开源模型(Llama 3.1、Qwen2)。这些模型被用来评估它们在解释成语和比喻方面的能力。

实验效果(包含重要数据与结论)

实验结果表明:

  • 模型性能差异:不同模型在解释比喻性语言时表现出显著的性能差异。例如,Gemini 1.5在成语解释方面表现最好,而Llama 3.1在某些语言中表现优于Qwen2。
  • 语言和比喻类型的影响:模型性能受到语言和比喻类型的影响。例如,对于英语和印尼语,模型性能较好,而对于低资源语言,性能较差。
  • 提示工程的有效性:提示工程方法(如思维链提示)在某些情况下提高了模型性能,尤其是在较小的模型中。
  • 翻译的影响:将测试数据翻译成英语可以提高某些模型的性能,但这取决于语言、模型和任务。
    在这里插入图片描述
    在这里插入图片描述

推荐阅读指数: 4.0

3. Beyond Browsing: API-Based Web Agents

Authors: Yueqi Song, Frank Xu, Shuyan Zhou, Graham Neubig
https://arxiv.org/abs/2410.16464
在这里插入图片描述
超越浏览:基于API的网络代理

摘要

本文探讨了传统基于浏览器的网络代理与基于API的AI代理在执行在线任务时的性能差异。研究者提出了两种新型代理:(1) 仅通过API调用执行在线任务的API调用代理,类似于传统的编码代理;(2) 能够通过Web浏览和APIs与在线数据交互的混合代理。在WebArena这一广泛使用的现实基准测试中进行的实验表明,基于API的代理优于基于Web浏览的代理。混合代理在各项任务中几乎一致性地超越其他代理,与仅Web浏览相比,绝对性能提升了超过20.0%,达到了35.8%的成功率,实现了任务不可知代理中的最先进性能。这些结果强烈表明,当API可用时,它们是仅依赖Web浏览的有吸引力的替代方案。

研究背景

网络代理通过浏览器界面辅助人类完成日常任务,如在线购物、规划、旅行规划等。现有的网络代理通常在图形用户界面(GUI)内操作,模拟人类行为,如点击和输入。然而,这些网站最初是为人类消费而设计的,可能不是机器的理想接口。与此同时,APIs是专为机器与在线内容交互而设计的另一种接口,允许机器直接与网络服务的后端通信,发送和接收机器友好格式的数据。

问题与挑战

尽管APIs提供了直接的机器接口,但AI代理是否能有效使用APIs来处理现实世界的在线任务,以及在何种条件下这是可能的,这些问题在科学文献中尚未得到充分研究。此外,并非所有网站都提供全面的API支持,在这种情况下,Web浏览行为可能仍然是必须的。

如何解决

研究者开发了新的基于API的代理,直接通过API调用与网络服务交互,绕过了通过模拟点击与Web页面GUI交互的需求。同时,为了处理那些API支持有限的网站,研究者探索了一种混合方法,将基于API的代理与Web浏览代理结合起来,开发了一种混合代理,能够根据任务需求和可用资源动态切换API调用和Web浏览。
在这里插入图片描述
在这里插入图片描述

创新点

  1. API调用代理:提出了一种新型的AI代理,它仅通过API调用执行在线任务,类似于传统的编码代理。
  2. 混合代理:提出了一种能够通过Web浏览和APIs与在线数据交互的混合代理,这种代理能够根据任务需求动态切换执行API调用或Web浏览动作,或两者结合。
  3. 实验设计:在WebArena这一广泛使用的现实基准测试中进行实验,全面评估了基于API的代理和混合代理的性能。

算法模型

研究中评估了三种类型的代理:

  1. 基于Web浏览的代理:通过模拟人类浏览行为,如点击、输入和页面间导航来执行任务。
  2. 基于API的代理:通过直接调用API与网络服务交互,执行任务。
  3. 混合代理:结合了基于Web浏览的代理和基于API的代理,能够在API调用和Web浏览之间动态切换。

实验效果(包含重要数据与结论)

实验结果表明:

  • API基代理:在WebArena任务中平均性能提升了约15%,尤其在具有广泛API支持的网站(如Gitlab)上成功率更高。
  • 混合代理:在所有类别中表现优于其他代理,准确率提高了超过5%,达到了35.8%的成功率。
  • 成本与效率:虽然基于API的代理和混合代理在步骤数上更多,但由于它们能够更准确、高效地完成任务,因此增加的成本是合理的。
    在这里插入图片描述

推荐阅读指数: 4.0

4. Multi-head Sequence Tagging Model for Grammatical Error Correction

Authors: Kamal Al-Sabahi, Kang Yang, Wangwang Liu, Guanyu Jiang, Xian Li, Ming Yang
https://arxiv.org/abs/2410.16473

在这里插入图片描述
多头序列标注模型用于语法错误纠正

摘要

本研究旨在解决语法错误纠正(GEC)问题,这是一个将源序列映射到目标序列的任务,两者仅在少数跨度上有所不同。因此,研究者将注意力转向了非自回归或序列标注模型。在这些模型中,GEC任务从Seq2Seq简化为用编辑命令对输入标记进行标注,这些命令从大编辑空间中选择。由于类别众多和可用数据集的限制,当前的序列标注方法在处理广泛的语法错误方面仍存在问题。为此,研究者进一步简化了GEC,将其分解为七个相关子任务:插入、删除、合并、替换、转换、检测和纠正,其中纠正是主要关注点。提出了一个新颖的多头和多任务学习模型,以有效利用训练数据并利用相关任务训练信号中的信息。为了缓解可用训练样本数量有限的问题,研究者使用新的去噪自编码器生成新的合成数据集,用于预训练。此外,提出了一种新的字符级转换,以增强序列到编辑的功能并提高模型的词汇覆盖范围。模型在BEA-19(测试)和CoNLL-14(测试)上分别达到了74.4/77.0和68.6/69.1的F0.5分数。在JFLEG测试集上评估时,单模型和集成模型的GLEU分数分别为61.6和61.7。与最近发布的最先进结果相比,性能有了显著提升。

研究背景

语法错误纠正(GEC)任务涉及检测和纠正各种错误,如标点、拼写、语法和词汇选择。近年来,由于其能够改善用户生成文本的语法性和可读性,GEC已成为众多建模工作的研究对象。先前的方法将GEC视为单语文本到文本的重写或机器翻译。虽然这些模型可以处理输出之间的完整依赖关系,但在达到人类性能水平之前,仍需解决一些严重问题。

问题与挑战

GEC与机器翻译不同,因为它只改变了源句子中的几个词。以前的工作表明,在推理过程中,Seq2Seq模型的主要效率瓶颈在于,大部分解码步骤都花在了将原始句子中的语法正确标记复制到目标句子上。通过节省这些时间,可以提高GEC模型的效率。此外,Seq2Seq方法通常需要大型训练集才能良好工作,而这些数据集稀缺且具有挑战性。

如何解决

研究者通过以下方式解决上述问题:

  1. 多头和多任务学习模型:将GEC任务分解为七个子任务,并为每个子任务分配一个单独的分类头。
  2. 去噪自编码器:使用去噪自编码器模型将大量未标记的数据集转换为人工标记的数据集,用于预训练。
  3. 字符级转换:提出字符级转换以增强序列到编辑功能,并提高模型的词汇覆盖范围。

创新点

  1. 多头序列标注模型:首次在GEC的序列标注设置中使用多头架构。
  2. 多任务学习方法:通过将GEC任务分解为多个子任务,利用相关任务训练信号中的信息,提高数据效率和模型泛化能力。
  3. 去噪自编码器预训练:利用未标记的数据集生成合成数据,以缓解训练样本数量有限的问题。
  4. 字符级转换:通过删除、替换、追加、合并、分割或更改一个或多个字符的大小写,增强模型处理词汇的能力。

算法模型

研究者提出的模型基于深度双向变换器(如BERT、RoBERTa、XLNet等)作为编码器,提供每个输入标记的上下文编码,并在顶部添加一个分类头,用于GEC序列标注。模型包含七个分类头,分别对应插入、删除、合并、替换、转换、检测和纠正等子任务。
在这里插入图片描述

实验效果(包含重要数据与结论)

实验结果表明,提出的多头序列标注模型在BEA-19(测试)和CoNLL-14(测试)上取得了74.4/77.0和68.6/69.1的F0.5分数,显著优于许多现有模型。在JFLEG测试集上,单模型和集成模型的GLEU分数分别为61.6和61.7,超过了最近发布的最先进结果。
在这里插入图片描述

推荐阅读指数: 5

代码:

https://github.com/alsabahi2030/Synthetic-Data-Generation.git

# -*- coding: utf-8 -*-
"""
pre-processing large monolingual corpus with several heuristics
"""
import argparse
import os
import re
import string
from pathlib import Pathimport loggingSYMBOLS = set(string.punctuation)
ASCII_CHARS = set(string.printable)def get_args():parser = argparse.ArgumentParser(description='my script')parser.add_argument('--input', '-i', default=None, help='files to read, if empty, stdin is used')parser.add_argument('--output', '-o', required=True,help='path to output dir')args = parser.parse_args()return argsdef remove_long_sent(line, threshold=80):tokens = line.split(' ')if len(tokens) > threshold:return Noneelse:return linedef remove_short_sent(line, threshold=3):tokens = line.split(' ')if len(tokens) <= threshold:return Noneelse:return linedef remove_too_many_puncts(line, thresh_ratio=0.20):tokens = line.split(' ')n_puncs = len([t for t in tokens if t in SYMBOLS])n_total = len(tokens)ratio = (n_puncs / n_total)if ratio >= thresh_ratio and n_total >= 10:return Noneelse:return linedef remove_nonascii_chars(line):filterred = ''.join(c for c in line if c in ASCII_CHARS)if len(filterred) < len(line):return Noneelse:return linedef remove_consecutive_whitespace(line):if re.search(r'\s{3,}', line):return Noneelse:return linedef remove_too_many_digits_sentence(line):total_tokens = len(line.split())match = re.findall(r'\s\d[\d,\/]*\s', line)if not match:return lineelse:n_digit_tokens = len(match)if n_digit_tokens / total_tokens > 0.10:return Noneelse:return linedef main(args):#dest = Path(args.output, *Path(args.input).parts[-1:])logging.info('Processing: {}'.format(args.input))with open(args.input, 'r', encoding='utf-8') as fi, open(args.output, 'w', encoding='utf-8') as fo:for line in fi:line = line.strip()# remove if line is too longif line:line = remove_long_sent(line)# remove if line is too shortif line:line = remove_short_sent(line)# remove if certain ratio of tokens are symbolsif line:line = remove_too_many_puncts(line)# remove if line contains non-ascii charactersif line:line = remove_nonascii_chars(line)# remove if consecutive spaces exist (probably the numerical table)if line:line = remove_consecutive_whitespace(line)# remove if too many digits existif line:line = remove_too_many_digits_sentence(line)if line:line = line + '\n'# fo.write(line.encode('utf-8'))fo.write(line)if __name__ == "__main__":args = get_args()main(args)

5. BIG5-CHAT: Shaping LLM Personalities Through Training on Human-Grounded Data

Authors: Wenkai Li, Jiarui Liu, Andy Liu, Xuhui Zhou, Mona Diab, Maarten Sap
https://arxiv.org/abs/2410.16491

在这里插入图片描述

文章标题翻译

通过在人类基础数据上训练塑造大型语言模型的个性:BIG5-CHAT

摘要

本研究旨在将现实人类个性特征嵌入大型语言模型(LLMs)。先前的方法主要依赖于基于提示的方法来描述与所需个性特征相关的行为,这些方法在现实性和有效性方面存在问题。为了解决这些限制,研究者介绍了BIG5-CHAT,这是一个包含100,000个对话的大型数据集,旨在将模型基础定位在人类如何在文本中表达个性。利用这个数据集,研究者探索了监督式微调和直接偏好优化作为基于训练的方法,使LLMs更自然地与人类个性模式对齐。这些方法在个性评估方面,如BFI和IPIP-NEO,超过了提示方法,并且与人类数据更接近的特质相关性。此外,实验表明,训练表现出更高尽责性、更高宜人性、更低外向性和更低神经质的模型在推理任务上表现更好,这与心理学中这些特质如何影响人类认知表现的发现一致。据研究者所知,这项工作是第一个全面研究,展示了基于训练的方法如何通过学习真实人类行为来塑造LLM个性。

研究背景

现实地模拟人类个性及其对文本生成的影响是一个具有挑战性但至关重要的问题。将个性特征嵌入LLMs可以极大地增强它们在从对话代理到教育工具和心理健康平台等一系列应用中的真实性。通过创建更类似于人类的互动,LLMs可以更好地模拟不同的人物角色,并更可靠地适应不同的上下文。

问题与挑战

现有方法主要依赖于用与个性特征相关的行为描述来提示模型,这些行为描述通常来源于用于测试个性特征的相同心理问卷,这引发了评估有效性的问题。更重要的是,这些行为描述对于基于文本的LLMs来说是无意义的,未能将个性特征基础定位在人类在文本中表达个性的真实模式上。此外,缺乏大规模、人类生成的、带有个性特征标注的数据集限制了基于训练方法的探索,使得大多数先前的研究仅限于基于提示的方法。

如何解决

研究者通过以下方式解决这些问题:

  1. 构建大规模对话数据集BIG5-CHAT:包含100,000个对话,捕捉个性表达的多样性。
  2. 探索基于训练的方法:使用监督式微调和直接偏好优化(DPO)来对齐LLMs的个性特征。
  3. 生成预训练数据集:使用去噪自编码器模型生成新的合成数据集,用于预训练。

创新点

  1. BIG5-CHAT数据集:首个包含100,000个对话的大型数据集,涵盖广泛的个性表达。
  2. 多任务学习(MTL):通过将GEC任务分解为七个子任务,使用共享模型同时学习多个任务。
  3. 基于训练的方法:与传统的提示方法相比,基于训练的方法能够更深入、更可靠地整合个性特征。
  4. 个性特征与推理能力的相关性研究:研究个性特征如何影响LLMs在不同推理任务中的表现。

算法模型

研究者提出的模型基于深度双向变换器(如BERT、RoBERTa、XLNet)作为编码器,提供每个输入标记的上下文编码,并在顶部添加一个分类头,用于GEC序列标注。模型包含七个分类头,分别对应插入、删除、合并、替换、转换、检测和纠正等子任务。

实验效果(包含重要数据与结论)

实验结果表明:

  • 个性评估:在BFI和IPIP-NEO个性测试中,基于训练的方法(SFT和DPO)超过了提示方法。
  • 推理任务表现:训练表现出更高尽责性和宜人性、更低外向性和神经质的模型在推理任务上表现更好,这与心理学中这些特质如何影响人类认知表现的发现一致。
  • 模型性能:单模型和集成模型在BEA-19(测试)和CoNLL-14(测试)上分别达到了74.4/77.0和68.6/69.1的F0.5分数。在JFLEG测试集上评估时,单模型和集成模型的GLEU分数分别为61.6和61.7。
    在这里插入图片描述
    在这里插入图片描述

推荐阅读指数:4.0


后记

如果觉得我的博客对您有用,欢迎 打赏 支持!三连击 (点赞、收藏、关注和评论) 不迷路,我将持续为您带来计算机人工智能前沿技术(尤其是AI相关的大语言模型,深度学习和计算机视觉相关方向)最新学术论文及工程实践方面的内容分享,助力您更快更准更系统地了解 AI前沿技术

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

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

相关文章

C1.【C++ Cont】准备

目录 1.平台 2.Dev C的使用方法 1.新建项目 2.几个常用按钮 3.修改字体 3.第一个C程序:打印Hello World! 4.注 1.平台 Dev C,VS2022 2.Dev C的使用方法 1.新建项目 选择Console Application控制台应用程序,C项目 项目的后缀dev 默认下创建了一个main.cpp,cpp为c源程…

uniapp编译多端项目App、小程序,input框键盘输入后

项目场景&#xff1a; uniapp编译后的小程序端&#xff0c;app端 在一个输入框 输入消息后&#xff0c;点击键盘上的操作按钮之后键盘不被收起&#xff0c;点击其他发送按钮时&#xff0c;键盘也不被收起。 问题描述 在编译后的app上普通的事件绑定&#xff0c;tap,click在发…

pip命令行安装pytest 一直报错

其实就是切换不同镜像安装 我最终成功的是阿里云镜像 pip install --trusted-host mirrors.aliyun.com pytest 也可以用其他的 pip install -i https://pypi.org/simple pytest # 或者使用其他的镜像源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest

【339】基于springboot的新能源充电系统

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;新能源充电系统的设计与实现 摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解…

为什么 C 语言数组是从 0 开始计数的?

C 语言等大多数编程语言的数组从 0 开始而不从 1 开始&#xff0c;有两个原因&#xff1a; 第一&#xff1a;地址计算更方便 C 语言从 0 开始的话&#xff0c;array[i] 的地址就正好是&#xff1a; (array i) 如果是从 1 开始的话&#xff0c;就是 (array i - 1) 多一次计…

`map` 是 JavaScript 数组的一个高阶函数,用于对数组中的每个元素进行操作,并返回一个新的数组

文章目录 map 方法的作用语法示例 具体到你的代码完整代码片段总结 当然可以解释一下 map 方法的作用。 map 方法的作用 map 是 JavaScript 数组的一个高阶函数&#xff0c;用于对数组中的每个元素进行操作&#xff0c;并返回一个新的数组。新数组的每个元素是原数组中对应元…

代码随想录day15 二叉树(3)

文章目录 day11 栈与队列(2)栈与队列的总结 day13 二叉树&#xff08;1&#xff09;day14 二叉树&#xff08;2&#xff09;day15 二叉树&#xff08;3&#xff09; day11 栈与队列(2) 逆波兰表达式求值 https://leetcode.cn/problems/evaluate-reverse-polish-notation/ 逆…

计算机毕业设计Python+大模型股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; Python大模型股票预测系统 …

[山河CTF 2024] week3

一周不在家&#xff0c;这是补的最后一篇。后边的还有0xgame和shctf的末周。打不动了。 Crypto Approximate_n 题目分两部分&#xff0c;flag分两块两个RSA&#xff0c;第1个泄露了4个n_approxkpr的值&#xff0c;后边只泄露了1个。 第1部分利用以前的模板&#xff0c;造格…

基于SSM+VUE园艺生活植物网站JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

C++初阶(八)--内存管理

目录 引入&#xff1a; 一、C中的内存布局 1.内存区域 2.示例变量存储位置说明 二、C语言中动态内存管理 三、C内存管理方式 1.new/delete操作内置类型 2.new和delete操作自定义类型 四、operator new与operator delete函数&#xff08;重要点进行讲解&#xff09; …

基于vue框架的的驾校预约车辆管理系统设计与实现jwoqj(程序+源码+数据库+调试部署+开发环境)系统界面在最后面

系统程序文件列表 项目功能&#xff1a;学员,教练员,驾校车辆,车辆信息,车辆类型,预约信息,时间段,教学课程,上报维修,维修内容,练车记录,取消信息 开题报告内容 基于Vue框架的驾校预约车辆管理系统设计与实现开题报告 一、研究背景与意义 随着驾驶培训行业的快速发展&…

JVM结构图

JVM&#xff08;Java虚拟机&#xff09;是Java编程语言的核心组件之一&#xff0c;负责将Java字节码翻译成机器码并执行。JVM由多个子系统组成&#xff0c;包括类加载子系统、运行时数据区、执行引擎、Java本地接口和本地方法库。 类加载子系统&#xff08;Class Loading Subsy…

IDEA 打包首个java项目为jar包

新建java项目 创建一个java项目&#xff0c;使用Maven进行项目构建&#xff0c;高级配置方面主要设置了项目包版本等信息。 依照步骤生成相关的项目。 设置maven环境 从项目设置中查找maven相关配置 设置&#xff08;settings&#xff09;-》构建、执行、部署&#xff08;B…

【ARCGIS实验】地形特征线的提取

目录 一、提取不同位置的地形剖面线 二、将DEM转化为TIN 三、进行可视分析 四、进行山脊、山谷等特征线的提取 1、正负地形提取&#xff08;用于校正&#xff09; 2、山脊线提取 3、山谷线的提取 4、河网的提取 5、流域的分割 五、鞍部点的提取 1、背景 2、目的 3…

达梦数据库在终端/控制台交互查询SQL语句,查询结果导出excel

达梦数据库在终端/控制台交互查询SQL语句&#xff0c;查询结果导出excel 依赖 安装JDK&#xff0c;maven引入达梦包&#xff0c;maven打包主类改成查询工具类&#xff0c;即可放到linux平台运行 <dependency><groupId>com.dameng</groupId><artifactId…

【Linux】设备树

设备树简介 我们前面介绍过平台设备驱动&#xff0c;知道硬件资源信息可以放在设备中&#xff0c;然后在驱动的probe函数中从设备中获取资源信息。但是&#xff0c;Linux3.x以后的版本引入了设备树&#xff0c;设备树用于描述一个硬件平台的硬件资源&#xff0c;一般描述那些不…

node和npm版本冲突

问题描述&#xff1a; 解决办法&#xff1a; 一、 查看自己当前的node和npm版本 node -v npm -v 二、 登录node官网地址 node官网地址 https://nodejs.org/zh-cn/about/previous-releases 查看与自己node版本兼容的是哪一版本的npm,相对应进行更新即可。 三 升级node 下载最…

笑死人不偿命的联想:大象是什么?

element&#xff08;元素&#xff09;一词&#xff0c;起源不明。但是它长得很像elephant&#xff08;大象&#xff09;一词&#xff0c;其同通部分为ele-这一结构&#xff0c;因此我们很容易将两个单词进行拆分出来&#xff1a; element n.元素 // ele ment名缀elephant n.大…

书生-第四期闯关:完成SSH连接与端口映射并运行hello_world.py

端口映射完成后&#xff0c;访问127.0.0.1&#xff1a;7860成功展示如下界面&#xff1a; 书生浦语大模型实战营 项目地址&#xff1a;https://github.com/InternLM/Tutorial/