When you first start building with artificial intelligence, the loudest voices all point to the same place: the model. Pick the right one, they say, and everything else falls into place. A few weeks into my own experiments, I can tell you that simply is not true. Choosing between available large language models matters, but it is maybe twenty percent of the job. The rest is systems work. It is plumbing, craft, and relentless testing. That realization hit me early, and it has reshaped how I approach every project since.
The Model Is Just the Beginning
It is easy to see why beginners obsess over models. The release notes promise better reasoning, larger context windows, and cleaner outputs. Those improvements are real, but they are also general-purpose. A state-of-the-art model will not automatically know your company's refund policy. It will not reliably format responses for your mobile app unless you tell it how. It cannot pull live inventory data out of thin air.
I learned this the hard way. My first prototype used a capable model and produced beautiful, confident paragraphs that were occasionally completely wrong. The text sounded professional because the model had mastered tone, but it had no access to current information. I had spent days comparing model benchmarks when I should have been thinking about data pipelines and context injection. The model was not broken. The system around it was incomplete. That distinction is everything when you move from demos to software that people actually rely on.
Prompts Are Code, Not Suggestions
High quality prompts sit at the heart of any reliable AI application. Early on, I treated prompts like search queries—short, casual, optimistic. I would ask a model to "summarize this" or "be helpful" and hope for the best. The results swung wildly between useful and irrelevant, and I had no idea why.
Now I treat prompts like lightweight programs. A good prompt defines the role, specifies the output format, includes examples when necessary, and sets boundaries. If I want JSON, I ask for JSON and show the schema. If I need a concise answer, I explicitly cap the length and ban preamble. Iteration matters. I keep a running log of prompts and their outputs, changing one variable at a time. A single ambiguous adjective in a prompt can shift the behavior of an entire workflow. That sensitivity demands rigor, not guesswork.
Garbage In, Garbage Out
Reliable data retrieval is where many AI projects quietly die. Retrieval-Augmented Generation, or RAG, has become the standard pattern for giving models access to private or current data. The idea is straightforward: fetch relevant documents, stuff them into the model's context window, and let the model reason over facts. The practice is messier.
I spent time debugging a simple knowledge base that kept returning unrelated results. The model was fine. The retrieval layer was failing. My chunks were too small and stripped of context. My embeddings were generated without cleaning up duplicate headers. The similarity search found technically close text that answered the wrong question. Fixing it meant rethinking the chunking strategy, adding metadata filters, and introducing a re-ranking step. Once the retrieval stabilized, the model's answers improved instantly. The lesson was clear: you cannot patch bad data retrieval with a better model. You have to build the pipeline correctly.
You Can't Improve What You Don't Measure
Constant evaluation is the habit that separates experiments from products. When I started, I evaluated by vibe. I would read five outputs, nod approvingly, and move on. That works until a user asks question number six and gets something strange.
Now I build small evaluation sets for every feature. I collect real user queries, label the expected behavior, and run automated checks against them. I watch for drift: a prompt that worked last month may degrade after a model update or after the underlying data changes. I separate style evaluation from factual accuracy. Looking professional is nice; being correct is mandatory. Without this loop, you are shipping based on hope, and hope is not a testing strategy.
Know the Machine's Limits
Memahami had model telah menyelamatkan saya daripada menjanjikan terlalu banyak tetapi gagal memenuhi jangkaan. Sistem ini mempunyai kekangan yang nyata. Tetingkap konteks kini lebih besar daripada sebelumnya, tetapi ia masih mempunyai had, dan memenuhinya secara berlebihan akan menjejaskan prestasi pada tahap ekstrem. Model boleh berhalusinasi, terutamanya pada topik khusus di mana data latihan adalah terhad. Ia bergelut dengan aritmetik yang tepat dan jenis logik pelbagai langkah tertentu. Ia juga sensitif terhadap susunan ayat.
Kos dan kelajuan juga merupakan had. Model yang menghasilkan prosa sempurna dalam masa sepuluh saat mungkin tidak boleh digunakan dalam antara muka sembang masa nyata. Saya kini memetakan ciri-ciri kepada bajet latensi lebih awal. Jika sesuatu tugas memerlukan respons kurang daripada satu saat, saya mungkin mengira jawapan terlebih dahulu, melakukan pensijilan (caching) secara agresif, atau menggunakan model yang lebih kecil untuk draf pertama dan model yang lebih besar hanya untuk pemurnian. Bekerja dalam kekangan adalah amalan kejuruteraan standard. AI tidak berbeza.
Membina untuk Manusia Sebenar
Saya kini sedang mempelajari aplikasi LLM dan kejuruteraan perisian dengan matlamat yang mudah: membina alatan yang digunakan orang setiap hari. Bunyinya jelas, tetapi jurang antara prototaip yang hebat dengan alatan kegunaan harian adalah sangat besar. Sebuah demo boleh bertoleransi dengan jeda selama empat puluh saat dan jawapan yang meleret. Seseorang yang cuba menyiapkan tugas sebelum mesyuarat tidak boleh.
Alatan kegunaan harian memerlukan pengendalian ralat, mekanisme sandaran (fallbacks), dan UI yang jelas apabila model tidak pasti. Ia perlu menyepadukan dengan aliran kerja sedia ada dan bukannya memaksa aliran kerja baharu. Saya kini memikirkan tentang kes hujung (edge cases): apa yang berlaku apabila model enggan menjawab, apabila konteks melimpah, atau apabila API mengalami masa tamat? Melancarkan perisian AI bermakna menjawab soalan-soalan tersebut dengan kod, bukan sekadar optimisme.
Mari Kongsi Apa yang Kita Pelajari
Saya ingin berhubung dengan pembangun lain yang sedang melalui jalan yang sama. Bidang ini bergerak pantas, dan amalan terbaik masih lagi ditulis. Tiada sesiapa yang mempunyai semua jawapan. Sama ada anda sedang bergelut dengan reka bentuk prom, bergelut dengan saluran paip retrieval, atau mencari jalan untuk menilai output pada skala besar, masalah tersebut lebih baik diselesaikan bersama.
Mari kita kongsi apa yang kita pelajari. Bukan ucapan persidangan yang digilap, tetapi fasa pertengahan yang kucar-kacir. Saluran paip yang rosak, pengubahsuaian prom yang akhirnya berjaya, ujian penilaian yang mengesan pepijat sebelum pelancaran. Pertukaran yang terperinci dan jujur itulah yang mengubah eksperimen individu menjadi himpunan pengetahuan bersama.
Pengajaran Sebenar
Jika anda baru bermula dalam pembangunan AI, luangkan kurang masa mencari...
