Sistemi di ML di produzione: domande da porsi
Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.
Questa lezione si concentra sulle domande che dovresti porti sui tuoi dati e sul tuo modello nei sistemi di produzione.
Ogni funzionalità è utile?
Devi monitorare continuamente il modello per rimuovere le funzionalità che contribuiscono poco o nulla alla capacità predittiva del modello. Se i dati di input per la funzionalità cambiano improvvisamente, anche il comportamento del modello potrebbe cambiare improvvisamente in modi indesiderati.
Prendi in considerazione anche la seguente domanda correlata:
- L'utilità della funzionalità giustifica il costo di inclusione?
È sempre allettante aggiungere altre funzionalità al modello. Ad esempio, supponiamo che tu trovi una nuova funzionalità la cui aggiunta migliori leggermente le previsioni del tuo modello. Le previsioni leggermente migliori sembrano certamente migliori di quelle leggermente peggiori, ma la funzionalità aggiuntiva aumenta il carico di manutenzione.
L'origine dati è affidabile?
Alcune domande da porre sull'affidabilità dei dati inseriti:
- L'indicatore sarà sempre disponibile o proviene da una fonte non attendibile? Ad esempio:
- Il segnale proviene da un server che si arresta in modo anomalo sotto un carico elevato?
- Il segnale proviene da persone che vanno in vacanza ogni agosto?
- Il sistema che calcola i dati di input del modello cambia mai? In questo caso:
- Con che frequenza?
- Come farai a sapere quando il sistema cambia?
Valuta la possibilità di creare una tua copia dei dati che ricevi dal processo precedente. Passa alla versione successiva dei dati di upstream solo quando hai la certezza che sia sicuro farlo.
Il tuo modello fa parte di un ciclo di feedback?
A volte un modello può influire sui propri dati di addestramento. Ad esempio, i risultati di alcuni modelli diventano a loro volta (direttamente o indirettamente) funzionalità di input per lo stesso modello.
A volte un modello può influire su un altro modello. Ad esempio, considera due modelli per la previsione dei prezzi delle azioni:
- Modello A, che è un modello predittivo scadente.
- Modello B.
Poiché il modello A presenta dei bug, decide erroneamente di acquistare azioni di Stock X. Questi acquisti fanno aumentare il prezzo dell'azione X. Il modello B utilizza il prezzo della risorsa X come caratteristica di input, pertanto può trarre alcune conclusioni sbagliate sul valore della risorsa X. Il modello B potrebbe quindi acquistare o vendere azioni di Azione X in base al comportamento con bug del modello A. Il comportamento del modello B, a sua volta, può influire sul modello A, eventualmente attivando una tulip mania o un calo delle azioni della società X.
Esercizio: verifica di aver compreso
Quali tre dei seguenti modelli sono soggetti a un loop di feedback?
Un modello di previsione del traffico che prevede le ingorghi alle uscite dell'autostrada vicino alla spiaggia, utilizzando il numero di persone sulla spiaggia come una delle sue funzionalità.
Alcuni bagnanti potrebbero basare i propri piani sulla previsione del traffico. Se la spiaggia è affollata e si prevede un traffico intenso, molte persone potrebbero fare piani alternativi. Ciò potrebbe ridurre la presenza sulla spiaggia, con una conseguente previsione di traffico più ridotto, che potrebbe poi aumentare la presenza e il ciclo si ripete.
Un modello di consigli sui libri che suggerisce romanzi che potrebbero piacere ai suoi utenti in base alla loro popolarità (ovvero al numero di volte in cui i libri sono stati acquistati).
I consigli sui libri hanno maggiori probabilità di aumentare gli acquisti e queste vendite aggiuntive verranno reintrodotte nel modello come input, aumentando la probabilità di consigliare gli stessi libri in futuro.
Un modello di ranking delle università che valuta gli istituti in parte in base alla loro selezionatività, ovvero la percentuale di studenti che hanno presentato domanda e sono stati ammessi.
I ranking del modello possono suscitare un maggiore interesse per le scuole con il punteggio più alto, aumentando il numero di richieste di iscrizione che ricevono. Se queste scuole continuano ad ammettere lo stesso numero di studenti, la selezione aumenterà (la percentuale di studenti ammessi diminuirà). Ciò migliorerà il ranking di queste scuole, aumentando ulteriormente l'interesse dei potenziali studenti e così via.
Un modello dei risultati elettorali che prevede il vincitore di una competizione per la carica di sindaco dopo aver intervistato il 2% degli elettori al termine delle votazioni.
Se il modello non pubblica la sua previsione fino al termine delle elezioni, non è possibile che le sue previsioni influenzino il comportamento degli elettori.
Un modello di valore degli immobili che prevede i prezzi delle case utilizzando come caratteristiche le dimensioni (area in metri quadrati), il numero di camere da letto e la posizione geografica.
Non è possibile modificare rapidamente la posizione, le dimensioni o il numero di camere di una casa in risposta alle previsioni dei prezzi, il che rende improbabile un ciclo di feedback. Tuttavia, potrebbe esserci una correlazione tra le dimensioni e il numero di camere da letto (le case più grandi hanno più stanze) che potrebbe dover essere distinta.
Un modello di attributi del viso che rileva se una persona sorride in una foto. Il modello viene addestrato regolarmente su un database di fotografia stock aggiornato automaticamente ogni mese.
Non è presente un ciclo di feedback, in quanto le previsioni del modello non hanno alcun impatto sul database di foto. Tuttavia, la gestione delle versioni dei dati di input è un problema, in quanto questi aggiornamenti mensili potrebbero avere effetti imprevisti sul modello.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[null,null,["Ultimo aggiornamento 2025-07-27 UTC."],[[["\u003cp\u003eContinuously monitor models in production to evaluate feature importance and potentially remove unnecessary ones, ensuring prediction quality and resource efficiency.\u003c/p\u003e\n"],["\u003cp\u003eData reliability is crucial; consider data source stability, potential changes in upstream data processes, and create local data copies to control versioning and mitigate risks.\u003c/p\u003e\n"],["\u003cp\u003eBe aware of feedback loops where a model's predictions influence future input data, potentially leading to unexpected behavior or biased outcomes, especially in interconnected systems.\u003c/p\u003e\n"],["\u003cp\u003eRegularly assess your model by asking if features are truly helpful and if their value outweighs the costs of inclusion, aiming for a balance between prediction accuracy and maintainability.\u003c/p\u003e\n"],["\u003cp\u003eEvaluate if your model is susceptible to a feedback loop and take steps to isolate it if you find it is.\u003c/p\u003e\n"]]],[],null,["This lesson focuses on the questions you should ask about your data\nand model in production systems.\n\nIs each feature helpful?\n\nYou should continuously monitor your model to remove features that contribute\nlittle or nothing to the model's predictive ability. If the input data for\nthat feature abruptly changes, your model's behavior might also abruptly\nchange in undesirable ways.\n\nAlso consider the following related question:\n\n- Does the usefulness of the feature justify the cost of including it?\n\nIt is always tempting to add more features to the model. For example,\nsuppose you find a new feature whose addition makes your model's predictions\nslightly better. Slightly better predictions certainly seem better than\nslightly worse predictions; however, the extra feature adds to your\nmaintenance burden.\n\nIs your data source reliable?\n\nSome questions to ask about the reliability of your input data:\n\n- Is the signal always going to be available or is it coming from an unreliable source? For example:\n - Is the signal coming from a server that crashes under heavy load?\n - Is the signal coming from humans that go on vacation every August?\n- Does the system that computes your model's input data ever change? If so:\n - How often?\n - How will you know when that system changes?\n\nConsider creating your own copy of the data you receive from the\nupstream process. Then, only advance to the next version of the upstream\ndata when you are certain that it is safe to do so.\n\nIs your model part of a feedback loop?\n\nSometimes a model can affect its own training data. For example, the\nresults from some models, in turn, become (directly or indirectly) input\nfeatures to that same model.\n\nSometimes a model can affect another model. For example, consider two\nmodels for predicting stock prices:\n\n- Model A, which is a bad predictive model.\n- Model B.\n\nSince Model A is buggy, it mistakenly decides to buy stock in Stock X.\nThose purchases drive up the price of Stock X. Model B uses the price\nof Stock X as an input feature, so Model B can come to some false\nconclusions about the value of Stock X. Model B could, therefore,\nbuy or sell shares of Stock X based on the buggy behavior of Model A.\nModel B's behavior, in turn, can affect Model A, possibly triggering a\n[tulip mania](https://wikipedia.org/wiki/Tulip_mania) or a slide in\nCompany X's stock.\n\nExercise: Check your understanding \nWhich **three** of the following models are susceptible to a feedback loop? \nA traffic-forecasting model that predicts congestion at highway exits near the beach, using beach crowd size as one of its features. \nSome beachgoers are likely to base their plans on the traffic forecast. If there is a large beach crowd and traffic is forecast to be heavy, many people may make alternative plans. This may depress beach turnout, resulting in a lighter traffic forecast, which then may increase attendance, and the cycle repeats. \nA book-recommendation model that suggests novels its users may like based on their popularity (i.e., the number of times the books have been purchased). \nBook recommendations are likely to drive purchases, and these additional sales will be fed back into the model as input, making it more likely to recommend these same books in the future. \nA university-ranking model that rates schools in part by their selectivity---the percentage of students who applied that were admitted. \nThe model's rankings may drive additional interest to top-rated schools, increasing the number of applications they receive. If these schools continue to admit the same number of students, selectivity will increase (the percentage of students admitted will go down). This will boost these schools' rankings, which will further increase prospective student interest, and so on... \nAn election-results model that forecasts the winner of a mayoral race by surveying 2% of voters after the polls have closed. \nIf the model does not publish its forecast until after the polls have closed, it is not possible for its predictions to affect voter behavior. \nA housing-value model that predicts house prices, using size (area in square meters), number of bedrooms, and geographic location as features. \nIt is not possible to quickly change a house's location, size, or number of bedrooms in response to price forecasts, making a feedback loop unlikely. However, there is potentially a correlation between size and number of bedrooms (larger homes are likely to have more rooms) that may need to be teased apart. \nA face-attributes model that detects whether a person is smiling in a photo, which is regularly trained on a database of stock photography that is automatically updated monthly. \nThere is no feedback loop here, as model predictions don't have any impact on the photo database. However, versioning of the input data is a concern here, as these monthly updates could potentially have unforeseen effects on the model. \n[Help Center](https://support.google.com/machinelearningeducation)"]]