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

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略

导读:2024年7月23日,Meta重磅推出Llama 3.1。本篇文章主要提到了Meta推出的Llama 3.1自然语言生成模型。

背景和痛点

>> 过去开源的大型语言模型在能力和性能上一直落后于闭源模型。

具体解决方案

>> Meta公开发布了Meta Llama 3.1 405B模型,这是目前世界上首个能与顶级AI模型媲美、最大和能力最强的开源基础模型。

>> 除了405B旗舰模型外,还升级了8B和70B多语种模型,上下文长度达到128K,工具使用能力和推理能力显著增强。

>> 提供全套Llama系统,包括引导、合成数据等多个组件。

核心思路和步骤

>> Llama 3.1 405B模型采用标准的transformer架构,通过迭代式监督微调直接偏好优化等技术提升模型性能。

>> 大幅优化全流程,使用16000多张H100 GPU进行405B模型训练。

>> 采用合成数据生成、数据过滤等技术大规模生成高质量指令fine-tune数据。

>> 使用大量高质量预训练和后训练数据,提升各项能力水平。

>> 量化模型到8-bit,降低推理计算需求,支持单节点部署。

>> 发布Llama系统,包含多语种安全模型Llama Guard 3、输入检测工具Prompt Guard等新组件。提出Llama Stack标准接口,推动生态系统兼容性

优势点

>> 首个开源并与闭源模型媲美的人工智能模型。405B模型综合能力与头部闭源模型相当,在通用知识、可控性、数学、工具使用、多语种翻译等方面表现卓越。

>> 支持合成数据生产、模型蒸馏等前沿工作流,释放更多创新可能。

>> 与闭源模型相比,总体拥有更低的成本和更高的灵活性、可定制性。提供极低成本的产品服务。

>> 真正实现开放获取的AI,推动AI技术更广泛应用。更新了许可协议,允许开发者使用Llama模型的输出来改进其他模型。

>> 坚持开源理念,确保AI公平获取,避免权力过度集中。

>> 该模型将引领创新应用和研究新模式。与AWS、NVIDIA、Databricks等25+合作伙伴合作,为开发者提供完整生态支持。

目录

相关文章

LLMs之LLaMA:LLaMA的简介、安装和使用方法、案例应用之详细攻略

LLMs之LLaMA-2:LLaMA-2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途)之详细攻略

LLMs之Llama3:Llama 3的简介、安装和使用方法、案例应用之详细攻略

LLMs之llama3-from-scratch:llama3-from-scratch(从头开始利用pytorch来实现并解读LLaMA-3模型的每层代码)的简介、核心思路梳理

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略

Llama 3.1的简介

1、要点

2、模型评估

Benchmarks:Llama 3.1 405B、Nemotron 4 340B lnstruct、GPT-4(0125)、GPT-4 Omni、claude 3.5 Sonnet

Benchmarks:Llama 3.1 8B、Gemma 2 9BIT、Mistral 7B lnstruct、Llama 3.1 70B、Mixtral 8x22B Instruct、GPT 3.5 Turbo

Llama 3.1 405B Human Evaluation

3、模型架构:Llama 3.1 405B =15 T个token+1.6K个H100 +仅解码器的transformer 模型架构+迭代式后训练(SFT+DPO)+训练前和训练后的大数量和高质量+采用量化技术(FP8)

4、指令和聊天微调:多轮对齐(SFT+RS+DPO)+使用合成数据+多种数据处理技术过滤到最高质量

5、Llama系统—降低开发门槛:新组件=Llama Guard 3+Prompt Guard+Llama Stack

6、开放驱动创新

7、使用 Llama 3.1 405B 进行构建:持续预训练、RAG、函数调用、合成数据生成等

8、立即试用 Llama 3.1 系列模型

Llama 3.1的安装和使用方法

1、Llama 3.1的安装

Llama 3.1模型下载地址

下载llama-agentic-system

2、使用方法

2.1、工具使用

2.2、多语言代理

2.3、复杂推理

2.4、编码助手

3、Llama 3.1中支持的角色

支持 4 种不同的角色

4、Llama 3.1中的指令

(1)、用户与助手对话

(2)、内置基于 Python 的工具调用

步骤 - 1 用户提示和系统提示

步骤 - 2 模型确定调用哪个工具

步骤 - 3 由工具即 Wolfram Alpha 生成响应。

步骤 - 4 使用工具响应重新提示模型

步骤 - 5 代理对用户的回复

(3)、基于 JSON 的工具调用

步骤 - 1 用户提示自定义工具详细信息

步骤 - 2 模型确定调用哪个工具

步骤 - 3 调用工具的结果被传回模型

当工具调用的结果发送回模型时,我们ipython在标题中使用新角色。

(4)、用户定义自定义工具调用

步骤 - 1 用户提示自定义工具详细信息

步骤 - 2 模型确定调用哪个工具

步骤 - 3 调用工具的结果被传回模型

步骤 - 4 模型生成用户的最终响应

Llama 3.1的案例应用


相关文章

LLMs之LLaMA:LLaMA的简介、安装和使用方法、案例应用之详细攻略

LLMs之LLaMA:LLaMA的简介、安装和使用方法、案例应用之详细攻略_chinese_calendar每年手动更新-CSDN博客

LLMs之LLaMA-2:LLaMA-2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途)之详细攻略

LLMs之LLaMA-2:LLaMA-2的简介(技术细节)、安装、使用方法(开源-免费用于研究和商业用途)之详细攻略_llama2-CSDN博客

LLMs之Llama3:Llama 3的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama 3:Llama 3的简介、安装和使用方法、案例应用之详细攻略-CSDN博客

LLMs之llama3-from-scratch:llama3-from-scratch(从头开始利用pytorch来实现并解读LLaMA-3模型的每层代码)的简介、核心思路梳理

LLMs之llama3-from-scratch:llama3-from-scratch(从头开始利用pytorch来实现并解读LLaMA-3模型的每层代码)的简介、核心思路梳理-CSDN博客

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略-CSDN博客

Llama 3.1的简介

2024年7月23日,Meta重磅推出Llama 3.1。到目前为止,开源大型语言模型在功能和性能方面大多落后于闭源模型。现在,我们正迎来一个由开源引领的新时代。我们公开发布了 Meta Llama 3.1 405B,我们认为这是世界上最大、功能最强大的开源基础模型。迄今为止,所有 Llama 版本的总下载量已超过 3 亿次,而这仅仅是个开始。

Llama 3.1 405B 是第一个公开可用的模型,在常识、可操纵性、数学工具使用和多语言翻译等先进功能方面可与顶级 AI 模型相媲美。随着 405B 模型的发布,我们已准备好增强创新能力,为增长和探索提供前所未有的机会。我们相信最新一代的 Llama 将激发新的应用程序和建模范例,包括合成数据生成,以便改进和训练较小的模型,以及模型提炼,这是开源中从未如此大规模实现的功能。

作为最新版本的一部分,我们推出了 8B  70B 模型的升级版本。这些模型支持多种语言,上下文长度显著增加,达到 128K,使用最先进的工具,推理能力也更强。这使得我们的最新模型能够支持高级用例,例如长篇文本摘要、多语言对话代理和编码助手。我们还对许可证进行了更改,允许开发人员使用 Llama 模型(包括 405B)的输出来改进其他模型。为了履行我们对开源的承诺,从今天开始,我们将这些模型提供给社区,供其在llama.meta.com和Hugging Face上下载,并可在我们广泛的合作伙伴平台生态系统上立即开发。

官网地址:https://ai.meta.com/blog/meta-llama-3-1/

论文地址:https://ai.meta.com/research/publications/the-llama-3-herd-of-models/

文档地址:https://llama.meta.com/docs/overview/

GitHub地址:https://github.com/meta-llama/llama-models

llama-agentic-system地址:https://github.com/meta-llama/llama-agentic-system/

1、要点

>> 开源性:Meta致力于公开可访问的人工智能。马克·扎克伯格发表了一封信,详细阐述了开源对开发者、Meta以及世界的好处。

>> 开源顶级模型:我们最新的模型将上下文长度扩展到128K,支持八种语言,并包含了Llama 3.1 405B——首个前沿级别的开源人工智能模型。

>> 媲美闭源模型:Llama 3.1 405B具有无与伦比的灵活性、控制力和最先进的能力,可与最佳的闭源模型相媲美。新模型将使社区能够解锁新的工作流程,如合成数据生成和模型蒸馏。

>> 新的安全工具:我们正在继续发展Llama成为一个系统,提供更多与模型配合使用的组件,包括参考系统。我们希望赋予开发者工具,以创建他们自己的定制代理和新类型的代理行为。我们正在用新的安全和保障工具来加强这一点,包括Llama Guard 3和Prompt Guard,以负责任地构建。

>> 标准接口:我们发布了有关Llama Stack API的征求意见,希望这个标准接口能简化第三方项目利用Llama模型的过程。

>> 生态系统:生态系统已经准备就绪,超过25个合作伙伴,包括AWS、NVIDIA、Databricks、Groq、Dell、Azure、Google Cloud和Snowflake,第一天就提供服务。

>> 可访问:在美国,您可以在WhatsApp上以及通过访问meta.ai提出具有挑战性的数学或编程问题来尝试Llama 3.1 405B。

2、模型评估

对于此版本,我们在 150 多个涵盖多种语言的基准数据集上评估了性能。此外,我们还进行了广泛的人工评估,在真实场景中将 Llama 3.1 与竞争模型进行了比较。我们的实验评估表明,我们的旗舰模型在一系列任务中与领先的基础模型相媲美,包括 GPT-4、GPT-4o 和 Claude 3.5 Sonnet。此外,我们的小型模型与具有相似数量参数的封闭和开放模型相媲美

Benchmarks:Llama 3.1 405B、Nemotron 4 340B lnstruct、GPT-4(0125)、GPT-4 Omni、claude 3.5 Sonnet

Benchmarks:Llama 3.1 8B、Gemma 2 9BIT、Mistral 7B lnstruct、Llama 3.1 70B、Mixtral 8x22B Instruct、GPT 3.5 Turbo

Llama 3.1 405B Human Evaluation

3、模型架构Llama 3.1 405B =15 T个token+1.6K个H100 +仅解码器的transformer 模型架构+迭代式后训练(SFT+DPO)+训练前和训练后的大数量和高质量+采用量化技术(FP8)

作为我们迄今为止最大的模型,在超过15万亿个 token 上训练 Llama 3.1 405B 是一项重大挑战。为了能够以这种规模进行训练并在合理的时间内取得成果,我们显著优化了整个训练堆栈,并将模型训练推向超过 16,000 个H100 GPU,使 405B 成为第一个以这种规模训练的 Llama 模型。

为了解决这个问题,我们做出了设计选择,重点关注保持模型开发过程的可扩展性和简单性
>> 我们选择了标准的仅解码器的transformer 模型架构,并进行了细微的改动,而不是混合专家模型,以最大限度地提高训练稳定性。
>> 我们采用了迭代式后训练过程,每轮都使用监督式微调直接偏好优化。这使我们能够为每一轮创建最高质量的合成数据,并提高每项功能的性能。

与之前的 Llama 版本相比,我们提高了用于训练前和训练后的数据的数量和质量。这些改进包括为训练前数据开发更仔细的预处理和管理流程、开发更严格的质量保证以及训练后数据的过滤方法。

正如语言模型的缩放定律所预期的那样,我们的新旗舰模型比使用相同程序训练的小型模型表现更好。我们还使用 405B 参数模型来提高小型模型的训练后质量。

为了支持 405B 规模模型的大规模生产推理,我们将模型从 16 位 (BF16) 量化为 8 位 (FP8) 数字,有效降低了所需的计算要求并允许模型在单个服务器节点内运行

4、指令和聊天微调:多轮对齐(SFT+RS+DPO)+使用合成数据+多种数据处理技术过滤到最高质量

借助 Llama 3.1 405B,我们努力提高模型对用户指令的响应能力、质量和详细指令遵循能力,同时确保高水平的安全性。我们面临的最大挑战是支持更多功能、128K上下文窗口和更大的模型大小。

在后训练中,我们通过在预训练模型的基础上进行几轮对齐来生成最终的聊天模型。每轮都涉及监督微调 (SFT)、拒绝抽样 (RS) 和直接偏好优化 (DPO)。我们使用合成数据生成来生成绝大多数 SFT 示例,并进行多次迭代以生成涵盖所有功能的越来越高质量的合成数据。此外,我们投资了多种数据处理技术,以将这些合成数据过滤到最高质量。这使我们能够跨功能扩展微调数据量。

我们仔细平衡数据,以生成在所有功能上都具有高质量模型。例如,即使扩展到 128K 上下文,我们的模型在短上下文基准上也能保持质量。同样,即使我们添加了安全缓解措施,我们的模型仍能继续提供最有帮助的答案。

5、Llama系统—降低开发门槛:新组件=Llama Guard 3+Prompt Guard+Llama Stack

Llama 模型始终旨在作为整体系统的一部分,该系统可以协调多个组件,包括调用外部工具。我们的愿景是超越基础模型,让开发人员能够访问更广泛的系统,让他们能够灵活地设计和创建符合他们愿景的定制产品。这种想法始于去年,当时我们首次引入了核心 LLM 之外的组件

为了持续致力于在模型层之外负责任地开发 AI 并帮助其他人也这样做,我们发布了一个完整的参考系统,其中包括几个示例应用程序,并包括新组件,例如Llama Guard 3(多语言安全模型)和 Prompt Guard(即时注入过滤器)。这些示例应用程序是开源的,社区可以在此基础上进行构建。

Llama System 愿景中的组件实现仍然很分散。这就是为什么我们开始与行业、初创公司和更广泛的社区合作,以帮助更好地定义这些组件的接口。为了支持这一点,我们在 GitHub 上发布了对我们称之为“Llama Stack”的评论请求。Llama Stack 是一组标准化和有主见的接口,用于如何构建规范的工具链组件(微调、合成数据生成)和代理应用程序。我们希望这些接口能够在整个生态系统中得到采用,这将有助于更轻松地实现互操作性。

我们欢迎反馈和改进提案的方法。我们很高兴能够发展围绕 Llama 的生态系统并降低开发人员和平台提供商的门槛。

6、开放驱动创新

与闭源模型不同,Llama 模型权重可供下载。开发人员可以根据自己的需求和应用完全自定义模型,在新数据集上进行训练,并进行额外的微调。这使更广泛的开发人员社区和世界能够更充分地认识到生成式 AI 的强大功能。开发人员可以完全自定义其应用程序,并在任何环境中运行,包括本地、云端,甚至本地笔记本电脑上 - 所有这些都无需与 Meta 共享数据。

尽管许多人可能认为闭源模型更具成本效益,但根据人工智能分析的测试,Llama 模型的每token成本是业内最低的。正如马克·扎克伯格所说,开源将确保全世界更多的人能够享受人工智能的好处和机会,权力不会集中在少数人手中,并且该技术可以更均匀、更安全地在整个社会中部署。这就是为什么我们继续采取措施,让开放式人工智能成为行业标准。

我们看到社区利用过去的 Llama 模型构建了令人惊叹的东西,包括使用 Llama 构建并部署在 WhatsApp 和 Messenger 中的AI 学习伙伴、专为医疗领域量身定制的 LLM,旨在帮助指导临床决策,以及巴西的一家医疗保健非营利初创公司,它使医疗保健系统能够更轻松地以数据安全的方式组织和传达患者的住院信息。借助开源的力量,我们迫不及待地想看看他们利用我们的最新模型构建了什么。

7、使用 Llama 3.1 405B 进行构建持续预训练、RAG、函数调用合成数据生成

对于普通开发者来说,使用 405B 规模的模型是一项挑战。虽然这是一个非常强大的模型,但我们认识到,使用它需要大量的计算资源和专业知识。我们与社区进行了交流,我们意识到生成式 AI 开发不仅仅是提示模型。我们希望让每个人都能充分利用 405B,包括:
>> 实时和批量推理
>> 监督微调
>> 针对您的特定应用评估您的模型
>> 持续预训练
>> 检索增强生成 (RAG)
>> 函数调用
>> 合成数据生成

这正是 Llama 生态系统可以提供帮助的地方。在第一天,开发人员就可以利用 405B 模型的所有高级功能并立即开始构建。开发人员还可以探索高级工作流程,例如易于使用的合成数据生成、遵循模型提炼的交钥匙指示以及使用 AWS、NVIDIA 和 Databricks 等合作伙伴的解决方案实现无缝 RAG。此外,Groq 针对云部署优化了低延迟推理,而戴尔也针对本地系统实现了类似的优化。

我们与 vLLM、TensorRT 和 PyTorch 等主要社区项目合作,从第一天开始提供支持,以确保社区为生产部署做好准备

我们希望 405B 的发布也能激发整个社区的创新,使这种规模的模型的推理和微调变得更容易,并推动模型提炼的下一波研究。

8、立即试用 Llama 3.1 系列模型

我们迫不及待地想看看社区将如何处理这项工作。使用多语言性增加的上下文长度,可以构建有用的新体验,潜力巨大。借助 Llama Stack 和新的安全工具,我们期待继续负责任地与开源社区共同建设。在发布模型之前,我们会通过多种措施来识别、评估和减轻潜在风险,包括通过红队进行部署前风险发现练习以及安全微调。

例如,我们与外部和内部专家进行了广泛的红队测试,以对模型进行压力测试并找到可能使用它们的意外方式。(阅读此博客文章,了解有关我们如何负责任地扩展我们的 Llama 3.1 模型集合的更多信息。)

虽然这是我们迄今为止最大的模型,但我们相信未来仍有许多新的领域值得探索,包括更多设备友好的尺寸、更多模式以及在代理平台层的更多投资。与往常一样,我们期待看到社区将利用这些模型构建的所有令人惊叹的产品和体验。

Llama 3.1的安装和使用方法

1、Llama 3.1的安装

Llama 3.1模型下载地址

官网下载:https://llama.meta.com/

HuggingFace载:https://huggingface.co/collections/meta-llama/llama-31-669fc079a0c406a149a5738f

下载llama-agentic-system

llama-agentic-system地址:https://github.com/meta-llama/llama-agentic-system/

2、使用方法

2.1、工具使用

上传数据集并进行分析。提示模型绘制图形并获取市场数据。

2.2、多语言代理

提示:将汉塞尔和格莱特的故事翻译成西班牙语。

2.3、复杂推理

提示:我有 3 件衬衫、5 条短裤和 1 件太阳裙。我要旅行 10 天,我的假期带够了吗?

2.4、编码助手

提示:创建一个程序,使用递归回溯算法或深度优先搜索算法生成一个完美的迷宫,其大小和复杂性可自定义。

3、Llama 3.1中支持的角色

支持 4 种不同的角色

  • system:设置与 AI 模型交互的环境。它通常包括规则、指南或帮助模型有效响应的必要信息。
  • user:表示人与模型的交互。它包括对模型的输入、命令和问题。
  • ipython:Llama 3.1 中引入的新角色。从语义上讲,此角色表示“工具”。此角色用于在从执行器发送回模型时使用工具调用的输出标记消息。
  • assistant:表示 AI 模型根据“系统”、“ipython”和“用户”提示中提供的上下文生成的响应。

4、Llama 3.1中的指令

注意:对于结合了对话和工具调用的应用程序,我们建议使用 Llama 70B-instruct 或 Llama 405B-instruct。Llama 8B-Instruct 无法可靠地与工具调用定义一起保持对话。它可以用于零次工具调用,但对于模型和用户之间的常规对话,应删除工具指令。
指令模型提供了不同的提示自定义选项,从用户和助手之间的简单交互到复杂的工具调用场景。下面我们提供了一个分为四类的提示示例:用户和助手对话、Python 格式的内置工具、JSON 格式的内置自定义工具以及完整的自定义工具格式,重点是工具调用。可用的工具调用选项需要特别注意,因为它们可以以不同的方式实现。

这些模型经过训练可以识别可以用三种不同工具(Brave Web Search、Wolfram Alpha Search 和 Code Interpreter)回答的提示,并生成适当的 Python 函数调用来获取答案(更多详细信息请参阅内置工具调用部分)。
此外,系统和用户均可在提示中定义自定义格式。该模型经过训练,可以识别提示中的新工具定义,根据这些定义生成工具调用,并仅以 JSON 格式回答,以便更轻松地解析响应并执行适当的工具。

在系统中定义多个工具和/或用户提示可能会导致模型根据用户查询生成多个工具调用。开发人员必须迭代所需的提示才能获得所需的结果并相应地解析结果。

鉴于 Llama 模型用例的多样性,我们建议开发人员根据自己的需求彻底测试不同的提示和格式,并使用此处提供的指南作为这些测试的起点。我们在最后一节“定义您自己的格式”中提供了一个在我们自己的Llama 代理系统环境中运行良好的格式示例。
为了更好地说明下面的流程,此图显示了所描述的信息流:

(1)、用户与助手对话

用户与模型之间的常规多轮对话的格式在 Llama 3 和 Llama 3.1 之间没有变化。下面是其格式的一个简单示例。

<|begin_of_text|><|start_header_id|>system<|end_header_id|>Cutting Knowledge Date: December 2023
Today Date: 23 Jul 2024You are a helpful assistant<|eot_id|><|start_header_id|>user<|end_header_id|>What is the capital for France?<|eot_id|><|start_header_id|>assistant<|end_header_id|></code></span></span></span></span></span>

(2)、内置基于 Python 的工具调用

可以使用以下提示打开三个内置工具(brave_searchwolfram_alphacode interpretersystem
  • Brave Search:用于执行网络搜索的工具调用。
  • Wolfram Alpha:执行复杂数学计算的工具调用。
  • 代码解释器:使模型输出python代码。
<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipython
Tools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023
Today Date: 23 Jul 2024You are a helpful assistant<|eot_id|>
<|start_header_id|>user<|end_header_id|>What is the current weather in Menlo Park, California?<|eot_id|><|start_header_id|>assistant<|end_header_id|></code></span></span></span></span></span>

需要注意以下几点:

  • 只需包含 Environment: ipython 即可打开代码解释器;因此,您无需在 Tools: 行中指定代码解释。模型可以生成由执行器解释的 Python 代码,并将结果返回给模型
  • 助手响应的消息正文以特殊标签<|python_tag|>开头
  • 如上所述,在这样的环境中,模型可以生成 <|eom_id|> ,而不仅仅是标准的 <|eot_id|> 。后者表示回合已完成,而前者表示继续进行多步推理。也就是说,模型期望在工具调用的输出中出现延续消息。
内置工具使用Python 语法调用,而不是像zero-shot工具那样使用JSON 格式。模型为每个工具生成的 Python 调用格式如下:
# for Search
<|python_tag|>
brave_search.call(query="...")
<|eom_id|># for Wolfram
<|python_tag|>
wolfram_alpha.call(query="...")
<|eom_id|>
要使用模型的 zero-shot学习功能创建自定义工具调用,您可以在系统提示中提供工具定义的说明以及您希望模型为调用生成的格式。llama-agentic-system GitHub 存储库中提供了一个工作示例。 您可以在此处查看。
下面的示例展示了用户 ⇔ 模型 ⇔ 工具之间的 端到端提示交互 。此示例系统使用wolfram_alpha内置工具。(请注意:模型不会执行对工具的调用;您需要使用我们的llama-agentic-system或其他类似框架来利用工具调用功能。)
步骤 - 1 用户提示和系统提示
<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipython
Tools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023
Today Date: 23 Jul 2024You are a helpful Assistant.<|eot_id|><|start_header_id|>user<|end_header_id|>Can you help me solve this equation: x^3 - 4x^2 + 6x - 24 = 0<|eot_id|><|start_header_id|>assistant<|end_header_id|>
步骤 - 2 模型确定调用哪个工具
<|python_tag|>wolfram_alpha.call(query="solve x^3 - 4x^2 + 6x - 24 = 0")<|eom_id|>
步骤 - 3 由工具即 Wolfram Alpha 生成响应。
{"queryresult": {"success": true,"inputstring": "solve x^3 - 4x^2 + 6x - 24 = 0","pods": [{"title": "Input interpretation","subpods": [{"title": "","plaintext": "solve x^3 - 4 x^2 + 6 x - 24 = 0"}]},{"title": "Results","primary": true,"subpods": [{"title": "","plaintext": "x = 4"},{"title": "","plaintext": "x = ± (i sqrt(6))"}]},...]}
}
步骤 - 4 使用工具响应重新提示模型
<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipython
Tools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023
Today Date: 23 Jul 2024You are a helpful Assistant.<|eot_id|><|start_header_id|>user<|end_header_id|>Can you help me solve this equation: x^3 - 4x^2 + 6x - 24 = 0<|eot_id|><|start_header_id|>assistant<|end_header_id|><|python_tag|>wolfram_alpha.call(query="solve x^3 - 4x^2 + 6x - 24 = 0")<|eom_id|><|start_header_id|>ipython<|end_header_id|>{"queryresult": {"success": true, "inputstring": "solve x^3 - 4x^2 + 6x - 24 = 0", "pods": [{"title": "Input interpretation", "subpods": [{"title": "", "plaintext": "solve x^3 - 4 x^2 + 6 x - 24 = 0"}]}, {"title": "Results", "primary": true, "subpods": [{"title": "", "plaintext": "x = 4"}, {"title": "", "plaintext": "x = \u00b1 (i sqrt(6))"}]}, ... ]}}<|eot_id|><|start_header_id|>assistant<|end_header_id|>         
步骤 - 5 代理对用户的回复
The solutions to the equation x^3 - 4x^2 + 6x - 24 = 0 are x = 4 and x = ±(i√6).<|eot_id|>

(3)、基于 JSON 的工具调用

Meta Llama 模型现在可以从单个消息输出自定义工具调用,以便 更轻松地调用工具 。以下提示提供了如何从模型输出调用自定义工具的示例。需要注意的是,模型 本身并不执行调用 ;它提供结构化输出以 方便执行器调用 。可以在llama-agentic-system中找到一个示例执行器。工具格式类似于OpenAI 定义,可以进行调整以更好地满足您的需求,如下一节所述。
  • 使用自定义工具调用时,要使模型输出eom_id,需要在系统提示符中添加以下指令:Environment: ipython。否则,它应该输出eot_id
  • 需要调整系统提示以告知模型如何处理工具调用输出
  • 工具定义在用户提示中提供,因为这是模型针对内置 JSON 工具调用进行训练的方式。但是,也可以在系统提示中提供工具定义,并获得类似的结果。开发人员必须测试哪种方式最适合他们的用例。

步骤 - 1 用户提示自定义工具详细信息
<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipython
Tools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023
Today Date: 23 Jul 2024# Tool Instructions
- Always execute python code in messages that you share.
- When looking for real time information use relevant functions if available else fallback to brave_searchYou have access to the following functions:Use the function 'spotify_trending_songs' to: Get top trending songs on Spotify
{"name": "spotify_trending_songs","description": "Get top trending songs on Spotify","parameters": {"n": {"param_type": "int","description": "Number of trending songs to get","required": true}}
}If a you choose to call a function ONLY reply in the following format:
<{start_tag}={function_name}>{parameters}{end_tag}
wherestart_tag => `<function`
parameters => a JSON dict with the function argument name as key and function argument value as value.
end_tag => `</function>`Here is an example,
<function=example_function_name>{"example_name": "example_value"}</function>Reminder:
- Function calls MUST follow the specified format
- Required parameters MUST be specified
- Only call one function at a time
- Put the entire function call reply on one line"
- Always add your sources when using search results to answer the user queryYou are a helpful Assistant.<|eot_id|><|start_header_id|>user<|end_header_id|>Can you check the top 5 trending songs on spotify?<|eot_id|><|start_header_id|>assistant<|end_header_id|>
步骤 - 2 模型确定调用哪个工具
  • 由于我们没有使用Environment: ipython系统提示中的指令,因此模型以 token 结束生成eot_id,而不是eom_idtoken
{"name": "get_current_conditions", "parameters": {"location": "San Francisco, CA", "unit": "Fahrenheit"}}<eot_id>
步骤 - 3 调用工具的结果被传回模型
当工具调用的结果发送回模型时,我们ipython在标题中使用新角色。
<|begin_of_text|><|start_header_id|>system<|end_header_id|>You are a helpful assistant with tool calling capabilities. When you receive a tool call response, use the output to format an answer to the orginal use question.<|eot_id|><|start_header_id|>user<|end_header_id|>Given the following functions, please respond with a JSON for a function call with its proper arguments that best answers the given prompt.Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}. Do not use variables.{"type": "function","function": {"name": "get_current_conditions","description": "Get the current weather conditions for a specific location","parameters": {"type": "object","properties": {"location": {"type": "string","description": "The city and state, e.g., San Francisco, CA"},"unit": {"type": "string","enum": ["Celsius", "Fahrenheit"],"description": "The temperature unit to use. Infer this from the user's location."}},"required": ["location", "unit"]}}
}Question: what is the weather like in San Fransisco?<|eot_id|><|start_header_id|>assistant<|end_header_id|>{"name": "get_current_conditions", "parameters": {"location": "San Francisco, CA", "unit": "Fahrenheit"}}<|eot_id|><|start_header_id|>ipython<|end_header_id|>Clouds giving way to sun Hi: 76° Tonight: Mainly clear early, then areas of low clouds forming Lo: 56°"<|eot_id|><|start_header_id|>assistant<|end_header_id|>
步骤 - 4 模型生成用户的最终响应
The weather in Menlo Park is currently cloudy with a high of 76° and a low of 56°, with clear skies expected tonight.<eot_id>

(4)、用户定义自定义工具调用

以下提示提供了一个示例,说明如何在系统提示中定义自己的格式并在与模型交互时使用它。此格式将使用新的自定义 <function> 标记将 JSON 对象与函数参数括起来。

  • 模型 eom_id根据Environment: ipython指令使用了 token。
  • 系统提示定义了自定义格式以及模型可用的工具。
步骤 - 1 用户提示自定义工具详细信息
<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipython
Tools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023
Today Date: 23 Jul 2024# Tool Instructions
- Always execute python code in messages that you share.
- When looking for real time information use relevant functions if available else fallback to brave_searchYou have access to the following functions:Use the function 'spotify_trending_songs' to: Get top trending songs on Spotify
{"name": "spotify_trending_songs","description": "Get top trending songs on Spotify","parameters": {"n": {"param_type": "int","description": "Number of trending songs to get","required": true}}
}If a you choose to call a function ONLY reply in the following format:
<{start_tag}={function_name}>{parameters}{end_tag}
wherestart_tag => `<function`
parameters => a JSON dict with the function argument name as key and function argument value as value.
end_tag => `</function>`Here is an example,
<function=example_function_name>{"example_name": "example_value"}</function>Reminder:
- Function calls MUST follow the specified format
- Required parameters MUST be specified
- Only call one function at a time
- Put the entire function call reply on one line"
- Always add your sources when using search results to answer the user queryYou are a helpful Assistant.<|eot_id|><|start_header_id|>user<|end_header_id|>Can you check the top 5 trending songs on spotify?<|eot_id|><|start_header_id|>assistant<|end_header_id|>            
步骤 - 2 模型确定调用哪个工具

现在模型按照系统提示中定义的格式进行响应,函数名称位于开始标记中,参数作为 JSON 对象位于开始和结束标记之间。

  • 由于我们正在使用Environment: ipython系统提示中的指令,模型以令牌结束生成eom_id
<function=spotify_trending_songs>{"n": "5"}</function><eom_id>
步骤 - 3 调用工具的结果被传回模型
当工具调用的结果发送回模型时,我们ipython在标题中使用新角色。
<|begin_of_text|><|start_header_id|>system<|end_header_id|>Environment: ipython
Tools: brave_search, wolfram_alphaCutting Knowledge Date: December 2023
Today Date: 23 Jul 2024# Tool Instructions
- Always execute python code in messages that you share.
- When looking for real time information use relevant functions if available else fallback to brave_searchYou have access to the following functions:Use the function 'spotify_trending_songs' to: Get top trending songs on Spotify
{"name": "spotify_trending_songs", "description": "Get top trending songs on Spotify", "parameters": {"n": {"param_type": "int", "description": "Number of trending songs to get", "required": true}}}If a you choose to call a function ONLY reply in the following format:
<{start_tag}={function_name}>{parameters}{end_tag}
wherestart_tag => `<function`
parameters => a JSON dict with the function argument name as key and function argument value as value.
end_tag => `</function>`Here is an example,
<function=example_function_name>{"example_name": "example_value"}</function>Reminder:
- Function calls MUST follow the specified format
- Required parameters MUST be specified
- Only call one function at a time
- Put the entire function call reply on one line"
- Always add your sources when using search results to answer the user queryYou are a helpful Assistant.<|eot_id|><|start_header_id|>user<|end_header_id|>Can you check the top 5 trending songs on spotify?<|eot_id|><|start_header_id|>assistant<|end_header_id|><function=spotify_trending_songs>{"n": "5"}</function><|eom_id|><|start_header_id|>ipython<|end_header_id|>["1. BIRDS OF A FEATHER by Billie Eilish", "2. Espresso by Sabrina Carpenter", "3. Please Please Please by Sabrina Carpenter", "4. Not Like Us by Kendrick Lamar", "5. Gata Only by FloyyMenor, Cris Mj"]<|eot_id|><|start_header_id|>assistant<|end_header_id|>            
步骤 - 4 模型生成用户的最终响应
The top 5 trending songs on Spotify are:1. BIRDS OF A FEATHER by Billie Eilish
2. Espresso by Sabrina Carpenter
3. Please Please Please by Sabrina Carpenter
4. Not Like Us by Kendrick Lamar
5. Gata Only by FloyyMenor, Cris Mj<|eot_id|>

Llama 3.1的案例应用

持续更新中……

相关文章:

LLMs之Llama 3.1:Llama 3.1的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama 3.1&#xff1a;Llama 3.1的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2024年7月23日&#xff0c;Meta重磅推出Llama 3.1。本篇文章主要提到了Meta推出的Llama 3.1自然语言生成模型。 背景和痛点 >> 过去开源的大型语言模型在能力和性能上一…...

如何实现一个大模型在回答问题时同时提供相关内容链接

通义生成 为了让大模型在回答问题时能够提供相关内容链接&#xff0c;通常采用的方法是结合检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;的技术。这种方法可以让大模型在生成答案的同时&#xff0c;从外部知识源中检索相关信息&#xff0c;并将这…...

<数据集>玉米地杂草识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;9900张 标注数量(xml文件个数)&#xff1a;9900 标注数量(txt文件个数)&#xff1a;9900 标注类别数&#xff1a;2 标注类别名称&#xff1a;[Maize, Weed] 序号类别名称图片数框数1Maize8439125142Weed959231048…...

vue3中动态添加form表单校验

<template><div><div v-for"(formData, index) in forms" :key"index"><u-form :model"formData" :rules"rules" ref"formRefs"><u-form-item label"用户名" prop"username"…...

Java面试八股之什么是声明式事务管理,spring怎么实现声明式事务管理?

什么是声明式事务管理&#xff0c;spring怎么实现声明式事务管理&#xff1f; 声明式事务管理是一种编程范式&#xff0c;它允许开发人员通过声明性的配置或注解&#xff0c;而不是硬编码事务处理逻辑&#xff0c;来指定哪些方法或类应该在其上下文中执行事务。这种方法将事务…...

springboot 缓存预热的几种方案

缓存预热是指在 Spring Boot 项目启动时&#xff0c;预先将数据加载到缓存系统&#xff08;如 Redis&#xff09;中的一种机制。 这里我给大家总结几个缓存预热的方案。 方案1&#xff1a;使用启动监听事件实现缓存预热 可以使用 ApplicationListener 监听 ContextRefreshed…...

谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试

文章目录 一&#xff0c;Java中上传文件到阿里云OSS1&#xff0c;整合阿里云OSS2&#xff0c;测试上传文件 二&#xff0c;Java中整合阿里云OSS服务指南引言准备工作1. 注册阿里云账号2. 获取Access Key3. 添加依赖 实现OSS客户端1. 初始化OSSClient2. 创建Bucket3. 上传文件4.…...

linux c 递归锁的介绍

递归锁的递归特性确实只是对于持有锁的线程。当一个线程获取了递归锁后&#xff0c;它可以多次重复获取该锁&#xff0c;而不会导致自身阻塞或死锁。这是递归锁的重要特点&#xff0c;它允许同一个线程在已经持有锁的情况下&#xff0c;再次获取相同的锁。 然而&#xff0c;对…...

React好用的组件库有哪些

React好用的组件库有很多&#xff0c;它们各自具有不同的特点和优势&#xff0c;适用于不同的开发场景和需求。以下是一些受欢迎的React组件库及其特点&#xff1a; Material-UI&#xff08;现更名为MUI&#xff09; 特点&#xff1a;这是一个开源的React组件库&#xff0c;实…...

简单快捷!Yarn的安装与使用指南

Yarn 是由 Facebook (现 Meta) 开发的包管理工具。 今天&#xff0c;我将介绍如何使用 Yarn。 目录 Yarn 的官方网站 关于安装 版本确认 开始一个新项目&#xff08;创建 package.json 文件&#xff09; 安装软件包 升级包 运行脚本 执行包的命令 卸载包 总结 Yarn 的…...

【Django】前端技术-网页样式表CSS

文章目录 一、申明规则CSS的导入方式行内样式内部样式外部样式 二、CSS的选择器1. 基本选择器标签选择器&#xff1a; 选择一类标签 标签{}类选择器 class&#xff1a; 选择所有class属性一致的表情&#xff0c;跨标签.类名{}ID选择器&#xff1a;全局唯一 #id名{} 2.层次选择器…...

openssl req 详解

一、openssl req 该命令用于创建和处理PKCS#10格式的证书请求&#xff08;certificate requests CSRs&#xff09;&#xff0c;也可以用来创建自签名证书&#xff08; self-signed certificates&#xff09;来当作根证书&#xff08;root CAs&#xff09;使用 -new 该选项用来…...

mysql各种锁总结

mysql全局锁 读锁&#xff08;共享锁&#xff09; 阻止其他用户更新&#xff0c;但允许他们读取数据。 写锁&#xff08;排他锁&#xff09; 阻止其他用户读取和更新数据。 全局锁场景&#xff1a;进行数据库备份 数据库备份 背景&#xff1a;备份数据肯定要保证数据一致…...

SpringSecurity--DelegatingFilterProxy工作流程

什么是 DelegatingFilterProxy&#xff1f; DelegatingFilterProxy 是 Spring 提供的一个特殊的过滤器&#xff0c;它起到了桥梁的作用&#xff0c;可以让你在 Spring 容器中管理 Servlet 容器中的过滤器。 为什么需要 DelegatingFilterProxy&#xff1f; 通常情况下&#x…...

GitHub每日最火火火项目(7.27)

1. 项目名称&#xff1a;meta - llama / llama3 项目介绍&#xff1a;这是 Meta Llama 3 的官方 GitHub 站点。目前尚不清楚该项目的具体功能和特点&#xff0c;但从名称推测&#xff0c;可能与 Llama 3 模型相关&#xff0c;或许涉及到模型的开发、训练或应用等方面。 项目地…...

git 学习总结

文章目录 一、 git 基础操作1、工作区2、暂存区3、本地仓库4、远程仓库 二、git 的本质三、分支git 命令总结 作者: baron 一、 git 基础操作 如图所示 git 总共有几个区域 工作区, 暂存区, 本地仓库, 远程仓库. 1、工作区 存放项目代码的地方&#xff0c;他有两种状态 Unm…...

《如何找到自己想做的事》

Arouse Enthusiasm, Give Scope to Skill, Explore The Essence *摘其两纸 我喜欢打篮球&#xff0c;并不是我真的喜欢这项运动&#xff0c;而是我喜欢团队竞技。我喜欢看书&#xff0c;并不是我真喜欢阅读&#xff0c;而是我想要了解世界运行逻辑。寻找热爱&#xff0c;探寻本…...

Vue中el的两种写法

大家好我是前端寄术区博主PleaSure乐事。今天了解到了Vue当中有关el的两种写法&#xff0c;记录下来与大家分享&#xff0c;希望对大家有所帮助。 方法一 解释 第一种方法我们直接用new创建并初始化一个新的 Vue 实例&#xff0c;并定义了 Vue 实例的数据对象&#xff0c;在给…...

ELK安装(Elasticsearch+Logstash+Kibana+Filebeat)

一、简介 1.1、软件简介 ELK其实是Elasticsearch&#xff0c;Logstash 和 Kibana三个产品的首字母缩写&#xff0c;这三款都是开源产品。 1.1.1、Elasticsearch简介 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析…...

VScode使用Github Copilot插件时出现read ECONNREST问题的解决方法

文章目录 read ECONNREST查看是否仍是 Copilot 会员查看控制台输出网络连接问题浏览器设置问题笔者的话 read ECONNREST 最近使用 Copilot 时一直出现 read ECONNREST 问题&#xff0c;这个表示连接被对方重置了&#xff0c;就是说在读取数据时连接被关闭。 我首先怀疑是不是…...

充电桩浪涌保护方案—保障充电设施安全稳定运行的关键

在当今新能源汽车蓬勃发展的时代&#xff0c;充电桩作为电动汽车的“加油站”&#xff0c;其重要性不言而喻。然而&#xff0c;由于其复杂的电气环境和暴露于户外的特点&#xff0c;充电桩容易受到浪涌的影响。浪涌可能来自雷电、电网故障、大功率设备的启停等&#xff0c;对充…...

Python包管理工具pip

1、安装pip cmd管理员模式打开控制台 python -m pip install --upgrade pip 2、添加pip环境变量 pip 路径 C:\Users\1\AppData\Local\Programs\Python\Python312\Scripts...

最全国内13家DNS分享 解决网页被恶意跳转或无法打开问题

腾讯 DNS (DNSPod) 腾讯 DNS 是由 DNSPod 提供的公共免费 DNS 服务。DNSPod 已被腾讯收购&#xff0c;现在属于腾讯公司所有。该 DNS 服务稳定性和连通性良好&#xff0c;经测试在海外也可以使用。 DNSPod 提供了 IPv4、IPv6 DNS 和 DoT/DoH 服务。 IPv4 地址: 119.29.29.29…...

最新站长工具箱源码,拥有几百个功能,安装教程

最新站长工具箱源码&#xff0c;拥有几百个功能&#xff0c;安装教程 在 Docker 上运行 docker run -e LAFREGIONCN -e APPLANGzh_CN --name my-miaoda -v ~/.miaoda-docker:/root/.miaoda -d -p 0.0.0.0:39899:39899 codegentoolbox/laftools-linux-x64:latestNOTE: 默认端…...

【算法/训练】:动态规划(线性DP)

一、路径类 1. 字母收集 思路&#xff1a; 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数&#xff0c;由于只能往下和往右走&#xff0c;因此走到&#xff08;i&#xff0c;j&#xff09;的位置要就是从&#xff08;i - 1&#xff0c; j&#xff09;往下走&#…...

计算巨头 Azure、AWS 和 GCP 的比较

云计算领域由三大主要参与者主导&#xff1a;Microsoft Azure、Amazon Web Services (AWS) 和 Google Cloud Platform (GCP)。每个平台都为希望利用云提供基础设施、平台服务等的企业提供强大的功能。在本文中&#xff0c;我们将深入探讨这些平台之间的差异&#xff0c;重点关注…...

Thinkphp5跨域问题常见的处理方法

在ThinkPHP5中&#xff0c;处理跨域问题通常涉及配置中间件或直接在控制器中设置响应头。以下是几种常见的解决跨域问题的方法&#xff1a; 1. 使用中间件处理跨域 你可以创建一个中间件来专门处理跨域请求。这个中间件会检查请求的来源&#xff0c;并设置相应的响应头来允许…...

Matlab编程资源库(9)数据插值与曲线拟合

一、一维数据插值 在MATLAB中&#xff0c;实现这些插值的函数是interp1&#xff0c;其调用格式为&#xff1a; Y1interp1(X,Y,X1,method) 函数根据X,Y的值&#xff0c;计算函数在X1处的值。X,Y是两个等长的已知向量&#xff0c;分别描述采样点和样本值&#xff0c;X1是一个向量…...

matplotlib的科研绘图辅助

matplotlib的科研绘图辅助 趁着暑假&#xff0c;与和鲸科技合作了一个python绘图的教程&#xff0c;作为暑期夏令营的一小部分&#xff0c;主要内容是介绍如何使用matplotlib、pandas、seaborn和plotnine进行医学科研绘图&#xff0c;感兴趣的可以通过如下地址进行访问&#x…...

C++内存管理(候捷)第五讲 笔记

GNU C对allocators的描述 new_allocator 和malloc_allocator&#xff0c;它们都没有特别的动作&#xff0c;无非底部调用operator new和malloc。它们没有用内存池 区别&#xff1a;::operator new是可重载的 智能型的allocator&#xff0c;使用内存池&#xff0c;分一大块然后…...

谷粒商城实战笔记-63-商品服务-API-品牌管理-OSS获取服务端签名

文章目录 一&#xff0c;创建第三方服务模块thrid-party1&#xff0c;创建一个名为gulimall-third-party的模块2&#xff0c;nacos上创建third-party命名空间&#xff0c;用来管理这个服务的所有配置3&#xff0c;配置pom文件4&#xff0c;配置文件5&#xff0c;单元测试6&…...

详细介绍BIO、NIO、IO多路复用(select、poll、epoll)

BIO、NIO、IO多路复用 BIO(Blocking IO)NIO(Non-blocking IO) 同步非阻塞IOIO多路复用selectpollepoll Redis的IO多路复用 BIO(Blocking IO) 最基础的IO模型&#xff0c;当进行IO操作时&#xff0c;线程会被阻塞&#xff0c;直到操作完成。 比如read和write&#xff0c;通常IO…...

昇思25天学习打卡营第11天|xiaoyushao

今天分享ResNet50迁移学习。 在实际应用场景中&#xff0c;由于训练数据集不足&#xff0c;所以很少有人会从头开始训练整个网络。普遍的做法是&#xff0c;在一个非常大的基础数据集上训练得到一个预训练模型&#xff0c;然后使用该模型来初始化网络的权重参数或作为固定特征提…...

为什么样本方差(sample variance)的分母是 n-1?

样本均值与样本方差的定义 首先来看一下均值&#xff0c;方差&#xff0c;样本均值与样本方差的定义 总体均值的定义&#xff1a; μ 1 n ∑ i 1 n X i \mu\frac{1}{n}\sum_{i1}^{n} X_i μn1​i1∑n​Xi​ 也就是将总体中所有的样本值加总除以个数&#xff0c;也可以叫做总…...

编解码器架构

一、定义 0、机器翻译是序列转换模型的一个核心问题&#xff0c; 其输入和输出都是长度可变的序列。 为了处理这种类型的输入和输出&#xff0c; 我们设计一个包含两个主要组件的架构&#xff1a; 第一个组件是一个编码器&#xff08;encoder&#xff09;&#xff1a; 它接受一…...

追问试面试系列:JVM运行时数据区

hi 欢迎来到追问试面试系列之JVM运行时数据区,在面试中出现频率非常高,并且其中还存在一些误导性的面试,一定要注意。 什么误导性呢?面试中,有的面试官本来是想问JVM运行时数据区,不过提问时难免有些让你觉得很不爽。比如:你说说java内存模型,还比如说说JVM内存模型,…...

React Native在移动端落地实践

在移动互联网产品迅猛发展的今天&#xff0c;技术的不断创新使得企业越来越注重降低成本、提升效率。为了在有限的开发资源下迅速推出高质量、用户体验好的产品&#xff0c;以实现公司发展&#xff0c;业界催生了许多移动端跨平台解决方案。这些方案不仅简化了开发流程&#xf…...

《操作系统》(学习笔记)(王道)

一、计算机系统概述 1.1 操作系统的基本概念 1.1.1 操作系统的概念 1.1.2 操作系统的特征 1.1.3 操作系统的目标和功能 1.2 操作系统的发展与分类 1.2.1 手工操作阶段&#xff08;此阶段无操作系统&#xff09; 1.2.2 批处理阶段&#xff08;操作系统开始出现&#xff0…...

LabVIEW学习-LabVIEW处理带分隔符的字符串从而获取数据

带分隔符的字符串很好处理&#xff0c;只需要使用"分隔符字符串至一维字符串数组"函数或者"一维字符串数组至分隔符字符串"函数就可以很轻松地处理带分隔符地字符串。 这两个函数所在的位置为&#xff1a; 函数选板->字符串->附加字符串函数->分…...

freesql简单使用操作mysql数据库

参考&#xff1a;freesql中文官网指南 | FreeSql 官方文档 这两天准备做一个测试程序&#xff0c;往一个系统的数据表插入一批模拟设备数据&#xff0c;然后还要模拟设备终端发送数据包&#xff0c;看看系统的承压能力。 因为系统使用的第三方框架中用到了freesql&#xff0c…...

使用Java和Spring Retry实现重试机制

使用Java和Spring Retry实现重试机制 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将探讨如何在Java中使用Spring Retry来实现重试机制。重试机制在处理临时性故障和提高系统稳…...

Linux Vim教程(十):自定义配置与插件管理

目录 1. 概述 2. Vim 配置文件 2.1 .vimrc 文件 2.2 .gvimrc 文件 3. 自定义配置 3.1 自定义快捷键 3.2 自动命令 3.3 函数定义 4. 插件管理 4.1 插件管理工具 4.1.1 安装 vim-plug 4.1.2 配置 vim-plug 4.1.3 安装插件 4.2 常用插件 4.2.1 NERDTree 4.2.2 Fzf…...

代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?

代理IP协议是一种网络代理技术&#xff0c;可以实现隐藏客户端IP地址、加速网站访问、过滤网络内容、访问内网资源等功能。常用的IP代理协议主要有Socks5代理、HTTP代理、HTTPS代理这三种。代理IP协议主要用于分组交换计算机通信网络的互联系统中使用&#xff0c;只负责数据的路…...

Verilog语言和C语言的本质区别是什么?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 用老石的一句话其实很好说…...

Delphi5实现鱼C屏幕保护程序

效果图 鱼C屏幕保护程序 添加背景图片 在additional添加image组件&#xff0c;修改picture属性上传图片。 这个图片可以截屏桌面&#xff0c;方便后面满屏不留白操作。实现无边框 即上面的“- □ ”不显示 将Form1的borderstyle属性改为bsnone实现最大化&#xff0c;满屏 将…...

【计算机毕业设计】844学籍管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…...

Java之开发 系统设计 分布式 高性能 高可用

1、restful api 基于rest构建的api 规范&#xff1a; post delete put get 增删改查路径 接口命名 过滤信息状态码 2、软件开发流程 3、命名规范 类名&#xff1a;大驼峰方法名&#xff1a;小驼峰成员变量、局部变量&#xff1a;小驼峰测试方法名&#xff1a;蛇形命名 下划…...

java连接redis和基础操作命令

引入依赖 <!--引入java连接redis的驱动--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.1</version></dependency> 单机模式连接redis main(){ //连接redis的信息 默认连接…...

土耳其云手机提升TikTok电商效率

在数字化飞速发展的今天&#xff0c;TikTok不仅是一个社交平台&#xff0c;更是一个巨大的电商市场。随着TikTok电商功能在全球范围内的扩展&#xff0c;土耳其的商家和内容创作者正面临着前所未有的机遇。本文将详细介绍土耳其云手机怎样帮助商家抓住机遇&#xff0c;实现业务…...

《Utilizing Ensemble Learning for Detecting Multi-Modal Fake News》

系列论文研读目录 文章目录 系列论文研读目录论文题目含义ABSTRACTINDEX TERMSI. INTRODUCTIONII. RELATED WORKA. FAKE NEWS CLASSIFICATION APPROACHES FOR SINGLE-MODALITY 单模态虚假新闻分类方法1) SINGLE-MODALITY BASED CLASSIFICATION APPROACHES USING TEXTUAL FEATUR…...