YouZum

Committee

AI, Committee, Noticias, Uncategorized

The Download: dead robot friends and the “censorship-industrial complex”

This is today’s edition of The Download, our weekday newsletter that provides a daily dose of what’s going on in the world of technology. What happens when a kid’s robot best friend dies? When Xander first met Moxie, she taught him how to calm down when he was anxious or mad. Six years later, she mostly watches him play Minecraft and talks to him about his stuffed animals. Moxie is a robot—a 15-inch-tall device that looks a bit like a blue, legless astronaut. It belongs to a subset of robots designed to assist neurodivergent children by providing connection and helping kids practice social skills usually learned from therapists.  Xander still uses Moxie when he feels like he needs someone to talk to, but the device has had a troubled life. The robot’s maker went out of business, its servers were shut down, and parents rushed to convert their Moxies before the servers went offline.  Read our story about how it exposes the promise and pitfalls of AI companion toys for children. —Sara Harrison This article is from the next issue of our print magazine, which is all about kids. Subscribe now to read it when it lands. Inside the “censorship-industrial complex” idea shaping US policy The idea of a “censorship-industrial complex” has moved from the fringes of right-wing online discourse into US policy. The basic theory is that, under the guise of combating disinformation, government agencies, academics, civil society groups, and Big Tech platforms have worked together to suppress conservative and populist speech online. It has now made its way into the Trump administration. Over the past nine months, MIT Technology Review investigated its rise. In a recent Roundtables session, senior reporter Eileen Guo and executive editor Amy Nordrum revealed what they discovered, where the theory is going, and what it could mean for the future of democracy and the internet. Subscribers and MIT alumni can now watch the full event here. The must-reads I’ve combed the internet to find you today’s most fun/important/scary/fascinating stories about technology. 1 The US plans to force partners to pick sides in the AI race A draft letter warns allies against joining China’s rival AI initiative. (Reuters $)+ Beijing is using open-weight AI to expand its governance. (FT $)+ Chinese AI has divided the White House. (MIT Technology Review) 2 Memory chipmaker CXMT is now China’s most valuable companyIts rise reflects Beijing’s push for strategic hardware. (Bloomberg $)+ The US has urged Apple not to buy Chinese memory chips. (WSJ $) 3 Astronomers have found evidence for a “black hole star”It’s 100,000 times bigger than the Sun. (Futurism)+ And may explain mysterious red spots in the early universe. (Wired $) 4 Meta has patented facial recognition for AI glasses to identify peopleAnd make highlight reels of dinner parties, apparently. (404 Media)+ Meta’s “pervert glasses” issue is killing an impressive product. (Independent) 5 Puerto Rico is rationing water. It could’ve harvested rainwater insteadUp to 30 billion gallons could be collected annually. (Wired $)+ Puerto Rico is enduring major power struggles. (MIT Technology Review) 6 The backlash against Flock could become a broader tech rebellionPeople are sick of tech billionaires trying to control their lives. (Salon)+ Flock is tightening its rules following the backlash. (MIT Technology Review) 7 Amazon is trying to crush class-action suits before they get startedA terms update requires all disputes to be resolved via arbitration. (Verge) 8 Aging may be a programmed process, not just wear and tearScientists found distinct stages of aging across mouse cells. (Quanta)+ Scientists created female clones of male mice. (MIT Technology Review) 9 The latest online shopping trend involves buying nothing“Dopamine sites” recreate shopping rituals without the buying. (Rest of World) 10 Ice cream is becoming a surprisingly high-tech businessAI, robotics, and unusual flavors are changing how it’s made. (BBC) Quote of the day “The thing that will work is actually curing cancer.” —Anthropic CEO Dario Amodei proposes a way to win over AI skeptics in a rare post on X. One More Thing The quest to find out how our bodies react to extreme temperatures Climate change is forcing us to reckon with the knotty science of how our bodies interact with the environment.  As extreme temperatures become more common, scientists are trying to understand what happens when heat and cold push our bodies toward their limits. But the science of keeping warm or cool is surprisingly full of blind spots.  Researchers are finding that long-held assumptions about how our bodies respond to extreme temperatures may be more complicated than we thought. Find out what they’re learning about the limits of the human body. —Max G. Levy We can still have nice things A place for comfort, fun, and distraction to brighten up your day. (Got any ideas? Drop me a line.) + Trace the enthralling history of sumo wrestling in this succinct animated documentary.+ A meow-sical pet owner (sorry) has sampled his cat’s purrs into a booming bassline.+ The true-scale Universe Atlas lets you zoom from inside a proton out to the cosmic web.+ This selection of places that only exist at certain times of day is a goldmine for punctual travelers. 

The Download: dead robot friends and the “censorship-industrial complex” Leer entrada »

AI, Committee, Noticias, Uncategorized

Developing an End-to-End Document Intelligence Pipeline with docTR for OCR, Layout Analysis, KIE, Benchmarking, and Searchable PDFs

In this tutorial, we develop an end-to-end OCR workflow with docTR and explore how modern document understanding pipelines combine text detection, recognition, geometry, layout analysis, structured extraction, and export. We generate realistic synthetic invoice documents, load images and PDFs through DocumentFile, construct GPU-aware OCR predictors, and benchmark different detection–recognition architecture combinations for speed and accuracy. We then inspect the internal Document hierarchy, visualize confidence-aware bounding boxes, use standalone detection and recognition models, implement two-pass recognition for low-confidence words, tune detection thresholds, and introduce custom pipeline hooks for box filtering and padding. We also handle rotated and skewed documents, experiment with layout detection and KIE, reconstruct reading order and tabular information, extract structured invoice fields, and export results as text, JSON, hOCR, synthesized document images, and searchable PDFs. Finally, we examine practical performance, fine-tuning, batching, and deployment considerations to understand how to move from a basic OCR example to a production-oriented document intelligence pipeline. Copy CodeCopiedUse a different Browser import os, sys, io, json, time, math, re, subprocess, warnings from collections import Counter, defaultdict warnings.filterwarnings(“ignore”) os.environ.setdefault(“USE_TORCH”, “1”) def _pip(*pkgs): subprocess.run([sys.executable, “-m”, “pip”, “install”, “-q”, *pkgs], check=False) try: import doctr except ImportError: print(“>> Installing python-doctr (this takes ~1-2 min on Colab)…”) _pip(“python-doctr[viz]”) try: import reportlab except ImportError: _pip(“reportlab”) import numpy as np import torch import matplotlib import matplotlib.pyplot as plt from matplotlib import font_manager from matplotlib.patches import Rectangle, Polygon as MplPolygon from PIL import Image, ImageDraw, ImageFont import doctr from doctr.io import DocumentFile from doctr.models import ( ocr_predictor, kie_predictor, detection_predictor, recognition_predictor, ) DEVICE = “cuda” if torch.cuda.is_available() else “cpu” print(“=” * 78) print(f”docTR : {doctr.__version__}”) print(f”torch : {torch.__version__}”) print(f”device : {DEVICE}” + (f” ({torch.cuda.get_device_name(0)})” if DEVICE == “cuda” else “”)) print(f”python : {sys.version.split()[0]}”) print(“=” * 78) print(“NOTE: if the import above failed, restart the runtime ” “(Runtime > Restart session) and re-run this cell.n”) CFG = dict( RUN_BENCHMARK = True, RUN_SECOND_PASS = True, RUN_ROTATION = True, RUN_LAYOUT = True, RUN_KIE = True, RUN_SYNTHESIS = True, RUN_PDF_EXPORT = True, ) WORK = “/content/doctr_demo” if os.path.isdir(“/content”) else “./doctr_demo” os.makedirs(WORK, exist_ok=True) print(f”working dir: {WORK}n”) _FONT = font_manager.findfont(font_manager.FontProperties(family=”DejaVu Sans”)) _FONT_B = font_manager.findfont( font_manager.FontProperties(family=”DejaVu Sans”, weight=”bold”)) A4 = (1240, 1754) INVOICE_LINES = [ ( 80, 70, “NORTHWIND TRADING CO.”, 38, True ), ( 80, 122, “42 Harbour Road, Bristol BS1 5TY”, 22, False), ( 80, 152, “VAT GB 884 5521 09”, 22, False), (820, 70, “INVOICE”, 44, True ), (820, 132, “Invoice No: INV-2024-00817”, 22, False), (820, 162, “Date: 14/03/2024”, 22, False), (820, 192, “Due Date: 13/04/2024”, 22, False), ( 80, 260, “BILL TO”, 24, True ), ( 80, 296, “Aurora Robotics Ltd”, 24, False), ( 80, 328, “Unit 7 Fenway Business Park”, 22, False), ( 80, 358, “Cambridge CB4 0WS”, 22, False), ( 80, 388, “Contact: procurement@aurorarobotics.co.uk”,22, False), ( 80, 470, “DESCRIPTION”, 24, True ), (640, 470, “QTY”, 24, True ), (780, 470, “UNIT PRICE”, 24, True ), (1010,470, “AMOUNT”, 24, True ), ( 80, 520, “Servo controller board Rev C”, 22, False), (640, 520, “12”, 22, False), (780, 520, “84.50”, 22, False), (1010,520, “1014.00”, 22, False), ( 80, 560, “Harmonic drive gearbox 50:1”, 22, False), (640, 560, “4”, 22, False), (780, 560, “312.75”, 22, False), (1010,560, “1251.00”, 22, False), ( 80, 600, “Shielded encoder cable 2m”, 22, False), (640, 600, “20”, 22, False), (780, 600, “11.40”, 22, False), (1010,600, “228.00”, 22, False), ( 80, 640, “Calibration service on-site”, 22, False), (640, 640, “1”, 22, False), (780, 640, “450.00”, 22, False), (1010,640, “450.00”, 22, False), (780, 720, “Subtotal”, 22, False), (1010,720, “2943.00”, 22, False), (780, 756, “VAT 20%”, 22, False), (1010,756, “588.60”, 22, False), (780, 796, “TOTAL DUE”, 26, True ), (1010,796, “3531.60”, 26, True ), ( 80, 900, “PAYMENT TERMS”, 24, True ), ( 80, 936, “Net 30 days. Late payments accrue interest at 2% per month.”, 20, False), ( 80, 968, “Bank: Lloyds Sort Code: 30-96-26 Account: 41775302”, 20, False), ( 80,1010, “Reference: INV-2024-00817”, 20, False), ] PAGE2_LINES = [ ( 80, 70, “APPENDIX A – DELIVERY SCHEDULE”, 34, True ), ( 80, 140, “All shipments leave the Bristol warehouse before 16:00 GMT.”, 22, False), ( 80, 176, “Tracking numbers are emailed on the day of dispatch.”, 22, False), ( 80, 240, “MILESTONE”, 24, True ), (700, 240, “TARGET DATE”, 24, True ), ( 80, 288, “Purchase order acknowledged”, 22, False), (700, 288, “18/03/2024”, 22, False), ( 80, 328, “Controller boards shipped”, 22, False), (700, 328, “25/03/2024”, 22, False), ( 80, 368, “Gearboxes shipped”, 22, False), (700, 368, “02/04/2024”, 22, False), ( 80, 408, “On-site calibration window”, 22, False), (700, 408, “08/04/2024”, 22, False), ( 80, 480, “Questions? Call +44 117 496 0022 or email ops@northwind.example”, 20, False), ] def render_page(lines, size=A4, bg=250): “””Draw a clean document page from a list of (x, y, text, size, bold).””” img = Image.new(“RGB”, size, (bg, bg, bg)) d = ImageDraw.Draw(img) for x, y, text, sz, bold in lines: font = ImageFont.truetype(_FONT_B if bold else _FONT, sz) d.text((x, y), text, fill=(18, 18, 22), font=font) d.line([(80, 455), (1160, 455)], fill=(60, 60, 60), width=2) d.line([(80, 505), (1160, 505)], fill=(160, 160, 160), width=1) d.line([(760, 700), (1160, 700)], fill=(60, 60, 60), width=2) return img def scanify(img, angle=0.0, noise=6.0, jpeg_quality=72, blur_shadow=True): “””Degrade a clean render so it behaves like a phone photo / flatbed scan.””” if angle: img = img.rotate(angle, expand=True, resample=Image.BICUBIC, fillcolor=(250, 250, 250)) arr = np.asarray(img).astype(np.float32) if blur_shadow: h, w = arr.shape[:2] gx = np.linspace(-1, 1, w)[None, :] gy = np.linspace(-1, 1, h)[:, None] shade = 1.0 – 0.10 * (gx ** 2 + 0.6 * gy ** 2) arr *= shade[…, None] if noise: arr += np.random.normal(0, noise, arr.shape) arr = np.clip(arr, 0, 255).astype(np.uint8) out = Image.fromarray(arr) if jpeg_quality: buf = io.BytesIO() out.save(buf, format=”JPEG”, quality=jpeg_quality) buf.seek(0) out = Image.open(buf).convert(“RGB”) return out clean1 = render_page(INVOICE_LINES) clean2 = render_page(PAGE2_LINES) page1_path = os.path.join(WORK, “invoice_p1.png”) page2_path = os.path.join(WORK, “invoice_p2.png”) rotated_path = os.path.join(WORK, “invoice_rotated.png”) pdf_path = os.path.join(WORK, “invoice.pdf”) scanify(clean1, angle=0.4).save(page1_path) scanify(clean2, angle=-0.3).save(page2_path) scanify(clean1, angle=13.0, noise=8.0).save(rotated_path) clean1.save(pdf_path, save_all=True, append_images=[clean2], resolution=150) GT_WORDS_P1 = [w for _, _, t, _, _ in INVOICE_LINES for w in t.split()] print(f”generated: {page1_path}, {page2_path}, {rotated_path}, {pdf_path}”) print(f”ground-truth words on page 1:

Developing an End-to-End Document Intelligence Pipeline with docTR for OCR, Layout Analysis, KIE, Benchmarking, and Searchable PDFs Leer entrada »

AI, Committee, Noticias, Uncategorized

MiniMax Releases MiniMax-Music3: An Open-Weights Music Model Generating Complete Five-Minute Songs From Lyrics and a Structured Caption

MiniMax released MiniMax-Music3, an open-weights text-to-music model. The model takes two separate inputs: lyrics carrying section tags, and a detailed music description. It returns a complete song of up to five minutes in a single generation, as 32 kHz, 16-bit stereo WAV. The architecture pairs a Hybrid-LM, an 8B Global LLM with a 0.6B Local LLM, with a continuous synthesis stack built on flow matching and a Flow-VAE. Weights, inference code and three documented serving paths shipped the same day. Is it deployable? Yes, MiniMax published usable weights, inference code and three documented serving paths on day one, so this is deployable now rather than a research preview. Company level: Solo creators, indie studios and mid-market teams can ship on it directly. The MiniMax-Music3 Community License permits commercial use, but it requires you to display ‘MiniMax-Music3’ prominently in the product UI, and any organization whose aggregate yearly revenue from those products exceeds US$ 20 million must obtain separate prior written authorization from MiniMax. Anyone hosting third-party generation must also implement and maintain safeguards against infringing outputs. Industries: Game development, advertising and brand agencies, short-form video and creator tools, e-learning, podcasting, fitness and wellness apps, retail in-store audio, and music-tech SaaS. Applications: Background scoring for UGC video, adaptive game and level music, localized ad beds and sonic branding, scratch and demo tracks for songwriters, mood-conditioned playlist generation, and offline batch generation where per-song API cost is the constraint. The Architecture MiniMax-Music3 combines a hierarchical autoregressive stack with a continuous synthesis path. The training tokenizer uses eight layers of residual vector quantization (RVQ). The first, semantic codebook has 16,384 entries and carries core musical semantics and structure. The remaining seven acoustic codebooks have 1,024 entries each and encode residual detail. Training optimizes the semantic layer first, then all eight jointly. The Hybrid-LM splits the modeling problem. An 8B Global LLM predicts the first RVQ codebook frame by frame and holds long-range structure; a 0.6B Local LLM predicts the remaining codebooks within each frame. The model card and license state the Global LLM is initialized from Qwen3-8B; the MiniMax Research post says Qwen3.5-8B, so treat the exact base checkpoint as unsettled. The synthesis stage is the more interesting design choice. Rather than decoding from discrete RVQ tokens, MiniMax fuses the final hidden states of both LLMs and conditions a 2.4B flow-matching module on them, which maps into a latent space decoded by a 123M Flow-VAE inherited from MiniMax Speech. At inference the discrete tokenizer decoder is not loaded at all. Two-input control Lyrics carry the words and section tags on their own lines: [Intro], [Verse], [Pre-Chorus], [Chorus], [Post-Chorus], [Bridge], [Instrumental], [Solo], [Outro]. A separate Structured Caption carries Global Metadata, Vocal Details and Arrangement. MiniMax also ships a music-caption-rewriter agent skill that expands a short description into that three-part format offline. Interactive explainer Running it Three documented paths. SGLang-Omni is the reference server; the GitHub page specifies two CUDA GPUs, with GPU 0 running Qwen3 and RVQ autoregressive generation and GPU 1 running flow matching and DAV decoding. The diffusers modular pipeline fits under 24 GB VRAM at full precision, about 22 GB with automatic CPU offload, and down to 8 GB with leaf-level group offloading. ComfyUI has a native Text to Music template using repacked FP16/INT8 weights from Comfy-Org. Key Takeaways Open-weights model generating complete five-minute songs at 32 kHz, 16-bit stereo, released August 13, 2026. Hybrid-LM design: 8B Global LLM plus 0.6B Local LLM, feeding 2.4B flow matching and a 123M Flow-VAE. Synthesis runs on fused continuous hidden states, skipping the discrete tokenizer decoder entirely. Runs on two GPUs via SGLang-Omni, under 24 GB via diffusers, or 8 GB with group offloading. Commercial use allowed with visible attribution; above USD 20M revenue needs written authorization. Check out the Model on HF and GitHub Repo. Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well. Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us The post MiniMax Releases MiniMax-Music3: An Open-Weights Music Model Generating Complete Five-Minute Songs From Lyrics and a Structured Caption appeared first on MarkTechPost.

MiniMax Releases MiniMax-Music3: An Open-Weights Music Model Generating Complete Five-Minute Songs From Lyrics and a Structured Caption Leer entrada »

AI, Committee, Noticias, Uncategorized

What Flock’s defenders are missing

This story originally appeared in The Algorithm, our weekly newsletter on AI. To get stories like this in your inbox first, sign up here. Flock, the police-tech giant known for its network of some 120,000 automatic license plate readers around the US, announced some changes to its platform last Thursday. The updates are meant to prevent officers from using the platform for illegal or illegitimate purposes.  That includes stalking. The Washington Post recently identified 50 cases in which officers misused systems from Flock and its competitors, often to stalk and harass women. One woman in Wisconsin alleged that her officer ex-boyfriend searched for her car 179 times. Another woman was being stalked by the chief of police, with nobody to report him to. Flock has responded with practices aimed at ensuring that officers have a proper cause for every search, like using software to flag abnormal searches and requiring searchers to enter a criminal case number. The changes come with big loopholes, though. For example, officers can enter bogus case numbers, just as they’ve lied to get around other Flock safeguards. The policies also don’t address some of the broader concerns from civil liberties and privacy groups that Flock is turning what was sold as a crime-stopping tool into a mass surveillance network. These criticisms have led to a growing backlash that already has some cities canceling contracts and some states trying to pass laws to limit or ban license plate readers entirely.  Amid all this, there have recently been several arguments defending Flock: If these cameras help solve crime, what’s the big deal? On a good day they might help catch a kidnapper, and if not, they’re simply snapping pictures of my car that nobody will bother to look at.  Putting aside the unanswered question about the extent to which Flock’s systems actually do solve or prevent crime, this all skips over a more important question: What kind of crime-fighting system has Flock chosen to build? Its network works the way it does because of a series of decisions about what information to collect, who can search it, how long to keep it, and how widely to share it. Those decisions set the terms of the bargain between security and civil liberties. Believing that technology should play a role in solving crime should not mean blindly accepting the terms of that bargain. Consider, for example, its new requirement that officers enter a case number before running a search on Flock’s platform. This is meant to ensure that searches have a legitimate purpose. But Flock confirmed to MIT Technology Review that it doesn’t verify those case numbers, so an officer can simply enter a bogus one. One could imagine a system that instead requires case numbers that match the police department’s records—a more intrusive integration, perhaps, but also a far stronger safeguard and one that leaves a more useful audit trail. Or what about finding people who have been kidnapped or have gone missing, the use case that Flock cites more than any other? Efforts to solve these crimes would hugely benefit from Flock’s nationwide network of cameras. But if Americans want officers to tap into that network only for this purpose, we could design it that way: Searches tied to an active Amber Alert, or a similar emergency, could perhaps access larger amounts of data from surrounding cities. That would preserve the network’s value in emergencies without requiring people to accept mass surveillance.   Finally, there’s the question of how much data Flock collects and how long it’s kept. Flock mostly operates as a national network: Police in one city or state can search data collected in another, and agencies can retain that data for months or years. Yet Flock itself says 90% of searches happen within a week of an incident. That suggests another possible bargain: Keep and share data only as widely and for as long as it’s actually useful for solving crimes. (The company recently changed its recommended retention time to seven days, but in reality agencies can hold onto data for as long as they like.) In short, Flock could design its surveillance to be much narrower. If it did, some of the company’s critics might not cease. Chad Marlow, a senior policy counsel at the ACLU, half-joked to me that the most acceptable Flock contract by his standards is “one that is never signed” and emphasized that the best way to set limits on surveillance isn’t with new Flock guidelines but with new laws. (Flock CEO Garrett Langley, for his part, said he’ll “probably always have a different view than the ACLU.”)  And narrowing the scope of its technology would threaten the company’s entire pitch to police departments. License plate readers have been around since the 1990s, used for tolls and ticketing. Flock’s business model—and recent $8 billion evaluation—relies on instead leveraging its cameras into a massive network that collects rich amounts of data and offers police departments a modernized way to make sense of not just their own but others’.  Flock’s hand might soon be forced. Cities have canceled contracts with the company. Some have gone to competitors, while others are taking a beat as residents ponder how they want this tech to be used and write new rules for police to abide by. The result might be that communities drive their own bargains about how technology can be used to solve crime and how much surveillance people should have to accept for it to do so.

What Flock’s defenders are missing Leer entrada »

AI, Committee, Noticias, Uncategorized

Fine-Tuning Tool-Calling LLMs: A Complete Guide Using XYZ-Aquila-SFT and Qwen3

In this tutorial, we implement an end-to-end supervised fine-tuning pipeline for the XYZ-Aquila-SFT dataset, Hugging Face Transformers, PyTorch, and PEFT. We stream and inspect the dataset, parse multi-turn tool-use trajectories, extract structured tool calls, analyze corpus characteristics, and preserve embedded reasoning and observation patterns. We then convert tool schemas between message-embedded and structured formats, render Qwen-compatible ChatML with assistant-only loss masking, prepare a custom PyTorch dataset and collator, and fine-tune Qwen3-0.6B with LoRA. Finally, we evaluate tool-call prediction before and after training and export both the transformed dataset and corpus statistics for further experimentation. Copy CodeCopiedUse a different Browser import os, sys, subprocess CFG = dict( REPO = “XYZAILab/XYZ-Aquila-SFT”, LANG = “en”, N_STREAM = 400, N_EVAL = 40, MODEL_ID = “Qwen/Qwen3-0.6B”, MAX_SEQ_LEN = 2048, LENGTH_POLICY = “truncate”, RUN_TRAINING = True, MAX_STEPS = 30, GRAD_ACCUM = 8, LR = 1e-4, LORA_R = 16, RUN_EVAL = True, N_EVAL_PROBES = 24, OUT_DIR = “/content/aquila_out”, SEED = 0, ) os.makedirs(CFG[“OUT_DIR”], exist_ok=True) def pip(*pkgs): subprocess.run([sys.executable, “-m”, “pip”, “install”, “-q”, “-U”, *pkgs], check=False) pip(“datasets>=3.0.0”, “transformers>=4.51.0”, “peft>=0.13.0”, “accelerate>=1.0.0”) import json, re, math, random, statistics as stats from collections import Counter, defaultdict from dataclasses import dataclass, field from typing import Any, Dict, List, Optional import torch import matplotlib.pyplot as plt from datasets import load_dataset from transformers import AutoTokenizer, AutoModelForCausalLM, get_cosine_schedule_with_warmup random.seed(CFG[“SEED”]); torch.manual_seed(CFG[“SEED”]) DEV = “cuda” if torch.cuda.is_available() else “cpu” BF16 = DEV == “cuda” and torch.cuda.is_bf16_supported() print(f”device={DEV} bf16={BF16} torch={torch.__version__}”) print(f”n[1] streaming {CFG[‘REPO’]}:{CFG[‘LANG’]} …”) stream = load_dataset(CFG[“REPO”], CFG[“LANG”], split=”train”, streaming=True) RAW: List[Dict[str, Any]] = list(stream.take(CFG[“N_STREAM”])) print(f” pulled {len(RAW)} rows; keys = {list(RAW[0].keys())}”) _r = RAW[0] print(f” question[:110] : {_r[‘question’][:110]}…”) print(f” answer : {_r[‘answer’][:80]}”) print(f” number of tool calls : {_r[‘number of tool calls’]}”) print(f” trajectory len : {len(_r[‘trajectory’])} msgs”) print(f” role sequence (first8): {[m[‘role’] for m in _r[‘trajectory’][:8]]}”) We configure the dataset, model, training parameters, output directory, and reproducibility settings for the complete workflow. We install the required Hugging Face, PEFT, Accelerate, and PyTorch-related dependencies and detect whether a CUDA GPU and BF16 support are available. We then stream a limited number of XYZ-Aquila-SFT examples, inspect the dataset schema, and examine the structure of the first tool-use trajectory. Copy CodeCopiedUse a different Browser TOOLS_BLOCK_RE = re.compile(r”<tools>s*(.*?)s*</tools>”, re.S) THINK_RE = re.compile(r”<think>(.*?)</think>”, re.S) TOOL_RESP_RE = re.compile(r”<tool_response>s*(.*?)s*</tool_response>”, re.S) TOOLS_HDR_RE = re.compile(r”nn# Toolsnn”) def iter_json_objects(text: str, limit: int = 1): “””Nesting-safe JSON scanner. Regex like r’\{.*?\}’ breaks on nested `arguments` objects, which every real tool call has.””” dec, i, n, out = json.JSONDecoder(), 0, len(text), [] while i < n and len(out) < limit: while i < n and text[i] not in “{[“: i += 1 if i >= n: break try: obj, end = dec.raw_decode(text, i) except json.JSONDecodeError: i += 1 continue out.append(obj); i = end return out def parse_tool_calls(content: str) -> List[Dict[str, Any]]: calls = [] for m in re.finditer(r”<tool_call>”, content): got = iter_json_objects(content[m.end():], limit=1) if got: calls.append(got[0]) return calls @dataclass class Trajectory: question: str answer: str declared_calls: int messages: List[Dict[str, str]] system_core: str = “” tools: List[Dict[str, Any]] = field(default_factory=list) tools_suffix: str = “” calls: List[Dict[str, Any]] = field(default_factory=list) n_observations: int = 0 n_think: int = 0 @property def tool_names(self): return [c.get(“name”, “?”) for c in self.calls] @property def depth(self): return len(self.messages) def parse_row(row: Dict[str, Any]) -> Trajectory: msgs = [{“role”: m[“role”], “content”: m[“content”]} for m in row[“trajectory”]] t = Trajectory(row[“question”], row[“answer”], row[“number of tool calls”], msgs) if msgs and msgs[0][“role”] == “system”: sysmsg = msgs[0][“content”] split = TOOLS_HDR_RE.search(sysmsg) if split: t.system_core = sysmsg[:split.start()] t.tools_suffix = sysmsg[split.start():] else: t.system_core = sysmsg blk = TOOLS_BLOCK_RE.search(sysmsg) if blk: t.tools = iter_json_objects(blk.group(1), limit=64) for m in msgs: if m[“role”] == “assistant”: t.calls += parse_tool_calls(m[“content”]) t.n_think += len(THINK_RE.findall(m[“content”])) else: t.n_observations += len(TOOL_RESP_RE.findall(m[“content”])) return t TRAJ = [parse_row(r) for r in RAW] t0 = TRAJ[0] print(f”n[2] parsed {len(TRAJ)} trajectories”) print(f” tool schemas found : {[fn.get(‘function’, fn).get(‘name’) for fn in t0.tools]}”) print(f” parsed calls : {len(t0.calls)} (declared {t0.declared_calls})”) print(f” observations : {t0.n_observations} think blocks: {t0.n_think}”) if t0.calls: print(f” sample call : {json.dumps(t0.calls[0], ensure_ascii=False)[:200]}”) agree = sum(len(t.calls) == t.declared_calls for t in TRAJ) print(f” parser vs ‘number of tool calls’: {agree}/{len(TRAJ)} exact match”) calls_per = [len(t.calls) for t in TRAJ] depth_per = [t.depth for t in TRAJ] chars_per = [sum(len(m[“content”]) for m in t.messages) for t in TRAJ] name_freq = Counter(n for t in TRAJ for n in t.tool_names) argkey_freq = defaultdict(Counter) for t in TRAJ: for c in t.calls: args = c.get(“arguments”, {}) if isinstance(args, dict): for k in args: argkey_freq[c.get(“name”, “?”)][k] += 1 def q(xs, p): xs = sorted(xs); return xs[min(len(xs) – 1, int(p * len(xs)))] print(“n[3] corpus statistics”) print(f” tool calls / traj : mean {stats.mean(calls_per):.1f} p50 {q(calls_per,.5)} ” f”p90 {q(calls_per,.9)} max {max(calls_per)}”) print(f” messages / traj : mean {stats.mean(depth_per):.1f} p90 {q(depth_per,.9)} max {max(depth_per)}”) print(f” chars / traj : mean {stats.mean(chars_per):,.0f} p90 {q(chars_per,.9):,}”) print(f” tool distribution : {dict(name_freq)}”) for k, v in argkey_freq.items(): print(f” {k:<24} arg keys -> {dict(v.most_common(6))}”) tot = sum(chars_per); top = sum(sorted(chars_per)[-max(1, len(chars_per)//10):]) print(f” top-10% longest trajectories hold {100*top/tot:.1f}% of all characters”) fig, ax = plt.subplots(1, 3, figsize=(15, 3.6)) ax[0].hist(calls_per, bins=40); ax[0].set_yscale(“log”); ax[0].set_title(“tool calls / trajectory”) ax[1].hist(depth_per, bins=40); ax[1].set_yscale(“log”); ax[1].set_title(“messages / trajectory”) ax[2].bar(list(name_freq), list(name_freq.values())); ax[2].set_title(“tool usage”); ax[2].tick_params(axis=”x”, rotation=20) plt.tight_layout(); plt.show() We define nesting-safe utilities for extracting JSON tool calls, reasoning blocks, observations, and embedded tool schemas from each conversation. We convert every raw dataset row into a structured trajectory object and verify that the parsed tool-call counts match the values declared by the dataset. We then calculate corpus-level statistics and visualize the distributions of tool calls, message depth, trajectory size, and tool usage frequency. Copy CodeCopiedUse a different Browser QWEN3_TOOLS_TMPL = ( “You are provided with function signatures within <tools></tools> XML tags:n<tools>n” “{lines}n</tools>nnFor each function call, return a json object with function name ” “and arguments within <tool_call></tool_call> XML tags:n<tool_call>n” ‘{{“name”: <function-name>, “arguments”: <args-json-object>}}n</tool_call>’ ) def extract_tools(t: Trajectory) -> Dict[str, Any]: “””message-embedded schemas -> {‘messages’: […], ‘tools’: […]}””” msgs = [dict(m) for m in t.messages] if msgs and msgs[0][“role”] == “system”: msgs[0][“content”] = t.system_core return {“messages”: msgs, “tools”: t.tools, “question”: t.question, “answer”: t.answer} def render_tools(rec: Dict[str, Any]) -> List[Dict[str, str]]: “””inverse: structured tools -> schemas re-embedded in the system message”””

Fine-Tuning Tool-Calling LLMs: A Complete Guide Using XYZ-Aquila-SFT and Qwen3 Leer entrada »

AI, Committee, Noticias, Uncategorized

This scientist is helping build a missing map of childhood

In 2017, Deanne Taylor attended a presentation at the University of Pennsylvania, just a short walk from her office. A researcher was there to unveil the Human Cell Atlas, an ambitious project that aimed to map every cell in the human body. Taylor was floored, and then concerned. As details emerged, she discovered that the project’s researchers had only made plans to study adults. “That’s when my little alarm went off,” she says. “Not again.” Since joining the Children’s Hospital of Philadelphia (CHOP) as the director of bioinformatics three years earlier, Taylor had been disappointed by the lack of investment in medical research focused on children. The dominant view, she says, was that children are exactly like small adults. They’re not. Children’s cells are different from grownups’ cells in the way they express genes—switching them on and off or turning them up or down. Those variations can cause drastically different and even deadly responses to drugs that adults tolerate well.  The 2017 talk was the moment Taylor didn’t know she’d been waiting for. She quickly channeled her concern into a campaign, joining the Human Cell Atlas’s volunteer team and helping write a section on children for a white paper outlining the group’s goals and plans. She then rallied a cross-hospital coalition of pediatric researchers to contribute to the project and spearheaded a 2019 paper that outlined the case for studying children—a bid to attract more interest and funding to the field. “It put a flag in the ground,” she says. “Why don’t we have healthy models of children’s development?” So far, the push has paid off. In 2021 the NIH awarded a $38.5 million grant to the Developmental Genotype-Tissue Expression Project (dGTEx), a major initiative aimed at establishing the first comprehensive database of healthy pediatric tissue. The project banks samples collected from otherwise healthy children who have died and whose parents agreed to donate their bodies, and maps how genes across all the major organ systems are expressed. Taylor and her team curate and standardize the information associated with each tissue donation, including family history and details about the samples. A separate group does analysis on the samples themselves, and then all the information is combined to create a database­—a baseline of what gene expression looks like in children. It’s the first step to enabling research that could advance our knowledge of normal development, disease, drug effectiveness, and other phenomena.  The dGTEx team will eventually feed its data into the Human Cell Atlas, which, thanks to Taylor and many of the coauthors of the 2019 paper, now includes a pediatric section. Taylor’s primary responsibility may be collecting and organizing data for dGTEx, but colleagues say she’s also the glue holding diverse research projects together. That’s especially important for the Human Cell Atlas, which depends on contributions from a loose coalition of researchers, all pursuing their own objectives. “Deanne took a big-picture view and said, We don’t just need to understand the pediatric kidney or the pediatric brain or the pediatric immune system. We need a holistic view of pediatric development,” says Sarah Teichmann, a cofounder of the Human Cell Atlas. “She embodies that interdisciplinary spirit.”  A healthy baseline Taylor describes her career as a “random walk,” driven by a singular intensity she now attributes to undiagnosed autism and ADHD. At five, she began reading her mom’s medical texts. By 12, she was checking out physics books from the library. Physics provided mysteries to solve, and she wanted to understand how things worked.  Taylor got her PhD in biophysics, in 2001, but was inspired by the then-active Human Genome Project to change gears and take on a postdoc at Pfizer, writing code to handle complex data in rare-disease research. Then she moved to reproductive medicine, where she worked on some of the first computer programs to screen embryos for chromosomal abnormalities—many of which are still in use today. Despite this seemingly winding road, Taylor says her focus has always been on understanding why the same illness hits people differently. How can two people carry the same disease-­associated gene variant, but only one get sick?  The Human Cell Atlas—including all the data feeding into it from dGTEx and other projects—could at last help researchers find answers. The effort is a natural extension of the Human Genome Project. That initiative, which wrapped up in 2003, helped researchers link specific genes to specific diseases. But a map of the genome is a bit like a DIY kit with all the parts and no assembly manual. It doesn’t tell you where and how cells use each gene throughout the body. After all, “we’re just older kids,” Taylor says. “By ignoring the pediatric side of things, I think people are missing a window of intervention in human disease.” For that, you need to know how the genes are expressed. Gene expression generally involves making a protein that does a specific job in the body, like building tissue or sending signals. Unlike DNA, which largely remains the same throughout our lives, the way the genes in DNA are expressed changes as we develop.  Differences in gene expression can determine whether a therapy will work—or could harm more than it helps. Because of the way cardiac genes are expressed in children, chemotherapy drugs can attack not only tumors but also children’s developing hearts, potentially causing lifelong damage. Other treatments can affect the entire body, sometimes triggering a reversible but potentially fatal immune-system reaction called cytokine release syndrome. The dGTEx database aims to create a baseline for gene expression in children—a molecular map of how the body’s roughly 20,000 genes do their work in healthy tissue cells. It is only one of the collaborations Taylor manages. She’s a principal investigator for the Kids First Data Resource Center, which sequences diseased tissues collected from children enrolled in other studies nationwide. And she has been collaborating with researchers on HubMAP, an effort that’s building a resource complementary to the Human Cell Atlas, to secure funding to create 3D maps of

This scientist is helping build a missing map of childhood Leer entrada »

AI, Committee, Noticias, Uncategorized

Cloning could be used to save species—or make human “organ sacks”

This week I spoke to scientists who have found a way to turn male mouse embryos female. They’ve developed a CRISPR-based approach to essentially cut out the Y chromosome. It allowed them to create female clones of male mice. That’s right: female animals that are genetically identical to males, except for the missing Y chromosome. Takashi Ishiuchi, a reproductive biologist at the University of Yamanashi who co-led the work, told me it felt a bit like sci-fi. Ishiuchi and his colleague Shogo Matoba of the Riken BioResource Research Center hope their approach could be helpful in conservation efforts, especially in cases where we might have only a few individuals of a species left. But cloning has multiple uses, ranging from the cool to the outright creepy. We can’t talk about cloning without mentioning Dolly, the celebrity sheep born in 1996 and the first mammal successfully cloned from an adult cell. In that case, scientists took the DNA-containing nucleus of an adult mammary cell from one sheep and transferred it into an egg cell that had had its own nucleus removed. The resulting embryo was transferred to a surrogate sheep, which gave birth to Dolly—an animal genetically identical to the DNA donor. The scientists behind that work were interested in genetically modifying livestock. Farmers have essentially been doing this for thousands of years through selective breeding, but cloning allows scientists to create genetic replicas of animals with desirable traits. Cloning is also being used to replicate deceased pets, including, famously, those of Barbra Streisand and Tom Brady, among others. For a price somewhere in the tens of thousands of dollars, a company can take cells from your pet and turn them into a living, breathing clone. Considering that cloning also requires egg cells from another animal, and a surrogate animal to carry the pregnancy, not everyone is on board with this, especially since there is no medical or environmental need for the procedures. One bioethicist, Jessica Pierce, has described this aspect of dog cloning as “the exploitation of the canine underclass.” The case for cloning is stronger when it comes to conservation—where some argue there is environmental value. Scientists have been preserving animal tissues for years. Some of these tissues are cryopreserved at low temperatures in “frozen zoos.” The facility at the San Diego Zoo, for example, currently has cells from over 1,300 species. Some of these samples were taken decades ago. Preserved tissues like these have enabled scientists to create clones of animals considered close to extinction, including black-footed ferrets and Przewalski’s horse. But they might also help us bring back extinct animals. In 2009, researchers in Spain described how they’d cloned an extinct wild goat, the Pyrenean ibex, using skin cells that had been cryopreserved a decade earlier. In that research, the team used egg cells from domestic goats to create a total of 439 embryos. Ultimately, only one goat—a female—was born. She died minutes later because of a defect in her lungs. Poor Pyrenean ibex. It’s the only animal we know of that has gone extinct twice. The biotech company Colossal Biosciences is hoping to use old—and potentially ancient—genetic material to bring back long-extinct species like the thylacine and woolly mammoth. So far, the company’s efforts have largely involved modifying the genomes of modern-day animals. Technically, it’s also possible to clone humans. As far as we know, no one has done it. But some have played with the idea. One biotech startup founder has pitched an idea for “brainless clones”—human clones that lack a brain but contain all the organs people might need to replace their own in future. My colleague Antonio Regalado described that pitch in March. (I had to pause eating my lunch while rereading it.) Scientists have done a hell of a lot with cloning over the last few decades. I’m excited—but also slightly nervous—about what the coming decades will bring. This article first appeared in The Checkup, MIT Technology Review’s weekly biotech newsletter. To receive it in your inbox every Thursday, and read articles like this first, sign up here.

Cloning could be used to save species—or make human “organ sacks” Leer entrada »

We use cookies to improve your experience and performance on our website. You can learn more at Política de privacidad and manage your privacy settings by clicking Settings.

Privacy Preferences

You can choose your cookie settings by turning on/off each type of cookie as you wish, except for essential cookies.

Allow All
Manage Consent Preferences
  • Always Active

Save
es_ES