AI生成PPT系列之使用 Llama-3 生成 PowerPoint — 自动化幻灯片制作:使用 LLM 和 Python-pptx 实现自动化演示

本文介绍如何使用 Python-pptx 和 Llama-3 语言模型自动化创建 PowerPoint 演示文稿。通过RAG管道,从CFA考试书籍中提取信息,经过预处理后,利用Groq的llama-3模型生成结构化内容,并通过Pydantic构建提示,最终输出可执行的python-pptx代码创建幻灯片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在企业界,幻灯片随处可见,它常常被用来传达想法和成果。我个人过去 4 年一直在大型跨国公司工作,制作幻灯片是大多数人每周都会做的事情。

如果幻灯片可以有效利用时间,那就不会是一个大问题。很多人会反对这一点,但在我看来,大多数公司的幻灯片都占用了太多时间。员工本可以利用这些时间实际执行项目和构建内容。

RAG 管道

 这是幻灯片基本 RAG 的简单流程图
Python 有一个名为 Python-pptx 的库,允许用户以编程方式创建 PowerPoint 演示文稿。促使大型语言模型使用这个库并生成可执行代码将是第一步。

在这个管道中,我们将获取一个信息集,在本例中是一本关于 CFA 考试的书。此练习的最终目标是加载页面、提取文本并使用 LLM 生成为页面创建幻灯片的代码。

from llama_index.core import SimpleDirectoryReader
#you can use any PDF/text document for this excercise
reader
### 使用 llama3-8B LLaMA-Factory 进行开发 #### 准备环境 为了使用 llama3-8B 模型以及 LLaMA-Factory 工具包进行开发,首先需要准备合适的运行环境。这通常涉及安装 Python 及其依赖库,并配置 GPU 支持以便加速训练推理过程。 对于特定版本的支持情况,在某些情况下可能需要调整 PyTorch 或其他框架的具体版本号来匹配模型的要求[^1]。 #### 下载并加载预训练模型 通过 LLaMA-Factory 获取 llama3-8B 预训练权重文件后,可以利用 Hugging Face Transformers 库中的 `AutoModelForCausalLM` 类轻松加载该模型实例: ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name_or_path = "path_to_llama3_8b" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = AutoModelForCausalLM.from_pretrained(model_name_or_path) ``` 这段代码展示了如何初始化 tokenizer model 对象用于后续操作。 #### 数据集处理与格式化 为了让数据适合输入给定的语言模型,需对其进行适当编码。一般而言,会先定义最大序列长度参数 max_length ,再借助于上述创建好的分词器对象完成文本到 token ID 列表之间的转换工作: ```python def preprocess_function(examples): return tokenizer([" ".join(x) for x in examples["text"]], truncation=True, padding="max_length", max_length=max_length) tokenized_datasets = raw_datasets.map(preprocess_function, batched=True) ``` 此部分实现了对原始语料的清理、分割及向量化等必要前处理步骤。 #### 开始微调流程 当一切就绪之后便能着手实施 Fine-tuning 。这里推荐采用 Trainer API 来简化整个训练循环的设计;同时考虑到资源消耗问题,建议合理设置批量大小 Batch Size 以平衡速度与效果间的权衡关系 : ```python from transformers import TrainingArguments, Trainer training_args = TrainingArguments( output_dir="./results", evaluation_strategy="epoch", learning_rate=2e-5, per_device_train_batch_size=batch_size, per_device_eval_batch_size=batch_size, num_train_epochs=num_epochs, weight_decay=0.01, ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=val_dataset, data_collator=data_collator, tokenizer=tokenizer, ) trainer.train() ``` 以上脚本片段描述了一个典型的基于 Transformer 架构下的监督学习场景下执行 fine-tune 的方法论。 #### 导出优化后的模型 经过充分迭代更新得到满意的结果以后,则可考虑将最终版 checkpoint 转换成更轻量级的形式供实际应用部署时选用。例如说可以通过 Quantization 技术减少存储空间占用率的同时保持较高的预测精度不变: ```bash transformers.onnx --model ./output/checkpoint-best/encoder onnx/model_quantized.onnx --quantize ``` 命令行工具提供了便捷的方式来进行 ONNX 格式的导出及其对应的 INT8 量化变换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识大胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值