快速训练自己的大语言模型:
基于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自建

4.2 模型训练
python finetune/lora.py
4.3 模型测试
python generate.py --prompt "Today is a"
Detic
目标检测

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

AI2THOR,直接安装即可
AI2THOR+OpenAI API是为了依据场景进行问答,下面作者进行实现
alpaca_15k_instruction.json指令集合生成

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
