ExLlamaV2:高效量化与运行EXL2模型的全面指南

2024-06-20 04:20

本文主要是介绍ExLlamaV2:高效量化与运行EXL2模型的全面指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • ExLlamaV2简介
      • 1.1 ExLlamaV2的性能优化
      • 1.2 EXL2量化格式的介绍
      • 1.3 主要功能和特点
    • 量化EXL2模型
      • 2.1 安装ExLlamaV2库
      • 2.2 下载和准备模型
      • 2.3 使用convert.py脚本进行量化
      • 2.4 EXL2格式的特性
      • 2.5 下载校准数据集
      • 2.6 GPTQ算法在量化中的应用
    • 运行ExLlamaV2进行推理
      • 3.1 复制配置文件
      • 3.2 使用test_inference.py脚本进行测试
      • 3.3 使用chatcode.py脚本进行聊天
      • 3.4 性能比较与其他量化技术
    • EXL2量化方法的深入探讨
      • 5.1 不同量化方法的性能比较
      • 5.2 4.0 bpw及以上与全fp16模型精度的比较
      • 5.3 量化方法的背景
      • 5.4 ExLlamaV2的新量化方法详解
    • VRAM需求分析
      • 6.1 不同bits/bpw设置下的VRAM需求
      • 6.2 VRAM需求与bpw的关系
      • 6.3 具体VRAM需求分析
    • 社区和资源
      • 7.1 社区支持
        • 7.1.1 论坛和讨论组
        • 7.1.2 开发者贡献
        • 7.1.3 技术支持和培训
      • 7.2 可用资源和模型
        • 7.2.1 预训练模型
        • 7.2.2 量化工具
        • 7.2.3 数据集
        • 7.2.4 示例代码
    • 结论
      • 8.1 ExLlamaV2库的总结
      • 8.2 进一步的技术内容
      • 8.3 未来展望

ExLlamaV2简介

1.1 ExLlamaV2的性能优化

ExLlamaV2是一个专为大型语言模型(LLMs)设计的库,旨在通过量化技术显著提升模型的运行效率和推理速度。其核心优势在于采用了先进的量化方法,能够在不牺牲模型精度的前提下,大幅减少模型的存储和计算需求。

ExLlamaV2通过测量量化过程中引入的误差,并智能地分配量化位数(bpw)预算,以最小化对模型性能的影响。这种方法使得模型在保持高精度的同时,能够以更低的计算资源运行,从而在实际应用中实现更高效的推理。

1.2 EXL2量化格式的介绍

EXL2是ExLlamaV2库中引入的一种新型量化格式,专门设计用于优化大型语言模型的存储和推理效率。EXL2格式通过将模型权重从传统的浮点数表示转换为更紧凑的整数表示,从而显著减少模型的存储空间需求。

EXL2量化格式的关键特性包括:

  • 动态量化范围:根据权重的实际分布动态调整量化范围,以最小化量化误差。
  • 智能位数分配:根据权重对模型性能的影响程度,智能分配量化位数,以平衡精度和存储效率。
  • 支持多种量化级别:从低至4位到高至16位的量化级别,满足不同应用场景的需求。

1.3 主要功能和特点

ExLlamaV2库不仅提供了先进的量化技术,还具备一系列强大的功能和特点,使其成为处理大型语言模型的理想选择:

  • 易于使用的API:提供简洁直观的API接口,方便开发者快速上手和集成。
  • 灵活的配置选项:支持多种量化配置和模型参数设置,以适应不同的应用需求。
  • 高效的推理引擎:内置高效的推理引擎,能够在各种硬件平台上实现快速推理。
  • 社区支持和资源丰富:拥有活跃的社区支持和丰富的资源,包括文档、教程和预训练模型。

通过这些功能和特点,ExLlamaV2不仅能够帮助开发者更高效地处理大型语言模型,还能在实际应用中实现显著的性能提升和成本节约。

量化EXL2模型

2.1 安装ExLlamaV2库

在开始量化EXL2模型之前,首先需要安装ExLlamaV2库。ExLlamaV2是一个专门用于高效量化和运行大型语言模型(LLMs)的库。以下是安装步骤:

  1. 安装依赖项

    pip install torch transformers
    
  2. 安装ExLlamaV2库

    pip install exllamav2
    
  3. 验证安装

    import exllamav2
    print(exllamav2.__version__)
    

2.2 下载和准备模型

在量化模型之前,需要下载并准备好要量化的模型。以下是下载和准备模型的步骤:

  1. 从Hugging Face下载模型

    from transformers import AutoModelForCausalLM, AutoTokenizermodel_name = "NousResearch/Nous-Hermes-Llama2-70b"
    model = AutoModelForCausalLM.from_pretrained(model_name)
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    
  2. 保存模型和tokenizer

    model.save_pretrained("path_to_save_model")
    tokenizer.save_pretrained("path_to_save_tokenizer")
    

2.3 使用convert.py脚本进行量化

ExLlamaV2提供了一个方便的脚本convert.py,用于将模型转换为EXL2格式。以下是使用该脚本进行量化的步骤:

  1. 运行convert.py脚本

    python convert.py --model_path path_to_save_model --output_path path_to_quantized_model --quant_method exllamav2
    
  2. 脚本参数说明

    • --model_path:原始模型的路径。
    • --output_path:量化后模型的输出路径。
    • --quant_method:量化方法,这里使用exllamav2

2.4 EXL2格式的特性

EXL2格式是ExLlamaV2库特有的量化格式,具有以下特性:

  • 高效存储:EXL2格式通过量化技术显著减少了模型的大小,同时保持了较高的推理精度。
  • 快速推理:量化后的模型在推理时具有更快的速度,适合在资源受限的环境中使用。
  • 兼容性:EXL2格式的模型可以与ExLlamaV2库无缝集成,支持各种语言任务。

2.5 下载校准数据集

为了确保量化后的模型性能,通常需要使用校准数据集进行校准。以下是下载和准备校准数据集的步骤:

  1. 下载校准数据集

    wget https://example.com/calibration_dataset.zip
    unzip calibration_dataset.zip -d calibration_dataset
    
  2. 使用校准数据集

    from exllamav2 import ExLlamaV2Calibratorcalibrator = ExLlamaV2Calibrator(model_path="path_to_quantized_model", dataset_path="calibration_dataset")
    calibrator.calibrate()
    

2.6 GPTQ算法在量化中的应用

GPTQ(Generalized Pseudo-Quantization)算法是ExLlamaV2库中用于量化的一种高效算法。以下是GPTQ算法在量化中的应用:

  1. GPTQ算法简介

    • GPTQ算法通过伪量化技术,在保持模型精度的同时,显著减少了模型的大小。
    • 该算法支持多种量化位数(如4位、8位等),可以根据需求选择合适的量化位数。
  2. 使用GPTQ算法进行量化

    from exllamav2 import ExLlamaV2Quantizerquantizer = ExLlamaV2Quantizer(model_path="path_to_save_model", quant_method="gptq")
    quantizer.quantize(output_path="path_to_quantized_model")
    

通过以上步骤,您可以成功地安装ExLlamaV2库、下载和准备模型、使用convert.py脚本进行量化、了解EXL2格式的特性、下载校准数据集以及应用GPTQ算法进行量化。这些步骤将帮助您高效地量化EXL2模型,并在各种语言任务中进行推理。

运行ExLlamaV2进行推理

3.1 复制配置文件

在开始使用ExLlamaV2进行推理之前,首先需要确保配置文件的正确设置。配置文件包含了模型的各种参数和设置,是运行推理任务的基础。以下是复制配置文件的具体步骤:

  1. 定位配置文件:首先,找到ExLlamaV2库中提供的默认配置文件。通常,这些文件位于库的安装目录下的config文件夹中。

  2. 复制配置文件:将所需的配置文件复制到你的工作目录中。例如,如果你使用的是GPTQ算法,可能需要复制config_gptq.json文件。

    cp /path/to/exllamav2/config/config_gptq.json /path/to/your/working/directory/
    
  3. 修改配置文件:根据你的具体需求,修改配置文件中的参数。例如,你可能需要调整模型的路径、输入输出设置等。

    {"model_path": "/path/to/your/model","input_settings": {"max_length": 512,"temperature": 0.8},"output_settings": {"max_length": 512}
    }
    

3.2 使用test_inference.py脚本进行测试

在配置文件设置完成后,可以使用test_inference.py脚本来测试模型的推理性能。这个脚本可以帮助你快速验证模型是否正确加载,并且能够正常进行推理。以下是具体步骤:

  1. 运行测试脚本:在命令行中运行test_inference.py脚本,并指定配置文件的路径。

    python /path/to/exllamav2/scripts/test_inference.py --config /path/to/your/config_gptq.json
    
  2. 查看输出结果:脚本会输出模型的推理结果,包括生成的文本、推理时间等信息。通过这些信息,你可以初步评估模型的性能。

    Generated Text: "这是一个测试生成的文本。"
    Inference Time: 0.5 seconds
    

3.3 使用chatcode.py脚本进行聊天

除了测试推理性能,ExLlamaV2还提供了chatcode.py脚本,用于进行交互式的聊天。这个脚本允许你与量化后的模型进行对话,体验模型的实际应用效果。以下是具体步骤:

  1. 运行聊天脚本:在命令行中运行chatcode.py脚本,并指定配置文件的路径。

    python /path/to/exllamav2/scripts/chatcode.py --config /path/to/your/config_gptq.json
    
  2. 输入对话内容:脚本会提示你输入对话内容。你可以输入问题或对话内容,模型会生成相应的回复。

    User: 你好,今天天气怎么样?
    Model: 今天天气晴朗,适合外出活动。
    

3.4 性能比较与其他量化技术

ExLlamaV2不仅提供了高效的量化方法,还允许你比较不同量化技术之间的性能差异。通过这种方式,你可以选择最适合你应用场景的量化方法。以下是性能比较的具体步骤:

  1. 准备不同量化方法的模型:首先,准备使用不同量化方法(如4bit-64g、2.5 bits/bpw等)量化的模型。

  2. 运行性能测试:使用test_inference.py脚本分别测试这些模型的性能,记录推理时间、生成文本的质量等指标。

    python /path/to/exllamav2/scripts/test_inference.py --config /path/to/your/config_4bit.json
    python /path/to/exllamav2/scripts/test_inference.py --config /path/to/your/config_2.5bit.json
    
  3. 比较结果:将不同量化方法的测试结果进行比较,分析各方法的优缺点。

    4bit-64g: Inference Time: 0.5 seconds, Generated Text Quality: High
    2.5 bits/bpw: Inference Time: 0.3 seconds, Generated Text Quality: Medium
    
{"title": "上传模型到Hugging Face Hub","content": [{"h1": "上传模型到Hugging Face Hub","h2": [{"h2": "## 4.1 修改仓库名称","content": "在将量化后的模型上传到Hugging Face Hub之前,首先需要确保你的仓库名称是正确的。Hugging Face Hub要求每个仓库名称必须是唯一的,并且符合一定的命名规范。以下是修改仓库名称的步骤:\n\n1. **登录Hugging Face账户**:确保你已经登录到你的Hugging Face账户。如果没有账户,需要先注册一个。\n2. **创建新仓库**:在Hugging Face的网页上,点击右上角的‘New’按钮,选择‘New model’来创建一个新的模型仓库。\n3. **命名仓库**:在创建新仓库的页面中,为你的仓库命名。确保名称是唯一的,并且描述清楚你的模型用途。\n4. **设置仓库权限**:根据需要设置仓库的权限,可以选择公开或私有。\n\n完成上述步骤后,你将获得一个唯一的仓库URL,用于上传你的量化模型。"},{"h2": "## 4.2 上传量化模型","content": "在修改好仓库名称并创建好仓库后,接下来就是将量化后的模型上传到Hugging Face Hub。以下是上传量化模型的具体步骤:\n\n1. **准备模型文件**:确保你的量化模型文件已经准备好,通常包括模型权重文件、配置文件等。\n2. **安装Hugging Face CLI工具**:如果你还没有安装Hugging Face的命令行工具(CLI),可以通过以下命令安装:\n    ```bash\n    pip install huggingface_hub\n    ```\n3. **登录Hugging Face CLI**:使用以下命令登录你的Hugging Face账户:\n    ```bash\n    huggingface-cli login\n    ```\n    按照提示输入你的Token,完成登录。\n4. **上传模型文件**:使用以下命令将模型文件上传到你的仓库:\n    ```bash\n    huggingface-cli upload <your-repo-name> <path-to-your-model-files>\n    ```\n    将`<your-repo-name>`替换为你的仓库名称,`<path-to-your-model-files>`替换为你的模型文件路径。\n5. **验证上传**:上传完成后,可以在Hugging Face的网页上查看你的仓库,确保所有文件都已经成功上传。\n\n通过以上步骤,你已经成功将量化后的模型上传到了Hugging Face Hub,其他人可以通过你的仓库URL访问和使用你的模型。"}]}]
}

EXL2量化方法的深入探讨

5.1 不同量化方法的性能比较

在量化大型语言模型(LLMs)时,选择合适的量化方法至关重要。不同的量化方法在性能上有着显著的差异,主要体现在模型精度、推理速度和内存占用等方面。以下是几种常见的量化方法与EXL2量化方法的性能比较:

  • FP16量化:传统的半精度浮点量化方法,能够保持较高的模型精度,但内存占用较大,推理速度相对较慢。
  • INT8量化:通过将权重和激活值量化到8位整数,可以显著减少内存占用,但在模型精度上会有一定损失。
  • GPTQ量化:一种基于梯度的量化方法,能够在保持较高精度的同时,显著减少内存占用和提高推理速度。
  • EXL2量化:ExLlamaV2库中引入的新量化方法,结合了GPTQ算法的优势,并进一步优化了量化过程,实现了更高的精度和更低的内存占用。

通过实际测试和比较,EXL2量化方法在模型精度、推理速度和内存占用等方面均表现出色,尤其在处理大型LLMs时,其优势更为明显。

5.2 4.0 bpw及以上与全fp16模型精度的比较

在量化过程中,bits per weight(bpw)是一个关键参数,它决定了量化后的权重所占用的位数。通常情况下,bpw越低,内存占用越少,但模型精度也会相应降低。以下是4.0 bpw及以上与全fp16模型精度的比较:

  • 全fp16模型:使用16位浮点数表示权重和激活值,能够保持最高的模型精度,但内存占用较大。
  • 4.0 bpw量化模型:使用4位整数表示权重,能够在保持较高精度的同时,显著减少内存占用。
  • 4.25 bpw量化模型:进一步减少内存占用的同时,模型精度略有下降,但仍能保持较高的性能。
  • 4.5 bpw量化模型:在4.25 bpw的基础上进一步减少内存占用,模型精度略有下降,但仍能满足大多数应用需求。

通过实际测试和比较,4.0 bpw及以上的量化模型在模型精度上与全fp16模型相比,虽然略有下降,但在内存占用和推理速度上有着显著优势。

5.3 量化方法的背景

量化方法的发展背景主要源于对大型语言模型推理效率和内存占用的优化需求。随着LLMs的规模不断增大,传统的全精度模型在推理过程中面临着巨大的内存占用和计算资源消耗。因此,研究人员开始探索各种量化方法,以在保持模型精度的同时,减少内存占用和提高推理速度。

量化方法的核心思想是通过降低权重和激活值的表示精度,从而减少内存占用。常见的量化方法包括线性量化、非线性量化和基于梯度的量化等。这些方法在实际应用中各有优劣,需要根据具体需求进行选择和优化。

5.4 ExLlamaV2的新量化方法详解

ExLlamaV2库中引入的新量化方法EXL2,是一种结合了GPTQ算法优势并进一步优化的量化方法。以下是EXL2量化方法的详细解析:

  • 量化过程:EXL2量化方法首先对模型权重进行预处理,然后使用GPTQ算法进行量化,最后对量化后的权重进行后处理,以进一步优化模型性能。
  • 量化参数:EXL2量化方法支持多种量化参数设置,包括bits per weight(bpw)、量化级别和量化策略等,用户可以根据具体需求进行调整。
  • 性能优化:EXL2量化方法在量化过程中引入了多种优化策略,包括权重共享、激活值重用和动态量化等,以进一步提高模型精度和推理速度。
  • 实际应用:通过实际测试和应用,EXL2量化方法在处理大型LLMs时表现出色,能够在保持较高精度的同时,显著减少内存占用和提高推理速度。

总之,EXL2量化方法是ExLlamaV2库中的一项重要创新,它通过结合GPTQ算法的优势并进一步优化量化过程,实现了在大型LLMs上的高效推理和低内存占用。

VRAM需求分析

6.1 不同bits/bpw设置下的VRAM需求

在使用ExLlamaV2进行模型量化和推理时,了解不同bits/bpw(bits per weight)设置下的VRAM需求至关重要。VRAM(显存)需求直接影响模型能否在特定硬件上运行,特别是在资源有限的GPU上。以下是不同bits/bpw设置下的VRAM需求分析:

  • 2.4 bpw:对于2.4 bpw的量化设置,模型的大小显著减小,但精度可能会有所下降。在这种设置下,VRAM需求通常较低,适合在低端GPU上运行,如单个3090或4090。
  • 2.65 bpw:增加到2.65 bpw时,模型的精度会有所提升,但VRAM需求也会相应增加。这种设置适合在中高端GPU上运行,能够提供更好的性能。
  • 4.0 bpw:4.0 bpw的设置通常接近全精度模型的性能,VRAM需求较高。这种设置适合在高端GPU上运行,能够提供接近全精度的性能。

6.2 VRAM需求与bpw的关系

VRAM需求与bpw之间存在直接关系。随着bpw的增加,模型的量化程度降低,模型的体积增大,从而导致VRAM需求的增加。具体来说:

  • 低bpw设置(如2.4 bpw):模型体积小,VRAM需求低,适合在资源有限的GPU上运行。
  • 高bpw设置(如4.0 bpw):模型体积大,VRAM需求高,适合在资源丰富的GPU上运行。

这种关系可以通过以下公式大致估算:

[ \text{VRAM需求} \approx \text{模型大小} \times \text{bpw} ]

6.3 具体VRAM需求分析

为了更具体地分析VRAM需求,以下是一些常见模型在不同bpw设置下的VRAM需求示例:

  • 70B模型

    • 2.4 bpw:约14GB VRAM
    • 2.65 bpw:约15.5GB VRAM
    • 4.0 bpw:约20GB VRAM
  • 13B模型

    • 2.4 bpw:约7GB VRAM
    • 2.65 bpw:约8GB VRAM
    • 4.0 bpw:约10GB VRAM

通过这些具体数据,可以更好地规划和选择适合的硬件配置,以满足不同bpw设置下的VRAM需求。

总之,了解不同bits/bpw设置下的VRAM需求对于优化模型运行和选择合适的硬件至关重要。通过合理选择bpw设置,可以在保证模型性能的同时,最大限度地利用有限的VRAM资源。

社区和资源

7.1 社区支持

ExLlamaV2的社区支持是推动其发展和应用的重要力量。社区成员包括开发者、研究人员和爱好者,他们通过各种渠道进行交流和协作,共同推动ExLlamaV2的技术进步和应用拓展。

7.1.1 论坛和讨论组

社区成员经常在专门的论坛和讨论组中分享经验、提出问题和解答疑惑。这些平台包括但不限于GitHub Issues、Reddit的机器学习板块以及专门的Slack或Discord频道。通过这些渠道,用户可以及时获取最新的技术动态、解决方案和最佳实践。

7.1.2 开发者贡献

ExLlamaV2的发展离不开开发者的贡献。许多开发者通过提交代码、修复bug、改进文档和提供新的功能来增强ExLlamaV2的性能和可用性。这种开源的协作模式使得ExLlamaV2能够快速响应用户需求,不断优化和更新。

7.1.3 技术支持和培训

为了帮助用户更好地使用ExLlamaV2,社区还提供了丰富的技术支持和培训资源。这些资源包括在线教程、视频课程、研讨会和实践工作坊,旨在帮助用户从基础到高级全面掌握ExLlamaV2的使用技巧和量化技术。

7.2 可用资源和模型

ExLlamaV2的社区提供了丰富的资源和模型,以支持用户在不同场景下的应用需求。这些资源包括预训练模型、量化工具、数据集和示例代码,为用户提供了从模型选择到部署的全方位支持。

7.2.1 预训练模型

社区提供了多种预训练模型,涵盖了从通用语言模型到特定领域的专业模型。这些模型经过量化处理,可以在资源受限的环境下高效运行,满足不同用户的需求。

7.2.2 量化工具

为了简化量化过程,社区提供了多种量化工具和脚本。这些工具支持自动化的量化流程,用户只需简单配置即可完成模型的量化处理,大大降低了使用门槛。

7.2.3 数据集

为了支持模型的训练和评估,社区提供了丰富的数据集资源。这些数据集涵盖了多种语言和领域,用户可以根据自己的需求选择合适的数据集进行模型训练和性能测试。

7.2.4 示例代码

为了帮助用户快速上手,社区提供了详细的示例代码和教程。这些资源覆盖了从基础操作到高级应用的各个方面,用户可以根据自己的需求选择合适的教程进行学习。

通过社区的支持和丰富的资源,用户可以更加高效地使用ExLlamaV2进行模型量化和推理,推动其在实际应用中的广泛应用和发展。

结论

8.1 ExLlamaV2库的总结

ExLlamaV2库是一个专为大型语言模型(LLMs)设计的量化库,它通过引入EXL2量化格式,极大地提高了模型的推理速度和存储效率。与传统的非量化模型相比,ExLlamaV2在保持相似精度水平的同时,显著减少了VRAM的使用,从而使得这些模型在资源受限的环境中也能高效运行。

ExLlamaV2的核心优势在于其先进的GPTQ算法和优化的内核,这些技术使得模型在GPU上的推理速度得到了极大的提升。此外,EXL2格式支持不同级别的量化,允许在模型和每一层中混合使用不同的精度,这种灵活性使得ExLlamaV2能够自动尝试不同的量化参数,并测量它们引入的误差,从而选择最佳的量化策略。

8.2 进一步的技术内容

尽管ExLlamaV2已经提供了非常高效的量化解决方案,但仍有进一步的技术内容值得探讨。例如,可以研究如何在保持模型性能的同时,进一步减少量化误差。此外,探索如何在不同的硬件平台上优化ExLlamaV2的性能,也是一个有价值的研究方向。

另一个值得关注的领域是如何将ExLlamaV2与其他优化技术(如模型剪枝和知识蒸馏)结合,以实现更高效的模型压缩。这些技术的结合可能会带来新的突破,使得大型语言模型在边缘设备上的部署成为可能。

8.3 未来展望

随着技术的不断进步,ExLlamaV2有望在未来支持更多类型的模型和更复杂的量化策略。例如,可以预见的是,ExLlamaV2可能会引入对稀疏模型的支持,这将使得模型在保持高性能的同时,进一步减少存储和计算需求。

此外,随着量子计算技术的发展,未来的ExLlamaV2可能会探索与量子计算的结合,以实现前所未有的计算速度和模型规模。这种跨领域的结合将为人工智能领域带来革命性的变化。

总之,ExLlamaV2作为一个前沿的量化库,其未来的发展充满了无限可能。通过不断的研究和创新,ExLlamaV2将继续推动大型语言模型的发展,为人工智能的应用开辟新的道路。

这篇关于ExLlamaV2:高效量化与运行EXL2模型的全面指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1077081

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

eclipse运行springboot项目,找不到主类

解决办法尝试了很多种,下载sts压缩包行不通。最后解决办法如图: help--->Eclipse Marketplace--->Popular--->找到Spring Tools 3---->Installed。

22.手绘Spring DI运行时序图

1.依赖注入发生的时间 当Spring loC容器完成了 Bean定义资源的定位、载入和解析注册以后,loC容器中已经管理类Bean 定义的相关数据,但是此时loC容器还没有对所管理的Bean进行依赖注入,依赖注入在以下两种情况 发生: 、用户第一次调用getBean()方法时,loC容器触发依赖注入。 、当用户在配置文件中将<bean>元素配置了 lazy-init二false属性,即让

21.手绘Spring IOC运行时序图

1.再谈IOC与 DI IOC(lnversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创 建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让 容器知道需要创建的对象与对象的关系。这个描述最具体表现就是我们所看到的配置文件。 DI(Dependency Injection)依赖注入:就是指对象是被动接受依赖类

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

java中查看函数运行时间和cpu运行时间

android开发调查性能问题中有一个现象,函数的运行时间远低于cpu执行时间,因为函数运行期间线程可能包含等待操作。native层可以查看实际的cpu执行时间和函数执行时间。在java中如何实现? 借助AI得到了答案 import java.lang.management.ManagementFactory;import java.lang.management.Threa

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

智能客服到个人助理,国内AI大模型如何改变我们的生活?

引言 随着人工智能(AI)技术的高速发展,AI大模型越来越多地出现在我们的日常生活和工作中。国内的AI大模型在过去几年里取得了显著的进展,不少独创的技术点和实际应用令人瞩目。 那么,国内的AI大模型有哪些独创的技术点?它们在实际应用中又有哪些出色表现呢?此外,普通人又该如何利用这些大模型提升工作和生活的质量和效率呢?本文将为你一一解析。 一、国内AI大模型的独创技术点 多模态学习 多

OpenCompass:大模型测评工具

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模型问答项目问答性能评估方法大模型数据侧总结大模型token等基本概念及参数和内存的关系大模型应用开发-华为大模型生态规划从零开始的LLaMA-Factor