Anatomia, valutazioni, limiti e privacy dei modelli linguistici Apple integrati in macOS

1. Cos'è il comando fm

fm è uno strumento da riga di comando preinstallato con macOS 27 e richiamabile dal Terminale (sessione WWDC26 334). Secondo la Mac Install Guide esiste solo in macOS 27, che gira esclusivamente su Mac con Apple silicon, non è presente in macOS 26 né nelle versioni precedenti e non ha un download separato. Il binario si trova in /usr/bin/fm, dove lo restituisce il comando which fm, pesa 3,2 MB e sta nel volume di sistema protetto, quindi non si può rimuovere. Il comando fm --version non è supportato e risponde Error: Unknown option '--version'.

Per usarlo non servono un account, una chiave API né costi per token (guida della NYU, Mac Install Guide). Per impostazione predefinita usa il modello on-device incluso in macOS, che secondo Apple è sempre disponibile (sessione 334). La Mac Install Guide aggiunge che il download del modello avviene in background, in base a rete, batteria e carico del sistema, e che fm available risponde System model available quando il modello è pronto e System model unavailable: modelNotReady quando non lo è.

La stessa guida elenca i motivi per cui macOS può segnalare appleIntelligenceNotEnabled: una regione non supportata (la Cina continentale è esclusa), lingue diverse tra Mac e Siri, l'avvio da un volume esterno e la protezione SIP disattivata.

2. I modelli AFM 3

Con l'annuncio dell'8 giugno 2026 (Apple Machine Learning Research) Apple presenta la terza generazione dei suoi Foundation Models, una famiglia di cinque modelli. Due girano sul dispositivo: AFM 3 Core, un modello denso da 3 miliardi di parametri, e AFM 3 Core Advanced, un modello sparso da 20 miliardi di parametri che ne attiva da 1 a 4 miliardi per richiesta. Tre girano su Private Cloud Compute, l'infrastruttura server di Apple: AFM 3 Cloud, AFM 3 Cloud Pro e ADM 3 Cloud (Image), dedicato alla generazione e alla modifica di immagini, di cui Apple non indica il numero di parametri.

Apple scrive che la famiglia è sviluppata in collaborazione con Google e di aver lavorato con Google e NVIDIA per estendere Private Cloud Compute a GPU NVIDIA su Google Cloud. AFM 3 Cloud Pro è ottimizzato per quelle GPU. Secondo la guida della NYU, nel modello sparso la parte sempre attiva resta in memoria DRAM mentre gli esperti risiedono nella memoria flash e vengono caricati quando servono, e il modello da 20 miliardi non deve entrare tutto in RAM.

Né l'annuncio né le sessioni Apple indicano quale modello della famiglia sia usato dal comando fm. La Mac Install Guide descrive il modello di sistema come un modello da circa 3 miliardi di parametri.

3. Comandi e opzioni

Prima del primo utilizzo va accettata la licenza con sudo fm license. Finché non è accettata, scrive la Mac Install Guide, il comando non fa nulla: restituisce il codice di uscita 69 e un avviso su stderr. L'accettazione richiede i privilegi di amministratore, vale per tutti gli utenti del Mac e si conferma digitando y o yes; qualsiasi altra risposta la rifiuta. fm license --status mostra lo stato, e la licenza è registrata in /Library/Preferences/com.apple.fm.plist. Il testo della licenza vincola l'utente alla licenza software di macOS e limita l'uso programmatico dei modelli Apple, salvo dove Apple lo consente.

fm respond invia un prompt e restituisce la risposta, anche dentro uno script. Per impostazione predefinita mostra il testo man mano che viene generato. Le opzioni documentate sono --no-stream per salvare la risposta in un file, --instructions per indicare le istruzioni, --schema per vincolare l'output a uno schema JSON, --image per passare un'immagine e --model per scegliere il modello. fm schema object costruisce uno schema con --name, --string e --array e lo scrive sull'output. Gli esempi mostrati da Apple nella sessione 334 sono questi:

fm respond "Provide a basic regex in Swift to parse an email address"
fm schema object --name AppsIdentified --string app_names --array > schema.json
fm respond "What apps are the user actively using in this screenshot?" \
--image Screenshot.png --model pcc --schema schema.json

fm chat apre una conversazione interattiva. Accetta --instructions, --continue per riprendere l'ultima sessione e --resume <nome> per riaprirne una con nome; dentro la conversazione la sessione 334 indica /model per passare a Private Cloud Compute e /save per salvarla. La Mac Install Guide aggiunge che le conversazioni sono salvate in ~/.fm/sessions/, in file di pochi kilobyte, che si esce con Control-C e che cancellare la cartella ~/.fm le elimina.

Secondo la Mac Install Guide, fm serve avvia un endpoint HTTP che usa lo stesso formato di chat completions dell'API di OpenAI, su una porta o su un socket Unix. La guida precisa che non scarica URL remoti e che lasciarlo attivo non mantiene il modello caricato in memoria. Le fonti consultate non indicano la porta o il percorso del socket predefiniti. fm --help elenca i comandi disponibili.

Infografica sul comando fm di macOS 27: la famiglia AFM 3, i comandi, le valutazioni Apple, il contesto e la privacy. Illustrazione elaborata con AI.
Infografica elaborata con AI.

4. Pipe e script

Il testo in ingresso da pipe funziona insieme a --instructions, per esempio cat notes.txt | fm respond --instructions '...', secondo la Mac Install Guide. Se invece il prompt è passato anche come argomento, il testo in pipe viene scartato in silenzio: il comando termina con codice 0 senza alcun avviso e il modello risponde su un documento che non ha mai visto. La guida mostra proprio questo errore, con un riassunto inventato di un documento mai letto, e consiglia agli script di controllare il codice di uscita. Con uno schema, ls | fm respond --instructions '...' --schema schema.json produce un JSON conforme allo schema.

La sessione 334 propone uno script di esempio che separa i file definitivi dalle bozze: costruisce lo schema con fm schema object, chiama fm respond con --instructions e --schema, poi legge il JSON con jq per copiare i file definitivi e spostare le bozze.

5. Contesto, limiti e Private Cloud Compute

Sulla finestra di contesto del modello on-device le fonti non coincidono. La sessione WWDC26 319 riporta 4.096 token su macOS 26.0 e 8.192 token su macOS 27.0 per i dispositivi più recenti, senza dire quali; la guida della NYU indica 8.192 token; la Mac Install Guide, provando macOS 27.0 su un MacBook Air con Apple silicon e 16 GB di memoria, indica 4.096 token tra istruzioni, prompt e risposta. Apple fornisce il valore reale con SystemLanguageModel().contextSize.

Secondo la Mac Install Guide, che cita la documentazione Apple, il modello va usato per riassunti, estrazione e classificazione, e non per conoscenza generale, codice, matematica o ragionamento logico. La guida lo ha provato su un MacBook Air: il riassunto di un articolo e due etichette di file erano corretti, un ordinamento ha restituito 8 file su 10 senza avvisare e cinque domande da principiante sul Terminale non hanno ricevuto risposte del tutto corrette. Riferisce inoltre che il modello occupa fino a 14 GB di spazio di archiviazione su Mac con chip M3 o successivi e che due processi in background hanno usato insieme circa 450 MB di memoria a riposo e 650 MB durante una risposta.

Private Cloud Compute ha caratteristiche diverse, secondo la sessione 319. È disponibile solo sui dispositivi compatibili con Apple Intelligence e richiede una connessione a internet. Offre una finestra di contesto di 32.768 token e un ragionamento a tre livelli, leggero, moderato e profondo, che conta nel limite di contesto. Per gli sviluppatori non ci sono costi per token: il modello è disponibile alle app con meno di 2 milioni di download, le richieste sono conteggiate sull'account iCloud dell'utente e ogni utente ha un limite giornaliero, che con iCloud+ è più alto. Il modello on-device, invece, funziona offline e non ha limiti di richieste.

Sulla disponibilità di --model pcc nel comando le fonti si contraddicono. Il comando è mostrato con --model pcc nella sessione 334 e nella guida della NYU. La Mac Install Guide scrive invece che in macOS 27.0 l'unico modello accettato è system e che pcc non è presente.

6. Valutazioni di Apple su AFM 3

Apple riporta valutazioni di preferenza umana svolte dai propri valutatori interni, quindi non sono benchmark indipendenti, e precisa che riflettono i modelli nella fase attuale di sviluppo (annuncio dell'8 giugno 2026). Sui testi, AFM 3 Core è stato preferito nel 45,6% dei prompt contro il 23,3% del modello di base del 2025, mentre AFM 3 Cloud è stato preferito nel 64,7% contro l'8,7% del modello server del 2025, con un miglioramento che Apple descrive come costante in tutte le aree linguistiche.

Sulla comprensione delle immagini, AFM 3 Core è stato preferito alla generazione precedente in oltre il 61% dei casi in cui gli utenti hanno espresso una preferenza, in una valutazione in inglese. AFM 3 Cloud è stato preferito nel 37,8% dei prompt contro il 9,6% del modello di base del 2025. Per AFM 3 Cloud Pro Apple non dà percentuali di preferenza ma miglioramenti relativi rispetto ad AFM 3 Cloud, circa il 10% sui testi e il 14% sulla comprensione delle immagini.

7. SDK Python e framework per le app

Accanto al comando esiste un SDK Python ufficiale (repository Apple), che si installa con pip install apple-fm-sdk e si importa come apple_fm_sdk. Richiede Python 3.10 o successivo, macOS 26.0 o successivo, Xcode 26.0 o successivo e Apple Intelligence attivo su un Mac compatibile. La licenza è Apache-2.0 e il progetto, scrive il README, non accetta ancora contributi.

Secondo la sessione 334 l'SDK gestisce input di testo e immagini, risposte in streaming, generazione guidata (output strutturato) e chiamata di strumenti; secondo la guida della NYU ricalca l'API Swift e per Apple le API risultano familiari a chi già la conosce. La Mac Install Guide osserva che il comando non supporta la chiamata di strumenti, mentre l'SDK sì. Un esempio minimo della sessione 334 è questo:

import apple_fm_sdk as fm
session = fm.LanguageModelSession(instructions=INSTRUCTIONS)
response = await session.respond(prompt)

Per le app, il framework Foundation Models supporta iOS, macOS, visionOS e watchOS, e secondo la sessione 339 è in corso di pubblicazione come open source, senza indicare la licenza. Private Cloud Compute si può chiamare anche da watchOS (sessione 319). Le fonti consultate non elencano i modelli di iPhone compatibili.

8. Privacy

Le fonti permettono di distinguere questi punti. Il modello on-device funziona offline, e quindi i comandi eseguiti con quel modello non richiedono una connessione (sessione 319). Con Private Cloud Compute la richiesta lascia il Mac: la guida della NYU lo dice senza condizioni («leaves the machine»), mentre Apple afferma che il servizio è progettato perché i dati dell'utente non vengano mai memorizzati, che i dati servono solo alle richieste e che la verifica è stata fatta in modo indipendente da ricercatori (sessione 319). Si tratta di dichiarazioni di Apple.

Sul disco locale, fm chat salva le conversazioni in ~/.fm/sessions/, come indicato nella Mac Install Guide. Per il resto, le fonti consultate non descrivono altre forme di raccolta o di trasmissione dei dati del comando fm.

9. Proposte di evoluzione

Questa sezione non descrive funzioni esistenti. Sono proposte di MC Project Lab, nate dai punti che le fonti indicano come mancanti.

  • 1. Un comando fm models, oppure un fm --version funzionante, per vedere versione del comando, modelli disponibili e stato di Private Cloud Compute: oggi --version non esiste e nella 27.0 si accetta solo il modello system.
  • 2. Un avviso, o un errore, quando si combinano una pipe e un prompt passato come argomento, perché oggi il testo in pipe viene scartato senza segnalazioni.
  • 3. Un modo per vedere nel Terminale l'uso del limite giornaliero di Private Cloud Compute, come fa nell'API Swift la proprietà quotaUsage (sessione 319).
  • 4. Una documentazione di fm serve con porta o socket predefiniti e un'opzione per proteggere l'endpoint locale con un token.
  • 5. Il supporto alla chiamata di strumenti anche nel comando, che oggi è disponibile solo nell'SDK Python.

Fonti