Bir robotdan sorap görmegiňizi göz öňüne getiriň: "Haý, aşhanadan gyzyl käsäni alyp, şu ýere getir". Simpleönekeý ýaly görünýärmi? Emma AI üçin bu dile düşünmek, giňişlikde gezmek, obýektleri tanamak we real wagtda seslenme bermek ýaly zatlary öz içine alýar. -da edil şu meseläni çözdüm, görkezmelere düşünip, daş-töwereginden geçip, obýektler bilen täsirleşip we yza gaýdyp bilýän mbodly gepleşik agentini gurduk. “Alexa” baýragy “SimBot Challenge” e Ine, BERT, güýçlendiriji okuw we multimodal maşyn öwrenmek arkaly nädip işledik. Dürli meselelere we olaryň hersine nähili çemeleşendigimize geçeliň. BERT bilen dile düşünmek Tebigy dil bulaşyk we gaty çylşyrymly bolup biler. Biz adamlar diýýäris, ýöne Robot dürli sözlemlerden many çykarmaly. sowadyja gidiň holodilnik tapyň we açyň diýip bileris. Munuň üçin tekst görkezmelerini gurluşly buýruklara öwürmek üçin BERT (Transformerlerden iki taraplaýyn kodlaýjy wekilçilikleri) ulandyk, yzygiderli ýerine ýetirmek has aňsat bolar ýaly. Bu nähili işleýär Ulanyjy gürleýär ýa-da görkezme ýazýar. we niýeti çykarýar. BERT teksti gaýtadan işleýär ýa-da ýaly ýerine ýetirip boljak hereketlere terjime edýär. AI muny navigate_to (holodilnik) saýlamak (red_cup) Aşakda BERT esasly görkezme gözlegçimiziň özeni: import torch import torch.nn as nn import torch.optim as optim from transformers import BertTokenizer, BertModel class InstructionEncoder(nn.Module): """ Fine-tunes BERT on domain-specific instructions, outputs a command distribution. """ def __init__(self, num_commands=10, dropout=0.1): super(InstructionEncoder, self).__init__() self.bert = BertModel.from_pretrained("bert-base-uncased") self.dropout = nn.Dropout(dropout) self.classifier = nn.Linear(self.bert.config.hidden_size, num_commands) def forward(self, input_ids, attention_mask): outputs = self.bert(input_ids=input_ids, attention_mask=attention_mask) pooled_output = outputs.pooler_output pooled_output = self.dropout(pooled_output) logits = self.classifier(pooled_output) return logits #Suppose we have some labeled data: (text -> command_id) tokenizer = BertTokenizer.from_pretrained("bert-base-uncased") model = InstructionEncoder(num_commands=12) model.train() instructions = ["Go to the fridge", "Pick up the red cup", "Turn left"] labels = [2, 5, 1] input_encodings = tokenizer(instructions, padding=True, truncation=True, return_tensors="pt") labels_tensor = torch.tensor(labels) optimizer = optim.AdamW(model.parameters(), lr=1e-5) criterion = nn.CrossEntropyLoss() Netijeler we esasy netijeler Ulanyjy görkezmelerini robot meselelerine laýyklaşdyrmakda . 92% takyklyga ýetdi düzgüne esaslanýan NLP-den has gowy. Çylşyrymly sözleýiş üýtgeýişleri daşky gurşawa degişli terminlere has gowy düşünmäge sebäp boldy (“holodilnik”, “hasaplaýjy”, “diwan”). Domen-uýgunlaşdyrylan inçe düzmek (“tutmak”, “saýlamak”, “almak”). Sinonimlere we ownuk sintaksis tapawutlaryna berk Buýruklary hakyky wagtda derňemäge rugsat berilýär (talap üçin <100ms). Planol meýilnamasy bilen nawigasiýa (A * we güýçlendirmek okuwy) Robot gitmelidigine düşünensoň, ol ýere barmagyň ýoly gerek. Dinamiki giňişlikler üçin gurluşly gurşawy (kartalar ýaly) we Güýçlendirmek . nirä okuwyny (RL) gözledik Nawigasiýa ulgamyny nädip öwretdik * statiki ýol gözlegi: Düzülen giňişliklerde öňünden hasaplanan ugurlar. A : Robot sylaglary ulanyp synagdan we ýalňyşlykdan öwrendi. Dinamiki hereket üçin RL Ine, ýol gözlemek üçin A * gözlegimizi amala aşyrdyk. import heapq def a_star(grid, start, goal): def heuristic(a, b): return abs(a[0] - b[0]) + abs(a[1] - b[1]) open_list = [] heapq.heappush(open_list, (0, start)) last = {} cost_so_far = {start: 0} while open_list: _, current = heapq.heappop(open_list) if current == goal: break for dx, dy in [(-1, 0), (1, 0), (0, -1), (0, 1)]: #4 directions neighbor = (current[0] + dx, current[1] + dy) if neighbor in grid: #Check if it's a valid position new_cost = cost_so_far[current] + 1 if neighbor not in cost_so_far or new_cost < cost_so_far[neighbor]: cost_so_far[neighbor] = new_cost priority = new_cost + heuristic(goal, neighbor) heapq.heappush(open_list, (priority, neighbor)) last[neighbor] = current return last Bu dinamiki hereket üçin RL-ni nähili ulanýandygymyzdyr. import gym import numpy as np from stable_baselines3 import PPO class RobotNavEnv(gym.Env): """ A simplified environment mixing a partial grid with dynamic obstacles. Observations might include LiDAR scans or collision sensors. """ def __init__(self): super(RobotNavEnv, self).__init__() self.observation_space = gym.spaces.Box(low=0, high=1, shape=(360,), dtype=np.float32) self.action_space = gym.spaces.Discrete(3) self.state = np.zeros((360,), dtype=np.float32) def reset(self): self.state = np.random.rand(360).astype(np.float32) return self.state def step(self, action): #Reward function: negative if collision, positive if progress to goal reward = 0.0 done = False if action == 2 and np.random.rand() < 0.1: reward = -5.0 done = True else: reward = 1.0 self.state = np.random.rand(360).astype(np.float32) return self.state, reward, done, {} env = RobotNavEnv() model = PPO("MlpPolicy", env, verbose=1).learn(total_timesteps=5000) Netijeler we esasy netijeler A * gözleg gözegçilik edilýän ýerlerde gowy işledi. RL esasly nawigasiýa hakyky wagtda päsgelçiliklere uýgunlaşdy. Nawigasiýa tizligi adaty algoritmlerden 40% ýokarlandy Obýekti tanamak we özara täsir Barmaly ýerinde bir gezek robot zatlary görmeli we özara täsirleşmeli. Bu obýektiň lokalizasiýasy üçin kompýuter görüşini talap edýärdi. Kuboklar, gapylar we enjamlar ýaly zatlary tanamak üçin modelini taýýarladyk. YOLOv8 import torch from ultralytics import YOLO import numpy as np #load a base YOLOv8 model model = YOLO("yolov8s.pt") #embeddings object_categories = { "cup": np.array([0.22, 0.88, 0.53]), "mug": np.array([0.21, 0.85, 0.50]), "bottle": np.array([0.75, 0.10, 0.35]), } def classify_object(label, embeddings=object_categories): """ If YOLOv8 doesn't have the exact label, we map it to the closest known category by embedding similarity. """ if label in embeddings: return label else: best_label = None best_sim = -1 for cat, emb in embeddings.items(): sim = np.random.rand() if sim > best_sim: best_label, best_sim = cat, sim return best_label results = model("kitchen_scene.jpg") for r in results: for box, cls_id in zip(r.boxes.xyxy, r.boxes.cls): label = r.names[int(cls_id)] mapped_label = classify_object(label) Netijeler we esasy netijeler 30 FPS-de hakyky wagt kesgitlemesi. Umumy öý goşlaryny kesgitlemekde 97% takyklyk. ýaly tebigy täsirleri işjeňleşdirdi "Gök kitaby al" Aýlawy ýapmak - Tebigy dilde AI seslenmesi Indi robot: Görkezmä düşünýär (BERT) Barmaly ýerine gidýär (A / RL) Obýektleri tapýar we olar bilen täsirleşýär (YOLOv8) Ulanyja nädip jogap bermelidigine düşünmeli. Bu seslenme halkasy ulanyjy tejribesinde hem kömek edýär; muny gazanmak üçin dinamiki jogaplar üçin ulandyk. GPT esasly tekst öndürmek from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-j-6B") model_gpt = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-j-6B").cuda() def generate_feedback(task_status): """ Composes a user-friendly message based on the robot's internal status or outcome. """ prompt = (f"You are a helpful home robot. A user gave you a task. Current status: {task_status}.\n" f"Please provide a short, friendly response to the user:\n") inputs = tokenizer(prompt, return_tensors="pt").to("cuda") outputs = model_gpt.generate(**inputs, max_length=60, do_sample=True, temperature=0.7) response_text = tokenizer.decode(outputs[0], skip_special_tokens=True) return response_text.split("\n")[-1] print(generate_feedback("I have arrived at the kitchen. I see a red cup.")) Netijeler we esasy netijeler Uýgunlaşdyrylan AI seslenmesi ulanyjylaryň gatnaşygyny gowulandyrdy. Synag ulanyjylarynyň 98% -i jogaplary tebigy tapdy Işi tamamlamak derejesi 35% ýokarlandy Netije Ösen NLP-iň sinergiýasy, ygtybarly ýoly meýilleşdirmek, obýekti real wagt kesgitlemek we döredijilik dili bilelikde robot öndürmekde täze serhet açdy. Biziň wekillerimiz nuansly buýruklary düşündirip, dinamiki gurşawda gezip bilerler, ajaýyp takyklyk bilen obýektleri kesgitläp we tebigy duýulýan jogaplary berip bilerler. Simpleönekeý meseläni ýerine ýetirmekden başga, bu robotlar anyk soraglar bermek, hereketleri düşündirmek we uçuşda uýgunlaşmak üçin hakyky arka-aragatnaşyk bilen meşgullanýar. Maşynlaryň hyzmat etmek bilen çäklenmän, geljegine göz aýlaýarys: olar gündelik işlerimizde hakyky hyzmatdaşlar hökmünde hyzmatdaşlyk edýärler, öwrenýärler we gürleşýärler. Käbir usullar barada goşmaça okamak Dil düşünmek üçin BERT A * Planol meýilnamasyny gözläň Hakyky wagt obýekti kesgitlemek üçin YOLOv8 Robotika üçin berkitme okuwy