AIArtificial IntelligenceTrends

Mira Murati’s Thinking Machines Lab Makes The Technical Case For Human-Centered AI Built On Customizable Model Weights

Views: 1
0 0
Read Time:13 Minute, 34 Second

  

Thinking Machines Lab published a report to build AI that extends human will and judgment. Most AI in use today is trained in a handful of places, then frozen. The report argues that this design excludes the people a model serves. Instead, the Thinking Machines lab researchers want AI that is distributed, customizable, and shaped by its users.

Thinking Machines Lab’s Proposal

The lab names four technical directions. First, it trains strong models with multimodal interaction and customizability. Second, it builds tools that let people fine-tune and train model weights themselves. Third, it develops interfaces that widen the human-to-machine communication channel. Fourth, it publishes research so more engineers understand how models are made. Together, these directions move both knowledge and alignment closer to users.

Play interaction</button>
<span class=”pill”>~200ms micro-turns</span>
</div>
<div class=”lanes”>
<div class=”lane”>
<div class=”lb”>Turn-based</div>
<div class=”stage” style=”min-height:88px”><svg id=”laneA” viewBox=”0 0 210 96″></svg></div>
<div class=”metric” id=”mA”>idle</div>
</div>
<div class=”lane”>
<div class=”lb”>Interaction model</div>
<div class=”stage” style=”min-height:88px”><svg id=”laneB” viewBox=”0 0 210 96″></svg></div>
<div class=”metric” id=”mB”>idle</div>
</div>
</div>
<div class=”note blue”>Live micro-turns keep silence, overlap, and interruption inside the model’s context — what turn-based prompting drops.</div>
</div>

<!– VALUES –>
<div class=”panel” data-panel=”values”>
<div class=”subctl”>
<div class=”seg” id=”segVal”>
<button data-m=”prompt” class=”active”>Steer via prompt</button>
<button data-m=”weights”>Encode in weights</button>
</div>
</div>
<div class=”stage”><svg id=”svgV” viewBox=”0 0 460 200″></svg></div>
<div class=”note” id=”noteV”></div>
</div>

<div class=”ft”>Built on the essay <i>”The Future Worth Building Is Human.”</i> Illustrative. &nbsp;·&nbsp; <b>Marktechpost</b></div>
</div>

<script>
(function(){
var NS=”http://www.w3.org/2000/svg”;
function E(t,a){var e=document.createElementNS(NS,t);for(var k in a)e.setAttribute(k,a[k]);return e;}
function T(x,y,s,sz,f,w){var t=E(‘text’,{x:x,y:y,’text-anchor’:’middle’,’font-size’:sz,fill:f,’font-weight’:w||’600′});t.textContent=s;return t;}

/* tabs */
var tabs=document.querySelectorAll(‘#tml-box .tabs button’);
tabs.forEach(function(b){b.addEventListener(‘click’,function(){
tabs.forEach(function(x){x.classList.remove(‘active’)});b.classList.add(‘active’);
document.querySelectorAll(‘#tml-box .panel’).forEach(function(p){p.classList.remove(‘on’)});
document.querySelector(‘#tml-box .panel[data-panel=”‘+b.getAttribute(‘data-tab’)+'”]’).classList.add(‘on’);
});});
function seg(id,cb){var box=document.getElementById(id);box.querySelectorAll(‘button’).forEach(function(b){b.addEventListener(‘click’,function(){box.querySelectorAll(‘button’).forEach(function(x){x.classList.remove(‘active’)});b.classList.add(‘active’);cb(b.getAttribute(‘data-m’));});});}

/* —- KNOWLEDGE —- */
var svgK=document.getElementById(‘svgK’),noteK=document.getElementById(‘noteK’),kMode=’cent’;
var sites=[{x:60,y:45},{x:44,y:110},{x:66,y:175}];
var flows=[];
function buildK(){
svgK.innerHTML=”;flows=[];
var cent=[{x:380,y:110}];
var dist=[{x:372,y:45},{x:392,y:110},{x:372,y:175}];
var models=kMode===’cent’?cent:dist;
sites.forEach(function(s,i){
var t=kMode===’cent’?models[0]:models[i];var mx=(s.x+t.x)/2;
var d=”M “+s.x+” “+s.y+” C “+mx+” “+s.y+”, “+mx+” “+t.y+”, “+t.x+” “+t.y;
var p=E(‘path’,{d:d,fill:’none’,stroke:kMode===’cent’?’#d5dbe4′:’#cfe3ad’,’stroke-width’:2});p.setAttribute(‘id’,’kp’+i);svgK.appendChild(p);
flows.push(‘kp’+i);
if(kMode===’dist’){var d2=”M “+t.x+” “+(t.y+10)+” C “+mx+” “+(t.y+10)+”, “+mx+” “+(s.y+10)+”, “+s.x+” “+(s.y+10);svgK.appendChild(E(‘path’,{d:d2,fill:’none’,stroke:’#eaf3d8′,’stroke-width’:2,’stroke-dasharray’:’2 5′}));}
});
sites.forEach(function(s,i){
var pas=(kMode===’cent’&&i>0);
svgK.appendChild(E(‘circle’,{cx:s.x,cy:s.y,r:16,fill:’#fff’,stroke:pas?’#c8cfd8′:’#2b6cb0′,’stroke-width’:2}));
var ic=T(s.x,s.y+5,[‘🍳‘,’🛒‘,’👩‍💻‘][i],14,pas?’#aab3c0′:’#2b6cb0’);svgK.appendChild(ic);
});
models.forEach(function(m){
svgK.appendChild(E(‘rect’,{x:m.x-20,y:m.y-16,rx:8,width:40,height:32,fill:’#eef6df’,stroke:’#5a9e00′,’stroke-width’:2}));
svgK.appendChild(T(m.x,m.y+4,’AI’,11,’#4a8300′,’700′));
});
if(kMode===’cent’){svgK.appendChild(T(models[0].x,models[0].y-26,’🔒‘,13));}
svgK.appendChild(T(60,20,’Local knowledge’,10,’#5a6672′,’700′));
svgK.appendChild(T(380,20,kMode===’cent’?’One central model’:’Owned models’,10,’#5a6672′,’700′));
for(var i=0;i<sites.length;i++){var c=E(‘circle’,{r:3,fill:kMode===’cent’?’#2b6cb0′:’#5a9e00′});c.setAttribute(‘id’,’kd’+i);svgK.appendChild(c);}
noteK.className=’note’;
noteK.innerHTML=kMode===’cent’
? ‘A snapshot is extracted into one model. Other sites go passive; values sit behind one lock.’
: ‘Each site cultivates its own model. Knowledge flows both ways, and every org stays an author.’;
}

/* —- VALUES —- */
var svgV=document.getElementById(‘svgV’),noteV=document.getElementById(‘noteV’),vMode=’prompt’;
function buildV(){
svgV.innerHTML=”;
var defs=E(‘defs’,{});
defs.innerHTML='<marker id=”aP” markerWidth=”8″ markerHeight=”8″ refX=”6″ refY=”4″ orient=”auto”><path d=”M0,0 L8,4 L0,8 Z” fill=”#2b6cb0″/></marker><marker id=”aG” markerWidth=”8″ markerHeight=”8″ refX=”6″ refY=”4″ orient=”auto”><path d=”M0,0 L8,4 L0,8 Z” fill=”#5a9e00″/></marker>’;
svgV.appendChild(defs);
var cx=300,cy=100;
[{r:78,f:’#f2f6fb’,s:’#dbe3ec’},{r:52,f:’#eef6df’,s:’#9fc85f’},{r:26,f:’#dff0bd’,s:’#5a9e00′}].forEach(function(l){svgV.appendChild(E(‘circle’,{cx:cx,cy:cy,r:l.r,fill:l.f,stroke:l.s,’stroke-width’:2}));});
svgV.appendChild(T(cx,cy-1,’weights’,10,’#4a8300′,’700′));
svgV.appendChild(T(cx,cy+12,'(the model)’,8.5,’#7d8894′));
if(vMode===’prompt’){
svgV.appendChild(E(‘line’,{x1:70,y1:cy,x2:cx-78,y2:cy,stroke:’#2b6cb0′,’stroke-width’:3,’marker-end’:’url(#aP)’}));
svgV.appendChild(T(78,cy-12,’your prompt’,10,’#2b6cb0′,’700′));
svgV.appendChild(E(‘path’,{id:’vsurf’,d:arc(cx,cy,78,-38,38),fill:’none’,stroke:’#2b6cb0′,’stroke-width’:5,’stroke-linecap’:’round’,opacity:.85}));
svgV.appendChild(T(cx,cy+96,’Surface shifts. Deeper habits stay the same.’,10,’#5a6672′));
noteV.className=’note blue’;noteV.innerHTML=’A prompt paints the outer layer only. Restart the session and core habits return.’;
}else{
svgV.appendChild(E(‘line’,{x1:70,y1:cy,x2:cx-52,y2:cy,stroke:’#5a9e00′,’stroke-width’:3,’marker-end’:’url(#aG)’}));
svgV.appendChild(E(‘rect’,{x:96,y:cy-13,rx:6,width:86,height:26,fill:’#eef6df’,stroke:’#5a9e00′,’stroke-width’:1.5}));
svgV.appendChild(T(139,cy+4,’LoRA adapter’,9.5,’#4a8300′,’700′));
svgV.appendChild(E(‘circle’,{id:’vpulse’,cx:cx,cy:cy,r:26,fill:’none’,stroke:’#5a9e00′,’stroke-width’:3,opacity:.9}));
svgV.appendChild(T(cx,cy+96,’Weights carry your values. You keep them.’,10,’#5a6672′));
noteV.className=’note’;noteV.innerHTML=’Tinker trains portable LoRA weights on open models like Qwen and Llama.’;
}
}
function pol(cx,cy,r,a){var t=(a-90)*Math.PI/180;return{x:cx+r*Math.cos(t),y:cy+r*Math.sin(t)};}
function arc(cx,cy,r,a0,a1){var s=pol(cx,cy,r,a1),e=pol(cx,cy,r,a0);return”M “+s.x+” “+s.y+” A “+r+” “+r+” 0 0 0 “+e.x+” “+e.y;}

/* —- CHANNEL —- */
var laneA=document.getElementById(‘laneA’),laneB=document.getElementById(‘laneB’),mA=document.getElementById(‘mA’),mB=document.getElementById(‘mB’);
function base(svg){svg.innerHTML=”;svg.appendChild(E(‘line’,{x1:8,y1:52,x2:202,y2:52,stroke:’#e4e9f0′,’stroke-width’:2}));}
base(laneA);base(laneB);
var running=false,cp=document.getElementById(‘chanPlay’);
function block(svg,x,c,l){var g=E(‘g’,{});g.setAttribute(‘class’,’dyn’);g.appendChild(E(‘rect’,{x:x,y:44,width:34,height:16,rx:4,fill:c,opacity:.9}));var t=T(x+17,36,l,9,c);t.removeAttribute(‘font-weight’);g.appendChild(t);svg.appendChild(g);}
function runChan(){
if(running)return;running=true;cp.textContent=’● Streaming…’;base(laneA);base(laneB);
var st=performance.now();
function sa(now){var e=now-st;laneA.querySelectorAll(‘.dyn’).forEach(function(n){n.remove()});
if(e<600){block(laneA,14,’#2b6cb0′,’type’);mA.textContent=’typing prompt…’;}
else if(e<2400){var w=Math.min(150,30+(e-600)/1800*150);var l=E(‘line’,{x1:40,y1:52,x2:40+w,y2:52,stroke:’#c8cfd8′,’stroke-width’:6,’stroke-linecap’:’round’});l.setAttribute(‘class’,’dyn’);laneA.appendChild(l);var s=T(105,32,’waiting…’,9,’#8a94a1′);s.setAttribute(‘class’,’dyn’);s.removeAttribute(‘font-weight’);laneA.appendChild(s);mA.textContent=’waiting for reply…’;}
else{block(laneA,150,’#5a9e00′,’reply’);mA.textContent=’one turn’;}
if(e<3400&&running)requestAnimationFrame(sa);}
function sb(now){var e=now-st;laneB.querySelectorAll(‘.dyn’).forEach(function(n){n.remove()});
var n=Math.floor(e/120);for(var k=0;k<n&&k<15;k++){var x=10+k*13;var top=(k%3!==0);var col=(k%4===0)?’#2b6cb0′:((k%4===1)?’#5a9e00′:((k%4===2)?’#c07a00′:’#5a9e00′));var r=E(‘rect’,{x:x,y:top?38:60,width:8,height:8,rx:2,fill:col,opacity:.85});r.setAttribute(‘class’,’dyn’);laneB.appendChild(r);}
mB.textContent=’micro-turns: ‘+Math.min(n,15);
if(e<3400&&running)requestAnimationFrame(sb);
if(e>=3400){running=false;cp.textContent=’▶ Play interaction’;mA.textContent=’one turn’;mB.textContent=’continuous streams’;}}
requestAnimationFrame(sa);requestAnimationFrame(sb);
}
cp.addEventListener(‘click’,runChan);

/* animation loop */
var t=0;
function ptAt(id,f){var p=document.getElementById(id);if(!p)return null;return p.getPointAtLength(p.getTotalLength()*f);}
function loop(){t+=0.010;
flows.forEach(function(id,i){var d=document.getElementById(‘kd’+i);if(!d)return;var f=(t*0.6+i*0.25)%1;var pt=ptAt(id,f);if(pt){d.setAttribute(‘cx’,pt.x);d.setAttribute(‘cy’,pt.y);d.setAttribute(‘opacity’,0.35+0.65*Math.sin(f*Math.PI));}});
if(vMode===’weights’){var p=document.getElementById(‘vpulse’);if(p){p.setAttribute(‘r’,26+7*Math.abs(Math.sin(t*2)));p.setAttribute(‘opacity’,0.9-0.5*Math.abs(Math.sin(t*2)));}}
else{var s=document.getElementById(‘vsurf’);if(s){s.setAttribute(‘opacity’,0.5+0.4*Math.abs(Math.sin(t*2.2)));}}
requestAnimationFrame(loop);}

seg(‘segKnow’,function(m){kMode=m;buildK();});
seg(‘segVal’,function(m){vMode=m;buildV();});
buildK();buildV();requestAnimationFrame(loop);
})();
</script>
</body>
</html>
“>

Why Distributed Knowledge Needs Distributed AI

Underneath these directions sits a claim about knowledge itself. Much know-how is tacit, local, and updated constantly through feedback. A chef refining a recipe cannot write that skill into a database. The report cites Michael Polanyi and Friedrich Hayek to support this. The main planning fails because such knowledge is private and fleeting, not scarce. Therefore, the lab argues, AI must be distributed to use distributed knowledge. It wants AI that helps organizations cultivate that knowledge, not extract and replace it.

Chess and math are the stated exceptions. Both have static, expressible goals and no hidden knowledge. So self-play and autonomous solving work well there. Outside such closed domains, the report says intelligence alone is not enough.

Technical Bottlenecks It Names

Given that framing, the report reframes two familiar limits as engineering targets. The first is the communication channel: a small text box and a long wait. This is the problem the lab’s interaction models address directly. Those models take in audio, video, and text continuously, using roughly 200ms micro-turns. The second limit is evaluation itself. Benchmarks like METR’s measure how long a model works alone. The report argues this misses what people and machines accomplish together.

Ownership And Decentralized Alignment

Beyond interfaces, the report turns to where values live. A single alignment authority, it warns, becomes a single point of capture. Prompts change surface behavior, while deeper model habits stay fixed. So the lab argues values should be encoded in model weights, not prompts. This is where its Tinker API becomes concrete for engineers.

Tinker fine-tunes open-weights models such as Llama and Qwen using LoRA. It exposes low-level primitives and lets you export portable adapter weights. A minimal supervised loop follows the official pattern:

import tinker
from tinker import types

# Reads TINKER_API_KEY from your environment
service_client = tinker.ServiceClient()

# LoRA fine-tuning client for an open-weights base model
training_client = service_client.create_lora_training_client(
    base_model="Qwen/Qwen3-8B", rank=32,
)

for batch in dataset:                     # batch: list[types.Datum]
    fwd_bwd = training_client.forward_backward(batch, "cross_entropy")
    optim = training_client.optim_step(types.AdamParams(learning_rate=1e-4))
    fwd_bwd.result()                      # accumulate gradients
    optim.result()                        # update the weights

# Save the trained LoRA weights, then get a client to use them
sampling_client = training_client.save_weights_and_get_sampling_client(
    name="my-adapter",
)

Centralized Frozen AI vs The Distributed Approach

Taken together, the report’s stance contrasts with today’s default approach:

Dimension Centralized frozen AI Thinking Machines’ distributed approach
Where it is trained A few labs, then frozen Adapted where the work happens
Who shapes values The model’s owner The organization and its users
Adaptation Prompts and scaffolding Fine-tuned weights via tools like Tinker
Interface Text box, turn-based waiting Live, multimodal interaction models
Alignment locus One central spec Many diverse, owned models

Use Cases With Examples

In practice, these ideas map onto concrete engineering work. For example, a hospital could fine-tune a model on its own protocols. It would keep both data and adapter weights in house. Similarly, a law firm could adapt a model to its house style. It would retrain that model whenever internal guidance changes. Meanwhile, a support team could use live interaction to correct a model mid-task. In each case, the organization keeps ownership instead of renting a fixed model.

Key Takeaways

  • The essay treats human participation as a technical challenge, not a limit on capability.
  • Tacit, local knowledge is the stated reason AI itself must be distributed.
  • Interaction models widen the human-AI channel using continuous, micro-turn multimodal input.
  • Tinker lets teams encode their values into portable LoRA weights they own.
  • The lab frames alignment as many diverse, owned models, not one central spec.


Sources

  • Thinking Machines Lab, “The Future Worth Building Is Human” (Jul 10, 2026): https://thinkingmachines.ai/blog/the-future-worth-building-is-human/
  • Thinking Machines Lab, “Interaction Models: A Scalable Approach to Human-AI Collaboration” (May 2026): https://thinkingmachines.ai/blog/interaction-models/
  • Tinker documentation (quickstart and TrainingClient API): https://tinker-docs.thinkingmachines.ai/
  • Kwa, West et al., “Task-Completion Time Horizons of Frontier AI Models,” METR (2025): https://metr.org/time-horizons/

The post Mira Murati’s Thinking Machines Lab Makes The Technical Case For Human-Centered AI Built On Customizable Model Weights appeared first on MarkTechPost.

 

​MarkTechPost

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Leave a Reply

Latest news