From 114503f7e6b4f2635132c8018cfceef8de55c787 Mon Sep 17 00:00:00 2001 From: fucai Date: Tue, 4 Feb 2025 22:04:11 -0800 Subject: [PATCH 01/18] hydra with rl including DQN training code --- config/dqn_config.yaml | 1 + hydra_vl4ai/agent/controller.py | 115 ++++++++- hydra_vl4ai/agent/hydra.py | 402 +++++++++++++++++++++++++++++++- hydra_vl4ai/agent/llm.py | 2 + hydra_vl4ai/agent/rl_DQN.py | 149 ++++++++++++ train.py | 106 +++++++++ 6 files changed, 769 insertions(+), 6 deletions(-) create mode 100644 config/dqn_config.yaml create mode 100644 hydra_vl4ai/agent/rl_DQN.py create mode 100644 train.py diff --git a/config/dqn_config.yaml b/config/dqn_config.yaml new file mode 100644 index 0000000..6382c23 --- /dev/null +++ b/config/dqn_config.yaml @@ -0,0 +1 @@ +embedding_prompt_base: \ No newline at end of file diff --git a/hydra_vl4ai/agent/controller.py b/hydra_vl4ai/agent/controller.py index 24595c1..f320479 100644 --- a/hydra_vl4ai/agent/controller.py +++ b/hydra_vl4ai/agent/controller.py @@ -1,16 +1,123 @@ import abc import numpy as np - +from rl_DQN import DQN_EmbeddingViaLLM, ReplayBuffer +from ..util.config import Config +from .smb.state_memory_bank import StateMemoryBank +from .llm import llm +import os +import pickle +from collections import deque +import random class Controller(abc.ABC): - @abc.abstractmethod def __call__(self, instructions: list[str], probs: np.ndarray) -> str: pass - class ControllerLLM(Controller): - + """ + This is the function for not using RL controller + but directly use the LLM score to reture optimal instruction +""" def __call__(self, instructions: list[str], probs: np.ndarray) -> str: return instructions[np.argmax(probs)] + + +class ControllerDQN(Controller): + def __init__(self): + super().__init__() + + self.embedding_prompt_base = Config.dqn_config["embedding_prompt_base"] + self.model_save_path = Config.dqn_config["model_save_path"] + self.task_description_for_instruction = Config.dqn_config["task_description_for_instruction"] + self.rl_agent_train_mode = Config.dqn_config["rl_agent_train_mode"] + + self.rl_agent_model = DQN_EmbeddingViaLLM( + device=Config.dqn_config["device"], + llm_embedding_dim_concatsoc=Config.dqn_config["llm_embedding_dim"], + mlp_hidden_dim=Config.dqn_config["mlp_hidden_dim"], + action_dim=Config.base_config["num_actions"]+1, + critic_layer_num=Config.dqn_config["critic_layer_num"], + critic_lr=Config.dqn_config["critic_lr"] + ) + # load model + if os.path.exists(self.model_save_path+'_critic'): + self.rl_agent_model.load_model(self.model_save_path) + + if self.rl_agent_train_mode: # for training + self.rl_agent_model.train_mode() + # self.pre_obs_emb = None + self.train_log_interval = Config.dqn_config["train_log_interval"] + self.reward_window = deque(maxlen=self.train_log_interval) + self.obs_no = 0 + self.batch_size = Config.dqn_config["batch_size"] + self.update_times = Config.dqn_config["update_times"] + self.save_interval = Config.dqn_config["save_interval"] + self.save_model_obs_num = 0 # accumulate + self.best_cum_reward = 0 + self.best_score = 0 + self.learn_starts = Config.dqn_config["learn_starts"] + self.dqn_explore_epsilon = Config.dqn_config["dqn_explore_epsilon"] + self.dqn_explore_epsilon_decay_rate = Config.dqn_config["dqn_explore_epsilon_decay_rate"] + self.dqn_explore_epsilon_decay_interval = Config.dqn_config["dqn_explore_epsilon_decay_interval"] + self.dqn_explore_thre_value = self.dqn_explore_epsilon - self.dqn_explore_epsilon_decay_rate \ + * (self.obs_no/self.dqn_explore_epsilon_decay_interval) + + # load buffer + if os.path.exists(Config.dqn_config["mlp_hidden_dim"]): + with open(Config.dqn_config["mlp_hidden_dim"], "rb") as reward_buffer_container: + self.replay_buffer = pickle.load(reward_buffer_container) + reward_buffer_container.close() + else: self.replay_buffer = ReplayBuffer(capacity=Config.dqn_config["buffer_size"]) + + else: + self.rl_agent_model.eval_mode() + + async def __call__(self, query:str, current_step_index: int, instructions: list[str], probs: np.ndarray, state_memory_bank: StateMemoryBank) -> str: + prompt = self.build_prompt(query, current_step_index, instructions, probs, state_memory_bank) + + # GET EMBEDDING FROM LLM + response_emb = await llm(Config.base_config["llm_embedding_model"], prompt) + + affordance_value_array = self.rl_agent_model.get_action(obs=response_emb) + + selected_idx = np.argmax(affordance_value_array) + + # randome exploration in the begining. + if self.rl_agent_train_mode: + # if it is in the begining phase, do ramdon exploration! + if self.obs_no <= self.learn_starts or np.random.random() <= self.dqn_explore_thre_value: + selected_idx = random.choice(range(len(affordance_value_array))) + + if selected_idx != len(instructions): + selected_instruction = instructions[selected_idx] + else: + selected_instruction = "REJECT" + return selected_instruction, response_emb, selected_idx + + def build_prompt(self, query:str, current_step_index: int, instructions: list[str], probs: np.ndarray, state_memory_bank: StateMemoryBank): + """Getting prompt based on template""" + # prompt-for-each-query + prompt = self.instruction_prompt_base.replace('[INSERT_QUERY_HERE]', query) # query insert + prompt = prompt.replace('[INSERT_CURRENT_STEP_NO]', str(current_step_index)) # step number insert + + # prompt-for-query-type-about-the-dataset + prompt = prompt.replace('[INSERT_QUERY_TYPE_HERE]', self.task_description_for_instruction) # query type + prompt = prompt.replace('[EXAMPLE_HERE]', self.instruction_example) # query type demo/ exps + + # previous instruction + prompt = prompt.replace('[NEED_TO_PROVIDE_PREVIOUS_INSTRUCTION]', state_memory_bank.instructions_prompt) # previous code insert + + # previous executed code + prompt = prompt.replace('[MORE_CODE_WAITING]', state_memory_bank.codes_prompt) # previous code insert + prompt = prompt.replace('[CURRENTLY_RESULT_WAITING]', state_memory_bank.feedbacks_prompt) # result description insert + + # variable details + prompt = prompt.replace('[VARIABLE_AND_DETAILS]', state_memory_bank.variables_prompt) + + # current instructions/probs + prompt = prompt.replace('[CURRENT_OPTION]', str(instructions)) # instruction options + prompt = prompt.replace('[CURRENT_OPTION_PROBABILITY]', str(probs)) # probs of instruction options + + return prompt \ No newline at end of file diff --git a/hydra_vl4ai/agent/hydra.py b/hydra_vl4ai/agent/hydra.py index 2f92f0e..031d1ce 100644 --- a/hydra_vl4ai/agent/hydra.py +++ b/hydra_vl4ai/agent/hydra.py @@ -4,13 +4,15 @@ from .reasoner import Reasoner from .smb import StateMemoryBank -from .controller import ControllerLLM +from .controller import ControllerLLM, ControllerDQN from .planner import Planner from .summarizer import Summarizer from ..util.console import logger from ..util.misc import get_hydra_root_folder from ..util.config import Config - +import numpy as np +import torchvision.ops.boxes as bops +from evaluation.vqa_eval import GQAeval class Hydra: # a base class for both HydraRL and HydraNoRL @@ -176,3 +178,399 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo t = timer.time(timer_msg := f"Summarizer in Step Final") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") return final_result + + +class HydraWithRL(Hydra): + + def __init__(self): + super().__init__() + # load config + dataset = Config.base_config["dataset"] + prompt_type = Config.base_config["prompt"] + self.max_iterations = Config.base_config["max_iterations"] + self._debug = Config.base_config["debug"] + self.task = Config.base_config["task"] + num_actions = Config.base_config["num_actions"] + reasoner_max_retry = Config.base_config["reasoner_max_retry"] + + # load prompts + prompt_path = get_hydra_root_folder() / "agent" / "prompt" / prompt_type + if not prompt_path.exists(): + raise NotImplementedError(f"Prompt for {prompt_type} on {dataset} is not implemented in {prompt_path}.") + + instruction_prompt_base = N.io.read.text(str(prompt_path / "instruction.prompt")) + task_description_for_instruction = N.io.read.text(str(prompt_path / "task_description_for_instruction.prompt")) + instruction_examples = N.io.read.text(str(prompt_path / "instruction_example.prompt")) + + code_prompt_base = N.io.read.text(str(prompt_path / "code.prompt")) + task_description_for_code = N.io.read.text(str(prompt_path / "task_description_for_code.prompt")) + code_example = N.io.read.text(str(prompt_path / "code_example.prompt")) + + self.planner = Planner( + instruction_prompt_base, + task_description_for_instruction, + instruction_examples, + num_actions, + Config.base_config["planner_max_retry"]) + + self.controller = ControllerDQN() # TODO:MODIFY + + self.reasoner = Reasoner( + code_prompt_base, + task_description_for_code, + code_example, + num_actions, + reasoner_max_retry + ) + + match self.task: + case "grounding": + self.summarizer = None + case "vqa": + summarize_prompt_base = N.io.read.text(str(prompt_path / "summarize.prompt")) + guess_answer_prompt_base = N.io.read.text(str(prompt_path / "guess_answer.prompt")) + self.summarizer = Summarizer( + summarize_prompt_base, + guess_answer_prompt_base, + task_description_for_instruction + ) + + async def __call__(self, image: bytes, query: str) -> str: + state_memory_bank = StateMemoryBank() + async with websockets.connect(f"ws://localhost:{Config.base_config['executor_port']}/ws/") as websocket: + match self.task: + case "grounding": + return await self._call_grounding(image, query, state_memory_bank, websocket) + + case "vqa": + return await self._call_vqa(image, query, state_memory_bank, websocket) + + + async def _call_grounding(self, image: bytes, query: str, state_memory_bank: StateMemoryBank, + websocket: WebSocketClientProtocol + ) -> str: + with N.util.Timer(verbose=False) as timer: + for current_step_index in range(1, self.max_iterations + 1): + # ----------------- Planner ----------------- + instructions, probs = await self.planner(query, current_step_index, state_memory_bank) + t = timer.time(timer_msg := f"Planner in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if not instructions: + break + + # ----------------- Controller ----------------- + instruction, response_emb, selectec_idx = self.controller(instructions, probs) #TODO:MODIFY + t = timer.time(timer_msg := f"Controller in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if instruction =="REJECT": #TODO:MODIFY + continue + # ------------------ Reasoner ------------------ + result, code = await self.reasoner(image, query, instruction, current_step_index, state_memory_bank, + websocket) + t = timer.time(timer_msg := f"Reasoner in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if result.type != "error": + assert type(code) is str + state_memory_bank.extend_memory( + result.feedbacks, [code], [instruction], result.variables, result.variable_names + ) + + match result.type: + case "error": + return None + case "final": + return result.final_result + case "continue": + continue + + async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemoryBank, + websocket: WebSocketClientProtocol + ) -> str: + with N.util.Timer(verbose=False) as timer: + # initial perception + result, code = await self.reasoner.initial_run(image, query, websocket) + t = timer.time(timer_msg := f"Reasoner in Step 0") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + if result.type == "error": + return None + state_memory_bank.extend_memory( + result.feedbacks, [], [], result.variables, result.variable_names + ) + + guesses = [] + + for current_step_index in range(1, self.max_iterations + 1): + # ----------------- Planner ----------------- + instructions, probs = await self.planner(query, current_step_index, state_memory_bank) + t = timer.time(timer_msg := f"Planner in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if not instructions: + break + + # ----------------- Controller ----------------- + instruction, response_emb, selectec_idx = self.controller(instructions, probs) #TODO:MODIFY + t = timer.time(timer_msg := f"Controller in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if instruction =="REJECT": #TODO:MODIFY + continue + # ------------------ Reasoner ------------------ + result, code = await self.reasoner(image, query, instruction, current_step_index, state_memory_bank, + websocket) + t = timer.time(timer_msg := f"Reasoner in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if result.type != "error": + assert type(code) is str + state_memory_bank.extend_memory( + result.feedbacks, [code], [instruction], result.variables, result.variable_names + ) + # ------------------ Summarizer ------------------ + guesses.append(await self.summarizer(query, state_memory_bank)) + t = timer.time(timer_msg := f"Summarizer in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + + match result.type: + case "continue": + continue + case "error": + return None + case "final": + # ------------------ Summarizer ------------------ + final_result = await self.summarizer.final_guess(query, guesses) + t = timer.time(timer_msg := f"Summarizer in Step Final") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + return final_result + + +class HydraTrainingRL(Hydra): + + def __init__(self): + super().__init__() + # load config + self.dataset = Config.base_config["dataset"] + prompt_type = Config.base_config["prompt"] + self.max_iterations = Config.base_config["max_iterations"] + self._debug = Config.base_config["debug"] + self.task = Config.base_config["task"] + num_actions = Config.base_config["num_actions"] + reasoner_max_retry = Config.base_config["reasoner_max_retry"] + + # load prompts + prompt_path = get_hydra_root_folder() / "agent" / "prompt" / prompt_type + if not prompt_path.exists(): + raise NotImplementedError(f"Prompt for {prompt_type} on {self.dataset} is not implemented in {prompt_path}.") + + instruction_prompt_base = N.io.read.text(str(prompt_path / "instruction.prompt")) + task_description_for_instruction = N.io.read.text(str(prompt_path / "task_description_for_instruction.prompt")) + instruction_examples = N.io.read.text(str(prompt_path / "instruction_example.prompt")) + + code_prompt_base = N.io.read.text(str(prompt_path / "code.prompt")) + task_description_for_code = N.io.read.text(str(prompt_path / "task_description_for_code.prompt")) + code_example = N.io.read.text(str(prompt_path / "code_example.prompt")) + + self.planner = Planner( + instruction_prompt_base, + task_description_for_instruction, + instruction_examples, + num_actions, + Config.base_config["planner_max_retry"]) + + self.controller = ControllerDQN() # TODO:MODIFY + + self.reasoner = Reasoner( + code_prompt_base, + task_description_for_code, + code_example, + num_actions, + reasoner_max_retry + ) + + match self.task: + case "grounding": + self.summarizer = None + case "vqa": + summarize_prompt_base = N.io.read.text(str(prompt_path / "summarize.prompt")) + guess_answer_prompt_base = N.io.read.text(str(prompt_path / "guess_answer.prompt")) + self.summarizer = Summarizer( + summarize_prompt_base, + guess_answer_prompt_base, + task_description_for_instruction + ) + + async def __call__(self, image: bytes, query: str, ground_true=None) -> str: + state_memory_bank = StateMemoryBank() + async with websockets.connect(f"ws://localhost:{Config.base_config['executor_port']}/ws/") as websocket: + match self.task: + case "grounding": + return await self._call_grounding(image, query, state_memory_bank, websocket, ground_true) + + case "vqa": + return await self._call_vqa(image, query, state_memory_bank, websocket, ground_true) + + + async def _call_grounding(self, image: bytes, query: str, state_memory_bank: StateMemoryBank, + websocket: WebSocketClientProtocol, ground_true=None + ) -> str: + with N.util.Timer(verbose=False) as timer: + sub_reward = 10 + pre_obs_emb =None + for current_step_index in range(1, self.max_iterations + 1): + # ----------------- Planner ----------------- + instructions, probs = await self.planner(query, current_step_index, state_memory_bank) + t = timer.time(timer_msg := f"Planner in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if not instructions: + break + + # ----------------- Controller ----------------- + instruction, response_emb, selectec_idx = self.controller(instructions, probs) + t = timer.time(timer_msg := f"Controller in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if instruction =="REJECT": + continue + # ------------------ Reasoner ------------------ + result, code = await self.reasoner(image, query, instruction, current_step_index, state_memory_bank, + websocket) + t = timer.time(timer_msg := f"Reasoner in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if result.type != "error": + assert type(code) is str + state_memory_bank.extend_memory( + result.feedbacks, [code], [instruction], result.variables, result.variable_names + ) + + else: + sub_reward -= 100 + + if result.type == "final": + sub_reward += float(bops.box_iou(result.final_result, ground_true)[0][0])*100 + + # Calculate reward + sub_reward -= current_step_index + self.controller.save_model_obs_num += 1 + + # update buffer and model + if current_step_index >1: + # store transition + self.controller.replay_buffer.push(pre_obs_emb, selectec_idx, sub_reward, response_emb, done=False) + self.controller.reward_window.append(sub_reward) + self.controller.obs_no += 1 + # update model each step when buffer size bigger than batch_size. + if len(self.controller.replay_buffer) > self.controller.batch_size: + for i in range(self.controller.update_times): + self.controller.rl_agent_model.update(replay_buffer=self.controller.replay_buffer, batch_size=self.controller.batch_size) + + pre_obs_emb = response_emb # reserve current emb as previous emb + self.controller.dqn_explore_thre_value = self.controller.dqn_explore_epsilon - self.controller.dqn_explore_epsilon_decay_rate \ + * (self.controller.obs_no/self.controller.dqn_explore_epsilon_decay_interval) + + match result.type: + case "error": + return None + case "final": + return result.final_result + case "continue": + continue + + async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemoryBank, + websocket: WebSocketClientProtocol, ground_true=None + ) -> str: + with N.util.Timer(verbose=False) as timer: + # initial perception + result, code = await self.reasoner.initial_run(image, query, websocket) + t = timer.time(timer_msg := f"Reasoner in Step 0") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + if result.type == "error": + return None + state_memory_bank.extend_memory( + result.feedbacks, [], [], result.variables, result.variable_names + ) + + guesses = [] + + # for training + sub_reward = 0 + pre_obs_emb =None + + for current_step_index in range(1, self.max_iterations + 1): + # ----------------- Planner ----------------- + instructions, probs = await self.planner(query, current_step_index, state_memory_bank) + t = timer.time(timer_msg := f"Planner in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if not instructions: + break + + # ----------------- Controller ----------------- + instruction, response_emb, selectec_idx = self.controller(instructions, probs) + t = timer.time(timer_msg := f"Controller in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if instruction =="REJECT": + continue + # ------------------ Reasoner ------------------ + result, code = await self.reasoner(image, query, instruction, current_step_index, state_memory_bank, + websocket) + t = timer.time(timer_msg := f"Reasoner in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + if result.type != "error": + assert type(code) is str + state_memory_bank.extend_memory( + result.feedbacks, [code], [instruction], result.variables, result.variable_names + ) + # ------------------ Summarizer ------------------ + guesses.append(await self.summarizer(query, state_memory_bank)) + t = timer.time(timer_msg := f"Summarizer in Step {current_step_index}") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + + else: + sub_reward -= 100 + + if result.type == "final": + if 'okvqa' in self.dataset: + sub_reward += GQAeval().accuracy_one_set([result.final_result], [ground_true]) + else: + sub_reward += GQAeval().accuracy_one_one([result.final_result], [ground_true]) + + + # Calculate reward + sub_reward -= current_step_index + self.controller.save_model_obs_num += 1 + + # update buffer and model + if current_step_index >1: + # store transition + self.controller.replay_buffer.push(pre_obs_emb, selectec_idx, sub_reward, response_emb, done=False) + self.controller.reward_window.append(sub_reward) + self.controller.obs_no += 1 + # update model each step when buffer size bigger than batch_size. + if len(self.controller.replay_buffer) > self.controller.batch_size: + for i in range(self.controller.update_times): + self.controller.rl_agent_model.update(replay_buffer=self.controller.replay_buffer, batch_size=self.controller.batch_size) + + pre_obs_emb = response_emb + self.controller.dqn_explore_thre_value = self.controller.dqn_explore_epsilon - self.controller.dqn_explore_epsilon_decay_rate \ + * (self.controller.obs_no/self.controller.dqn_explore_epsilon_decay_interval) + + + match result.type: + case "continue": + continue + case "error": + return None + case "final": + # ------------------ Summarizer ------------------ + final_result = await self.summarizer.final_guess(query, guesses) + t = timer.time(timer_msg := f"Summarizer in Step Final") + logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") + return final_result \ No newline at end of file diff --git a/hydra_vl4ai/agent/llm.py b/hydra_vl4ai/agent/llm.py index 49dbfbf..52497b1 100644 --- a/hydra_vl4ai/agent/llm.py +++ b/hydra_vl4ai/agent/llm.py @@ -105,6 +105,8 @@ async def ollama(model_name: str, prompt: str): async def llm(model_name: str, prompt: str): if model_name.startswith("gpt"): return await chatgpt(model_name, prompt) + elif model_name.startswith("llm_embedding"): + return await gpt3_embedding(prompt) elif model_name.startswith("llama") or model_name.startswith("deepseek-coder"): return await ollama(model_name, prompt) else: diff --git a/hydra_vl4ai/agent/rl_DQN.py b/hydra_vl4ai/agent/rl_DQN.py new file mode 100644 index 0000000..6ab9150 --- /dev/null +++ b/hydra_vl4ai/agent/rl_DQN.py @@ -0,0 +1,149 @@ +import numpy as np +import random +import torch +import torch.nn as nn +import torch.optim as optim + +from torch.nn.utils import clip_grad_norm_ + + +# MLP head +class MLPHead(nn.Module): + def __init__( + self, + input_dim, + mlp_hidden_dim, + output_dim, + layer_num + ) -> None: + super().__init__() + + mlp_head = [] + for idx in range(layer_num): + if idx == 0: + i_dim = input_dim + else: + i_dim = mlp_hidden_dim + + if idx == layer_num -1: + o_dim = output_dim + else: + o_dim = mlp_hidden_dim + + mlp_head.append(nn.Linear(i_dim, o_dim)) + + # if idx != layer_num -1: + mlp_head.append(nn.Sigmoid()) + + self.mlp_head = nn.Sequential(*mlp_head) + + + def forward(self, x): + return self.mlp_head(x) + +class ReplayBuffer: + def __init__(self,capacity) -> None: + self.capacity = capacity + self.buffer = [] + self.pos = 0 + + def push(self, state, action, reward, next_state, done): + if len(self.buffer) < self.capacity: + self.buffer.append(None) + self.buffer[self.pos] = (state, action, reward, next_state, done) + self.pos = int((self.pos + 1) % self.capacity) # as a ring buffer + + def sample(self,batch_size): + batch = random.sample(self.buffer, batch_size) + state, action, reward, next_state, done = map(np.stack, zip(*batch)) # stack for each element + + return state, action, reward, next_state, done + + def __len__(self): + return len(self.buffer) + + +class DQN_EmbeddingViaLLM(): + def __init__( + self, + device, + llm_embedding_dim_concatsoc, + mlp_hidden_dim, + action_dim, + critic_layer_num, + critic_lr, + ) -> None: + self.device = device + + + self.critic_head = MLPHead(input_dim=llm_embedding_dim_concatsoc, mlp_hidden_dim=mlp_hidden_dim, output_dim=action_dim, layer_num=critic_layer_num).to(device) + self.tar_critic_head = MLPHead(input_dim=llm_embedding_dim_concatsoc, mlp_hidden_dim=mlp_hidden_dim, output_dim=action_dim, layer_num=critic_layer_num).to(device) + for tar_param, param in zip(self.tar_critic_head.parameters(), self.critic_head.parameters()): + tar_param.data.copy_(param.data) + + self.critic_optim = optim.Adam(self.critic_head.parameters(), lr=critic_lr) + + + def get_action(self, obs, batch_input=False): + if not batch_input: obs = torch.FloatTensor(obs).to(self.device).unsqueeze(0) + else: obs = torch.FloatTensor(obs).to(self.device) + + qval = self.critic_head.forward(x=obs) + + return qval.detach().cpu().numpy().flatten() + # if not batch_input: return qval.argmax().detach().cpu().numpy().flatten() + # else: return qval.argmax(dim=-1).detach().cpu().numpy().flatten() + + + def update(self, replay_buffer, batch_size, reward_scale=10., gamma=0.99, soft_tau=1e-2, is_clip_gradient=True, clip_gradient_val=40): + obs, action, reward, next_obs, done = replay_buffer.sample(batch_size) + + obs = torch.FloatTensor(obs).to(self.device) # obs.size = (batch_size, 1+seq_dim) + next_obs = torch.FloatTensor(next_obs).to(self.device) + action = torch.FloatTensor(action).to(self.device) + reward = torch.FloatTensor(reward).unsqueeze(1).to(self.device) # reward is single value, unsqueeze() to add one dim to be [reward] at the sample dim; + reward = reward_scale * (reward - reward.mean(dim=0)) / (reward.std(dim=0) + 1e-6) # normalize with batch mean and std; plus a small number to prevent numerical problem + done = torch.FloatTensor(np.float32(done)).unsqueeze(1).to(self.device) + # print(f'self.critic_head.forward(x=obs) {self.critic_head.forward(x=obs).shape}') + # print(f'action.long() {action.long().shape}') + # qval = self.critic_head.forward(x=obs).gather(1, action.long()) + val_value_ = self.critic_head.forward(x=obs) + qval = val_value_.gather(1, action.long().reshape(val_value_.size(0), 1)) + + with torch.no_grad(): + max_next_qval = self.tar_critic_head.forward(x=next_obs).max(dim=-1)[0].unsqueeze(-1) + tar_qval = reward + gamma * (1-done) * max_next_qval + + loss_func = nn.MSELoss() + qloss = loss_func(qval, tar_qval.detach()) + + self.critic_optim.zero_grad() + qloss.backward() + if is_clip_gradient: clip_grad_norm_(self.critic_head.parameters(), clip_gradient_val) + self.critic_optim.step() + + for tar_param,param in zip(self.tar_critic_head.parameters(),self.critic_head.parameters()): + tar_param.data.copy_(param.data*soft_tau + tar_param.data*(1-soft_tau)) + + return qloss.detach().cpu().item() + + def save_model(self, path): + torch.save(self.critic_head.state_dict(), path+'_critic') + + def load_model(self, path): + self.critic_head.load_state_dict(torch.load(path+'_critic')) + + for tar_param, param in zip(self.tar_critic_head.parameters(), self.critic_head.parameters()): + tar_param.data.copy_(param.data) + + self.critic_head.eval() + self.tar_critic_head.eval() + + def eval_mode(self): + self.critic_head.eval() + self.tar_critic_head.eval() + + def train_mode(self): + self.critic_head.train() + self.tar_critic_head.train() + diff --git a/train.py b/train.py new file mode 100644 index 0000000..86c101f --- /dev/null +++ b/train.py @@ -0,0 +1,106 @@ +import asyncio +import json +import os +import requests +import time +import tensorneko_util as N +from pathlib import Path +from dotenv import load_dotenv +load_dotenv() +import numpy as np + +import argparse +parser = argparse.ArgumentParser() +parser.add_argument("--data_root", type=str, required=True) +parser.add_argument("--base_config", type=str, required=True) +parser.add_argument("--model_config", type=str, required=True) +parser.add_argument("--result_folder", type=str, default="./result") +args = parser.parse_args() + +from hydra_vl4ai.util.config import Config +Config.base_config_path = args.base_config +Config.model_config_path = args.model_config + +from hydra_vl4ai.agent.hydra import HydraNoRL, HydraTrainingRL +from hydra_vl4ai.util.console import logger, console +from hydra_vl4ai.util.misc import wait_until_loaded +import exp_datasets + + +async def main(): + with console.status("[bold green]Connect to HYDRA executor...") as status: + wait_until_loaded(f"http://localhost:{Config.base_config['executor_port']}") + hydra = HydraTrainingRL() + + match Config.base_config["dataset"]: + case "gqa": + dataset = exp_datasets.GQA( + args.data_root + ) + case "okvqa": + dataset = exp_datasets.OKVQA( + args.data_root + ) + case "aokvqa": + # TODO: Not tested yet + # dataset = exp_datasets.AOKVQA( + # f"{args.data_root}/aokvqa", + # "val", f"{args.data_root}/coco", version="v1p0" + # ) + raise NotImplementedError("AOKVQA is not implemented yet") + case "refcoco": + dataset = exp_datasets.Refcoco(args.data_root) + case "refcoco+": + dataset = exp_datasets.Refcoco(args.data_root) + case _: + raise ValueError("Invalid dataset") + + # output path + Path(args.result_folder).mkdir(parents=True, exist_ok=True) + save_path = Path(args.result_folder) / f"result_{Config.base_config['dataset']}.jsonl" + + # resume if the file exists + completed = [] + if os.path.exists(save_path): + prev_results = N.io.read.json(str(save_path)) + completed = [result["datum_id"] for result in prev_results] + + for i, (image_path, datum_id, query, ground_truth) in enumerate(dataset): + if datum_id in completed: + logger.info(f"Skipping {i+1}/{len(dataset)}") + continue + logger.info(f"Processing {i+1}/{len(dataset)}") + with open(image_path, "rb") as f: + image_buffer = f.read() + result = await hydra(image_buffer, query, ground_truth) + logger.info(f"Query: {query} Answer: {result}") + + with open(save_path, "a") as f: + f.write(json.dumps({ + "datum_id": datum_id, + "query": query, + "ground_truth": ground_truth, + "result": result + }) + "\n") + f.flush() + + # training log info + if hydra.controller.obs_no % hydra.controller.train_log_interval == 0: + mean_reward = np.mean(hydra.controller.reward_window) + cum_reward = 0.99*cum_reward + 0.01*mean_reward + logger.info('---Current step:{}-----Mean Reward:{:.2f}----Cumulative Reward:{:.2f}'.format(hydra.controller.obs_no, mean_reward, cum_reward)) + + if hydra.controller.save_model_obs_num > hydra.controller.save_interval \ + and hydra.controller.best_cum_reward < cum_reward: + + # update best cummulated reward + hydra.controller.best_cum_reward = cum_reward + + # save model + hydra.controller.rl_agent_model.save_model(hydra.controller.model_save_path) + + hydra.controller.save_model_obs_num = 0 + + +if __name__ == "__main__": + asyncio.run(main=main()) From 1861a9964e4e3b7ccda961be1bd0987989fc88ed Mon Sep 17 00:00:00 2001 From: fucai Date: Tue, 4 Feb 2025 22:34:12 -0800 Subject: [PATCH 02/18] updating config --- config/dqn_config.yaml | 16 +++++++++++++++- hydra_vl4ai/agent/controller.py | 12 ++++++------ hydra_vl4ai/agent/hydra.py | 6 ++++-- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/config/dqn_config.yaml b/config/dqn_config.yaml index 6382c23..b9b690f 100644 --- a/config/dqn_config.yaml +++ b/config/dqn_config.yaml @@ -1 +1,15 @@ -embedding_prompt_base: \ No newline at end of file +model_save_path: your-save-path +rl_agent_train_mode: False # if trainin tune True +llm_embedding_dim: 1536 # small, 3072 for large +mlp_hidden_dim: 512 +critic_layer_num: 4 +critic_lr: 0.0001 +train_log_interval: 100 +batch_size: 128 +update_times: 4 +save_interval: 100 +learn_starts: 1000 +dqn_explore_epsilon: 0.2 +dqn_explore_epsilon_decay_rate: 0.02 +dqn_explore_epsilon_decay_interval: 100 +buffer_size: 100000 \ No newline at end of file diff --git a/hydra_vl4ai/agent/controller.py b/hydra_vl4ai/agent/controller.py index f320479..ea00d1f 100644 --- a/hydra_vl4ai/agent/controller.py +++ b/hydra_vl4ai/agent/controller.py @@ -9,6 +9,7 @@ import pickle from collections import deque import random +import torch class Controller(abc.ABC): @abc.abstractmethod @@ -25,21 +26,21 @@ def __call__(self, instructions: list[str], probs: np.ndarray) -> str: class ControllerDQN(Controller): - def __init__(self): + def __init__(self, embedding_prompt_base, task_description_for_instruction): super().__init__() - self.embedding_prompt_base = Config.dqn_config["embedding_prompt_base"] + self.embedding_prompt_base = embedding_prompt_base self.model_save_path = Config.dqn_config["model_save_path"] - self.task_description_for_instruction = Config.dqn_config["task_description_for_instruction"] + self.task_description_for_instruction = task_description_for_instruction self.rl_agent_train_mode = Config.dqn_config["rl_agent_train_mode"] self.rl_agent_model = DQN_EmbeddingViaLLM( - device=Config.dqn_config["device"], + device=torch.device('cuda:0'), llm_embedding_dim_concatsoc=Config.dqn_config["llm_embedding_dim"], mlp_hidden_dim=Config.dqn_config["mlp_hidden_dim"], action_dim=Config.base_config["num_actions"]+1, critic_layer_num=Config.dqn_config["critic_layer_num"], - critic_lr=Config.dqn_config["critic_lr"] + critic_lr=float(Config.dqn_config["critic_lr"]) ) # load model if os.path.exists(self.model_save_path+'_critic'): @@ -47,7 +48,6 @@ def __init__(self): if self.rl_agent_train_mode: # for training self.rl_agent_model.train_mode() - # self.pre_obs_emb = None self.train_log_interval = Config.dqn_config["train_log_interval"] self.reward_window = deque(maxlen=self.train_log_interval) self.obs_no = 0 diff --git a/hydra_vl4ai/agent/hydra.py b/hydra_vl4ai/agent/hydra.py index 031d1ce..d8d4f44 100644 --- a/hydra_vl4ai/agent/hydra.py +++ b/hydra_vl4ai/agent/hydra.py @@ -213,7 +213,8 @@ def __init__(self): num_actions, Config.base_config["planner_max_retry"]) - self.controller = ControllerDQN() # TODO:MODIFY + embedding_prompt_base = N.io.read.text(str(prompt_path / "embedding.prompt")) + self.controller = ControllerDQN(embedding_prompt_base, task_description_for_instruction) # TODO:MODIFY self.reasoner = Reasoner( code_prompt_base, @@ -381,7 +382,8 @@ def __init__(self): num_actions, Config.base_config["planner_max_retry"]) - self.controller = ControllerDQN() # TODO:MODIFY + embedding_prompt_base = N.io.read.text(str(prompt_path / "embedding.prompt")) + self.controller = ControllerDQN(embedding_prompt_base, task_description_for_instruction) # TODO:MODIFY self.reasoner = Reasoner( code_prompt_base, From 9660f61b1507a8eff0a775a1c93d4b8e6c2a3b75 Mon Sep 17 00:00:00 2001 From: fucai Date: Wed, 5 Feb 2025 05:24:56 -0800 Subject: [PATCH 03/18] draft of rl feature is finished. --- config/dqn_testing.yaml | 17 +++++ ...{dqn_config.yaml => dqn_train_config.yaml} | 6 +- hydra_vl4ai/agent/controller.py | 18 +++-- hydra_vl4ai/agent/hydra.py | 12 ++-- hydra_vl4ai/agent/llm.py | 2 +- hydra_vl4ai/agent/rl_DQN.py | 4 +- hydra_vl4ai/util/config.py | 13 ++++ train.py | 71 +++++++++---------- train_bash.sh | 9 +++ 9 files changed, 97 insertions(+), 55 deletions(-) create mode 100644 config/dqn_testing.yaml rename config/{dqn_config.yaml => dqn_train_config.yaml} (75%) create mode 100755 train_bash.sh diff --git a/config/dqn_testing.yaml b/config/dqn_testing.yaml new file mode 100644 index 0000000..88cffd9 --- /dev/null +++ b/config/dqn_testing.yaml @@ -0,0 +1,17 @@ +model_save_path: ./dqn_model_example +model_name: testing1 +rl_agent_train_mode: True # if trainin tune True +llm_embedding_dim: 1536 # small, 3072 for large +mlp_hidden_dim: 512 +critic_layer_num: 4 +critic_lr: 0.0001 +train_log_interval: 1 +batch_size: 1 +update_times: 2 +save_interval: 1 +learn_starts: 2 +dqn_explore_epsilon: 0.2 +dqn_explore_epsilon_decay_rate: 0.02 +dqn_explore_epsilon_decay_interval: 100 +buffer_size: 100000 +training_epoch: 1 \ No newline at end of file diff --git a/config/dqn_config.yaml b/config/dqn_train_config.yaml similarity index 75% rename from config/dqn_config.yaml rename to config/dqn_train_config.yaml index b9b690f..c138352 100644 --- a/config/dqn_config.yaml +++ b/config/dqn_train_config.yaml @@ -1,5 +1,6 @@ model_save_path: your-save-path -rl_agent_train_mode: False # if trainin tune True +model_name: testing1 +rl_agent_train_mode: True # if trainin tune True llm_embedding_dim: 1536 # small, 3072 for large mlp_hidden_dim: 512 critic_layer_num: 4 @@ -12,4 +13,5 @@ learn_starts: 1000 dqn_explore_epsilon: 0.2 dqn_explore_epsilon_decay_rate: 0.02 dqn_explore_epsilon_decay_interval: 100 -buffer_size: 100000 \ No newline at end of file +buffer_size: 100000 +training_epoch: 4 \ No newline at end of file diff --git a/hydra_vl4ai/agent/controller.py b/hydra_vl4ai/agent/controller.py index ea00d1f..8472cdf 100644 --- a/hydra_vl4ai/agent/controller.py +++ b/hydra_vl4ai/agent/controller.py @@ -1,7 +1,7 @@ import abc import numpy as np -from rl_DQN import DQN_EmbeddingViaLLM, ReplayBuffer +from .rl_DQN import DQN_EmbeddingViaLLM, ReplayBuffer from ..util.config import Config from .smb.state_memory_bank import StateMemoryBank from .llm import llm @@ -26,9 +26,9 @@ def __call__(self, instructions: list[str], probs: np.ndarray) -> str: class ControllerDQN(Controller): - def __init__(self, embedding_prompt_base, task_description_for_instruction): + def __init__(self, embedding_prompt_base, task_description_for_instruction, instruction_example): super().__init__() - + self.instruction_example = instruction_example self.embedding_prompt_base = embedding_prompt_base self.model_save_path = Config.dqn_config["model_save_path"] self.task_description_for_instruction = task_description_for_instruction @@ -43,7 +43,11 @@ def __init__(self, embedding_prompt_base, task_description_for_instruction): critic_lr=float(Config.dqn_config["critic_lr"]) ) # load model - if os.path.exists(self.model_save_path+'_critic'): + model_full_path = os.path.join(self.model_save_path, Config.dqn_config["model_name"]+'_critic') + if not os.path.exists(self.model_save_path): + os.makedirs(self.model_save_path) + + if os.path.exists(model_full_path): self.rl_agent_model.load_model(self.model_save_path) if self.rl_agent_train_mode: # for training @@ -55,7 +59,7 @@ def __init__(self, embedding_prompt_base, task_description_for_instruction): self.update_times = Config.dqn_config["update_times"] self.save_interval = Config.dqn_config["save_interval"] self.save_model_obs_num = 0 # accumulate - self.best_cum_reward = 0 + self.best_cum_reward = -100 #TODO:MODIFY self.best_score = 0 self.learn_starts = Config.dqn_config["learn_starts"] self.dqn_explore_epsilon = Config.dqn_config["dqn_explore_epsilon"] @@ -78,7 +82,7 @@ async def __call__(self, query:str, current_step_index: int, instructions: list[ prompt = self.build_prompt(query, current_step_index, instructions, probs, state_memory_bank) # GET EMBEDDING FROM LLM - response_emb = await llm(Config.base_config["llm_embedding_model"], prompt) + response_emb = await llm(Config.base_config["embedding_model"], prompt) affordance_value_array = self.rl_agent_model.get_action(obs=response_emb) @@ -99,7 +103,7 @@ async def __call__(self, query:str, current_step_index: int, instructions: list[ def build_prompt(self, query:str, current_step_index: int, instructions: list[str], probs: np.ndarray, state_memory_bank: StateMemoryBank): """Getting prompt based on template""" # prompt-for-each-query - prompt = self.instruction_prompt_base.replace('[INSERT_QUERY_HERE]', query) # query insert + prompt = self.embedding_prompt_base.replace('[INSERT_QUERY_HERE]', query) # query insert prompt = prompt.replace('[INSERT_CURRENT_STEP_NO]', str(current_step_index)) # step number insert # prompt-for-query-type-about-the-dataset diff --git a/hydra_vl4ai/agent/hydra.py b/hydra_vl4ai/agent/hydra.py index d8d4f44..81ec918 100644 --- a/hydra_vl4ai/agent/hydra.py +++ b/hydra_vl4ai/agent/hydra.py @@ -214,7 +214,7 @@ def __init__(self): Config.base_config["planner_max_retry"]) embedding_prompt_base = N.io.read.text(str(prompt_path / "embedding.prompt")) - self.controller = ControllerDQN(embedding_prompt_base, task_description_for_instruction) # TODO:MODIFY + self.controller = ControllerDQN(embedding_prompt_base, task_description_for_instruction, instruction_examples) # TODO:MODIFY self.reasoner = Reasoner( code_prompt_base, @@ -261,7 +261,7 @@ async def _call_grounding(self, image: bytes, query: str, state_memory_bank: Sta break # ----------------- Controller ----------------- - instruction, response_emb, selectec_idx = self.controller(instructions, probs) #TODO:MODIFY + instruction, response_emb, selectec_idx = await self.controller(query, current_step_index, instructions, probs, state_memory_bank) #TODO:MODIFY t = timer.time(timer_msg := f"Controller in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") @@ -313,7 +313,7 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo break # ----------------- Controller ----------------- - instruction, response_emb, selectec_idx = self.controller(instructions, probs) #TODO:MODIFY + instruction, response_emb, selectec_idx = await self.controller(query, current_step_index, instructions, probs, state_memory_bank) #TODO:MODIFY t = timer.time(timer_msg := f"Controller in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") @@ -383,7 +383,7 @@ def __init__(self): Config.base_config["planner_max_retry"]) embedding_prompt_base = N.io.read.text(str(prompt_path / "embedding.prompt")) - self.controller = ControllerDQN(embedding_prompt_base, task_description_for_instruction) # TODO:MODIFY + self.controller = ControllerDQN(embedding_prompt_base, task_description_for_instruction, instruction_examples) # TODO:MODIFY self.reasoner = Reasoner( code_prompt_base, @@ -432,7 +432,7 @@ async def _call_grounding(self, image: bytes, query: str, state_memory_bank: Sta break # ----------------- Controller ----------------- - instruction, response_emb, selectec_idx = self.controller(instructions, probs) + instruction, response_emb, selectec_idx = await self.controller(query, current_step_index, instructions, probs, state_memory_bank) t = timer.time(timer_msg := f"Controller in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") @@ -513,7 +513,7 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo break # ----------------- Controller ----------------- - instruction, response_emb, selectec_idx = self.controller(instructions, probs) + instruction, response_emb, selectec_idx = await self.controller(query, current_step_index, instructions, probs, state_memory_bank) t = timer.time(timer_msg := f"Controller in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") diff --git a/hydra_vl4ai/agent/llm.py b/hydra_vl4ai/agent/llm.py index 52497b1..a10d48b 100644 --- a/hydra_vl4ai/agent/llm.py +++ b/hydra_vl4ai/agent/llm.py @@ -105,7 +105,7 @@ async def ollama(model_name: str, prompt: str): async def llm(model_name: str, prompt: str): if model_name.startswith("gpt"): return await chatgpt(model_name, prompt) - elif model_name.startswith("llm_embedding"): + elif "embedding" in model_name: return await gpt3_embedding(prompt) elif model_name.startswith("llama") or model_name.startswith("deepseek-coder"): return await ollama(model_name, prompt) diff --git a/hydra_vl4ai/agent/rl_DQN.py b/hydra_vl4ai/agent/rl_DQN.py index 6ab9150..cc3c4bf 100644 --- a/hydra_vl4ai/agent/rl_DQN.py +++ b/hydra_vl4ai/agent/rl_DQN.py @@ -128,10 +128,10 @@ def update(self, replay_buffer, batch_size, reward_scale=10., gamma=0.99, soft_t return qloss.detach().cpu().item() def save_model(self, path): - torch.save(self.critic_head.state_dict(), path+'_critic') + torch.save(self.critic_head.state_dict(), path+'_critic.pt') def load_model(self, path): - self.critic_head.load_state_dict(torch.load(path+'_critic')) + self.critic_head.load_state_dict(torch.load(path+'_critic.pt')) for tar_param, param in zip(self.tar_critic_head.parameters(), self.critic_head.parameters()): tar_param.data.copy_(param.data) diff --git a/hydra_vl4ai/util/config.py b/hydra_vl4ai/util/config.py index 7f59f4e..470850e 100644 --- a/hydra_vl4ai/util/config.py +++ b/hydra_vl4ai/util/config.py @@ -8,7 +8,9 @@ class Config: def __init__(self): self.model_config_path: str | None = None self._base_config_path: str | None = None + self._dqn_config_path: str | None = None self.base_config: dict[str, Any] = dict() + self.dqn_config: dict[str, Any] = dict() @property def base_config_path(self): @@ -19,3 +21,14 @@ def base_config_path(self, value): if value is not None: self._base_config_path = value self.base_config = N.read(value) + + + @property + def dqn_config_path(self): + return self._dqn_config_path + + @dqn_config_path.setter + def dqn_config_path(self, value): + if value is not None: + self._dqn_config_path = value + self.dqn_config = N.read(value) diff --git a/train.py b/train.py index 86c101f..ee2bcbd 100644 --- a/train.py +++ b/train.py @@ -15,10 +15,12 @@ parser.add_argument("--base_config", type=str, required=True) parser.add_argument("--model_config", type=str, required=True) parser.add_argument("--result_folder", type=str, default="./result") +parser.add_argument("--dqn_config", type=str, required=True) args = parser.parse_args() from hydra_vl4ai.util.config import Config Config.base_config_path = args.base_config +Config.dqn_config_path = args.dqn_config Config.model_config_path = args.model_config from hydra_vl4ai.agent.hydra import HydraNoRL, HydraTrainingRL @@ -58,48 +60,43 @@ async def main(): # output path Path(args.result_folder).mkdir(parents=True, exist_ok=True) save_path = Path(args.result_folder) / f"result_{Config.base_config['dataset']}.jsonl" - - # resume if the file exists - completed = [] - if os.path.exists(save_path): - prev_results = N.io.read.json(str(save_path)) - completed = [result["datum_id"] for result in prev_results] - - for i, (image_path, datum_id, query, ground_truth) in enumerate(dataset): - if datum_id in completed: - logger.info(f"Skipping {i+1}/{len(dataset)}") - continue - logger.info(f"Processing {i+1}/{len(dataset)}") - with open(image_path, "rb") as f: - image_buffer = f.read() - result = await hydra(image_buffer, query, ground_truth) - logger.info(f"Query: {query} Answer: {result}") - with open(save_path, "a") as f: - f.write(json.dumps({ - "datum_id": datum_id, - "query": query, - "ground_truth": ground_truth, - "result": result - }) + "\n") - f.flush() + cum_reward=0 # TODO:modify - # training log info - if hydra.controller.obs_no % hydra.controller.train_log_interval == 0: - mean_reward = np.mean(hydra.controller.reward_window) - cum_reward = 0.99*cum_reward + 0.01*mean_reward - logger.info('---Current step:{}-----Mean Reward:{:.2f}----Cumulative Reward:{:.2f}'.format(hydra.controller.obs_no, mean_reward, cum_reward)) - - if hydra.controller.save_model_obs_num > hydra.controller.save_interval \ - and hydra.controller.best_cum_reward < cum_reward: + for epoch_idx_ in range(Config.dqn_config["training_epoch"]): + for i, (image_path, datum_id, query, ground_truth) in enumerate(dataset): + + logger.info(f"Processing {i+1}/{len(dataset)}") + with open(image_path, "rb") as f: + image_buffer = f.read() + result = await hydra(image_buffer, query, ground_truth) + logger.info(f"Query: {query} Answer: {result}") - # update best cummulated reward - hydra.controller.best_cum_reward = cum_reward + with open(save_path, "a") as f: + f.write(json.dumps({ + "datum_id": datum_id, + "query": query, + "ground_truth": ground_truth, + "result": result + }) + "\n") + f.flush() - # save model - hydra.controller.rl_agent_model.save_model(hydra.controller.model_save_path) + # training log info + if hydra.controller.obs_no % hydra.controller.train_log_interval == 0: + mean_reward = np.mean(hydra.controller.reward_window) + cum_reward = 0.99*cum_reward + 0.01*mean_reward + logger.info('---Current step:{}-----Mean Reward:{:.2f}----Cumulative Reward:{:.2f}'.format(hydra.controller.obs_no, mean_reward, cum_reward)) - hydra.controller.save_model_obs_num = 0 + if hydra.controller.save_model_obs_num > hydra.controller.save_interval \ + and hydra.controller.best_cum_reward < cum_reward: + + # update best cummulated reward + hydra.controller.best_cum_reward = cum_reward + + # save model + hydra.controller.rl_agent_model.save_model(os.path.join(hydra.controller.model_save_path, Config.dqn_config["model_name"])) + + hydra.controller.save_model_obs_num = 0 if __name__ == "__main__": diff --git a/train_bash.sh b/train_bash.sh new file mode 100755 index 0000000..95c71ac --- /dev/null +++ b/train_bash.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# preprocessing +python train.py \ + --data_root '/home/mai/fke/fkee/coco2014' \ + --base_config './config/okvqa.yaml' \ + --model_config './config/model_config_1gpu.yaml' \ + --dqn_config './config/dqn_testing.yaml' +echo "preprocessing done" From 34aab526c922877768bdf68d3c69c8b582b33303 Mon Sep 17 00:00:00 2001 From: fucai Date: Wed, 5 Feb 2025 06:16:24 -0800 Subject: [PATCH 04/18] inference code checked --- config/dqn_testing.yaml | 2 +- config/dqn_train_config.yaml | 2 +- hydra_vl4ai/agent/controller.py | 10 ++++++++-- hydra_vl4ai/agent/rl_DQN.py | 4 ++-- inference_bash.sh | 9 +++++++++ main.py | 12 ++++++++++-- 6 files changed, 31 insertions(+), 8 deletions(-) create mode 100755 inference_bash.sh diff --git a/config/dqn_testing.yaml b/config/dqn_testing.yaml index 88cffd9..62389f6 100644 --- a/config/dqn_testing.yaml +++ b/config/dqn_testing.yaml @@ -1,5 +1,5 @@ model_save_path: ./dqn_model_example -model_name: testing1 +model_name: dataset_nameaokvqa_learn_starts300.pt rl_agent_train_mode: True # if trainin tune True llm_embedding_dim: 1536 # small, 3072 for large mlp_hidden_dim: 512 diff --git a/config/dqn_train_config.yaml b/config/dqn_train_config.yaml index c138352..dfb281d 100644 --- a/config/dqn_train_config.yaml +++ b/config/dqn_train_config.yaml @@ -1,6 +1,6 @@ model_save_path: your-save-path model_name: testing1 -rl_agent_train_mode: True # if trainin tune True +rl_agent_train_mode: True # if training tune True llm_embedding_dim: 1536 # small, 3072 for large mlp_hidden_dim: 512 critic_layer_num: 4 diff --git a/hydra_vl4ai/agent/controller.py b/hydra_vl4ai/agent/controller.py index 8472cdf..bb09012 100644 --- a/hydra_vl4ai/agent/controller.py +++ b/hydra_vl4ai/agent/controller.py @@ -10,6 +10,7 @@ from collections import deque import random import torch +from hydra_vl4ai.util.console import logger class Controller(abc.ABC): @abc.abstractmethod @@ -43,12 +44,17 @@ def __init__(self, embedding_prompt_base, task_description_for_instruction, inst critic_lr=float(Config.dqn_config["critic_lr"]) ) # load model - model_full_path = os.path.join(self.model_save_path, Config.dqn_config["model_name"]+'_critic') + model_full_path = os.path.join(self.model_save_path, Config.dqn_config["model_name"]) if not os.path.exists(self.model_save_path): os.makedirs(self.model_save_path) if os.path.exists(model_full_path): - self.rl_agent_model.load_model(self.model_save_path) + self.rl_agent_model.load_model(model_full_path) + logger.info("Load Model Done!!!") + else: + import pdb + pdb.set_trace() + raise RuntimeError(f"Model is not found: {model_full_path}") if self.rl_agent_train_mode: # for training self.rl_agent_model.train_mode() diff --git a/hydra_vl4ai/agent/rl_DQN.py b/hydra_vl4ai/agent/rl_DQN.py index cc3c4bf..b202ef3 100644 --- a/hydra_vl4ai/agent/rl_DQN.py +++ b/hydra_vl4ai/agent/rl_DQN.py @@ -128,10 +128,10 @@ def update(self, replay_buffer, batch_size, reward_scale=10., gamma=0.99, soft_t return qloss.detach().cpu().item() def save_model(self, path): - torch.save(self.critic_head.state_dict(), path+'_critic.pt') + torch.save(self.critic_head.state_dict(), path) def load_model(self, path): - self.critic_head.load_state_dict(torch.load(path+'_critic.pt')) + self.critic_head.load_state_dict(torch.load(path)) for tar_param, param in zip(self.tar_critic_head.parameters(), self.critic_head.parameters()): tar_param.data.copy_(param.data) diff --git a/inference_bash.sh b/inference_bash.sh new file mode 100755 index 0000000..197eca2 --- /dev/null +++ b/inference_bash.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# preprocessing +python main.py \ + --data_root '/home/mai/fke/fkee/coco2014' \ + --base_config './config/okvqa.yaml' \ + --model_config './config/model_config_1gpu.yaml' \ + --dqn_config './config/dqn_testing.yaml' +echo "preprocessing done" diff --git a/main.py b/main.py index f0b3967..c9d9e96 100644 --- a/main.py +++ b/main.py @@ -14,13 +14,17 @@ parser.add_argument("--base_config", type=str, required=True) parser.add_argument("--model_config", type=str, required=True) parser.add_argument("--result_folder", type=str, default="./result") +parser.add_argument("--dqn_config", type=str) args = parser.parse_args() from hydra_vl4ai.util.config import Config Config.base_config_path = args.base_config +if args.dqn_config: + Config.dqn_config_path = args.dqn_config + Config.dqn_config["rl_agent_train_mode"] = False Config.model_config_path = args.model_config -from hydra_vl4ai.agent.hydra import HydraNoRL +from hydra_vl4ai.agent.hydra import HydraNoRL, HydraWithRL from hydra_vl4ai.util.console import logger, console from hydra_vl4ai.util.misc import wait_until_loaded import exp_datasets @@ -29,7 +33,11 @@ async def main(): with console.status("[bold green]Connect to HYDRA executor...") as status: wait_until_loaded(f"http://localhost:{Config.base_config['executor_port']}") - hydra = HydraNoRL() + + if not args.dqn_config: + hydra = HydraNoRL() + else: + hydra =HydraWithRL() match Config.base_config["dataset"]: case "gqa": From b1d238461018700f85c3b7a7d0326e34fdf0ef58 Mon Sep 17 00:00:00 2001 From: ControlNet Date: Fri, 7 Feb 2025 00:57:00 +1100 Subject: [PATCH 05/18] fix gradio dependency issue --- README.md | 2 +- module_repos/GLIP/pyproject.toml | 3 +++ pixi.toml | 25 +++++++++++++++---------- requirements.txt | 2 +- 4 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 module_repos/GLIP/pyproject.toml diff --git a/README.md b/README.md index d07ce40..455a59e 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ git clone https://github.com/ControlNet/HYDRA Option 1: Using [pixi](https://prefix.dev/) (recommended): ```Bash -pixi run install +pixi install pixi shell ``` diff --git a/module_repos/GLIP/pyproject.toml b/module_repos/GLIP/pyproject.toml new file mode 100644 index 0000000..8ca2555 --- /dev/null +++ b/module_repos/GLIP/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools>=61"] +build-backend = "setuptools.build_meta" diff --git a/pixi.toml b/pixi.toml index 595c368..2daa881 100644 --- a/pixi.toml +++ b/pixi.toml @@ -8,28 +8,27 @@ version = "0.0.0" channel-priority = "disabled" [tasks] -install_glip = { cmd = "python setup.py clean --all build develop --user", cwd = "module_repos/GLIP", env = { CUDA_HOME = "$CONDA_PREFIX", AM_I_DOCKER = "False", BUILD_WITH_CUDA = "True" } } -install_sam = { cmd = "uv pip install -e .", cwd = "module_repos/Grounded-Segment-Anything/segment_anything", env = { CUDA_HOME = "$CONDA_PREFIX", AM_I_DOCKER = "False", BUILD_WITH_CUDA = "True" } } -install_groundingdino = { cmd = "python setup.py clean --all build develop --user", cwd = "module_repos/Grounded-Segment-Anything/GroundingDINO", env = { CUDA_HOME = "$CONDA_PREFIX", AM_I_DOCKER = "False", BUILD_WITH_CUDA = "True" } } -install_llava = { cmd = "uv pip install -e .", cwd = "module_repos/LLaVA", env = { CUDA_HOME = "$CONDA_PREFIX", AM_I_DOCKER = "False", BUILD_WITH_CUDA = "True" } } -install = { cmd = "uv pip install -e . && echo Depedencies installation finished!", depends-on = ["install_glip", "install_sam", "install_groundingdino", "install_llava"], env = { CUDA_HOME = "$CONDA_PREFIX", AM_I_DOCKER = "False", BUILD_WITH_CUDA = "True" } } -executor = "python -m hydra_vl4ai.executor --base_config config/gqa.yaml --model_config config/model_config_1gpu.yaml" -download_model = "python -m hydra_vl4ai.download_model --base_config config/gqa.yaml --model_config config/model_config_1gpu.yaml" +executor = "python -m hydra_vl4ai.executor --base_config config/okvqa.yaml --model_config config/model_config_1gpu.yaml" +download_model = "python -m hydra_vl4ai.download_model --base_config config/okvqa.yaml --model_config config/model_config_1gpu.yaml" [build-dependencies] setuptools = "*" cmake = "*" ninja = "*" +[pypi-options] +no-build-isolation = ["maskrcnn_benchmark", "segment_anything", "groundingdino", "llava", "hydra_vl4ai"] + [dependencies] python = { version = "3.11.*", channel = "anaconda" } pytorch = { version = "==2.1.2", channel = "pytorch" } torchvision = { version = "==0.16.2", channel = "pytorch" } torchaudio = { version = "==2.1.2", channel = "pytorch" } pytorch-cuda = { version = "11.8.*", channel = "pytorch" } -cuda = { version = "11.8.0", channel = "nvidia/label/cuda-11.8.0" } -cuda-libraries-dev = { version = "11.8.0", channel = "nvidia/label/cuda-11.8.0" } -cuda-version = "11.8" +cuda = { version = "==11.8.0", channel = "nvidia/label/cuda-11.8.0" } +cuda-libraries-dev = { version = "==11.8.0", channel = "nvidia/label/cuda-11.8.0" } +cuda-version = "==11.8" +markupsafe = ">2.0,<3.0" numpy = "<2.0" ipywidgets = ">=8.1.5,<9" ipykernel = ">=6.29.5,<7" @@ -66,3 +65,9 @@ gdown = "==5.2.0" rich = "==13.7.1" ollama = "~=0.3.0" protobuf = "~=3.19.0" +gradio = ">=5.0,<5.12" +maskrcnn_benchmark = { path = "module_repos/GLIP", editable = true } +segment_anything = { path = "module_repos/Grounded-Segment-Anything/segment_anything", editable = true } +groundingdino = { path = "module_repos/Grounded-Segment-Anything/GroundingDINO", editable = true } +llava = { path = "module_repos/LLaVA", editable = true } +hydra_vl4ai = { path = ".", editable = true } diff --git a/requirements.txt b/requirements.txt index e601ea9..167e6d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -28,4 +28,4 @@ scipy==1.14.1 gdown==5.2.0 rich==13.7.1 ollama==0.3.* -gradio +gradio>=5.0,<5.12 From 67a4994193177bc22643e9710f0a3d630fa4b1db Mon Sep 17 00:00:00 2001 From: ControlNet Date: Fri, 7 Feb 2025 18:23:23 +1100 Subject: [PATCH 06/18] reformat --- evaluate.py | 13 +- hydra_vl4ai/agent/controller.py | 95 +++++++----- hydra_vl4ai/agent/hydra.py | 169 ++++++++------------- hydra_vl4ai/agent/llm.py | 9 +- hydra_vl4ai/agent/planner.py | 4 +- hydra_vl4ai/agent/reasoner.py | 5 +- hydra_vl4ai/agent/{rl_DQN.py => rl_dqn.py} | 79 +++++----- hydra_vl4ai/agent/smb/state_memory_bank.py | 19 +-- hydra_vl4ai/agent/summarizer.py | 2 +- hydra_vl4ai/agent/webui.py | 20 +-- pixi.toml | 2 +- train.py | 12 +- 12 files changed, 203 insertions(+), 226 deletions(-) rename hydra_vl4ai/agent/{rl_DQN.py => rl_dqn.py} (72%) diff --git a/evaluate.py b/evaluate.py index db41125..39469ad 100644 --- a/evaluate.py +++ b/evaluate.py @@ -1,10 +1,10 @@ -import sys -from evaluation.vqa_eval import GQAeval -from evaluation.grounding_eval import batch_iou_2d -from hydra_vl4ai.util.console import console, logger -import tensorneko_util as N import argparse +import tensorneko_util as N + +from evaluation.grounding_eval import batch_iou_2d +from evaluation.vqa_eval import GQAeval +from hydra_vl4ai.util.console import console, logger if __name__ == '__main__': @@ -20,7 +20,8 @@ match args.dataset: case "okvqa": - score = evaluator.accuracy_one_set([each["result"] for each in result], [each["ground_truth"] for each in result]) + score = evaluator.accuracy_one_set([each["result"] for each in result], + [each["ground_truth"] for each in result]) case "refcoco" | "refcoco+": score = batch_iou_2d(result) case _: diff --git a/hydra_vl4ai/agent/controller.py b/hydra_vl4ai/agent/controller.py index bb09012..26414ad 100644 --- a/hydra_vl4ai/agent/controller.py +++ b/hydra_vl4ai/agent/controller.py @@ -1,33 +1,39 @@ import abc - -import numpy as np -from .rl_DQN import DQN_EmbeddingViaLLM, ReplayBuffer -from ..util.config import Config -from .smb.state_memory_bank import StateMemoryBank -from .llm import llm import os import pickle -from collections import deque import random +from collections import deque + +import numpy as np import torch + from hydra_vl4ai.util.console import logger +from .llm import llm +from .rl_dqn import DQN_EmbeddingViaLLM, ReplayBuffer +from .smb.state_memory_bank import StateMemoryBank +from ..util.config import Config + class Controller(abc.ABC): + @abc.abstractmethod - def __call__(self, instructions: list[str], probs: np.ndarray) -> str: + def __call__(self, *args, **kwargs) -> str: pass + class ControllerLLM(Controller): """ - This is the function for not using RL controller - but directly use the LLM score to reture optimal instruction -""" + This is the function for not using RL controller + but directly use the LLM score to return optimal instruction + """ + def __call__(self, instructions: list[str], probs: np.ndarray) -> str: return instructions[np.argmax(probs)] class ControllerDQN(Controller): - def __init__(self, embedding_prompt_base, task_description_for_instruction, instruction_example): + + def __init__(self, embedding_prompt_base: str, task_description_for_instruction: str, instruction_example: str): super().__init__() self.instruction_example = instruction_example self.embedding_prompt_base = embedding_prompt_base @@ -36,13 +42,13 @@ def __init__(self, embedding_prompt_base, task_description_for_instruction, inst self.rl_agent_train_mode = Config.dqn_config["rl_agent_train_mode"] self.rl_agent_model = DQN_EmbeddingViaLLM( - device=torch.device('cuda:0'), - llm_embedding_dim_concatsoc=Config.dqn_config["llm_embedding_dim"], - mlp_hidden_dim=Config.dqn_config["mlp_hidden_dim"], - action_dim=Config.base_config["num_actions"]+1, - critic_layer_num=Config.dqn_config["critic_layer_num"], - critic_lr=float(Config.dqn_config["critic_lr"]) - ) + device=torch.device('cuda:0'), + llm_embedding_dim_concat=Config.dqn_config["llm_embedding_dim"], + mlp_hidden_dim=Config.dqn_config["mlp_hidden_dim"], + action_dim=Config.base_config["num_actions"] + 1, + critic_layer_num=Config.dqn_config["critic_layer_num"], + critic_lr=float(Config.dqn_config["critic_lr"]) + ) # load model model_full_path = os.path.join(self.model_save_path, Config.dqn_config["model_name"]) if not os.path.exists(self.model_save_path): @@ -65,28 +71,31 @@ def __init__(self, embedding_prompt_base, task_description_for_instruction, inst self.update_times = Config.dqn_config["update_times"] self.save_interval = Config.dqn_config["save_interval"] self.save_model_obs_num = 0 # accumulate - self.best_cum_reward = -100 #TODO:MODIFY + self.best_cum_reward = -100 # TODO:MODIFY self.best_score = 0 self.learn_starts = Config.dqn_config["learn_starts"] self.dqn_explore_epsilon = Config.dqn_config["dqn_explore_epsilon"] self.dqn_explore_epsilon_decay_rate = Config.dqn_config["dqn_explore_epsilon_decay_rate"] self.dqn_explore_epsilon_decay_interval = Config.dqn_config["dqn_explore_epsilon_decay_interval"] - self.dqn_explore_thre_value = self.dqn_explore_epsilon - self.dqn_explore_epsilon_decay_rate \ - * (self.obs_no/self.dqn_explore_epsilon_decay_interval) + self.dqn_explore_threshold = self.dqn_explore_epsilon - self.dqn_explore_epsilon_decay_rate \ + * (self.obs_no / self.dqn_explore_epsilon_decay_interval) # load buffer if os.path.exists(Config.dqn_config["mlp_hidden_dim"]): with open(Config.dqn_config["mlp_hidden_dim"], "rb") as reward_buffer_container: self.replay_buffer = pickle.load(reward_buffer_container) reward_buffer_container.close() - else: self.replay_buffer = ReplayBuffer(capacity=Config.dqn_config["buffer_size"]) + else: + self.replay_buffer = ReplayBuffer(capacity=Config.dqn_config["buffer_size"]) - else: + else: self.rl_agent_model.eval_mode() - async def __call__(self, query:str, current_step_index: int, instructions: list[str], probs: np.ndarray, state_memory_bank: StateMemoryBank) -> str: + async def __call__(self, query: str, current_step_index: int, instructions: list[str], probs: np.ndarray, + state_memory_bank: StateMemoryBank + ) -> tuple[str, np.ndarray, int]: prompt = self.build_prompt(query, current_step_index, instructions, probs, state_memory_bank) - + # GET EMBEDDING FROM LLM response_emb = await llm(Config.base_config["embedding_model"], prompt) @@ -94,10 +103,10 @@ async def __call__(self, query:str, current_step_index: int, instructions: list[ selected_idx = np.argmax(affordance_value_array) - # randome exploration in the begining. + # random exploration in the beginning. if self.rl_agent_train_mode: - # if it is in the begining phase, do ramdon exploration! - if self.obs_no <= self.learn_starts or np.random.random() <= self.dqn_explore_thre_value: + # if it is in the beginning phase, do random exploration! + if self.obs_no <= self.learn_starts or np.random.random() <= self.dqn_explore_threshold: selected_idx = random.choice(range(len(affordance_value_array))) if selected_idx != len(instructions): @@ -106,28 +115,32 @@ async def __call__(self, query:str, current_step_index: int, instructions: list[ selected_instruction = "REJECT" return selected_instruction, response_emb, selected_idx - def build_prompt(self, query:str, current_step_index: int, instructions: list[str], probs: np.ndarray, state_memory_bank: StateMemoryBank): + def build_prompt(self, query: str, current_step_index: int, instructions: list[str], probs: np.ndarray, + state_memory_bank: StateMemoryBank + ): """Getting prompt based on template""" # prompt-for-each-query - prompt = self.embedding_prompt_base.replace('[INSERT_QUERY_HERE]', query) # query insert - prompt = prompt.replace('[INSERT_CURRENT_STEP_NO]', str(current_step_index)) # step number insert + prompt = self.embedding_prompt_base.replace('[INSERT_QUERY_HERE]', query) # query insert + prompt = prompt.replace('[INSERT_CURRENT_STEP_NO]', str(current_step_index)) # step number insert # prompt-for-query-type-about-the-dataset - prompt = prompt.replace('[INSERT_QUERY_TYPE_HERE]', self.task_description_for_instruction) # query type - prompt = prompt.replace('[EXAMPLE_HERE]', self.instruction_example) # query type demo/ exps + prompt = prompt.replace('[INSERT_QUERY_TYPE_HERE]', self.task_description_for_instruction) # query type + prompt = prompt.replace('[EXAMPLE_HERE]', self.instruction_example) # query type demo/ exps # previous instruction - prompt = prompt.replace('[NEED_TO_PROVIDE_PREVIOUS_INSTRUCTION]', state_memory_bank.instructions_prompt) # previous code insert - + prompt = prompt.replace('[NEED_TO_PROVIDE_PREVIOUS_INSTRUCTION]', + state_memory_bank.instructions_prompt) # previous code insert + # previous executed code - prompt = prompt.replace('[MORE_CODE_WAITING]', state_memory_bank.codes_prompt) # previous code insert - prompt = prompt.replace('[CURRENTLY_RESULT_WAITING]', state_memory_bank.feedbacks_prompt) # result description insert + prompt = prompt.replace('[MORE_CODE_WAITING]', state_memory_bank.codes_prompt) # previous code insert + prompt = prompt.replace('[CURRENTLY_RESULT_WAITING]', + state_memory_bank.feedbacks_prompt) # result description insert # variable details prompt = prompt.replace('[VARIABLE_AND_DETAILS]', state_memory_bank.variables_prompt) # current instructions/probs - prompt = prompt.replace('[CURRENT_OPTION]', str(instructions)) # instruction options - prompt = prompt.replace('[CURRENT_OPTION_PROBABILITY]', str(probs)) # probs of instruction options + prompt = prompt.replace('[CURRENT_OPTION]', str(instructions)) # instruction options + prompt = prompt.replace('[CURRENT_OPTION_PROBABILITY]', str(probs)) # probs of instruction options - return prompt \ No newline at end of file + return prompt diff --git a/hydra_vl4ai/agent/hydra.py b/hydra_vl4ai/agent/hydra.py index 81ec918..26b2845 100644 --- a/hydra_vl4ai/agent/hydra.py +++ b/hydra_vl4ai/agent/hydra.py @@ -1,18 +1,18 @@ import tensorneko_util as N +import torchvision.ops.boxes as bops import websockets from websockets import WebSocketClientProtocol -from .reasoner import Reasoner -from .smb import StateMemoryBank +from evaluation.vqa_eval import GQAeval from .controller import ControllerLLM, ControllerDQN from .planner import Planner +from .reasoner import Reasoner +from .smb import StateMemoryBank from .summarizer import Summarizer +from ..util.config import Config from ..util.console import logger from ..util.misc import get_hydra_root_folder -from ..util.config import Config -import numpy as np -import torchvision.ops.boxes as bops -from evaluation.vqa_eval import GQAeval + class Hydra: # a base class for both HydraRL and HydraNoRL @@ -127,7 +127,7 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo with N.util.Timer(verbose=False) as timer: # initial perception result, code = await self.reasoner.initial_run(image, query, websocket) - t = timer.time(timer_msg := f"Reasoner in Step 0") + t = timer.time(timer_msg := "Reasoner in Step 0") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") if result.type == "error": return None @@ -185,7 +185,7 @@ class HydraWithRL(Hydra): def __init__(self): super().__init__() # load config - dataset = Config.base_config["dataset"] + self.dataset = Config.base_config["dataset"] prompt_type = Config.base_config["prompt"] self.max_iterations = Config.base_config["max_iterations"] self._debug = Config.base_config["debug"] @@ -196,7 +196,8 @@ def __init__(self): # load prompts prompt_path = get_hydra_root_folder() / "agent" / "prompt" / prompt_type if not prompt_path.exists(): - raise NotImplementedError(f"Prompt for {prompt_type} on {dataset} is not implemented in {prompt_path}.") + raise NotImplementedError( + f"Prompt for {prompt_type} on {self.dataset} is not implemented in {prompt_path}.") instruction_prompt_base = N.io.read.text(str(prompt_path / "instruction.prompt")) task_description_for_instruction = N.io.read.text(str(prompt_path / "task_description_for_instruction.prompt")) @@ -214,7 +215,11 @@ def __init__(self): Config.base_config["planner_max_retry"]) embedding_prompt_base = N.io.read.text(str(prompt_path / "embedding.prompt")) - self.controller = ControllerDQN(embedding_prompt_base, task_description_for_instruction, instruction_examples) # TODO:MODIFY + self.controller = ControllerDQN( + embedding_prompt_base, + task_description_for_instruction, + instruction_examples + ) self.reasoner = Reasoner( code_prompt_base, @@ -236,6 +241,8 @@ def __init__(self): task_description_for_instruction ) + self.evaluator = GQAeval() + async def __call__(self, image: bytes, query: str) -> str: state_memory_bank = StateMemoryBank() async with websockets.connect(f"ws://localhost:{Config.base_config['executor_port']}/ws/") as websocket: @@ -246,7 +253,6 @@ async def __call__(self, image: bytes, query: str) -> str: case "vqa": return await self._call_vqa(image, query, state_memory_bank, websocket) - async def _call_grounding(self, image: bytes, query: str, state_memory_bank: StateMemoryBank, websocket: WebSocketClientProtocol ) -> str: @@ -261,11 +267,12 @@ async def _call_grounding(self, image: bytes, query: str, state_memory_bank: Sta break # ----------------- Controller ----------------- - instruction, response_emb, selectec_idx = await self.controller(query, current_step_index, instructions, probs, state_memory_bank) #TODO:MODIFY + instruction, response_emb, selected_idx = await self.controller(query, current_step_index, instructions, + probs, state_memory_bank) # TODO:MODIFY t = timer.time(timer_msg := f"Controller in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - if instruction =="REJECT": #TODO:MODIFY + if instruction == "REJECT": # TODO:MODIFY continue # ------------------ Reasoner ------------------ result, code = await self.reasoner(image, query, instruction, current_step_index, state_memory_bank, @@ -313,11 +320,12 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo break # ----------------- Controller ----------------- - instruction, response_emb, selectec_idx = await self.controller(query, current_step_index, instructions, probs, state_memory_bank) #TODO:MODIFY + instruction, response_emb, selected_idx = await self.controller(query, current_step_index, instructions, + probs, state_memory_bank) # TODO:MODIFY t = timer.time(timer_msg := f"Controller in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - if instruction =="REJECT": #TODO:MODIFY + if instruction == "REJECT": # TODO:MODIFY continue # ------------------ Reasoner ------------------ result, code = await self.reasoner(image, query, instruction, current_step_index, state_memory_bank, @@ -334,7 +342,6 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo guesses.append(await self.summarizer(query, state_memory_bank)) t = timer.time(timer_msg := f"Summarizer in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - match result.type: case "continue": @@ -348,80 +355,22 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") return final_result - -class HydraTrainingRL(Hydra): - - def __init__(self): - super().__init__() - # load config - self.dataset = Config.base_config["dataset"] - prompt_type = Config.base_config["prompt"] - self.max_iterations = Config.base_config["max_iterations"] - self._debug = Config.base_config["debug"] - self.task = Config.base_config["task"] - num_actions = Config.base_config["num_actions"] - reasoner_max_retry = Config.base_config["reasoner_max_retry"] - - # load prompts - prompt_path = get_hydra_root_folder() / "agent" / "prompt" / prompt_type - if not prompt_path.exists(): - raise NotImplementedError(f"Prompt for {prompt_type} on {self.dataset} is not implemented in {prompt_path}.") - - instruction_prompt_base = N.io.read.text(str(prompt_path / "instruction.prompt")) - task_description_for_instruction = N.io.read.text(str(prompt_path / "task_description_for_instruction.prompt")) - instruction_examples = N.io.read.text(str(prompt_path / "instruction_example.prompt")) - - code_prompt_base = N.io.read.text(str(prompt_path / "code.prompt")) - task_description_for_code = N.io.read.text(str(prompt_path / "task_description_for_code.prompt")) - code_example = N.io.read.text(str(prompt_path / "code_example.prompt")) - - self.planner = Planner( - instruction_prompt_base, - task_description_for_instruction, - instruction_examples, - num_actions, - Config.base_config["planner_max_retry"]) - - embedding_prompt_base = N.io.read.text(str(prompt_path / "embedding.prompt")) - self.controller = ControllerDQN(embedding_prompt_base, task_description_for_instruction, instruction_examples) # TODO:MODIFY - - self.reasoner = Reasoner( - code_prompt_base, - task_description_for_code, - code_example, - num_actions, - reasoner_max_retry - ) - - match self.task: - case "grounding": - self.summarizer = None - case "vqa": - summarize_prompt_base = N.io.read.text(str(prompt_path / "summarize.prompt")) - guess_answer_prompt_base = N.io.read.text(str(prompt_path / "guess_answer.prompt")) - self.summarizer = Summarizer( - summarize_prompt_base, - guess_answer_prompt_base, - task_description_for_instruction - ) - - async def __call__(self, image: bytes, query: str, ground_true=None) -> str: + async def train_step(self, image: bytes, query: str, ground_true=None) -> str: state_memory_bank = StateMemoryBank() async with websockets.connect(f"ws://localhost:{Config.base_config['executor_port']}/ws/") as websocket: match self.task: case "grounding": - return await self._call_grounding(image, query, state_memory_bank, websocket, ground_true) + return await self._train_step_grounding(image, query, state_memory_bank, websocket, ground_true) case "vqa": - return await self._call_vqa(image, query, state_memory_bank, websocket, ground_true) + return await self._train_step_vqa(image, query, state_memory_bank, websocket, ground_true) - - async def _call_grounding(self, image: bytes, query: str, state_memory_bank: StateMemoryBank, + async def _train_step_grounding(self, image: bytes, query: str, state_memory_bank: StateMemoryBank, websocket: WebSocketClientProtocol, ground_true=None ) -> str: with N.util.Timer(verbose=False) as timer: sub_reward = 10 - pre_obs_emb =None + pre_obs_emb = None for current_step_index in range(1, self.max_iterations + 1): # ----------------- Planner ----------------- instructions, probs = await self.planner(query, current_step_index, state_memory_bank) @@ -432,11 +381,12 @@ async def _call_grounding(self, image: bytes, query: str, state_memory_bank: Sta break # ----------------- Controller ----------------- - instruction, response_emb, selectec_idx = await self.controller(query, current_step_index, instructions, probs, state_memory_bank) + instruction, response_emb, selected_idx = await self.controller(query, current_step_index, instructions, + probs, state_memory_bank) t = timer.time(timer_msg := f"Controller in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - if instruction =="REJECT": + if instruction == "REJECT": continue # ------------------ Reasoner ------------------ result, code = await self.reasoner(image, query, instruction, current_step_index, state_memory_bank, @@ -449,32 +399,34 @@ async def _call_grounding(self, image: bytes, query: str, state_memory_bank: Sta state_memory_bank.extend_memory( result.feedbacks, [code], [instruction], result.variables, result.variable_names ) - + else: sub_reward -= 100 if result.type == "final": - sub_reward += float(bops.box_iou(result.final_result, ground_true)[0][0])*100 + sub_reward += float(bops.box_iou(result.final_result, ground_true)[0][0]) * 100 # Calculate reward sub_reward -= current_step_index self.controller.save_model_obs_num += 1 # update buffer and model - if current_step_index >1: + if current_step_index > 1: # store transition - self.controller.replay_buffer.push(pre_obs_emb, selectec_idx, sub_reward, response_emb, done=False) + self.controller.replay_buffer.push(pre_obs_emb, selected_idx, sub_reward, response_emb, done=False) self.controller.reward_window.append(sub_reward) self.controller.obs_no += 1 # update model each step when buffer size bigger than batch_size. if len(self.controller.replay_buffer) > self.controller.batch_size: for i in range(self.controller.update_times): - self.controller.rl_agent_model.update(replay_buffer=self.controller.replay_buffer, batch_size=self.controller.batch_size) + self.controller.rl_agent_model.update(replay_buffer=self.controller.replay_buffer, + batch_size=self.controller.batch_size) pre_obs_emb = response_emb # reserve current emb as previous emb - self.controller.dqn_explore_thre_value = self.controller.dqn_explore_epsilon - self.controller.dqn_explore_epsilon_decay_rate \ - * (self.controller.obs_no/self.controller.dqn_explore_epsilon_decay_interval) - + self.controller.dqn_explore_threshold = \ + self.controller.dqn_explore_epsilon - self.controller.dqn_explore_epsilon_decay_rate \ + * (self.controller.obs_no / self.controller.dqn_explore_epsilon_decay_interval) + match result.type: case "error": return None @@ -483,13 +435,13 @@ async def _call_grounding(self, image: bytes, query: str, state_memory_bank: Sta case "continue": continue - async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemoryBank, + async def _train_step_vqa(self, image: bytes, query: str, state_memory_bank: StateMemoryBank, websocket: WebSocketClientProtocol, ground_true=None ) -> str: - with N.util.Timer(verbose=False) as timer: + with (N.util.Timer(verbose=False) as timer): # initial perception result, code = await self.reasoner.initial_run(image, query, websocket) - t = timer.time(timer_msg := f"Reasoner in Step 0") + t = timer.time(timer_msg := "Reasoner in Step 0") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") if result.type == "error": return None @@ -498,10 +450,10 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo ) guesses = [] - + # for training sub_reward = 0 - pre_obs_emb =None + pre_obs_emb = None for current_step_index in range(1, self.max_iterations + 1): # ----------------- Planner ----------------- @@ -513,11 +465,12 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo break # ----------------- Controller ----------------- - instruction, response_emb, selectec_idx = await self.controller(query, current_step_index, instructions, probs, state_memory_bank) + instruction, response_emb, selected_idx = await self.controller(query, current_step_index, instructions, + probs, state_memory_bank) t = timer.time(timer_msg := f"Controller in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - if instruction =="REJECT": + if instruction == "REJECT": continue # ------------------ Reasoner ------------------ result, code = await self.reasoner(image, query, instruction, current_step_index, state_memory_bank, @@ -534,36 +487,36 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo guesses.append(await self.summarizer(query, state_memory_bank)) t = timer.time(timer_msg := f"Summarizer in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - + else: sub_reward -= 100 if result.type == "final": if 'okvqa' in self.dataset: - sub_reward += GQAeval().accuracy_one_set([result.final_result], [ground_true]) + sub_reward += self.evaluator.accuracy_one_set([result.final_result], [ground_true]) else: - sub_reward += GQAeval().accuracy_one_one([result.final_result], [ground_true]) - + sub_reward += self.evaluator.accuracy_one_one([result.final_result], [ground_true]) # Calculate reward sub_reward -= current_step_index self.controller.save_model_obs_num += 1 # update buffer and model - if current_step_index >1: + if current_step_index > 1: # store transition - self.controller.replay_buffer.push(pre_obs_emb, selectec_idx, sub_reward, response_emb, done=False) + self.controller.replay_buffer.push(pre_obs_emb, selected_idx, sub_reward, response_emb, done=False) self.controller.reward_window.append(sub_reward) self.controller.obs_no += 1 # update model each step when buffer size bigger than batch_size. if len(self.controller.replay_buffer) > self.controller.batch_size: for i in range(self.controller.update_times): - self.controller.rl_agent_model.update(replay_buffer=self.controller.replay_buffer, batch_size=self.controller.batch_size) + self.controller.rl_agent_model.update(replay_buffer=self.controller.replay_buffer, + batch_size=self.controller.batch_size) pre_obs_emb = response_emb - self.controller.dqn_explore_thre_value = self.controller.dqn_explore_epsilon - self.controller.dqn_explore_epsilon_decay_rate \ - * (self.controller.obs_no/self.controller.dqn_explore_epsilon_decay_interval) - + self.controller.dqn_explore_threshold = \ + self.controller.dqn_explore_epsilon - self.controller.dqn_explore_epsilon_decay_rate \ + * (self.controller.obs_no / self.controller.dqn_explore_epsilon_decay_interval) match result.type: case "continue": @@ -573,6 +526,6 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo case "final": # ------------------ Summarizer ------------------ final_result = await self.summarizer.final_guess(query, guesses) - t = timer.time(timer_msg := f"Summarizer in Step Final") + t = timer.time(timer_msg := "Summarizer in Step Final") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - return final_result \ No newline at end of file + return final_result diff --git a/hydra_vl4ai/agent/llm.py b/hydra_vl4ai/agent/llm.py index a10d48b..1b4bd25 100644 --- a/hydra_vl4ai/agent/llm.py +++ b/hydra_vl4ai/agent/llm.py @@ -1,12 +1,13 @@ import asyncio -from functools import wraps import os +import time +from functools import wraps + import httpx import numpy as np -from openai import AsyncOpenAI -from ollama import AsyncClient, Client import openai -import time +from ollama import AsyncClient, Client +from openai import AsyncOpenAI from ..util.config import Config from ..util.console import logger diff --git a/hydra_vl4ai/agent/planner.py b/hydra_vl4ai/agent/planner.py index 3351051..d3feb94 100644 --- a/hydra_vl4ai/agent/planner.py +++ b/hydra_vl4ai/agent/planner.py @@ -2,9 +2,9 @@ import numpy as np -from ..util.config import Config -from .smb.state_memory_bank import StateMemoryBank from .llm import llm +from .smb.state_memory_bank import StateMemoryBank +from ..util.config import Config from ..util.console import logger diff --git a/hydra_vl4ai/agent/reasoner.py b/hydra_vl4ai/agent/reasoner.py index 48e1c5f..6333844 100644 --- a/hydra_vl4ai/agent/reasoner.py +++ b/hydra_vl4ai/agent/reasoner.py @@ -1,13 +1,14 @@ import io import json + import websockets from PIL import Image +from .llm import llm +from .smb.state_memory_bank import StateMemoryBank from ..util.config import Config from ..util.console import logger from ..util.message import ExecutionRequest, ExecutionResult -from .llm import llm -from .smb.state_memory_bank import StateMemoryBank class Reasoner: diff --git a/hydra_vl4ai/agent/rl_DQN.py b/hydra_vl4ai/agent/rl_dqn.py similarity index 72% rename from hydra_vl4ai/agent/rl_DQN.py rename to hydra_vl4ai/agent/rl_dqn.py index b202ef3..969eebe 100644 --- a/hydra_vl4ai/agent/rl_DQN.py +++ b/hydra_vl4ai/agent/rl_dqn.py @@ -1,14 +1,15 @@ -import numpy as np import random -import torch -import torch.nn as nn -import torch.optim as optim +import numpy as np +import torch +import torch.nn as nn +import torch.optim as optim from torch.nn.utils import clip_grad_norm_ # MLP head class MLPHead(nn.Module): + def __init__( self, input_dim, @@ -20,29 +21,30 @@ def __init__( mlp_head = [] for idx in range(layer_num): - if idx == 0: + if idx == 0: i_dim = input_dim - else: + else: i_dim = mlp_hidden_dim - if idx == layer_num -1: + if idx == layer_num - 1: o_dim = output_dim - else: + else: o_dim = mlp_hidden_dim mlp_head.append(nn.Linear(i_dim, o_dim)) # if idx != layer_num -1: mlp_head.append(nn.Sigmoid()) - - self.mlp_head = nn.Sequential(*mlp_head) + self.mlp_head = nn.Sequential(*mlp_head) def forward(self, x): return self.mlp_head(x) + class ReplayBuffer: - def __init__(self,capacity) -> None: + + def __init__(self, capacity) -> None: self.capacity = capacity self.buffer = [] self.pos = 0 @@ -52,10 +54,10 @@ def push(self, state, action, reward, next_state, done): self.buffer.append(None) self.buffer[self.pos] = (state, action, reward, next_state, done) self.pos = int((self.pos + 1) % self.capacity) # as a ring buffer - - def sample(self,batch_size): + + def sample(self, batch_size): batch = random.sample(self.buffer, batch_size) - state, action, reward, next_state, done = map(np.stack, zip(*batch)) # stack for each element + state, action, reward, next_state, done = map(np.stack, zip(*batch)) # stack for each element return state, action, reward, next_state, done @@ -63,11 +65,12 @@ def __len__(self): return len(self.buffer) -class DQN_EmbeddingViaLLM(): +class DQN_EmbeddingViaLLM: + def __init__( self, device, - llm_embedding_dim_concatsoc, + llm_embedding_dim_concat, mlp_hidden_dim, action_dim, critic_layer_num, @@ -75,34 +78,39 @@ def __init__( ) -> None: self.device = device - - self.critic_head = MLPHead(input_dim=llm_embedding_dim_concatsoc, mlp_hidden_dim=mlp_hidden_dim, output_dim=action_dim, layer_num=critic_layer_num).to(device) - self.tar_critic_head = MLPHead(input_dim=llm_embedding_dim_concatsoc, mlp_hidden_dim=mlp_hidden_dim, output_dim=action_dim, layer_num=critic_layer_num).to(device) + self.critic_head = MLPHead(input_dim=llm_embedding_dim_concat, mlp_hidden_dim=mlp_hidden_dim, + output_dim=action_dim, layer_num=critic_layer_num).to(device) + self.tar_critic_head = MLPHead(input_dim=llm_embedding_dim_concat, mlp_hidden_dim=mlp_hidden_dim, + output_dim=action_dim, layer_num=critic_layer_num).to(device) for tar_param, param in zip(self.tar_critic_head.parameters(), self.critic_head.parameters()): tar_param.data.copy_(param.data) - + self.critic_optim = optim.Adam(self.critic_head.parameters(), lr=critic_lr) - def get_action(self, obs, batch_input=False): - if not batch_input: obs = torch.FloatTensor(obs).to(self.device).unsqueeze(0) - else: obs = torch.FloatTensor(obs).to(self.device) + if not batch_input: + obs = torch.FloatTensor(obs).to(self.device).unsqueeze(0) + else: + obs = torch.FloatTensor(obs).to(self.device) qval = self.critic_head.forward(x=obs) - return qval.detach().cpu().numpy().flatten() + return qval.detach().cpu().numpy().flatten() # if not batch_input: return qval.argmax().detach().cpu().numpy().flatten() # else: return qval.argmax(dim=-1).detach().cpu().numpy().flatten() - - def update(self, replay_buffer, batch_size, reward_scale=10., gamma=0.99, soft_tau=1e-2, is_clip_gradient=True, clip_gradient_val=40): + def update(self, replay_buffer, batch_size, reward_scale=10., gamma=0.99, soft_tau=1e-2, is_clip_gradient=True, + clip_gradient_val=40 + ): obs, action, reward, next_obs, done = replay_buffer.sample(batch_size) - obs = torch.FloatTensor(obs).to(self.device) # obs.size = (batch_size, 1+seq_dim) + obs = torch.FloatTensor(obs).to(self.device) # obs.size = (batch_size, 1+seq_dim) next_obs = torch.FloatTensor(next_obs).to(self.device) action = torch.FloatTensor(action).to(self.device) - reward = torch.FloatTensor(reward).unsqueeze(1).to(self.device) # reward is single value, unsqueeze() to add one dim to be [reward] at the sample dim; - reward = reward_scale * (reward - reward.mean(dim=0)) / (reward.std(dim=0) + 1e-6) # normalize with batch mean and std; plus a small number to prevent numerical problem + reward = torch.FloatTensor(reward).unsqueeze(1).to( + self.device) # reward is single value, unsqueeze() to add one dim to be [reward] at the sample dim; + reward = reward_scale * (reward - reward.mean(dim=0)) / (reward.std( + dim=0) + 1e-6) # normalize with batch mean and std; plus a small number to prevent numerical problem done = torch.FloatTensor(np.float32(done)).unsqueeze(1).to(self.device) # print(f'self.critic_head.forward(x=obs) {self.critic_head.forward(x=obs).shape}') # print(f'action.long() {action.long().shape}') @@ -112,8 +120,8 @@ def update(self, replay_buffer, batch_size, reward_scale=10., gamma=0.99, soft_t with torch.no_grad(): max_next_qval = self.tar_critic_head.forward(x=next_obs).max(dim=-1)[0].unsqueeze(-1) - tar_qval = reward + gamma * (1-done) * max_next_qval - + tar_qval = reward + gamma * (1 - done) * max_next_qval + loss_func = nn.MSELoss() qloss = loss_func(qval, tar_qval.detach()) @@ -122,14 +130,14 @@ def update(self, replay_buffer, batch_size, reward_scale=10., gamma=0.99, soft_t if is_clip_gradient: clip_grad_norm_(self.critic_head.parameters(), clip_gradient_val) self.critic_optim.step() - for tar_param,param in zip(self.tar_critic_head.parameters(),self.critic_head.parameters()): - tar_param.data.copy_(param.data*soft_tau + tar_param.data*(1-soft_tau)) + for tar_param, param in zip(self.tar_critic_head.parameters(), self.critic_head.parameters()): + tar_param.data.copy_(param.data * soft_tau + tar_param.data * (1 - soft_tau)) return qloss.detach().cpu().item() def save_model(self, path): torch.save(self.critic_head.state_dict(), path) - + def load_model(self, path): self.critic_head.load_state_dict(torch.load(path)) @@ -138,7 +146,7 @@ def load_model(self, path): self.critic_head.eval() self.tar_critic_head.eval() - + def eval_mode(self): self.critic_head.eval() self.tar_critic_head.eval() @@ -146,4 +154,3 @@ def eval_mode(self): def train_mode(self): self.critic_head.train() self.tar_critic_head.train() - diff --git a/hydra_vl4ai/agent/smb/state_memory_bank.py b/hydra_vl4ai/agent/smb/state_memory_bank.py index 103c4f6..d0e3661 100644 --- a/hydra_vl4ai/agent/smb/state_memory_bank.py +++ b/hydra_vl4ai/agent/smb/state_memory_bank.py @@ -25,24 +25,24 @@ def reset(self): @property def instructions_prompt(self): return "\n" + "\n".join(self.instructions) - + @property def feedbacks_prompt(self): return "\n" + "\n".join(self.feedbacks) - + @property def codes_prompt(self): return "\n" + "\n".join(self.codes) - + @property def variables_prompt(self): return "\n" + "\n".join(self.variables) - def extend_memory(self, - other_feedbacks: list[str], - other_codes: list[str], - other_instructions: list[str], - other_variables: list[str], + def extend_memory(self, + other_feedbacks: list[str], + other_codes: list[str], + other_instructions: list[str], + other_variables: list[str], other_variable_names: list[str] ): self.feedbacks.extend(other_feedbacks) @@ -125,7 +125,8 @@ def get_sorted_patches_left_to_right_message_save(self, name): f"\nThe patches list has been sorted from left to right (horizontal). Now, the first patch in the list corresponds to the leftest position, while the last one corresponds to the rightest position") def get_sorted_patches_bottom_to_top_message_save(self, name): - self.feedbacks.append(f"\nThe patches list has been sorted from bottom to top (vertical). Now, the first patch in the list corresponds to the bottom/low/below position, while the last one corresponds to the top/up/above position.") + self.feedbacks.append( + f"\nThe patches list has been sorted from bottom to top (vertical). Now, the first patch in the list corresponds to the bottom/low/below position, while the last one corresponds to the top/up/above position.") def get_sorted_patches_front_to_back_message_save(self, name): self.feedbacks.append( diff --git a/hydra_vl4ai/agent/summarizer.py b/hydra_vl4ai/agent/summarizer.py index cbbbe3e..cc2783e 100644 --- a/hydra_vl4ai/agent/summarizer.py +++ b/hydra_vl4ai/agent/summarizer.py @@ -1,5 +1,5 @@ -from .smb.state_memory_bank import StateMemoryBank from .llm import llm +from .smb.state_memory_bank import StateMemoryBank from ..util.config import Config diff --git a/hydra_vl4ai/agent/webui.py b/hydra_vl4ai/agent/webui.py index 80b7143..176e6f2 100644 --- a/hydra_vl4ai/agent/webui.py +++ b/hydra_vl4ai/agent/webui.py @@ -1,16 +1,16 @@ +import gradio as gr import tensorneko_util as N import websockets from websockets import WebSocketClientProtocol -from .smb import StateMemoryBank -from ..util.console import logger from .hydra import HydraNoRL +from .smb import StateMemoryBank from ..util.config import Config - -import gradio as gr +from ..util.console import logger class HydraNoRLWeb(HydraNoRL): + def __init__(self): super().__init__() @@ -34,7 +34,8 @@ async def _gradio_call(self, image_path: str, query: str): messages = [gr.ChatMessage('user', [image_path, query])] yield messages, self._format_state_memory() - async with websockets.connect(f"ws://localhost:{Config.base_config['executor_port']}/ws/") as ws: # type: ignore + async with websockets.connect( + f"ws://localhost:{Config.base_config['executor_port']}/ws/") as ws: # type: ignore async for chunk in self._call_vqa(image_bytes, query, self.bank, ws): if chunk[0] == "start": continue @@ -82,7 +83,7 @@ async def _call_vqa( result, code = await self.reasoner.initial_run(image, query, websocket) t = timer.time(timer_msg := "Reasoner in Step 0") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - + if result.type == "error": yield "panic", "Reasoning", result return @@ -111,7 +112,8 @@ async def _call_vqa( t = timer.time(timer_msg := f"Controller in Step {current_step_index}") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - yield "stage-completed", "Planning", current_step_index, sorted(zip(instructions, probs), key=lambda x: x[1], reverse=True), instruction + yield "stage-completed", "Planning", current_step_index, sorted(zip(instructions, probs), + key=lambda x: x[1], reverse=True), instruction # ------------------ Reasoner ------------------ yield "start", "Reasoning" @@ -124,7 +126,7 @@ async def _call_vqa( if result.type == "error": yield "error", "Reasoning", result continue - + assert type(code) is str state_memory_bank.extend_memory( result.feedbacks, [code], [instruction], result.variables, result.variable_names @@ -148,6 +150,6 @@ async def _call_vqa( final_result = await self.summarizer.final_guess(query, guesses) t = timer.time(timer_msg := f"Summarizer in Step Final") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") - + yield "final", final_result return diff --git a/pixi.toml b/pixi.toml index 2daa881..cbe81ca 100644 --- a/pixi.toml +++ b/pixi.toml @@ -3,7 +3,7 @@ authors = ["ControlNet "] channels = ["pytorch", "nvidia/label/cuda-11.8.0", "anaconda", "conda-forge"] description = "Official implementation for HYDRA." name = "hydra_vl4ai" -platforms = ["linux-64"] +platforms = ["linux-64", "win-64"] version = "0.0.0" channel-priority = "disabled" diff --git a/train.py b/train.py index ee2bcbd..5b4d0a4 100644 --- a/train.py +++ b/train.py @@ -1,12 +1,10 @@ import asyncio import json import os -import requests -import time -import tensorneko_util as N from pathlib import Path from dotenv import load_dotenv load_dotenv() + import numpy as np import argparse @@ -23,7 +21,7 @@ Config.dqn_config_path = args.dqn_config Config.model_config_path = args.model_config -from hydra_vl4ai.agent.hydra import HydraNoRL, HydraTrainingRL +from hydra_vl4ai.agent.hydra import HydraWithRL from hydra_vl4ai.util.console import logger, console from hydra_vl4ai.util.misc import wait_until_loaded import exp_datasets @@ -32,7 +30,7 @@ async def main(): with console.status("[bold green]Connect to HYDRA executor...") as status: wait_until_loaded(f"http://localhost:{Config.base_config['executor_port']}") - hydra = HydraTrainingRL() + hydra = HydraWithRL() match Config.base_config["dataset"]: case "gqa": @@ -69,7 +67,7 @@ async def main(): logger.info(f"Processing {i+1}/{len(dataset)}") with open(image_path, "rb") as f: image_buffer = f.read() - result = await hydra(image_buffer, query, ground_truth) + result = await hydra.train_step(image_buffer, query, ground_truth) logger.info(f"Query: {query} Answer: {result}") with open(save_path, "a") as f: @@ -90,7 +88,7 @@ async def main(): if hydra.controller.save_model_obs_num > hydra.controller.save_interval \ and hydra.controller.best_cum_reward < cum_reward: - # update best cummulated reward + # update best cumulated reward hydra.controller.best_cum_reward = cum_reward # save model From 7f5b662576fb08c5b07544e02e35f12257ef765e Mon Sep 17 00:00:00 2001 From: ControlNet Date: Fri, 7 Feb 2025 18:44:40 +1100 Subject: [PATCH 07/18] separate the llm embedding func, making evaluation in lib, reformat --- evaluate.py | 4 +-- hydra_vl4ai/agent/controller.py | 6 ++--- hydra_vl4ai/agent/hydra.py | 14 +++++----- hydra_vl4ai/agent/llm.py | 19 ++++++++----- .../evaluation}/grounding_eval.py | 2 +- .../evaluation}/vqa_eval.py | 0 hydra_vl4ai/tool/llava.py | 6 ++--- pixi.toml | 8 +++--- train.py | 27 +++++++++++-------- 9 files changed, 49 insertions(+), 37 deletions(-) rename {evaluation => hydra_vl4ai/evaluation}/grounding_eval.py (100%) rename {evaluation => hydra_vl4ai/evaluation}/vqa_eval.py (100%) diff --git a/evaluate.py b/evaluate.py index 39469ad..e02b68a 100644 --- a/evaluate.py +++ b/evaluate.py @@ -2,8 +2,8 @@ import tensorneko_util as N -from evaluation.grounding_eval import batch_iou_2d -from evaluation.vqa_eval import GQAeval +from hydra_vl4ai.evaluation.grounding_eval import batch_iou_2d +from hydra_vl4ai.evaluation.vqa_eval import GQAeval from hydra_vl4ai.util.console import console, logger if __name__ == '__main__': diff --git a/hydra_vl4ai/agent/controller.py b/hydra_vl4ai/agent/controller.py index 26414ad..1494c7c 100644 --- a/hydra_vl4ai/agent/controller.py +++ b/hydra_vl4ai/agent/controller.py @@ -8,7 +8,7 @@ import torch from hydra_vl4ai.util.console import logger -from .llm import llm +from .llm import llm_embedding from .rl_dqn import DQN_EmbeddingViaLLM, ReplayBuffer from .smb.state_memory_bank import StateMemoryBank from ..util.config import Config @@ -96,8 +96,8 @@ async def __call__(self, query: str, current_step_index: int, instructions: list ) -> tuple[str, np.ndarray, int]: prompt = self.build_prompt(query, current_step_index, instructions, probs, state_memory_bank) - # GET EMBEDDING FROM LLM - response_emb = await llm(Config.base_config["embedding_model"], prompt) + # get embedding from llm + response_emb = await llm_embedding(Config.base_config["embedding_model"], prompt) affordance_value_array = self.rl_agent_model.get_action(obs=response_emb) diff --git a/hydra_vl4ai/agent/hydra.py b/hydra_vl4ai/agent/hydra.py index 26b2845..ebd8e06 100644 --- a/hydra_vl4ai/agent/hydra.py +++ b/hydra_vl4ai/agent/hydra.py @@ -3,12 +3,12 @@ import websockets from websockets import WebSocketClientProtocol -from evaluation.vqa_eval import GQAeval from .controller import ControllerLLM, ControllerDQN from .planner import Planner from .reasoner import Reasoner from .smb import StateMemoryBank from .summarizer import Summarizer +from ..evaluation.vqa_eval import GQAeval from ..util.config import Config from ..util.console import logger from ..util.misc import get_hydra_root_folder @@ -175,7 +175,7 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo case "final": # ------------------ Summarizer ------------------ final_result = await self.summarizer.final_guess(query, guesses) - t = timer.time(timer_msg := f"Summarizer in Step Final") + t = timer.time(timer_msg := "Summarizer in Step Final") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") return final_result @@ -300,7 +300,7 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo with N.util.Timer(verbose=False) as timer: # initial perception result, code = await self.reasoner.initial_run(image, query, websocket) - t = timer.time(timer_msg := f"Reasoner in Step 0") + t = timer.time(timer_msg := "Reasoner in Step 0") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") if result.type == "error": return None @@ -351,7 +351,7 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo case "final": # ------------------ Summarizer ------------------ final_result = await self.summarizer.final_guess(query, guesses) - t = timer.time(timer_msg := f"Summarizer in Step Final") + t = timer.time(timer_msg := "Summarizer in Step Final") logger.debug(f"[Timer] {timer_msg}: {t:.4f} sec") return final_result @@ -412,7 +412,7 @@ async def _train_step_grounding(self, image: bytes, query: str, state_memory_ban # update buffer and model if current_step_index > 1: - # store transition + # store transition self.controller.replay_buffer.push(pre_obs_emb, selected_idx, sub_reward, response_emb, done=False) self.controller.reward_window.append(sub_reward) self.controller.obs_no += 1 @@ -422,7 +422,7 @@ async def _train_step_grounding(self, image: bytes, query: str, state_memory_ban self.controller.rl_agent_model.update(replay_buffer=self.controller.replay_buffer, batch_size=self.controller.batch_size) - pre_obs_emb = response_emb # reserve current emb as previous emb + pre_obs_emb = response_emb # reserve current emb as previous emb self.controller.dqn_explore_threshold = \ self.controller.dqn_explore_epsilon - self.controller.dqn_explore_epsilon_decay_rate \ * (self.controller.obs_no / self.controller.dqn_explore_epsilon_decay_interval) @@ -503,7 +503,7 @@ async def _train_step_vqa(self, image: bytes, query: str, state_memory_bank: Sta # update buffer and model if current_step_index > 1: - # store transition + # store transition self.controller.replay_buffer.push(pre_obs_emb, selected_idx, sub_reward, response_emb, done=False) self.controller.reward_window.append(sub_reward) self.controller.obs_no += 1 diff --git a/hydra_vl4ai/agent/llm.py b/hydra_vl4ai/agent/llm.py index 1b4bd25..9724481 100644 --- a/hydra_vl4ai/agent/llm.py +++ b/hydra_vl4ai/agent/llm.py @@ -56,6 +56,7 @@ async def wrapper(*args, **kwargs): raise except Exception as e: raise + return wrapper @@ -75,6 +76,7 @@ async def wrapper(*args, **kwargs): pass except Exception as e: raise + return wrapper @@ -87,10 +89,10 @@ async def chatgpt(model_name: str, prompt: str): @handle_openai_exceptions -async def gpt3_embedding(prompt: str): +async def gpt3_embedding(model_name: str, prompt: str): async with _semaphore: - response = (await openai_client.embeddings.create(input = [prompt], - model=Config.base_config["embedding_model"])).data[0].embedding + response = (await openai_client.embeddings.create(input=[prompt], + model=model_name)).data[0].embedding response = np.array(response) return response @@ -98,7 +100,7 @@ async def gpt3_embedding(prompt: str): @handle_ollama_exceptions async def ollama(model_name: str, prompt: str): async with _semaphore: - response = await ollama_client.chat(model=model_name, + response = await ollama_client.chat(model=model_name, messages=[{"role": "user", "content": prompt}], stream=False, ) return response["message"]["content"] @@ -106,9 +108,14 @@ async def ollama(model_name: str, prompt: str): async def llm(model_name: str, prompt: str): if model_name.startswith("gpt"): return await chatgpt(model_name, prompt) - elif "embedding" in model_name: - return await gpt3_embedding(prompt) elif model_name.startswith("llama") or model_name.startswith("deepseek-coder"): return await ollama(model_name, prompt) else: raise ValueError(f"Model {model_name} is not supported.") + + +async def llm_embedding(model_name: str, prompt: str): + if model_name in ("text-embedding-3-small", "text-embedding-3-large"): + return await gpt3_embedding(model_name, prompt) + else: + raise ValueError(f"Model {model_name} is not supported.") diff --git a/evaluation/grounding_eval.py b/hydra_vl4ai/evaluation/grounding_eval.py similarity index 100% rename from evaluation/grounding_eval.py rename to hydra_vl4ai/evaluation/grounding_eval.py index fe58e0b..54500f4 100644 --- a/evaluation/grounding_eval.py +++ b/hydra_vl4ai/evaluation/grounding_eval.py @@ -5,6 +5,7 @@ from numpy import ndarray from torch import Tensor + def iou_2d(proposal: Union[Tensor, ndarray], target: Union[Tensor, ndarray]) -> Tensor: """ Calculate 2D IOU for M proposals with N targets. @@ -55,7 +56,6 @@ def process_grounding_result(x: str): return eval(x)["final_answer"][0][:4] - def batch_iou_2d(result): # we follow ViperGPT to filter out the None results remove_index = [] diff --git a/evaluation/vqa_eval.py b/hydra_vl4ai/evaluation/vqa_eval.py similarity index 100% rename from evaluation/vqa_eval.py rename to hydra_vl4ai/evaluation/vqa_eval.py diff --git a/hydra_vl4ai/tool/llava.py b/hydra_vl4ai/tool/llava.py index ff82581..c846e6a 100644 --- a/hydra_vl4ai/tool/llava.py +++ b/hydra_vl4ai/tool/llava.py @@ -1,11 +1,11 @@ -import os.path +import re import torch +from huggingface_hub import snapshot_download from llava.conversation import conv_templates +from llava.mm_utils import process_images, tokenizer_image_token, get_model_name_from_path from llava.model.builder import load_pretrained_model from llava.utils import disable_torch_init -from llava.mm_utils import process_images, tokenizer_image_token, get_model_name_from_path -from huggingface_hub import snapshot_download from ._base import BaseModel, module_registry from ..util.misc import get_root_folder diff --git a/pixi.toml b/pixi.toml index cbe81ca..f4af7c0 100644 --- a/pixi.toml +++ b/pixi.toml @@ -66,8 +66,8 @@ rich = "==13.7.1" ollama = "~=0.3.0" protobuf = "~=3.19.0" gradio = ">=5.0,<5.12" -maskrcnn_benchmark = { path = "module_repos/GLIP", editable = true } -segment_anything = { path = "module_repos/Grounded-Segment-Anything/segment_anything", editable = true } -groundingdino = { path = "module_repos/Grounded-Segment-Anything/GroundingDINO", editable = true } -llava = { path = "module_repos/LLaVA", editable = true } +maskrcnn_benchmark = { path = "module_repos/GLIP" } +segment_anything = { path = "module_repos/Grounded-Segment-Anything/segment_anything" } +groundingdino = { path = "module_repos/Grounded-Segment-Anything/GroundingDINO" } +llava = { path = "module_repos/LLaVA" } hydra_vl4ai = { path = ".", editable = true } diff --git a/train.py b/train.py index 5b4d0a4..d9f8267 100644 --- a/train.py +++ b/train.py @@ -2,12 +2,15 @@ import json import os from pathlib import Path + from dotenv import load_dotenv + load_dotenv() import numpy as np import argparse + parser = argparse.ArgumentParser() parser.add_argument("--data_root", type=str, required=True) parser.add_argument("--base_config", type=str, required=True) @@ -17,6 +20,7 @@ args = parser.parse_args() from hydra_vl4ai.util.config import Config + Config.base_config_path = args.base_config Config.dqn_config_path = args.dqn_config Config.model_config_path = args.model_config @@ -54,17 +58,17 @@ async def main(): dataset = exp_datasets.Refcoco(args.data_root) case _: raise ValueError("Invalid dataset") - + # output path Path(args.result_folder).mkdir(parents=True, exist_ok=True) save_path = Path(args.result_folder) / f"result_{Config.base_config['dataset']}.jsonl" - cum_reward=0 # TODO:modify + cum_reward = 0 # TODO:modify - for epoch_idx_ in range(Config.dqn_config["training_epoch"]): + for epoch_idx_ in range(Config.dqn_config["training_epoch"]): for i, (image_path, datum_id, query, ground_truth) in enumerate(dataset): - - logger.info(f"Processing {i+1}/{len(dataset)}") + + logger.info(f"Processing {i + 1}/{len(dataset)}") with open(image_path, "rb") as f: image_buffer = f.read() result = await hydra.train_step(image_buffer, query, ground_truth) @@ -82,18 +86,19 @@ async def main(): # training log info if hydra.controller.obs_no % hydra.controller.train_log_interval == 0: mean_reward = np.mean(hydra.controller.reward_window) - cum_reward = 0.99*cum_reward + 0.01*mean_reward - logger.info('---Current step:{}-----Mean Reward:{:.2f}----Cumulative Reward:{:.2f}'.format(hydra.controller.obs_no, mean_reward, cum_reward)) - + cum_reward = 0.99 * cum_reward + 0.01 * mean_reward + logger.info('---Current step:{}-----Mean Reward:{:.2f}----Cumulative Reward:{:.2f}'.format( + hydra.controller.obs_no, mean_reward, cum_reward)) + if hydra.controller.save_model_obs_num > hydra.controller.save_interval \ and hydra.controller.best_cum_reward < cum_reward: - # update best cumulated reward hydra.controller.best_cum_reward = cum_reward # save model - hydra.controller.rl_agent_model.save_model(os.path.join(hydra.controller.model_save_path, Config.dqn_config["model_name"])) - + hydra.controller.rl_agent_model.save_model( + os.path.join(hydra.controller.model_save_path, Config.dqn_config["model_name"])) + hydra.controller.save_model_obs_num = 0 From eab4182ff501adfe7a146bc590aabda4a3ca3ffa Mon Sep 17 00:00:00 2001 From: ControlNet Date: Fri, 7 Feb 2025 19:15:49 +1100 Subject: [PATCH 08/18] improve the checkpoint structure and fix loading buffer --- README.md | 6 +-- config/{dqn_testing.yaml => dqn_debug.yaml} | 4 +- config/dqn_train_config.yaml | 4 +- hydra_vl4ai/agent/controller.py | 50 ++++++++++++++------- hydra_vl4ai/agent/hydra.py | 5 ++- hydra_vl4ai/agent/llm.py | 2 +- hydra_vl4ai/agent/rl_dqn.py | 4 +- main.py | 28 ++++++------ train.py | 6 +-- 9 files changed, 61 insertions(+), 48 deletions(-) rename config/{dqn_testing.yaml => dqn_debug.yaml} (70%) diff --git a/README.md b/README.md index 455a59e..d57f4d7 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ We also notice the embedding model is updated by OpenAI as shown in this [link]( - [x] LLaMA3.1 (ollama) replacement. - [x] Gradio Demo - [x] GPT-4o Version. -- [ ] HYDRA with RL +- [x] HYDRA with RL ## Installation @@ -86,8 +86,8 @@ If you meet errors, please consider going through the `build_env.sh` file and in Edit the file `.env` or setup in CLI to configure the environment variables. ``` -OPENAI_API_KEY=your-api-key -OLLAMA_HOST=http://ollama.server:11434 +OPENAI_API_KEY=your-api-key # if you want to use OpenAI LLMs +OLLAMA_HOST=http://ollama.server:11434 # if you want to use your OLLaMA server for llama or deepseek # do not change this TORCH_HOME variable TORCH_HOME=./pretrained_models ``` diff --git a/config/dqn_testing.yaml b/config/dqn_debug.yaml similarity index 70% rename from config/dqn_testing.yaml rename to config/dqn_debug.yaml index 62389f6..7869b5d 100644 --- a/config/dqn_testing.yaml +++ b/config/dqn_debug.yaml @@ -1,6 +1,4 @@ -model_save_path: ./dqn_model_example -model_name: dataset_nameaokvqa_learn_starts300.pt -rl_agent_train_mode: True # if trainin tune True +model_save_path: dataset_nameaokvqa_learn_starts300 llm_embedding_dim: 1536 # small, 3072 for large mlp_hidden_dim: 512 critic_layer_num: 4 diff --git a/config/dqn_train_config.yaml b/config/dqn_train_config.yaml index dfb281d..af1b147 100644 --- a/config/dqn_train_config.yaml +++ b/config/dqn_train_config.yaml @@ -1,6 +1,4 @@ -model_save_path: your-save-path -model_name: testing1 -rl_agent_train_mode: True # if training tune True +model_name: dqn_model_example llm_embedding_dim: 1536 # small, 3072 for large mlp_hidden_dim: 512 critic_layer_num: 4 diff --git a/hydra_vl4ai/agent/controller.py b/hydra_vl4ai/agent/controller.py index 1494c7c..665ee5a 100644 --- a/hydra_vl4ai/agent/controller.py +++ b/hydra_vl4ai/agent/controller.py @@ -12,6 +12,7 @@ from .rl_dqn import DQN_EmbeddingViaLLM, ReplayBuffer from .smb.state_memory_bank import StateMemoryBank from ..util.config import Config +from ..util.misc import get_hydra_root_folder class Controller(abc.ABC): @@ -33,13 +34,19 @@ def __call__(self, instructions: list[str], probs: np.ndarray) -> str: class ControllerDQN(Controller): - def __init__(self, embedding_prompt_base: str, task_description_for_instruction: str, instruction_example: str): + def __init__(self, + embedding_prompt_base: str, + task_description_for_instruction: str, + instruction_example: str, + training: bool = False + ): super().__init__() self.instruction_example = instruction_example self.embedding_prompt_base = embedding_prompt_base - self.model_save_path = Config.dqn_config["model_save_path"] + self.model_name = Config.dqn_config["model_name"] + self.model_save_path = get_hydra_root_folder().parent / "ckpt" / self.model_name self.task_description_for_instruction = task_description_for_instruction - self.rl_agent_train_mode = Config.dqn_config["rl_agent_train_mode"] + self.training = training self.rl_agent_model = DQN_EmbeddingViaLLM( device=torch.device('cuda:0'), @@ -50,19 +57,17 @@ def __init__(self, embedding_prompt_base: str, task_description_for_instruction: critic_lr=float(Config.dqn_config["critic_lr"]) ) # load model - model_full_path = os.path.join(self.model_save_path, Config.dqn_config["model_name"]) - if not os.path.exists(self.model_save_path): - os.makedirs(self.model_save_path) + self.model_full_path = self.model_save_path / "critic.pt" + self.buffer_path = self.model_save_path / "buffer.pickle" + self.model_save_path.mkdir(parents=True, exist_ok=True) - if os.path.exists(model_full_path): - self.rl_agent_model.load_model(model_full_path) - logger.info("Load Model Done!!!") - else: - import pdb - pdb.set_trace() - raise RuntimeError(f"Model is not found: {model_full_path}") + if self.model_full_path.exists(): + self.rl_agent_model.load_model(str(self.model_full_path)) + logger.info(f"Load Model Done from file: {str(self.model_full_path)}") + elif not self.training: # for inference, if no model, raise error + raise RuntimeError(f"Model is not found: {self.model_full_path}") - if self.rl_agent_train_mode: # for training + if self.training: # for training self.rl_agent_model.train_mode() self.train_log_interval = Config.dqn_config["train_log_interval"] self.reward_window = deque(maxlen=self.train_log_interval) @@ -81,8 +86,8 @@ def __init__(self, embedding_prompt_base: str, task_description_for_instruction: * (self.obs_no / self.dqn_explore_epsilon_decay_interval) # load buffer - if os.path.exists(Config.dqn_config["mlp_hidden_dim"]): - with open(Config.dqn_config["mlp_hidden_dim"], "rb") as reward_buffer_container: + if self.buffer_path.exists(): + with open(self.buffer_path, "rb") as reward_buffer_container: self.replay_buffer = pickle.load(reward_buffer_container) reward_buffer_container.close() else: @@ -91,6 +96,17 @@ def __init__(self, embedding_prompt_base: str, task_description_for_instruction: else: self.rl_agent_model.eval_mode() + def save(self): + self.rl_agent_model.save_model(self.model_full_path) + with open(self.buffer_path, "wb") as f: + pickle.dump(self.replay_buffer, f) + + def load(self): + self.rl_agent_model.load_model(self.model_full_path) + if self.training and self.buffer_path.exists(): + with open(self.buffer_path, "rb") as f: + self.replay_buffer = pickle.load(f) + async def __call__(self, query: str, current_step_index: int, instructions: list[str], probs: np.ndarray, state_memory_bank: StateMemoryBank ) -> tuple[str, np.ndarray, int]: @@ -104,7 +120,7 @@ async def __call__(self, query: str, current_step_index: int, instructions: list selected_idx = np.argmax(affordance_value_array) # random exploration in the beginning. - if self.rl_agent_train_mode: + if self.training: # if it is in the beginning phase, do random exploration! if self.obs_no <= self.learn_starts or np.random.random() <= self.dqn_explore_threshold: selected_idx = random.choice(range(len(affordance_value_array))) diff --git a/hydra_vl4ai/agent/hydra.py b/hydra_vl4ai/agent/hydra.py index ebd8e06..83377ce 100644 --- a/hydra_vl4ai/agent/hydra.py +++ b/hydra_vl4ai/agent/hydra.py @@ -182,7 +182,7 @@ async def _call_vqa(self, image: bytes, query: str, state_memory_bank: StateMemo class HydraWithRL(Hydra): - def __init__(self): + def __init__(self, training: bool = False): super().__init__() # load config self.dataset = Config.base_config["dataset"] @@ -218,7 +218,8 @@ def __init__(self): self.controller = ControllerDQN( embedding_prompt_base, task_description_for_instruction, - instruction_examples + instruction_examples, + training ) self.reasoner = Reasoner( diff --git a/hydra_vl4ai/agent/llm.py b/hydra_vl4ai/agent/llm.py index 9724481..4158a34 100644 --- a/hydra_vl4ai/agent/llm.py +++ b/hydra_vl4ai/agent/llm.py @@ -55,7 +55,7 @@ async def wrapper(*args, **kwargs): # server side problem, should raise directly raise except Exception as e: - raise + raise e return wrapper diff --git a/hydra_vl4ai/agent/rl_dqn.py b/hydra_vl4ai/agent/rl_dqn.py index 969eebe..58b2607 100644 --- a/hydra_vl4ai/agent/rl_dqn.py +++ b/hydra_vl4ai/agent/rl_dqn.py @@ -135,10 +135,10 @@ def update(self, replay_buffer, batch_size, reward_scale=10., gamma=0.99, soft_t return qloss.detach().cpu().item() - def save_model(self, path): + def save_model(self, path: str): torch.save(self.critic_head.state_dict(), path) - def load_model(self, path): + def load_model(self, path: str): self.critic_head.load_state_dict(torch.load(path)) for tar_param, param in zip(self.tar_critic_head.parameters(), self.critic_head.parameters()): diff --git a/main.py b/main.py index c9d9e96..ff534a1 100644 --- a/main.py +++ b/main.py @@ -1,14 +1,15 @@ import asyncio import json import os -import requests -import time -import tensorneko_util as N from pathlib import Path + +import tensorneko_util as N from dotenv import load_dotenv + load_dotenv() import argparse + parser = argparse.ArgumentParser() parser.add_argument("--data_root", type=str, required=True) parser.add_argument("--base_config", type=str, required=True) @@ -18,10 +19,10 @@ args = parser.parse_args() from hydra_vl4ai.util.config import Config + Config.base_config_path = args.base_config -if args.dqn_config: +if args.dqn_config is not None: Config.dqn_config_path = args.dqn_config - Config.dqn_config["rl_agent_train_mode"] = False Config.model_config_path = args.model_config from hydra_vl4ai.agent.hydra import HydraNoRL, HydraWithRL @@ -33,11 +34,11 @@ async def main(): with console.status("[bold green]Connect to HYDRA executor...") as status: wait_until_loaded(f"http://localhost:{Config.base_config['executor_port']}") - - if not args.dqn_config: + + if args.dqn_config is None: hydra = HydraNoRL() else: - hydra =HydraWithRL() + hydra = HydraWithRL() match Config.base_config["dataset"]: case "gqa": @@ -61,22 +62,22 @@ async def main(): dataset = exp_datasets.Refcoco(args.data_root) case _: raise ValueError("Invalid dataset") - + # output path Path(args.result_folder).mkdir(parents=True, exist_ok=True) save_path = Path(args.result_folder) / f"result_{Config.base_config['dataset']}.jsonl" - + # resume if the file exists completed = [] if os.path.exists(save_path): prev_results = N.io.read.json(str(save_path)) completed = [result["datum_id"] for result in prev_results] - + for i, (image_path, datum_id, query, ground_truth) in enumerate(dataset): if datum_id in completed: - logger.info(f"Skipping {i+1}/{len(dataset)}") + logger.info(f"Skipping {i + 1}/{len(dataset)}") continue - logger.info(f"Processing {i+1}/{len(dataset)}") + logger.info(f"Processing {i + 1}/{len(dataset)}") with open(image_path, "rb") as f: image_buffer = f.read() result = await hydra(image_buffer, query) @@ -91,5 +92,6 @@ async def main(): }) + "\n") f.flush() + if __name__ == "__main__": asyncio.run(main=main()) diff --git a/train.py b/train.py index d9f8267..9466a88 100644 --- a/train.py +++ b/train.py @@ -34,7 +34,7 @@ async def main(): with console.status("[bold green]Connect to HYDRA executor...") as status: wait_until_loaded(f"http://localhost:{Config.base_config['executor_port']}") - hydra = HydraWithRL() + hydra = HydraWithRL(training=True) match Config.base_config["dataset"]: case "gqa": @@ -96,9 +96,7 @@ async def main(): hydra.controller.best_cum_reward = cum_reward # save model - hydra.controller.rl_agent_model.save_model( - os.path.join(hydra.controller.model_save_path, Config.dqn_config["model_name"])) - + hydra.controller.save() hydra.controller.save_model_obs_num = 0 From f6e7b2af52ebadead6b65a8e5a0306ffd572ba98 Mon Sep 17 00:00:00 2001 From: ControlNet Date: Fri, 7 Feb 2025 19:23:52 +1100 Subject: [PATCH 09/18] fix minor issues --- hydra_vl4ai/agent/controller.py | 1 - hydra_vl4ai/agent/llm.py | 18 +++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/hydra_vl4ai/agent/controller.py b/hydra_vl4ai/agent/controller.py index 665ee5a..651645d 100644 --- a/hydra_vl4ai/agent/controller.py +++ b/hydra_vl4ai/agent/controller.py @@ -1,5 +1,4 @@ import abc -import os import pickle import random from collections import deque diff --git a/hydra_vl4ai/agent/llm.py b/hydra_vl4ai/agent/llm.py index 4158a34..2cfdae8 100644 --- a/hydra_vl4ai/agent/llm.py +++ b/hydra_vl4ai/agent/llm.py @@ -41,19 +41,19 @@ async def wrapper(*args, **kwargs): for _ in range(max_trial): try: return await func(*args, **kwargs) - except openai.APITimeoutError as e: + except openai.APITimeoutError: pass - except openai.APIConnectionError as e: + except openai.APIConnectionError: pass - except openai.RateLimitError as e: + except openai.RateLimitError: time.sleep(1) pass except openai.BadRequestError as e: # maybe exceed the length, should raise directly - raise + raise e except openai.APIStatusError as e: # server side problem, should raise directly - raise + raise e except Exception as e: raise e @@ -68,14 +68,14 @@ async def wrapper(*args, **kwargs): for _ in range(max_trial): try: return await func(*args, **kwargs) - except httpx.ConnectError as e: + except httpx.ConnectError: pass - except httpx.ConnectTimeout as e: + except httpx.ConnectTimeout: pass - except httpx.TimeoutException as e: + except httpx.TimeoutException: pass except Exception as e: - raise + raise e return wrapper From 108627d89efc37ffd8ad64d5f14a983056cb2c98 Mon Sep 17 00:00:00 2001 From: fucai Date: Sat, 8 Feb 2025 18:53:20 -0800 Subject: [PATCH 10/18] adding worker bash --- activate_worker.bash | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 activate_worker.bash diff --git a/activate_worker.bash b/activate_worker.bash new file mode 100644 index 0000000..cb74bb5 --- /dev/null +++ b/activate_worker.bash @@ -0,0 +1,6 @@ +#!/bin/bash + +python -m hydra_vl4ai.executor \ + --base_config ./config/okvqa.yaml \ + --model_config ./config/model_config_1gpu.yaml + \ No newline at end of file From c14ab0b81f0e44d523563b87a3da2f73e7877c40 Mon Sep 17 00:00:00 2001 From: fucai Date: Sat, 8 Feb 2025 19:03:40 -0800 Subject: [PATCH 11/18] adding pandas and modify some bash script --- config/dqn_debug.yaml | 2 +- pixi.toml | 1 + run_main.sh | 8 ++++++++ train_bash.sh | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100755 run_main.sh diff --git a/config/dqn_debug.yaml b/config/dqn_debug.yaml index 7869b5d..71b3998 100644 --- a/config/dqn_debug.yaml +++ b/config/dqn_debug.yaml @@ -1,4 +1,4 @@ -model_save_path: dataset_nameaokvqa_learn_starts300 +model_name: dataset_nameaokvqa_learn_starts300 llm_embedding_dim: 1536 # small, 3072 for large mlp_hidden_dim: 512 critic_layer_num: 4 diff --git a/pixi.toml b/pixi.toml index f4af7c0..cf5dd8e 100644 --- a/pixi.toml +++ b/pixi.toml @@ -32,6 +32,7 @@ markupsafe = ">2.0,<3.0" numpy = "<2.0" ipywidgets = ">=8.1.5,<9" ipykernel = ">=6.29.5,<7" +pandas = ">=2.2.3,<3" [pypi-dependencies] fastapi = "*" diff --git a/run_main.sh b/run_main.sh new file mode 100755 index 0000000..6eb14ee --- /dev/null +++ b/run_main.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# preprocessing +python main.py \ + --data_root '/home/mai/fke/fkee/coco2014' \ + --base_config './config/okvqa.yaml' \ + --model_config './config/model_config_1gpu.yaml' +echo "preprocessing done" diff --git a/train_bash.sh b/train_bash.sh index 95c71ac..9fdbf90 100755 --- a/train_bash.sh +++ b/train_bash.sh @@ -5,5 +5,5 @@ python train.py \ --data_root '/home/mai/fke/fkee/coco2014' \ --base_config './config/okvqa.yaml' \ --model_config './config/model_config_1gpu.yaml' \ - --dqn_config './config/dqn_testing.yaml' + --dqn_config './config/dqn_debug.yaml' echo "preprocessing done" From d0845e26dd9fc0f7231c96060a449f5e52dae7fe Mon Sep 17 00:00:00 2001 From: fucai Date: Sat, 8 Feb 2025 22:04:30 -0800 Subject: [PATCH 12/18] update image_patch llm_query --- activate_worker.bash | 6 ------ hydra_vl4ai/execution/image_patch.py | 2 +- run_main.sh | 8 -------- 3 files changed, 1 insertion(+), 15 deletions(-) delete mode 100644 activate_worker.bash delete mode 100755 run_main.sh diff --git a/activate_worker.bash b/activate_worker.bash deleted file mode 100644 index cb74bb5..0000000 --- a/activate_worker.bash +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -python -m hydra_vl4ai.executor \ - --base_config ./config/okvqa.yaml \ - --model_config ./config/model_config_1gpu.yaml - \ No newline at end of file diff --git a/hydra_vl4ai/execution/image_patch.py b/hydra_vl4ai/execution/image_patch.py index 8857bc8..f9f81cc 100644 --- a/hydra_vl4ai/execution/image_patch.py +++ b/hydra_vl4ai/execution/image_patch.py @@ -560,7 +560,7 @@ def llm_query(query, context=None, long_answer=True, state_memory_bank=None): if not long_answer: prompt_ += f'Please provide only a few-word answer. Be very concise, no ranges, no doubt.' try: - return_answer = asyncio.run(chatgpt(prompt_)) or "" + return_answer = asyncio.run(chatgpt("gpt-3.5-turbo-1106", prompt_)) or "" except: return_answer = 'not answer from gpt' diff --git a/run_main.sh b/run_main.sh deleted file mode 100755 index 6eb14ee..0000000 --- a/run_main.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -# preprocessing -python main.py \ - --data_root '/home/mai/fke/fkee/coco2014' \ - --base_config './config/okvqa.yaml' \ - --model_config './config/model_config_1gpu.yaml' -echo "preprocessing done" From 0a7fdfde8da8c933eb082b6761e84836450fa469 Mon Sep 17 00:00:00 2001 From: fucai Date: Mon, 10 Feb 2025 01:40:24 -0800 Subject: [PATCH 13/18] upload gradio demo video --- README.md | 1 + media/gradio_demo.mov | Bin 0 -> 961444 bytes 2 files changed, 1 insertion(+) create mode 100644 media/gradio_demo.mov diff --git a/README.md b/README.md index d57f4d7..34cd3a4 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,7 @@ python demo_gradio.py \ --base_config \ --model_config ``` + ### Inference dataset diff --git a/media/gradio_demo.mov b/media/gradio_demo.mov new file mode 100644 index 0000000000000000000000000000000000000000..702f4a4ae07d571298695dbf896699efd703337a GIT binary patch literal 961444 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 r_7mG8XW;0#x82X{eE#702m?vtyhFEC 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

PoOfPY}}Y}QwB8ox=t?~ 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

N1)HGw&l0Y1ZOd@OgfVyty^+;OF-Nd{&A4h+6Y@ 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�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