【亚马逊云科技】大模型选型实战(挑选和测评对比最适合业务的大模型)
文章目录
- 前言
- 1、实验内容
- 2、手册内容
- 一、环境准备
- 二、Prompt 实战与模型配置
- 2.1 基于 Amazon Bedrock 对比测试不同模型的逻辑推理效果
- 2.2 基于 Amazon Bedrock 对比测试不同模型知识问答能力
- 2.3 Prompt 实战结果分析
- 三、基于 Amazon Bedrock Evaluations 进行模型评测与自动评估
- 3.1 Amazon Bedrock Evaluations 简介
- 3.2 内置数据对比测试
- 3.3 结果分析
- 四、基于 MMLU 基准数据集评测模型
- 4.1 环境准备
- 4.2 基于 MMLU 基准数据集评测模型
- 五、总结
实验环境最新开放 DeepSeek-R1 全托管 Serverless 模型权限,欢迎体验试用
前言
1、实验内容
在人工智能领域,不同厂商的大语言模型(LLM)在特定任务上的表现各有千秋。Amazon Bedrock 作为一款强大的 AI 平台,集成了 Deepseek-R1 和 Amazon Nova Pro、Llama 3.3 等主流模型,提供了灵活的模型管理与评测环境。本实验基于 Bedrock 平台,旨在对这些模型进行知识问答及性能对比,分析它们在不同场景下的表现,为 AI 开发者提供科学的选型依据。
随着大语言模型技术的快速发展,市场上涌现出众多高性能方案,使开发者在选择时面临挑战。Bedrock 平台凭借强大的集成能力,为模型评测提供了理想环境。本实验将利用 MMLU(Massive Multitask Language Understanding)基准数据集,对 Deepseek-R1 和 Amazon Nova Pro、Llama 3.3 进行多维度评估。MMLU 涵盖57个学科领域,包括 STEM(科学、技术、工程、数学)、人文学科、社会科学和专业知识等,涉及从基础到专业级别的知识测试,可全面衡量模型的理解与推理能力。
本实验不仅有助于筛选最适合不同应用场景的模型,还能揭示各技术路线的核心优势,助力 AI 开发者在模型选型时做出更明智的决策。
2、手册内容
本手册的内容包括:
深度模型实验场探索 Bedrock 平台基础环境搭建与准备
利用 Prompt 实验与模型配置进行基础功能测试
基于 Bedrock 对比测试不同模型性能效果
基于 Bedrock Evaluations 进行模型效果测试与自动评估
基于 MMLU 基准数据集评测模型
一、环境准备
二、Prompt 实战与模型配置
2.1 基于 Amazon Bedrock 对比测试不同模型的逻辑推理效果
- 访问 Bedrock,选择 Chat/Text,点击比较模式,选择模型,点击"+"。
- 选择 Amazon Nova Pro、Llama 3.3 70B Instruct 和 Deepseek 的三个模型效果进行初步测试比较。
在进行模型测试时,为确保结果的公平性和可比性,需基于相同的初始化参数对不同模型进行评估。通过统一的初始化设置,可以排除参数差异对测试结果的影响,从而更准确地衡量各模型在相同条件下的性能表现,我们设定温度为0.7,排名前 P 为0.9,响应长度/最大长度为2048,其他默认。
我们选择了三种类型的题目进行测试:数学谜题(如数字大小比较)。借助 Bedrock 的对比测试功能,我们可以在对比模式中清晰地看到具体的输入、输出,以及模型生成每个 token 所花费的时间。
注意:每次推理完成后,若需进行新的推理,请点击清除内容。
Which is bigger, 8.15 or 8.2?
2.2 基于 Amazon Bedrock 对比测试不同模型知识问答能力
在进行知识问答测试之前,我们首先精心筛选了一系列涵盖历史、科普领域的问题,确保这些问题既具有代表性,又能够全面考察模型的知识储备和理解能力。这些问题包括但不限于历史事件的时间线、重要人物的生平事迹、科学原理的解释以及现代技术的应用等。例如以下问题:
2.3 Prompt 实战结果分析
在本研究中,我们基于 Amazon Bedrock 平台进行了两项小型实验,以对比不同模型在逻辑推理和知识问答方面的表现。第一个实验主要评估模型的逻辑推理能力,测试内容涵盖数字大小比较、汉字推理及知识推理,旨在考察模型对复杂任务的理解与推理能力。
实验结果显示,Amazon Nova Pro 和 Deepseek 在理解能力方面相较于 Llama 3.3 70B Instruct 具有一定优势。尤其是在中文理解上,Nova Pro 和 DeepSeek 表现突出,能够准确理解并回答中文问题。而 Llama 3.3 70B Instruct 在数字大小比较和汉字推理任务上的表现相对较弱,但在知识推理方面依然展现出较强的能力。
此外,在推理性能方面(即生成每个令牌所需的时间),Llama 3.3 70B Instruct 以 983ms 的平均速度远快于 Amazon Nova Pro(3164ms)和 Deepseek(12361ms)。这表明,尽管 Llama 3.3 70B Instruct 在部分推理任务上的表现逊色于另外两个模型,但其在生成速度上具备显著优势。 注意: 推理性能只是参考,每次模型输出的结果可能不一致。
整体来看,实验结果表明,不同模型在特定任务上的表现存在明显差异,尤其是在语言理解相关的任务上。实际应用中,回答的准确性与可读性是至关重要的考量因素。Amazon Nova Pro 在中文处理上的优势尤为明显,为多语言环境下的模型选择提供了有益参考。而对于需要快速响应的场景,推理性能同样不可忽视。因此,在选择模型时,需要根据具体应用需求权衡准确性与速度之间的平衡。
三、基于 Amazon Bedrock Evaluations 进行模型评测与自动评估
3.1 Amazon Bedrock Evaluations 简介
Amazon Bedrock 的模型评估功能使开发者能够为特定应用场景评估、比较和选择最适合的基础模型。该功能提供自动评估和人工评估选项,支持准确性、稳定性、毒性等指标的自动评估,以及友好度、风格、品牌一致性等主观指标的人工评估。用户可以使用内置精选数据集或自定义数据集进行评估。此外,模型评估功能还支持自定义模型的评估,帮助用户在选择、定制和评估模型的过程中,快速找到最适合其应用场景的模型。
3.2 内置数据对比测试
- 访问Bedrock,点击 Inference and Assessment—— Evaluations —— Create,选择创建评估作业。需要注意的是,由于是内置数据测试,我们可以设置评估名称为:evaluation-nova-pro-inter,来区分与自定义数据集的评估作业。
- 选择对应的模型,以 Amazon Nova Pro 为例,并将任务类型设置为“问题回答”,选择“可用的内置数据集”。为了节省时间成本,我们可以选择部分数据进行评估,例如 BoolQ 和 Natural Questions,取消勾选 Trivia QA。
- 其他指标,如毒性、稳健性,为可选内容,可保持不变。
注意: 为了提高实验效率,大家实际实验过程中稳健性和毒性的数据集可不选,看手册内容即可。
设置完成后,我们需要指定评估模型结果的保存位置。在本实验环境中,已提前创建存储桶名为 modeldata-model-xxx。
注意:请根据具体已经创建的桶名称为准,这里的 Amazon 地区请选择弗吉尼亚北部(us-east-1)。
完成上述操作后,返回到 Amazon Bedrock 评估页面,在评估结果中点击浏览 S3,填写对应的评估结果 S3 位置,并选择刚才在桶中创建的 result 文件夹。
注意: 请根据您创建的桶名进行修改,例如:
s3://modeldata-model-xxx/result/
s3://modeldata-model-123456789/result/
注意:评估 Llama 3.3 70B Instruct 与 Deepseek 使用内置数据集评估方式一样,使用相同的步骤创建,注意替换模型评估任务名称以及选择对应的模型。
Llama 3.3 70B Instruct评估任务名称为:evaluation-llama-inter
Deepseek 评估任务名称为:evaluation-deepseek-inter
3.3 结果分析
我们在构建的自定义数据集和内置数据集上分别测试了不同厂商的模型,具体结果可参考如下表格。我们可以通过点击 Bedrock —— evaluation —— "模型评估作业"查看最终结果。 **注意:**模型输出具有随机性,实验过程中输出的结果可能不一致。
通过分析实验结果,我们可以得出以下结论:
Deepseek 在 BoolQ 任务中展现出较高的鲁棒性,这表明它在面对输入扰动时具有较好的稳定性。
Amazon Nova Pro 在 TriviaQA 任务上的表现较为均衡,但其在 BoolQ 任务中的鲁棒性相对较弱,这可能影响其在需要高安全性场景下的应用。
Llama 3.3 70B Instruct 在不同任务间的稳定性差异较大,这可能意味着它对输入扰动较为敏感,从而影响其在复杂任务中的稳定性。
在优先考虑准确性和安全性的情况下:Amazon Nova Pro 是一个理想的选择,特别是在需要高安全性的场景,如用户交互系统。
在优先考虑鲁棒性和复杂任务处理能力的情况下:Deepseek 更适合那些需要强大抗干扰能力的场景,例如在噪声环境下的问答系统。
对于轻量级需求:虽然 Llama 3.3 70B Instruct 在资源受限的场景下是一个可考虑的选项,但用户需要接受其可能较低的准确性和潜在的安全风险。
四、基于 MMLU 基准数据集评测模型
4.1 环境准备
- 进入 Code Server 云上开发环境
在控制台左上方“服务”中选择并进入"EC2" - 并选择左侧"实例",将目前处于”已停止“的实例“启动”,等待启动完成。
- 点击该实例,选择公有 IPv4 DNS,点击复制地址,在浏览器中手动配置协议和端口,即打开 Visual Studio Code Server。
注意:请在访问地址时使用 8090 端口,并采用 http 协议,即 http://xxx.compute-1.amazonaws.com:8090,而非 https。
- 在对话框中,输入密码:123456,然后选择提交。
激活虚拟环境
-
进入 vscode 后,打开 Terminal。
-
输入以下命令,激活虚拟环境。
source modelenv/bin/activate
4.2 基于 MMLU 基准数据集评测模型
在针对 Amazon Bedrock 的模型评估功能中,通过精心构建的数据集,例如,按照 MMLU 的多样化学科分类对数据集进行组织,并确保每个学科领域包含足够多的样本以保证评估的代表性,来展现出模型卓越的语言理解和生成能力。MMLU 涵盖了57个不同学科的任务,跨越多个知识领域。当然您也可以使用您自己构建的数据进行测试,具体操作步骤如下。如果要评估有关问答任务的模型,则应将数据格式化为如下格式:
{"referenceResponse":"B","category":"abstract_algebra","prompt":"Find the degree for the given field extension Q(sqrt(2), sqrt(3), sqrt(18)) over Q.____.\nA. 0\nB. 4\nC. 2\nD. 6"}
注意: 鉴于实验的时间成本,请根据实际情况选择合适的数据量进行统一测试。我们为您准备了100条精心构建的数据,您可以从中选取20条用于测试。
Amazon Nova Pro:
nova.py 使用 Amazon Bedrock 和 LangChain 开发的 MMLU 评测程序。主要流程包括:首先列出可用的 Bedrock 模型,然后创建一个自定义的 ChatModelNova 类来与 Amazon Nova 模型交互;接着使用预定义的系统提示和用户提示,通过 LangChain 构建一个分类链,将 基于 MMLU 基准构建的 data.json 文件的问题进行测试输出 ;最后根据标准答案计算准确率,并将结果保存到 nova.csv 文件中。整个过程展示了如何利用大语言模型进行文本逻辑推理的任务。
import boto3
import json
import copy
import pandas as pd
from termcolor import colored
# create clients of bedrock
bedrock = boto3.client(service_name='bedrock', region_name = 'us-east-1')
bedrock_runtime = boto3.client(service_name='bedrock-runtime', region_name = 'us-east-1')
pd.set_option('display.max_rows', None)
results = []available_models = bedrock.list_foundation_models()
for model in available_models['modelSummaries']:if '`Amazon`' in model['providerName'] and 'TEXT' in model['outputModalities']: results.append({'Model Name': model['modelName'],'Model ID': model['modelId'], # Add Model ID column'Provider': model['providerName'],'Input Modalities': ', '.join(model['inputModalities']),'Output Modalities': ', '.join(model['outputModalities']),'Streaming': model.get('responseStreamingSupported', 'N/A'),'Status': model['modelLifecycle']['status']})df = pd.DataFrame(results)pd.reset_option('display.max_rows')
# print(df)import boto3
import json
from botocore.exceptions import ClientError
import dotenv
import os
dotenv.load_dotenv()from typing import Any, AsyncIterator, Dict, Iterator, List, Optionalfrom langchain_core.callbacks import (AsyncCallbackManagerForLLMRun,CallbackManagerForLLMRun,
)
from langchain_core.language_models import BaseChatModel, SimpleChatModel
from langchain_core.messages import AIMessageChunk, BaseMessage, HumanMessage,AIMessage,SystemMessage
from langchain_core.outputs import ChatGeneration, ChatGenerationChunk, ChatResult
from langchain_core.runnables import run_in_executor
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain_core.output_parsers import StrOutputParser,XMLOutputParser
from langchain_core.prompts import ChatPromptTemplate,MessagesPlaceholder,HumanMessagePromptTemplateclass ChatModelNova(BaseChatModel):model_name: strbr_runtime : Any = Noneak: str = Nonesk: str = Noneregion:str = "us-east-1"def _generate(self,messages: List[BaseMessage],stop: Optional[List[str]] = None,run_manager: Optional[CallbackManagerForLLMRun] = None,**kwargs: Any,) -> ChatResult:if not self.br_runtime:if self.ak and self.sk:self.br_runtime = boto3.client(service_name = 'bedrock-runtime',region_name = self.region,aws_access_key_id = self.ak,aws_secret_access_key = self.sk)else:self.br_runtime = boto3.client(region_name = self.region, service_name = 'bedrock-runtime')new_messages = []system_message = ''for msg in messages:if isinstance(msg,SystemMessage):system_message = msg.contentelif isinstance(msg,HumanMessage):new_messages.append({"role": "user","content": [ {"text": msg.content}]})elif isinstance(msg,AIMessage):new_messages.append({"role": "assistant","content": [ {"text": msg.content}]})temperature = kwargs.get('temperature',0.1)maxTokens = kwargs.get('max_tokens',3000)#Base inference parameters to use.inference_config = {"temperature": temperature,"maxTokens":maxTokens}# Send the message.response = self.br_runtime.converse(modelId=self.model_name,messages=new_messages,system=[{"text" : system_message}] if system_message else [],inferenceConfig=inference_config)output_message = response['output']['message']message = AIMessage(content=output_message['content'][0]['text'],additional_kwargs={}, # Used to add additional payload (e.g., function calling request)response_metadata={ # Use for response metadata**response['usage']},)generation = ChatGeneration(message=message)return ChatResult(generations=[generation])def _stream(self,messages: List[BaseMessage],stop: Optional[List[str]] = None,run_manager: Optional[CallbackManagerForLLMRun] = None,**kwargs: Any,) -> Iterator[ChatGenerationChunk]:if not self.br_runtime:if self.ak and self.sk:self.br_runtime = boto3.client(service_name = 'bedrock-runtime',region_name = self.region,aws_access_key_id = self.ak,aws_secret_access_key = self.sk)else:self.br_runtime = boto3.client(service_name = 'bedrock-runtime', region_name = self.region)new_messages = []system_message = ''for msg in messages:if isinstance(msg,SystemMessage):system_message = msg.contentelif isinstance(msg,HumanMessage):new_messages.append({"role": "user","content": [ {"text": msg.content}]})elif isinstance(msg,AIMessage):new_messages.append({"role": "assistant","content": [ {"text": msg.content}]})temperature = kwargs.get('temperature',0.1)maxTokens = kwargs.get('max_tokens',3000)#Base inference parameters to use.inference_config = {"temperature": temperature,"maxTokens":maxTokens}# Send the message.streaming_response = self.br_runtime.converse_stream(modelId=self.model_name,messages=new_messages,system=[{"text" : system_message}] if system_message else [],inferenceConfig=inference_config)# Extract and print the streamed response text in real-time.for event in streaming_response["stream"]:if "contentBlockDelta" in event:text = event["contentBlockDelta"]["delta"]["text"]# print(text, end="")chunk = ChatGenerationChunk(message=AIMessageChunk(content=[{"type":"text","text":text}]))if run_manager:# This is optional in newer versions of LangChain# The on_llm_new_token will be called automaticallyrun_manager.on_llm_new_token(text, chunk=chunk)yield chunkif 'metadata' in event:metadata = event['metadata']# Let's add some other information (e.g., response metadata)chunk = ChatGenerationChunk(message=AIMessageChunk(content="", response_metadata={**metadata}))if run_manager:run_manager.on_llm_new_token('', chunk=chunk)yield chunk@propertydef _llm_type(self) -> str:"""Get the type of language model used by this chat model."""return "echoing-chat-model-advanced"@propertydef _identifying_params(self) -> Dict[str, Any]:"""Return a dictionary of identifying parameters.This information is used by the LangChain callback system, whichis used for tracing purposes make it possible to monitor LLMs."""return {"model_name": self.model_name,}llm = ChatModelNova(region_name="us-east-1", model_name="us.amazon.nova-pro-v1:0")import pandas as pd
import time
df = pd.read_json("data/data.json", lines=True)def get_response(prompt):message = [{"role": "system", "content": "直接返回正确答案选项,不要解释。"},{"role": "user", "content": prompt}]answer = llm.invoke(message)print(answer)time.sleep(10)return answer.content[0]df['answer'] = df['prompt'].apply(get_response)
accuracy = sum(df['answer'] == df['referenceResponse']) / len(df)
df.to_csv("data/nova.csv", index=False)
print(accuracy)
在激活虚拟环境后,在 Terminal 中执行命令 python nova.py,在终端输出大模型的结果、 accuracy 和文件nova.csv,表示执行成功。
代码解释1:这段代码通过连接
Amazon Bedrock
,获取所有 基础模型(Foundation Models
) ,并筛选出 ** 由Amazon
提供且支持文本输出 的模型。筛选后,模型信息(名称、ID
、输入/输出类型、是否支持流式响应、状态等)被存入Pandas DataFrame
,方便后续分析和查看。最终,代码确保Pandas
显示设置不会影响其他部分。
代码解释2:这段代码定义了 LangChain 自定义聊天模型 ChatModelNova,用于与 Amazon Bedrock 的 Amazon Nova Pro 模型交互,支持 同步和流式请求。
核心功能包括:
初始化 Amazon Bedrock 客户端(支持 access key 认证或默认认证)。
处理用户和 AI 消息,转换为 API 兼容格式。
调用 Amazon Bedrock API 进行 文本生成,支持 完整和流式输出。
集成 LangChain,可用于 AI 聊天机器人或其他自然语言处理任务。
代码解释3:在配置好 Amazon Bedrock API 调用方式后,使用 LLM(大语言模型) 对 JSON 数据集中的 问题 (prompt) 进行批量推理,然后计算模型回答的 准确率 并保存结果。
核心流程:
读取 JSON 数据,加载 prompt 和 referenceResponse(参考答案)。
定义 get_response 方法,使用 LLM 生成答案,并在 5 秒后返回。
批量处理 prompt,将 LLM 预测的答案存入 df[‘answer’]。
计算准确率(LLM 预测答案与参考答案匹配的比例)。
保存结果为 CSV 文件 并打印准确率。
实验结果如下表所示:
从准确率与推理性能的综合角度来看,这三款模型各具优势。Amazon Nova Pro 和 Deepseek 在准确率方面表现最佳,均达到 0.87,展现出较强的知识应用能力。然而,Deepseek 的推理时间较长,这可能意味着其在深度推理和复杂任务处理上更为慎重。而 Amazon Nova Pro 则在保持较高准确率的同时,推理速度更快,实现了性能与效率的良好平衡。
这一结果揭示了在模型选择时的关键权衡:
Deepseek 适用于对准确率要求极高、但对推理时间不敏感的任务,如深度问答或高精度内容生成。
Amazon Nova Pro 在准确率和推理速度之间取得了较好的平衡,是大多数实际应用的理想选择。
Llama 3.3 70B Instruct 在需要快速响应的场景中更具优势,尽管其准确率相对较低,但仍可在对速度敏感的应用中发挥作用。
此外,这一分析强调了在模型部署过程中,不应仅关注单一性能指标,而应综合考量准确率、推理速度以及模型的适应性和优化潜力。未来的研究可以进一步探索这些模型在更广泛任务中的表现,并通过优化调整提升其整体性能,以便更好地满足不同应用场景的需求。
五、总结
通过这些实验,不仅深入体验了 Amazon Bedrock 提供的统一访问方式,更重要的是,亲身感受到了不同基础模型(Foundation Models, FMs)的独特优势。通过 Amazon Bedrock 的 Evaluations 功能,我们可以系统地评估和比较各个模型的表现。Amazon Bedrock 的强大之处在于它支持创建多样化的环境,如开发、测试和生产环境,这为团队在不同阶段的迭代和部署提供了极大的便利。此外,Amazon Bedrock 提供了一系列广泛的功能,以建置具有安全性、隐私性和负责任的生成式 AI 应用程序。通过这些实验,你已经能够利用 Amazon Bedrock 的无服务器体验,快速开始使用、使用自己的数据私人定制基础模型,并使用熟悉的 Amazon 工具轻松安全地将它们整合并部署到你的应用程序中。
相关文章:
【亚马逊云科技】大模型选型实战(挑选和测评对比最适合业务的大模型)
文章目录 前言1、实验内容2、手册内容 一、环境准备二、Prompt 实战与模型配置2.1 基于 Amazon Bedrock 对比测试不同模型的逻辑推理效果2.2 基于 Amazon Bedrock 对比测试不同模型知识问答能力2.3 Prompt 实战结果分析 三、基于 Amazon Bedrock Evaluations 进行模型评测与自动…...
Linux 用户与组管理实战:经验分享与最佳实践
在 Linux 系统管理中,用户和组的管理是保障系统安全和资源分配的重要环节。本文将深入介绍如何创建和管理用户与组,包括 UID、GID 的设置,主组与附加组的分配,以及常见问题的排查和解决。本文还结合实际操作经验,总结了…...
详解如何通过Python的BeautifulSoup爬虫+NLP标签提取+Dijkstra规划路径和KMeans聚类分析帮助用户规划旅行路线
系统模块: 数据采集模块(爬虫):负责从目标网站抓取地点数据(如名称、经纬度、描述等) 数据预处理模块(标签算法):对抓取到的地点数据进行清洗和分类。根据地点特征&…...
Java Stream两种list判断字符串是否存在方案
这里写自定义目录标题 背景初始化方法一、filter过滤方法二、anyMatch匹配 背景 在项目开发中,经常遇到筛选list中是否包含某个子字符串,有多种方式,本篇主要介绍stream流的filter和anyMatch两种方案,记录下来,方便备…...
C语言-指针变量和变量指针
指针 预备知识 内存地址 字节:字节是内存的容量单位,英文名Byte,1Byte8bits 地址:系统为了便于区分每一个字节面对它们的逐一进行编号(编号是唯一的),称为内存地址,简称地址。int…...
CMS漏洞-WordPress篇
一.姿势一:后台修改模板拿WebShell 1.使用以下命令开启docker cd /www/wwwroot / vulhub / wordpress / pwnscriptum docker - compose up - d 如果发现不能开启,可以检查版本和端口 2.访问网址登录成功后 外观 👉编辑 👉404.…...
初识Brainstorm(matlab)
Brainstorm是一款开源应用程序,专门用于分析脑部记录数据:MEG、EEG、fNIRS、ECoG、深部电极等。该应用程序免费,而且不需要Matlab许可证。Brainstorm主要优势是简单直观的图形界面,不需要任何编程知识。具体内容,可查看…...
2025年智能系统、自动化与控制国际学术会议(ISAC 2025)
重要信息 2025 International Conference on Intelligent Systems, Automation and Control 2025年3月28-30日 | 中国西安理工大学 | 会议官网: www.icisac.org 简介 在国家大力推动高质量发展与创新驱动战略的背景下,智能制造与自动化控制行业正迎…...
GGUF、Transformer、AWQ 详解与关系梳理
GGUF、Transformer、AWQ 详解与关系梳理 一、核心概念解析 Transformer 定义 :2017 年 Google 提出的基于自注意力机制的神经网络架构,是大语言模型的通用基础架构。功能 :用于文本生成、翻译、问答等任务,如 BERT、GPT 系列、…...
学习笔记|arduino uno r3|DS1307时钟芯片|Atmega328P| 设置时间|读取时间|无源晶振:DS1307时钟芯片实验
目录 芯片pinout: 实验器件: 实验连线 解决AVR 架构不支持 printf() 方法 使用GetTimeAndDate.ino设置时间: 使用SetTimeAndDate.ino设置时间: 芯片pinout: DS1307 是美国 DALLAS 公司推出的 I 总线接口实时时钟芯…...
Linux--进程创建
进程创建 写时拷贝(时间换空间) 更新页表项权限为只读----子进程写入----触发系统错误系统缺页中断,系统开始检测,系统判断写入区域是数据区还是代码区,如果是代码区就终结进程,如果是数据区就进行写时拷贝…...
MySQL 创建用户,建库,建表
以下是在 MySQL 中创建用户、数据库、表的详细操作步骤: 一、登录 MySQL -- 使用 root 用户登录(需替换为实际密码) mysql -u root -p输入密码后回车,进入 MySQL 命令行界面。 二、创建数据库 -- 创建名为 test_db 的数据库&a…...
成都国际数字影像产业园,文创产业运营新典范深度解析
成都国际数字影像产业园位于成都市蓉北商圈金牛片区福堤路99号,是金牛区政府与树莓集团携手打造的省级“文化科技”融合示范园区。该产业园已成为西南地区乃至全国数字影像产业的一颗璀璨明珠,其成功运营模式堪称文创产业运营的新典范。 产业定位与资源…...
33、如果 std::vector 的元素是指针,需要注意什么?
对 std::vector 元素为指针的情况,需要注意以下几点: 内存管理: 如果 std::vector 存储的是原始指针,那么仅仅清空 vector 或者让 vector 被销毁,并不会释放指针所指向的内存。因此,需要确保在 vector 被销…...
Docker 速通(总结)
Docker 命令 镜像 docker build: 从 Dockerfile 构建镜像。docker pull: 从 Docker Hub 或其他注册表拉取镜像。docker push: 将镜像推送到 Docker Hub 或其他注册表。docker images: 列出本地镜像。docker rmi: 删除本地镜像。 容器 docker run: 创建并启动一个新的容器。…...
算法训练篇06--力扣611.有效三角形的个数
目录 1.题目链接:611.有效三角形的个数 2.题目描述: 3.解法一:(暴力解法)(会超时): 4.解法二(排序双指针) 1.题目链接:611.有效三角形的个数 2.题目描述: 给定一个包含非负整数的数组 nums …...
Gin框架学习
一.介绍 Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin。 下载 go get -u github.com/gin-gonic/gin 二.Gin示例 学习的时候,写在…...
青少年编程与数学 02-011 MySQL数据库应用 07课题、表的操作
青少年编程与数学 02-011 MySQL数据库应用 07课题、表的操作 一、数据库表(Table)二、创建表语法格式示例注意事项 三、字段的命名规则基本规则命名规范建议示例 四、字段数据类型数值类型字符串类型日期和时间类型其他类型 五、选择合适的数据类型1. **…...
【详细解决】pycharm 终端出现报错:“Failed : 无法将“Failed”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
昨天在终端一顿操作后突然打开pycharm时就开始报错: 无法将“Failed”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 Failed to act…...
AcWing 839:模拟堆 ← multiset + unordered_map
【题目来源】 https://www.acwing.com/problem/content/841/ 【题目描述】 维护一个集合,初始时集合为空,支持如下几种操作: 1. I x,插入一个数 x; 2. PM,输出当前集合中的最小值; 3. DM&#…...
cmake教程
CMake 是一个跨平台的自动化构建系统,广泛用于管理软件构建过程。它使用 CMakeLists.txt 文件来配置项目的构建过程,并生成适用于不同编译器和操作系统的构建文件(如 Makefile、Visual Studio 项目文件等)。以下是一个简单的 CMak…...
小蓝的括号串1(栈,蓝桥云课)
问题描述 小蓝有一个长度为 nn 的括号串,括号串仅由字符 ( 、 ) 构成,请你帮他判断一下该括号串是否合法,合法请输出 Yes ,反之输出 No 。 合法括号序列: 空串是合法括号序列。 若 ss 是合法括号序列,则 (…...
软考系统架构设计师考试学习和考试的知识点大纲,覆盖所有考试考点
以下是软考系统架构设计师考试的知识点大纲,覆盖所有官方考点,分为基础知识、核心技术、系统设计、案例分析、论文写作五大模块,帮助系统性学习和备考: 一、基础知识模块 计算机组成与体系结构 计算机硬件组成(CPU、内…...
车载以太网网络测试-18【传输层-DOIP协议-1】
目录 1 摘要2 DOIP协议的概述2.1 DOIP协议背景2.2 ISO 13400概述 3 DOIP报文的帧结构以及实例3.1 DOIP报文帧结构3.2 实例示例 总结 1 摘要 在汽车网络通信中,诊断扮演了非常重要的角色,无论是故障诊断、整车下线配置,还是ECU的软件更新、远…...
密码学(Public-Key Cryptography and Discrete Logarithms)
Public-Key Cryptography and Discrete Logarithms Discrete Logarithm 核心概念:离散对数是密码学中一个重要的数学问题,特别是在有限域和循环群中。它基于指数运算在某些群中是单向函数这一特性。也就是说,给定一个群 G G G和一个生成元 …...
自然语言处理|深入解析 PEGASUS:从原理到实践
一、引言 在信息爆炸的时代,互联网上的文本数据以极快的速度增长。无论是新闻资讯、学术论文、社交媒体动态,还是各类报告文档,我们每天接触到的文字信息量巨大。如何快速、准确地提取关键内容成为一项重要任务。文本摘要技术通过将长篇文本…...
矩阵指数的定义和基本性质
1. 矩阵指数的定义 矩阵指数 e A t e^{\boldsymbol{A}t} eAt 定义为幂级数的形式: e A t ∑ k 0 ∞ ( A t ) k k ! e^{\boldsymbol{A}t} \sum_{k0}^\infty \frac{(\boldsymbol{A}t)^k}{k!} eAtk0∑∞k!(At)k 当 A \boldsymbol{A} A 为 n n n \times n …...
react 技术栈请问该如何优化 DOM 大小
针对 React 应用中 DOM 大小过大 的问题,以下是详细的优化方案和具体操作步骤,帮助你提升 Lighthouse 性能评分和用户体验: 一、问题根源分析 DOM 大小过大(如超过 1500 个节点或深度超过 32 层)会导致: …...
redis,tar.gz安装后,接入systemctl报错解决
1. WARNING Memory overcommit must be enabled! 这种报错,有两种解决方法 1.1 修改系统参数 编辑 /etc/sysctl.conf 文件,设置 overcommit_memory 为 1 vm.overcommit_memory 11.2 修改redis的最大使用内存 修改配置文件 redis.conf maxmemory 1g…...
YOLOv5部署全场景问题解决方案手册(2025版)
YOLOv5部署全场景问题解决方案手册(2025版) 文章目录 YOLOv5部署全场景问题解决方案手册(2025版)[TOC]一、环境配置问题1.1 CUDA与PyTorch版本冲突1.2 依赖库缺失问题 二、模型转换问题2.1 ONNX导出失败2.2 TensorRT转换问题 三、…...
Canal 解析与 Spring Boot 整合实战
一、Canal 简介 1.1 Canal 是什么? Canal 是阿里巴巴开源的一款基于 MySQL 数据库增量日志解析(Binlog)中间件,它模拟 MySQL 的从机(Slave)行为,监听 MySQL 主机的二进制日志(Binl…...
AI第一天 自我理解笔记--微调大模型
目录 1. 确定目标:明确任务和数据 2. 选择预训练模型 3. 数据预处理 (1) 数据清洗与格式化 (2) 划分数据集 (4) 数据加载与批处理 4. 构建微调模型架构 (1) 加载预训练模型 (2) 修改模型尾部(适配任务) (3) 冻结部分层(…...
SpringBoot日志
目录 一、日志的用途 二、日志的使用 1.打印日志 2.在程序中得到日志对象 3.使用日志对象打印日志 4.日志格式说明 5.日志框架的了解 门面模式(外观模式) 6.日志级别 7.日志配置 配置日志级别 日志持久化 配置日志文件分割 配置日志格式 三、…...
Redis数据结构详解--列表
Redis 列表是简单的字符串列表,按照插入顺序排序,常用命令: LPUSH key value1 [value2...] 在列表头部插入一个或多个值RPUSH key value1 [value2...] 在列表尾部插入一个或多个值LPOP key 移除并获取列表头部第一个元素RPOP key 移除并获取…...
[项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信
基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信 一.Si24Ri原理图二.Si24R1芯片手册解读三.驱动函数讲解五.移植2.4g通讯(飞控部分)六.移植2.4g通讯(遥控部分)七.通讯模块的完成(遥控部分)七.通讯模块的完成&a…...
ElasticSearch 7.x 集群 + Kibana 部署完全指南(5节点)
ElasticSearch 7.x 集群 Kibana 部署完全指南(5节点) 一、基础环境准备 1. 系统要求 CentOS 7/Ubuntu 18.04JDK 11(Elasticsearch 7自带JDK)内存:建议每个节点≥8GB磁盘:≥50GB(根据数据量调…...
前端项目中应该如何选择正确的图片格式
在前端项目中选择正确的图片格式是优化页面性能、提升用户体验的关键步骤之一。以下是常见图片格式的特点、适用场景及选择建议,帮助你在不同场景下做出最优决策: 一、常见图片格式对比 格式特点适用场景不适用场景JPEG- 有损压缩,文件小- 不…...
Python实现WYY音乐下载
一、需求背景 WYY音乐作为国内主流音乐平台,其歌曲资源丰富但下载接口存在多重加密保护。本文将通过Python结合JS逆向技术,解析其核心加密逻辑,实现免费歌曲的下载功能。 二、技术难点分析 1. 接口加密机制 通过抓包分析可知,网易云核心接口使用两次加密: 第一次:获取…...
药房链路轨道“空间拓扑优化+动态算法决策+多级容错控制”三重链式编程技术解析与应用
总论 随着智能医疗技术的快速发展,药房自动化系统已成为现代医院运营的核心基础设施。本文以“空间拓扑优化动态算法决策多级容错控制”三重链式编程技术为核心研究对象,探讨其如何通过跨学科技术融合实现药房链路轨道系统的精准化、高效化与可靠化运行…...
笔记本运行边缘计算
笔记本电脑可以用来运行PCDN(Peer-to-Peer Content Delivery Network)服务。实际上,如果你有闲置的笔记本电脑,并且它具备一定的硬件条件和网络环境,那么它可以成为一个不错的PCDN节点。 运行PCDN的基本要求 硬件需求…...
IMX8MP Android 10系统编译SDK
概述: 本文描述了在Ubuntu 20.04操作系统上搭建IMX8MP Android10系统编译环境。 ubuntu主机端设置 1. ubuntu 20.04 1. 450G Free Disk space 2. 16GB RAM以上 3. 安装 sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop …...
项目实战:基于瑞萨RA6M5构建多节点OTA升级-创建系统最小框架<三>
MCUBoot项目创建完成后,接下来我们需要搭建多节点OTA系统最小框架,再将系统分模块搭建逐层完善,直到实现最终完整系统。开始动手干吧! 目录 一、创建项目 二、配置FSP 2.1 配置RS485属性 2.2 配置定时器0 2.3 创建初始化进程并配置属性 2.4 创建RS485进程并…...
汇能感知高品质的多光谱相机VSC02UA
VSC02UA概要 VSC02UA是一款高品质的200万像素的光谱相机,适用于工业检测、农业、医疗等领域。VSC02UA 包含 1600 行1200 列有源像素阵列、片上 10 位 ADC 和图像信号处理器。它带有 USB2.0 接口,配合专门的电脑上位机软件使用,可进行图像采集…...
Fisher 信息矩阵公式原理:使用似然估计,二阶导数等知识点
Fisher 信息矩阵公式原理:使用似然估计,二阶导数等知识点 目录 Fisher 信息矩阵公式原理:使用似然估计,二阶导数等知识点Fisher 通过似然估计求解真实数据和权重参数之间的差异**1. Fisher 信息矩阵的定义****2. 计算对数似然函数的二阶导数****3. 代入 Fisher 信息矩阵定义…...
Xilinx系列FPGA视频采集转HDMI2.0输出,基于HDMI 1.4/2.0 Transmitter Subsystem方案,提供6套工程源码和技术支持
目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我已有的 GT 高速接口解决方案我已有的FPGA图像处理方案 3、详细设计方案设计框图硬件设计架构FPGA开发板输入Sensor之-->OV5640摄像头动态彩条Video In To AXI4-S…...
dify重磅升级:从0.15.3安全升级1.1.0新手避坑指南
Docker Compose 部署 备份自定义的 docker-compose YAML 文件(可选) cd docker cp docker-compose.yaml docker-compose.yaml.-$(date +%Y-%m-%d-%H-%M).bak从 main 分支获取最新代码 git checkout main git pull origin main停止服务,命令,请在 docker 目录下执行...
工业相机选型
工业相机选型 一、工业相机分类二、相机的主要参数2.1 分辨率2.2 速度2.3 光学接口 / 接口类型2.4 相机靶面尺寸2.5 像元尺寸2.6 精度 三、镜头介绍及选型方法3.1 工作距离(WD)3.2 视场角(FOV)3.3 (镜头)靶面尺寸3.4 帧率3.5 光圈…...
Vue3:构建高效用户界面的利器
一、Vue.js 简介 Vue.js(读音 /vjuː/, 类似于 view)是一套构建用户界面的渐进式框架。它只关注视图层,采用自底向上增量开发的设计。Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件 ,学习起来非常简单…...
mysql与redis的日志策略
MySQL 和 Redis 在日志记录方面采用了不同的策略,分别对应写前日志(Write-Ahead Logging, WAL)和写后日志(Write-After Logging)。以下是它们的详细说明: 1. MySQL:写前日志(Write-A…...
在 Spring Boot 中调用 AnythingLLM 的发消息接口
整体逻辑: 自建系统的web UI界面调用接口: 1.SpringBoot接口:/anything/chatMessageAnything 2.调用anythingLLM - 调用知识库deepseek r1 . Windows Installation ~ AnythingLLMhttps://docs.anythingllm.com/installation-desktop/windows http://localhost:3…...