引言
在这篇博客中,我将分享我在完成英特尔技术实验过程中的一些经验和心得。内容涵盖英特尔技术的介绍、具体的实验步骤及结果,以及我个人的一些体会和收获。此外,我还将介绍在英特尔技术分享讲座中所学习到的内容。
一、英特尔介绍
英特尔公司(Intel Corporation)是全球领先的半导体芯片制造商之一,致力于提供高性能计算解决方案。英特尔的技术覆盖范围广泛,包括但不限于处理器、存储、人工智能、大数据等领域。在人工智能方面,英特尔提供了多种优化工具和库,如 Intel Extension for Transformers、Intel Neural Compressor 等,以帮助开发者提升模型的训练和推理性能。
二、英特尔技术分享讲座内容
1. 生成式人工智能和大型语言模型(LLMs)
生成式人工智能(Generative AI)是指能够生成新内容的AI模型。这些模型通过训练数据中的模式和示例来创建文本或其他形式的媒体。大型语言模型(LLMs)则专注于语言建模,训练在大量文本数据上,能够预测下一词或根据提示生成文本。
2. 提高LLM预测性能的方法
- 提示工程(Prompt Engineering):通过设计有效的提示来引导模型生成更准确的结果。
- 微调(Fine-tuning):使用特定任务的数据调整模型的所有参数,提高模型的准确性和鲁棒性。
- 检索增强生成(RAG):结合提示工程和数据库查询,为生成上下文丰富的答案,减少幻觉并适应新数据。
3. 评估指标与基准测试
评估和基准测试是衡量AI模型性能的重要手段。通过标准化的测试数据集和评分机制,可以比较不同模型的性能。
4. Intel® Extension for Transformers
- 功能介绍:Intel Extension for Transformers 是一个旨在加速和优化生成式AI和大型语言模型训练和推理的工具包。支持量化、混合精度训练、剪枝等技术。
- 优化特性:包括自动混合精度(BF16/FP8/FP4/NF4/INT4/INT8)、权重量化等。
- 应用案例:展示了在Hugging Face Optimum-Intel和Microsoft Olive中的集成,显著提升了推理速度和准确性。
5. 微调和优化技术
- 全量微调(Full Fine-Tuning):调整模型的所有参数,适用于需要高精度和鲁棒性的任务。
- 参数高效微调(PEFT):只调整部分参数,保留预训练知识,适用于资源受限的情况。
- 低秩适应(LoRA):通过调整低秩矩阵来微调模型,减少计算成本。
6. RLHF(基于人类反馈的强化学习)
使用人类反馈来训练奖励模型,进一步优化LLM的生成质量。
三、实验过程
本次实验主要使用了英特尔提供的 ModelScope 平台和 Intel Extension for Transformers 工具包。以下是实验的具体步骤:
1. 注册和登录 ModelScope
- 进入 ModelScope 官网,在右上角点击注册完成新用户的注册。
- 注册完成后,登录 ModelScope,进入首页,并确保已绑定阿里云账号并获得免费的云计算资源。
- 启动 CPU 服务器,成功后点击“查看”。
2. 环境配置
- 打开终端(terminal)。
- 进入环境目录
/opt/conda/envs
,新建文件夹itrex
:sh
复制cd /opt/conda/envs mkdir itrex
- 下载并解压镜像文件至
itrex
目录:wget https://idz-ai.oss-cn-hangzhou.aliyuncs.com/LLM/itrex.tar.gz tar -zxvf itrex.tar.gz -C itrex/
- 激活环境并安装对应的 kernel:
conda activate itrex python -m ipykernel install --name itrex
3. 创建 Notebook 并下载模型
- 基于
itrex
kernel 新建一个 Notebook。 - 在 Notebook 中创建新的 cell,下载中文大模型embedding
-
!git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git !git clone https://www.modelscope.cn/AI-ModelScope/bge-base-zh-v1.5.git
-
新建文件 `sample.jsonl`,并输入以下内容: ```json {"content": "cnvrg.io 网站由 Yochay Ettun 和 Leah Forkosh Kolben 创建.", "link": 0} ```
##### 5. 构建 Chatbot 并进行测试
1. 在 Notebook 中添加以下代码,构建并测试 Chatbot:
```python
from intel_extension_for_transformers.neural_chat import PipelineConfig, build_chatbot, plugins
from intel_extension_for_transformers.transformers import RtnConfig
plugins.retrieval.enable = True
plugins.retrieval.args['embedding_model'] = "./bge-base-zh-v1.5"
plugins.retrieval.args["input_path"] = "./sample.jsonl"
config = PipelineConfig(
model_name_or_path='./chatglm3-6b',
plugins=plugins,
optimization_config=RtnConfig(compute_dtype="int8", weight_dtype="int4_fullrange")
)
chatbot = build_chatbot(config)
禁用检索
开启检索