TAPA代码学习


快速训练自己的大语言模型:

基于LLAMA-7B的lora指令微调

0 选择工程 Lit-LLaMA

基于MetaAI开源的LLaMA模型所独立实现的可以以较低资源运行的模型

Lit-LLaMA 是一个基于 nanoGPT 的 LLaMA 语言模型的实现,支持量化、LoRA 微调、预训练、flash attention、LLaMA-Adapter 微调、Int8 和 GPTQ 4bit 量化。

1 下载LLAMA-7B模型

基于LLAMA-7B做指令微调,所以要先下载模型权重,并作一系列转换

python scripts/download.py --repo_id openlm-research/open_llama_7b --local_dir checkpoints/open-llama/7B

在这里插入图片描述

2 模型转换

python scripts/convert_hf_checkpoint.py --checkpoint_dir checkpoints/open-llama/7B --model_size 7B

在这里插入图片描述

3 初步测试

 python generate.py --prompt "Today is a"

在这里插入图片描述

4 指令微调

4.1 数据准备

python scripts/prepare_alpaca.py

补充:lit-llama目录结构 红色框,其余为TAPA自建

image-20231107163812600

4.2 模型训练

python finetune/lora.py

4.3 模型测试

 python generate.py --prompt "Today is a"

Detic

目标检测

image-20231107194736336

安装所需依赖,下面作者进行方法调用,通过此模型获取场景中所有物体列表

AI2THOR+OpenAI API

场景生成+问答

image-20231107201035229

AI2THOR,直接安装即可

AI2THOR+OpenAI API是为了依据场景进行问答,下面作者进行实现

alpaca_15k_instruction.json指令集合生成

image-20231107201411739

prepare_alpaca.py

此文件是作者将自己指令集替换原有官方指令集,然后做准备,步骤见llama

4 指令微调

generate/adapter_robot.py

此文件只是单纯做文本问答预测,包含图片信息

python generate/adapter_robot.py \
    --prompt "Can you prepare me a sandwich?" \
    --quantize llm.int8 \
    --max_new_tokens 512 \
    --input "[Cabinet, PaperTowelRoll, Cup, ButterKnife, Shelf, Bowl, Fridge, CounterTop, Drawer, Potato, DishSponge, Bread, Statue, Spoon, SoapBottle, ShelvingUnit, HousePlant, Sink, Fork, Spatula, GarbageCan, Plate, Pot, Blinds, Kettle, Lettuce,Stool, Vase, Tomato, Mug, StoveBurner, StoveKnob, CoffeeMachine, LightSwitch, Toaster, Microwave, Ladle, SaltShaker, Apple, PepperShaker]"

generate/adapter_with_detic.py

此文件进行自定义输入图片进行测试,属于简单测试

相比上面文件,相当于多了一步物体列表识别

验证validation

1 准备数据集

# Creating multi-modal validation set
python create_partial_vision_dataset.py
python create_vision_dataset.py

这里是从AI2THOR获取场景图片

2 不同策略对比

python generate/adapter_detic_robot_eval_random.py --navigation_strategy Select one of the random strategies
python generate/adapter_detic_robot_eval_traversal.py --navigation_strategy Select one of the traversal strategies

文章作者: Ghan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ghan !
  目录