LLM 大模型学习必知必会系列(十一):大模型自动评估理论和实战以及大模型评估框架详解

news2024/10/7 10:20:34

LLM 大模型学习必知必会系列(十一):大模型自动评估理论和实战以及大模型评估框架详解

0.前言

大语言模型(LLM)评测是LLM开发和应用中的关键环节。目前评测方法可以分为人工评测和自动评测,其中,自动评测技术相比人工评测来讲,具有效率高、一致性好、可复现、鲁棒性好等特点,逐渐成为业界研究的重点。

模型的自动评测技术可以分为rule-based和model-based两大类:

  • rule-based方法:

    • benchmark以客观题为主,例如多选题,被测的LLM通过理解context/question,来指定最佳答案

    • 解析LLM的response,与标准答案做对比

    • 计算metric(accuracy、rouge、bleu等)

  • model-based方法:

    • 裁判员模型(e.g. GPT-4、Claude、Expert Models/Reward models)

    • LLM Peer-examination

如何评估一个LLM

  • 哪些维度?

    • 语义理解(Understanding)

    • 知识推理(Reasoning)

    • 专业能力(e.g. coding、math)

    • 应用能力(MedicalApps、AgentApps、AI-FOR-SCI …)

    • 指令跟随(Instruction Following)

    • 鲁棒性(Robustness)

    • 偏见(Bias)

    • 幻觉(Hallucinations)

    • 安全性(Safety)

例:GPT-4 vs LLaMA2-7B能力维度对比评测

1. 自动评估方法

模型效果评估

  • 基准和指标(Benchmarks & Metrics)
数据集描述评价指标样例
MMLUMassiveMultitaskLanguageUnderstanding 一个多任务数据集,由各种学科的多项选择题组成。涵盖STEM、人文、社科等领域。包括57个子任务,包括初等数学、美国历史、计算机科学、法律等等。AccuracyQuestion: In 2016, about how many people in the United States were homeless? A. 55,000 B. 550,000 C. 5,500,000 D. 55,000,000 Answer: B
TriviaQA阅读理解数据集,包含超过65万个问题-答案-证据三元组。其包括95K个问答对,由冷知识爱好者提供 + 独立收集的事实性文档撰写EM(ExactMatch) F1 (word-level)(问题-答案-证据文档)
MATH12500道数学题,每道包含step-by-step solutionAccuracy
HumanEvalHumanEval (Hand-Written Evaluation Set) 一个手写的问题解决数据集,要求根据给定的问题和代码模板,生成正确的代码片段。包含164个高质量的问题,涵盖五种编程语言:Python, C++, Java, Go, 和 JavaScript。pass@k{     “task_id”: “test/0”,     “prompt”: “def return1():\n”,     “canonical_solution”: "    return 1",     “test”: “def check(candidate):\n    assert candidate() == 1”,     “entry_point”: “return1” }
  • Rule-based自动评测

基本流程

  • 根据数据集原始question来构建prompt

示例(few-shot)

示例:few-shot with CoT

    # Examples in BBH
    
    Evaluate the result of a random Boolean expression.
    
    Q: not ( ( not not True ) ) is
    A: Let's think step by step.
    Remember that (i) expressions inside brackets are always evaluated first and that (ii) the order of operations from highest priority to lowest priority is "not", "and", "or", respectively.
    We first simplify this expression "Z" as follows: "Z = not ( ( not not True ) ) = not ( ( A ) )" where "A = not not True".
    Let's evaluate A: A = not not True = not (not True) = not False = True.
    Plugging in A, we get: Z = not ( ( A ) ) = not ( ( True ) ) = not True = False. So the answer is False.
    
    Q: True and False and not True and True is
    A: Let's think step by step.
    Remember that (i) expressions inside brackets are always evaluated first and that (ii) the order of operations from highest priority to lowest priority is "not", "and", "or", respectively.
    We first simplify this expression "Z" as follows: "Z = True and False and not True and True = A and B" where "A = True and False" and "B = not True and True".
    Let's evaluate A: A = True and False = False.
    Let's evaluate B: B = not True and True = not (True and True) = not (True) = False.
    Plugging in A and B, we get: Z = A and B = False and False = False. So the answer is False.
  • 模型预测

Generate

    # Demo -- model_genereate 直接生成response
    
    def model_generate(query: str, infer_cfg: dict) -> str:
    
        inputs = tokenizer.encode(query)
        input_ids = inputs['input_ids']
        ...
    
        # Process infer cfg (do_sample, top_k, top_p, temperature, special_tokens ...)
        generation_config = process_cfg(args)
        ...
      
        # Run inference
        output_ids = model.generate(
            input_ids=input_ids,
            attention_mask=attention_mask,
            generation_config=generation_config,
        )
    
        response = tokenizer.decode(output_ids, **decode_kwargs)
        return response

Likelihood

#Demo -- model_call方式计算loglikelihood
    
    # context + continuation 拼接,示例:
    # Question: 法国的首都是哪里?
    # Choices: A.北京  B.巴黎  C.汉堡  D.纽约
      # pair-1: (ctx, cont) = (法国的首都是哪里?,A.北京)
      # pair-2: (ctx, cont) = (法国的首都是哪里?,B.巴黎)
      # pair-3: (ctx, cont) = (法国的首都是哪里?,C.汉堡)
      # pair-4: (ctx, cont) = (法国的首都是哪里?,D.纽约)
    # Logits --> 
    
    def loglikelihood(self, inputs: list, infer_cfg: dict = None) -> list:
        # To predict one doc
        doc_ele_pred = []
        for ctx, continuation in inputs:
    
            # ctx_enc shape: [context_tok_len]  cont_enc shape: [continuation_tok_len]
            ctx_enc, cont_enc = self._encode_pair(ctx, continuation)
    
            inputs_tokens = torch.tensor(
                (ctx_enc.tolist() + cont_enc.tolist())[-(self.max_length + 1):][:-1],
                dtype=torch.long,
                device=self.model.device).unsqueeze(0)
    
            logits = self.model(inputs_tokens)[0]
            logits = torch.nn.functional.log_softmax(logits.float(), dim=-1)
    
            logits = logits[:, -len(cont_enc):, :]
            cont_enc = cont_enc.unsqueeze(0).unsqueeze(-1)
            logits = torch.gather(logits.cpu(), 2, cont_enc.cpu()).squeeze(-1)
    
            choice_score = float(logits.sum())
            doc_ele_pred.append(choice_score)
    
        # e.g. [-2.3, 1.1, -12.9, -9.2], length=len(choices)
        return doc_ele_pred

2.评价指标(Metrics)

  • WeightedAverageAccuracy  加权平均准确率

  • Perplexity 困惑度

  • Rouge (Recall-Oriented Understudy for Gisting Evaluation)

  • Bleu (Bilingual evaluation understudy)

  • ELO Rating System

  • PASS@K

2.1 Model-based自动评测

  • 中心化评测

    • 中心化评测模式下,裁判员模型只有一个,可靠性高,但容易收到裁判员模型的bias影响
  • 去中心化评测

    • 去中心化评测方式,要求模型之间做peer-examination

    • 特点是公平性好,但计算量大,且鲁棒性不高

裁判员模型

  • GPT-4、Claude、Qwen-Max等 (产品APIs)

  • PandLM、Auto-J (tuned from LLM, like LLaMA)

  • Reward models (Ranking learning)

  • Chatbot Arena -竞技场模式

    • (Battle count of each combination of models,  from LMSYS)

  • (Fraction of Model A wins for all non-tied A vs. B battles,  from LMSYS)

  • LLM指令攻防

    • 指令诱导  (诱导模型输出目标答案,from SuperCLUE)

    • 有害指令注入 (将真实有害意图注入到prompt中, from SuperCLUE)

2.2 模型性能评估

model serving performance evaluation

指标名称说明
Time测试总时间(时间单位均为秒)
Expected number of requests期望发送的请求数,和prompt文件以及期望number有关
concurrency并发数
completed完成的请求数
succeed成功请求数
failed失败请求数
qps平均qps
latency平均latency
time to first token平均首包延迟
throughputoutput tokens / seconds 平均每秒输出token数
time per output token平均生成一个token需要的时间 总output_tokens/总时间
package per request平均每个请求的包数
time per package平均每包时间
input tokens per request平均每个请求的输入token数
output tokens per request平均每个请求输出token数

2.3 问题和挑战

  1. 基准失效&数据泄露
  • 静态数据集与快速演进的LLM能力形成GAP,导致基准失效

  • 公开的benchmark被泄露到LLM的开发PT、CPT、SFT等开发环节

解决思路: 动态数据集

  1. 裁判员模型的能力上限
  • 裁判员模型的存在明显的能力边界,很难胜任更多场景、更强模型的评测工作

  • 泛化性问题

  • LLM幻觉的诊断问题

3.LLM评估实战

LLMuses框架–轻量化、端到端的大模型自动评估框架

GitHub: https://github.com/modelscope/llmuses

框架特性

  • 预置常用的测试基准,包括:MMLU、C-Eval、GSM8K、ARC、HellaSwag、TruthfulQA、MATH、HumanEval、BBH、GeneralQA等

  • 常用评估指标(metrics)的实现

  • 统一model接入,兼容多个系列模型的generate、chat接口

  • 客观题自动评估

  • 使用专家模型实现复杂任务的自动评估

  • 竞技场模式(Arena)

  • 评估报告生成与可视化

  • LLM性能评测(Performance Evaluation)

环境安装

    # 1. 代码下载
    git clone git@github.com:modelscope/llmuses.git
    
    # 2. 安装依赖
    cd llmuses/
    pip install -r requirements/requirements.txt
    pip install -e .
  1. 简单评测
  python llmuses/run.py --model ZhipuAI/chatglm3-6b --datasets ceval --outputs ./outputs/test --limit 10
  • –model: ModelScope模型id, (https://modelscope.cn/models/ZhipuAI/chatglm3-6b/summary) ,也可以是模型的本地路径

  • –datasets: 数据集的id

  • –limit: (每个sub-task)最大评测样本数

  1. 带参数评测
    python llmuses/run.py --model ZhipuAI/chatglm3-6b --outputs ./outputs/test2 --model-args revision=v1.0.2,precision=torch.float16,device_map=auto --datasets arc --limit 10
  • –model-args: 模型参数,以逗号分隔,key=value形式

  • –datasets: 数据集名称,参考下文`数据集列表`章节

  • –mem-cache: 是否使用内存缓存,若开启,则已经跑过的数据会自动缓存,并持久化到本地磁盘

  • –limit: 每个subset最大评估数据量

  1. 竞技场模式–Single mode

Single mode,使用专家模型(GPT-4)对待测LLM进行打分

    # Example
    python llmuses/run_arena.py --c registry/config/cfg_single.yaml --dry-run
  1. 竞技场模式–Baseline mode

Baseline mode,选定baseline模型,其它待测LLM与该模型进行对比

    # Example
    python llmuses/run_arena.py --dry-run --c registry/config/cfg_pairwise_baseline.yaml
  1. 竞技场模式–Pairwise mode

Pairwise mode,待测LLM两两组合进行对弈

    python llmuses/run_arena.py -c registry/config/cfg_arena.yaml --dry-run

  1. 效果评测报告

按照预定格式存放数据,使用streamlit启动可视化服务

    # Usage:
    streamlit run viz.py -- --review-file llmuses/registry/data/qa_browser/battle.jsonl --category-file llmuses/registry/data/qa_browser/category_mapping.yaml
  • 报告可视化

  • Leaderboard:  https://modelscope.cn/leaderboard/58/ranking?type=free

  1. 模型性能评测(Perf Eval)

性能评测报告示例

4.大模型评估框架-llmuses

链接:https://github.com/modelscope/eval-scope

大型语言模型评估(LLMs evaluation)已成为评价和改进大模型的重要流程和手段,为了更好地支持大模型的评测,我们提出了llmuses框架,该框架主要包括以下几个部分:

  • 预置了多个常用的测试基准数据集,包括:MMLU、CMMLU、C-Eval、GSM8K、ARC、HellaSwag、TruthfulQA、MATH、HumanEval等

  • 常用评估指标(metrics)的实现

  • 统一model接入,兼容多个系列模型的generate、chat接口

  • 自动评估(evaluator):

    • 客观题自动评估
    • 使用专家模型实现复杂任务的自动评估
  • 评估报告生成

  • 竞技场模式(Arena)

  • 可视化工具

  • 模型性能评估

  • 特点

  • 轻量化,尽量减少不必要的抽象和配置

  • 易于定制

    • 仅需实现一个类即可接入新的数据集
    • 模型可托管在ModelScope上,仅需model id即可一键发起评测
    • 支持本地模型可部署在本地
    • 评估报告可视化展现
  • 丰富的评估指标

  • model-based自动评估流程,支持多种评估模式

    • Single mode: 专家模型对单个模型打分
    • Pairwise-baseline mode: 与 baseline 模型对比
    • Pairwise (all) mode: 全部模型两两对比

4.1 环境准备

我们推荐使用conda来管理环境,并使用pip安装依赖:

  1. 创建conda环境
conda create -n eval-scope python=3.10
conda activate eval-scope
  1. 安装依赖
pip install llmuses
  • 使用源码安装
  1. 下载源码
git clone https://github.com/modelscope/eval-scope.git
  1. 安装依赖
cd eval-scope/
pip install -e .

4.2快速开始

  • 简单评估
    在指定的若干数据集上评估某个模型,流程如下:
    如果使用git安装,可在任意路径下执行:
python -m llmuses.run --model ZhipuAI/chatglm3-6b --template-type chatglm3 --datasets arc --limit 100

如果使用源码安装,在eval-scope路径下执行:

python llmuses/run.py --model ZhipuAI/chatglm3-6b --template-type chatglm3 --datasets mmlu ceval --limit 10

其中,–model参数指定了模型的ModelScope model id,模型链接:ZhipuAI/chatglm3-6b

  • 带参数评估
python llmuses/run.py --model ZhipuAI/chatglm3-6b --template-type chatglm3 --model-args revision=v1.0.2,precision=torch.float16,device_map=auto --datasets mmlu ceval --use-cache true --limit 10
python llmuses/run.py --model qwen/Qwen-1_8B --generation-config do_sample=false,temperature=0.0 --datasets ceval --dataset-args '{"ceval": {"few_shot_num": 0, "few_shot_random": false}}' --limit 10

参数说明:

  • –model-args: 模型参数,以逗号分隔,key=value形式
  • –datasets: 数据集名称,支持输入多个数据集,使用空格分开,参考下文数据集列表章节
  • –use-cache: 是否使用本地缓存,默认为false;如果为true,则已经评估过的模型和数据集组合将不会再次评估,直接从本地缓存读取
  • –dataset-args: 数据集的evaluation settings,以json格式传入,key为数据集名称,value为参数,注意需要跟–datasets参数中的值一一对应
    • –few_shot_num: few-shot的数量
    • –few_shot_random: 是否随机采样few-shot数据,如果不设置,则默认为true
  • –limit: 每个subset最大评估数据量
  • –template-type: 需要手动指定该参数,使得eval-scope能够正确识别模型的类型,用来设置model generation config。

关于–template-type,具体可参考:模型类型列表
可以使用以下方式,来查看模型的template type list:

from llmuses.models.template import TemplateType
print(TemplateType.get_template_name_list())

4.3 使用本地数据集

数据集默认托管在ModelScope上,加载需要联网。如果是无网络环境,可以使用本地数据集,流程如下:

  • 下载数据集到本地
#假如当前本地工作路径为 /path/to/workdir
wget https://modelscope.oss-cn-beijing.aliyuncs.com/open_data/benchmark/data.zip
unzip data.zip

则解压后的数据集路径为:/path/to/workdir/data 目录下,该目录在后续步骤将会作为–dataset-dir参数的值传入

  • 使用本地数据集创建评估任务
python llmuses/run.py --model ZhipuAI/chatglm3-6b --template-type chatglm3 --datasets arc --dataset-hub Local --dataset-dir /path/to/workdir/data --limit 10

#参数说明
#--dataset-hub: 数据集来源,枚举值: `ModelScope`, `Local`, `HuggingFace` (TO-DO)  默认为`ModelScope`
#-dataset-dir: 当--dataset-hub为`Local`时,该参数指本地数据集路径; 如果--dataset-hub 设置为`ModelScope` or `HuggingFace`,则该参数的含义是数据集缓存路径。
  • (可选)在离线环境加载模型和评测
    模型文件托管在ModelScope Hub端,需要联网加载,当需要在离线环境创建评估任务时,可参考以下步骤:
#1. 准备模型本地文件夹,文件夹结构参考chatglm3-6b,链接:https://modelscope.cn/models/ZhipuAI/chatglm3-6b/files
#例如,将模型文件夹整体下载到本地路径 /path/to/ZhipuAI/chatglm3-6b

#2. 执行离线评估任务
python llmuses/run.py --model /path/to/ZhipuAI/chatglm3-6b --template-type chatglm3 --datasets arc --dataset-hub Local --dataset-dir /path/to/workdir/data --limit 10

4.4 使用run_task函数提交评估任务

  • 配置任务
import torch
from llmuses.constants import DEFAULT_ROOT_CACHE_DIR

#示例
your_task_cfg = {
        'model_args': {'revision': None, 'precision': torch.float16, 'device_map': 'auto'},
        'generation_config': {'do_sample': False, 'repetition_penalty': 1.0, 'max_new_tokens': 512},
        'dataset_args': {},
        'dry_run': False,
        'model': 'ZhipuAI/chatglm3-6b',
        'datasets': ['arc', 'hellaswag'],
        'work_dir': DEFAULT_ROOT_CACHE_DIR,
        'outputs': DEFAULT_ROOT_CACHE_DIR,
        'mem_cache': False,
        'dataset_hub': 'ModelScope',
        'dataset_dir': DEFAULT_ROOT_CACHE_DIR,
        'stage': 'all',
        'limit': 10,
        'debug': False
    }

  • 执行任务
from llmuses.run import run_task

run_task(task_cfg=your_task_cfg)

4.4.1 竞技场模式(Arena)

竞技场模式允许多个候选模型通过两两对比(pairwise battle)的方式进行评估,并可以选择借助AI Enhanced Auto-Reviewer(AAR)自动评估流程或者人工评估的方式,最终得到评估报告,流程示例如下:

  • 环境准备
a. 数据准备,questions data格式参考:llmuses/registry/data/question.jsonl
b. 如果需要使用自动评估流程(AAR),则需要配置相关环境变量,我们以GPT-4 based auto-reviewer流程为例,需要配置以下环境变量:
> export OPENAI_API_KEY=YOUR_OPENAI_API_KEY
  • 配置文件
arena评估流程的配置文件参考: llmuses/registry/config/cfg_arena.yaml
字段说明:
    questions_file: question data的路径
    answers_gen: 候选模型预测结果生成,支持多个模型,可通过enable参数控制是否开启该模型
    reviews_gen: 评估结果生成,目前默认使用GPT-4作为Auto-reviewer,可通过enable参数控制是否开启该步骤
    elo_rating: ELO rating 算法,可通过enable参数控制是否开启该步骤,注意该步骤依赖review_file必须存在
  • 执行脚本
#Usage:
cd llmuses

#dry-run模式 (模型answer正常生成,但专家模型不会被触发,评估结果会随机生成)
python llmuses/run_arena.py -c registry/config/cfg_arena.yaml --dry-run

#执行评估流程
python llmuses/run_arena.py --c registry/config/cfg_arena.yaml
  • 结果可视化
#Usage:
streamlit run viz.py -- --review-file llmuses/registry/data/qa_browser/battle.jsonl --category-file llmuses/registry/data/qa_browser/category_mapping.yaml

4.4.2 单模型打分模式(Single mode)

这个模式下,我们只对单个模型输出做打分,不做两两对比。

  • 配置文件
评估流程的配置文件参考: llmuses/registry/config/cfg_single.yaml
字段说明:
    questions_file: question data的路径
    answers_gen: 候选模型预测结果生成,支持多个模型,可通过enable参数控制是否开启该模型
    reviews_gen: 评估结果生成,目前默认使用GPT-4作为Auto-reviewer,可通过enable参数控制是否开启该步骤
    rating_gen: rating 算法,可通过enable参数控制是否开启该步骤,注意该步骤依赖review_file必须存在
  • 执行脚本
#Example:
python llmuses/run_arena.py --c registry/config/cfg_single.yaml

4.4.3 Baseline模型对比模式(Pairwise-baseline mode)

这个模式下,我们选定 baseline 模型,其他模型与 baseline 模型做对比评分。这个模式可以方便的把新模型加入到 Leaderboard 中(只需要对新模型跟 baseline 模型跑一遍打分即可)

  • 配置文件
评估流程的配置文件参考: llmuses/registry/config/cfg_pairwise_baseline.yaml
字段说明:
    questions_file: question data的路径
    answers_gen: 候选模型预测结果生成,支持多个模型,可通过enable参数控制是否开启该模型
    reviews_gen: 评估结果生成,目前默认使用GPT-4作为Auto-reviewer,可通过enable参数控制是否开启该步骤
    rating_gen: rating 算法,可通过enable参数控制是否开启该步骤,注意该步骤依赖review_file必须存在
  • 执行脚本
#Example:
python llmuses/run_arena.py --c llmuses/registry/config/cfg_pairwise_baseline.yaml

4.5 数据集列表

DatasetNameLinkStatusNote
mmlummluActive
cevalcevalActive
gsm8kgsm8kActive
arcarcActive
hellaswaghellaswagActive
truthful_qatruthful_qaActive
competition_mathcompetition_mathActive
humanevalhumanevalActive
bbhbbhActive
raceraceActive
trivia_qatrivia_qaTo be intergrated

4.6 Leaderboard 榜单

ModelScope LLM Leaderboard大模型评测榜单旨在提供一个客观、全面的评估标准和平台,帮助研究人员和开发者了解和比较ModelScope上的模型在各种任务上的性能表现。

Leaderboard

4.7 实验和报告

ModelRevisionPrecisionHumanitiesSTEMSocialScienceOtherWeightedAvgTargetDelta
Baichuan2-7B-Basev1.0.2fp160.41110.38070.52330.5040.4506-
Baichuan2-7B-Chatv1.0.4fp160.44390.3740.55240.54580.4762-
chatglm2-6bv1.0.12fp160.38340.34130.47080.44450.40770.4546(CoT)-4.69%
chatglm3-6b-basev1.0.1fp160.54350.50870.72270.64710.59920.614-1.48%
internlm-chat-7bv1.0.1fp160.40050.35470.49530.47960.4297-
Llama-2-13b-msv1.0.2fp160.43710.38870.55790.54370.4778-
Llama-2-7b-msv1.0.2fp160.31460.30370.41340.38850.3509-
Qwen-14B-Chatv1.0.6bf160.53260.53970.71840.68590.6102-
Qwen-7Bv1.1.6bf160.3870.40.54030.51390.4527-
Qwen-7B-Chat-Int8v1.1.6int80.43220.42770.60880.57780.5035-
  • Target – The official claimed score of the model on the dataset
  • Delta – The difference between the WeightedAvg score and the Target score
  • Settings: (Split: test, Total num: 13985, 5-shot)
ModelRevisionPrecisionHumanitiesSTEMSocialScienceOtherWeightedAvgAvgTargetDelta
Baichuan2-7B-Basev1.0.2fp160.42950.3980.57360.53250.47810.49180.5416 (official)-4.98%
Baichuan2-7B-Chatv1.0.4fp160.43440.39370.58140.54620.48370.50290.5293 (official)-2.64%
chatglm2-6bv1.0.12fp160.39410.3760.48970.47060.42880.4442--
chatglm3-6b-basev1.0.1fp160.53560.48470.71750.62730.58570.5995--
internlm-chat-7bv1.0.1fp160.41710.39030.57720.54930.47690.4876--
Llama-2-13b-msv1.0.2fp160.4840.41330.61570.58090.52010.53270.548 (official)-1.53%
Llama-2-7b-msv1.0.2fp160.37470.33630.43720.45140.39790.40890.453 (official)-4.41%
Qwen-14B-Chatv1.0.6bf160.5740.5530.74030.6840.63130.64140.646 (official)-0.46%
Qwen-7Bv1.1.6bf160.45870.4260.60780.56290.50840.51510.567 (official)-5.2%
Qwen-7B-Chat-Int8v1.1.6int80.46970.43830.62840.59670.52710.53470.554 (official)-1.93%

4.8 性能评测工具

专注于大语言模型的压测工具,可定制化支持各种不通的数据集格式,以及不同的API协议格式。

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

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

相关文章

android14上使用frida,

由于之前使用frida已经是2年前了,后来一直没有研究两年以后 首先手机得root才可以, 我使用的是一加9pro, root方法参考一加全能盒子、一加全能工具箱官方网站——大侠阿木 (daxiaamu.com)​编辑https://optool.daxiaamu.com/index.php 由于之前使用的是frida 15.1.1在and…

Amesim示例篇-案例1:空间中的铝块散热

前言 本文将通过一个案例继续对Thermal库的元件进一步讲解。 案例1:一个300mm*300mm*1000mm(长*宽*高)的铝板初始温度为45℃,竖直在环境为25℃的空间内静置60min。对流换热系数设置为5W/m2K。本文将通过两种建模方法对铝块的温度…

微软刚发布的Copilot+PC为什么让Intel和AMD尴尬?2024 AI PC元年——产业布局及前景展望

美国东部时间5月20日在微软位于华盛顿的新园区举行的发布会上,宣布将旗下AI助手Copilot全面融入Windows系统,能够在不调用云数据中心的情况下处理更多人工智能任务。 “将世界作为一个提示词就从Windows系统开始”。微软的新PC将是“CopilotPC”&#xf…

树洞陪聊系统源码/陪聊/陪玩/树洞/陪陪/公众号开发/源码交付/树洞系统源码

独立版本源码交付,自研UI和前后端代码 平台自带店员,无需自主招募,搭建直接运营 支持三方登录,官方支付、虎皮椒、易支付/码支付 支持首单体验、盲盒订单、指定下单等多个模式 支持钱包预充值、店员收藏、订单评价等功能 支持…

You must call removeView() on the child‘s parent first.异常分析及解决

问题描述 对试图组件快速的左右滑动过程,发现某一张图片没加载出来,偶现crash 问题分析 view在上次已经是某个ParentView的child,然而现在又把它做为另外一个view的child,于是出现一个view有两个parent。所以就产生了这个错误。…

深入了解Python代码中的缩进与逻辑结构

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、认识缩进在代码中的重要性 代码示例:天气与打球决策 二、缩进与逻辑嵌套 …

uniapp使用内置的switch组件的问题

说明 开关选择器 属性说明 属性名类型默认值说明平台差异说明checkedBooleanfalse是否选中disabledBooleanfalse是否禁用不支持:抖音小程序、飞书小程序typeStringswitch 样式 有效值:switch、checkbox colorColorswitch的颜色,通css的co…

Tensorflow入门实战 P01-实现手写数字识别mnist

目录 1、背景:MNIST手写数字识别 2、完整代码(Tensorflow): 3、运行过程及结果: 4、小结(还是很清晰的) 5、 展望 🍨 本文为🔗365天深度学习训练营 中的学习记录博客…

摔到脑袋,没有骨折,没有脱位,脊髓怎么会损伤?

在一个周末的午后,小明在公园的足球场上不慎摔倒,头部重重撞到草地。虽然很快恢复了意识,但回家后却感到颈部僵硬,四肢无力。家人急忙带他前往医院就医做了相关检查。 经过医生的仔细检查,结果显示小明的头部没有骨折或…

《暮色将尽》跨越世纪的历程,慢慢走向并完善自我

《暮色将尽》跨越世纪的历程,慢慢走向并完善自我 戴安娜阿西尔(1917-2019),英国知名文学编辑、作家。著有《暮色将尽》《昨日清晨》《未经删节》《长书当诉》等。 曾嵘 译 文章目录 《暮色将尽》跨越世纪的历程,慢慢走…

FastGPT私有化部署+OneAPI配置大模型

介绍 FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景! 官网地址 https://doc.fastai.site/docs/intro/ 部署 FastGPT提供…

atomic包装自定义类型

在学习原子变量之初,学过很多它的操作,但是很多都是在内置类型(int、long等)上进行的学习和实验。这次由于工作需要,要使用 atomic 来包装自定义类型,因此打算好好探究一番,把它彻底搞懂。 当要…

iOS系统故障怎么办?这三种苹果手机系统修复方法你一定要知道

随着苹果手机使用时间越长,苹果手机有时也会出现系统问题,如卡顿、崩溃、无法启动等。这些问题不仅影响用户的使用体验,还可能导致数据丢失。因此,掌握苹果手机系统修复方法显得尤为重要。本文将详细介绍苹果手机系统修复的常见方…

冯喜运:5.24今日晚间黄金原油行情如何操作

【黄金消息面分析】:在经历了连续两个交易日的大幅下跌后,黄金市场在北京时间5月24日欧市早盘迎来了反弹。金价目前位于2338美元/盎司附近,市场对此轮波动表现出浓厚的兴趣。本文将深入分析黄金市场的最新动态,探讨其背后的逻辑&a…

非阻塞sokcet和epoll

在Muduo网络库中同时使用了非阻塞socket与epoll,在此简单梳理下。 非阻塞sokcet和epoll共同工作的过程主要涉及网络编程中的非阻塞I/O和事件驱动机制。下面将详细解释这两者如何协同工作: 非阻塞socket简介 在传统的阻塞socket编程中,当调用…

web前端项目已有阿里巴巴图标基础上,再次导入阿里巴巴图标的方法

如果是第一次导入阿里巴巴图标请参考: vue项目引入阿里云图标_vue引用阿里云图标fontclass-CSDN博客 本文主要想讲在项目原有阿里巴巴图标基础上,再次导入阿里巴巴图标的解决办法: 1.iconfont.json对应修改就行,这个简单一看就明白; 2.iconfont.js主要改动<symbol><…

3D模型旋转显示不全怎么办---模大狮模型网

在3D建模和渲染过程中&#xff0c;我们有时会遇到旋转模型时显示不全的问题。这种情况可能由多种原因造成&#xff0c;包括模型本身的问题、软件设置不当、硬件配置不足等。本文将为您详细介绍几种可能的解决方法&#xff0c;帮助您解决3D模型旋转显示不全的问题。 一、检查模型…

活动回顾 |观测云在杭州论坛上闪耀:教育创新与技术领导力的双重荣耀

第二届服务韧性工程论坛在杭州顺利闭幕&#xff0c;观测云以其在可观测性领域的杰出成就和创新成果&#xff0c;成为了论坛的瞩目焦点。在此次以“人工智能驱动运维研发革命&#xff0c;SRE 助力出海企业构建健壮的 IT 生态系统”为主题的盛会上&#xff0c;观测云积极参与了四…

物联网实战--平台篇之(十)“我的“页面设计

目录 一、页面布局 二、头像 三、修改密码 四、重新登录 本项目的交流QQ群:701889554 物联网实战--入门篇https://blog.csdn.net/ypp240124016/category_12609773.html 物联网实战--驱动篇https://blog.csdn.net/ypp240124016/category_12631333.html 本项目资源文件htt…

【论文阅读】 YOLOv10: Real-Time End-to-End Object Detection

文章目录 AbstractIntroductionRelated WorkMethodologyConsistent Dual Assignments for NMS-free Training &#xff08;无NMS训练的一致性双重任务分配&#xff09;Holistic Efficiency-Accuracy Driven Model Design &#xff08;效率-精度驱动的整体模型设计&#xff09; …