LLMOps ile Büyük Dil Modellerinin Operasyonel Süreçlerinin Optimizasyonu

Batuhan Guney
SabancıDx
Published in
10 min readAug 23, 2024

Her geçen gün kullanımı ve hayatımıza olan etkisi giderek artmakta olan Büyük Dil Modelleri (LLM) eğitim, sağlık ve tarım gibi birçok farklı emek yoğun sektör içinde iş yapış şekillerinde köklü değişimleri de beraberinde getirmektedir. Kullanımının giderek yaygınlaşması ve pek çok farklı senaryoda etkin performans vermesinin beklendiği bu dil modellerinin aynı zamanda operasyonel açıdan işlerliğinin sağlanması, var olan ya da ileride doğabilecek sorunların önceden kestirilebilmesi için büyük dil modellerin süreçlerinin yönetimsel ve operasyonel açıdan doğru bir şekilde tasarlanması ve uygulanması gerekmektedir. Bu yazımda sizlere Büyük Dil Modellerinin operasyonel süreçlerinin iyileştirilmesinde ve bu modellerin sürdürülebilirliğinin sağlanmasında kritik bir öneme sahip olan LLMOps’dan, LLMOps süreçlerinden bahsedeceğim. Ayrıca LLMOps platformlarından biri olan Microsoft Azure üzerinde örnek bir uygulama ile bu süreçlerin bazılarının uygulamalı olarak nasıl gerçekleştirildiğini açıklamaya çalışacağım.

LLMOps Nedir?

LLMOps (Büyük Dil Modeli Operasyonları) Büyük Dil Modeli uygulamalarının yaşam döngüleri süresince en iyi şekilde eğitmek, optimize etmek, dağıtmak ve sürekli gözlemlenebilir kılmak için gereken özelleşmiş uygulamaları, süreçleri ve altyapı kavramlarını ifade eden terime verilen isimdir. Bu yaklaşım Üretken Yapay Zeka Modellerinin ve onların uygulamalarının çok daha hızlı şekilde hayata geçirilebilmesini sağlamak amacıyla geliştirilmiştir. LLMOps süreçleri Büyük Dil Modellerini kendi ürünlerinde etkili bir şekilde kullanmak isteyen her kurum için büyük önem taşımaktadır.

LLMOps Çerçevesi

Bir LLM’in yaşam döngüsü genel olarak dört aşamaya ayrılabilir: Keşif, Arıtım, Dağıtım ve İletim (Discover, Distill, Deploy ve Deliver) yani 4D olarak adlandırılan bu aşamalar Resim-1'de gösterilmiştir. Her aşama, LLM’lerin çeşitli uygulama ve ortamlarda geliştirilmesi ve kullanılması açısından kritik bir rol oynar.

Resim-1: LLMOps İş Akışı
  1. Keşif: Bu aşama, bir organizasyon veya belirli bir proje içinde bir LLM’e duyulan ihtiyacı ve potansiyel uygulama alanlarını kapsar. Bu aşama, LLM’lerdeki en son gelişmeleri araştırmayı, LLM’lerin yeteneklerini anlamayı ve bu modellerle karşılaşılan zorlukların nasıl çözümlenebileceğini veya mevcut süreçleri nasıl iyileştirebileceğini değerlendirmeyi içermektedir. Bu aşamadaki temel faaliyetler arasında veri kaynaklarının belirlenmesi, hedeflerin tanımlanması ve oluşturulacak LLM uygulamasının içeriğinin belirlenmesi yer almaktadır.
  2. Arıtım: Bu aşamada oluşturulacak olan LLM uygulamasının eğitiminde kullanılacak verilerin işlenmesi ve dönüştürülmesi işlemleri gerçekleşmektedir. Verinin kalitesi ve çeşitliliği ile modelin performansı arasında doğru orantı olduğundan bu aşama çok büyük önem arz etmektedir. Arıtım işlemi, verilerin temizliği, düzenlenmesi ve miktarının artırılması aşamalarını içermektedir. Bu aşamada LLM algoritmaları kendilerine sunulan girdilere dayanarak çıkarımda bulunmayı ya da yanıtlar üretmeyi öğrendiği modelin başlangıç eğitimi sürecini de kapsamaktadır.
  3. Dağıtım: Bu aşamada arıtım aşamasında eğitimi tamamlanan LLM kullanılacağı altyapıya entegre edilir. Bu aşamada gerekli donanımsal ve yazılımsal ortamların hazırlanması modelin ölçeklenebilirliğinin ve güvenliğinin sağlanmasını ve birlikte çalışacağı sistemlerle olan entegrasyonu işlemlerini kapsamaktadır. Dağıtım aşaması sırasında model versiyonlama işleminin yapılması, konteynerlaştırma ve API entegrasyonlarının yapılması gibi konular ele alınarak modelin verimliliği ve kullanılabilirliğinin arttırımı hedeflenmektedir.
  4. İletim: Son aşamada, LLM’in gerçekte göstermiş olduğu performansın takibini, geri bildirim ve yen, verilere dayalı olarak sürekli iyileştirme ve sürekli olarak gelişen ve değişen ihtiyaçların karşılanması aşamalarına odaklanılır. Bu aşama ayrıca LLM’in elde başarımlar ve kullanıcı deneyimi üzerindeki etkisini ölçmeyi ve faydalarını optimize etmek için gerekli düzenlemeleri yapmayı da kapsamaktadır.

Bu dört aşama boyunca, sürekli iş birliği, değerlendirme ve yönetişim, LLM’in etkili, etik ve organizasyonel hedefler ve değerlerle uyumlu kalmasını sağlamak için kritik öneme sahiptir.

LLMOps’a Neden İhtiyaç Duyuldu?

LLMOps süreçlerinin yaygınlaşmasının ve büyük kurumsal uygulamalarca bu iş akışına uygun olarak süreçlerini tasarlamalarının başlıca 7 nedeni vardır. Bu nedenler aşağıdaki gibi sıralanabilir:

  1. Hesaplama Kaynakları: Kaynakların efektif tahsisi, modellerin fine-tune edilmesi, depolama alanının optimize edilmesi, hesaplama gereksinimlerinin yönetimi ve Büyük Dil Modellerinin etkili bir şekilde dağıtımının ve işletiminin sağlanması açısından LLMOps süreçleri kilit öneme sahiptir.
  2. Model Hassas Ayar (Fine-Tuning) İşlemleri: Önceden eğitilmiş Büyük Dil Modellerinin (LLM’ler) fine-tuning süreci, belirli görevler veya veri setleri için onları uyarlamak ve pratik uygulamalarda en iyi performansı göstermelerini sağlamak için gerekli olabilmektedir.
  3. Etik Endişeler: Büyük dil modelleri (LLM’ler) içerik üretebilme kapasitesine sahiptirler. Ancak zararlı materyallerin üretiminde kullanıldıklarında etik endişeleri de beraberlerinde getirmektedirler.
  4. Halüsinasyonlar: LLM’ler, sağlanan girdilerle alakası olmayan bilgileri hayal edebilmekte veya başka bir deyişle uydurabilmektedirler. Bu nedenle bir LLM’in çıktısının doğruluğunu ve kesinliğini sürekli olarak izlemek için sistemler ve çerçeveler (frameworkler) gereklidir.
  5. Yorumlanabilirlik ve Açıklanabilirlik: LLM’leri daha şeffaf ve yorumlanabilir hale getirmek için kullanılan teknikler ve önlemler, paydaşların bu modellerin aldığı kararları daha kolay bir şekilde uygulayabilmelerini ve sonuçlara olan güvenlerinin tahsisini sağlar.
  6. Gecikme ve Sonuç Süresi: LLM’lerin yüksek hesaplama kaynaklarına karşı olan gereksinimleri, gecikme süresini arttırmaktadır. Bu durum gerçek zamanlı çalışan uygulamalar ve hıza gereksinimi olan kullanıcı profillerinin deneyimlerini olumsuz etkilemektedir. Hızlı yanıt oluşturulmasının büyük öneme sahip olduğu alanlarda LLM’lerin kullanılabilirliği konusunda endişeler doğurur.
  7. İyi Tanımlanmış Yapıların ve Çerçevelerin (Frameworklerin) Eksikliği: Büyük Dil Modelleri’nin (LLM’lerin) kullanımı sırasında komutların yönetimi için iyi tanımlanmış yapıların ve çerçevelerin olmaması büyük zorluklara neden olmaktadır. Bu gibi yapı ve çerçevelerin olmayışı otomasyon eksikliği ve iş akışlarının düzenli olarak takip edilmediği veya tanımlanmadığı durumlarda karşımıza çıkmaktadır.

LLMOps ile MLOps Arasındaki Farklılıklar

Hem MLOps pek çok açıdan benzerlik göstermektedirler. Her iki framework de hedef olarak daha verimli, güvenilir ve ölçeklenebilir modellerin geliştirilmesine odaklanmaktadır. Her iki yaklaşım da model geliştirme, eğitim, dağıtım ve izleme süreçlerinin otomasyonuna odaklanır. Modellerin performansını izlemek ve log kayıtlarının yapılması her iki framework için de büyük önem arz etmektedir. Ancak her iki frameworkün birbiriyle ayrıştığı önemli noktalar vardır. Bu noktalar Tablo-1 üzerinde incelenmektedir.

Tablo-1 LLMOps vs MLOps

Microsoft Azure ile LLMOps Süreçlerinin Uygulamalı Gösterimi

  1. Azure AI Studio ile Yeni Projenin Oluşturulması

İlk olarak ai.azure.com adresinden “New Project” butonuna tıklayarak yeni proje oluşturma ekranına erişilir. Ardından Resim-2'deki gibi gerekli bilgiler girilerek projenin oluşturulması sağlanır.

Resim-2: Projenin Oluşturulması

Projenin oluşturulmasının ardından oluşturacağımız uygulamada kullanacağımız promtları deneyebilmek adına bir OpenAI modeli deploy ediyoruz. Bunun için Resim-3'de gösterildiği gibi Deployments sekmesinden Deploy base model seçeneğini tıklamak gerekmektedir.

Resim-3: Model Deployment Aşaması

Sonrasında Resim-4'de gösterildiği üzere karşımıza gelen listeden GPT-4 modeli seçilir. Son olarak Deploy butonuna tıklayarak modelin deployment kısmı tamamlanır.

Resim-4: Model tercihinin yapılması

Model deploy edildikten sonra Open in playground sekmesine tıklayarak açılan sekmede aşağıdaki komut System Message kısmına yazılır. Ardından Apply changes seçeneğine tıklanır.

You're an AI assistant that helps telco company to extract valuable information from their conversations by creating JSON files for each conversation transcription you receive. You always try to extract and format as a JSON:
1. Customer Name [name]
2. Customer Contact Phone [phone]
3. Main Topic of the Conversation [topic]
4. Customer Sentiment (Neutral, Positive, Negative)[sentiment]
5. How the Agent Handled the Conversation [agent_behavior]
6. What was the FINAL Outcome of the Conversation [outcome]
7. A really brief Summary of the Conversation [summary]

Only extract information that you're sure. If you're unsure, write "Unknown/Not Found" in the JSON file.

Ardından Resim-5'de gösterildiği gibi chat kısmına aşağıdaki metin yazılır.

Agent: Hello, welcome to Telco's customer service. My name is Juan, how can I assist you?
Client: Hello, Juan. I'm calling because I'm having issues with my mobile data plan. It's very slow and I can't browse the internet or use my apps.
Agent: I'm very sorry for the inconvenience, sir. Could you please tell me your phone number and your full name?
Client: Yes, sure. My number is 011-4567-8910 and my name is Martín Pérez.
Agent: Thank you, Mr. Pérez. I'm going to check your plan and your data usage. One moment, please.
Client: Okay, thank you.
Agent: Mr. Pérez, I've reviewed your plan and I see that you have contracted the basic plan of 2 GB of data per month. Is that correct?
Client: Yes, that's correct.
Agent: Well, I inform you that you have consumed 90% of your data limit and you only have 200 MB available until the end of the month. That's why your browsing speed has been reduced.
Client: What? How is that possible? I barely use the internet on my cell phone. I only check my email and my social networks from time to time. I don't watch videos or download large files.
Agent: I understand, Mr. Pérez. But keep in mind that some applications consume data in the background, without you realizing it. For example, automatic updates, backups, GPS, etc.
Client: Well, but they didn't explain that to me when I contracted the plan. They told me that with 2 GB I would have enough for the whole month. I feel cheated.
Agent: I apologize, Mr. Pérez. It was not our intention to deceive you. I offer you a solution: if you want, you can change your plan to a higher one, with more GB of data and higher speed. This way you can enjoy a better browsing experience.
Client: And how much would that cost me?
Agent: We have a special offer for you. For only 10 pesos more per month, you can access the premium plan of 5 GB of data and 4G speed. Are you interested?
Client: Mmm, I don't know. Isn't there another option? Can't you give me more speed without charging me more?
Agent: I'm sorry, Mr. Pérez. That's the only option we have available. If you don't change your plan, you'll have to wait until next month to recover your normal speed. Or you can buy an additional data package, but it would be more expensive than changing plans.
Client: Well, let me think about it. Can I call later to confirm?
Agent: Of course, Mr. Pérez. You can call whenever you want. The number is the same one you dialed now. Is there anything else I can help you with?
Client: No, that's all. Thank you for your attention.
Agent: Thank you, Mr. Pérez. Have a good day. Goodbye.
Resim-5: GPT 4.0 gerekli bilgilerin girilmesi

Sonunda Resim-6'daki çıktı elde edilir.

Resim-6: Promt yanıtı

2. LLM’lerin Orkestrasyon Akışlarının Oluşturulması

Resim-7'de gösterildiği gibi Build menüsünden Promt Flow seçeneğine tıklanır. Ardından Create butonuna tıklanır.

Resim-7 Promp Flow’un oluşturulması

Burada Resim-8'den de görülebileceği üzere web sayfalarını sınıflandırabilmek adına bir Standard flow oluşturacağız. Flow Creation kısmından Web Classification kutucuğu bulunur ve Clone butonuna tıklanır. Böylelikle akışımız oluşturulmuş olur.

Resim-8 Web Classification Flow’unun oluşturulması

Akış oluşturulduktan sonra Resim-9'da gösterildiği gibi Runtime sekmesinden start butonuna tıklanır.

Resim-9 Runtime’ın başlatılması

Runtime başlatıldıktan sonra her LLM adımı için LLM ile Bağlantıyı tanımlamamız gerekir. Bunun için Resim-10 ve 11'de de gösterildiği gibi summarize_text_content and classify_with_llm bağlantılarını tanımlarız. Ardından aynı bağlantıyı classify_with_llm adımı içinde oluştururuz.

Resim-10: Bağlantıların tanımlanması
Resim-11: Bağlantıların tanımlanması

Bağlantılar tanımlandıktan sonra Run butonuna tıklanır. Resim-12'de gösterildiği üzere Flow’un gerçekleştirilebilmesi için gerekli girdi değeri girilir.

Resim-12: Girdilerin oluşturulması.

Son olarak execution tamamlandığında son Node’a tıklayarak Resim-13'deki çıktıyı elde ederiz.

Resim-13: Çıktının elde edilmesi.

3. LLM’lerin Değerlendirilmesi ve Dağıtımı

Promt Flow’da Tools sekmesinde Build sekmesine tıklanır. Ardından Resim-14'deki gibi Create butonuna tıklanır.

Resim-14: Akış Oluşturulması

Ardından Resim-15'de görüleceği üzere QnA Groundedness Evaluation kutucuğunun altındaki clone butonu tıklanır.

Resim-15: QnA Groundedness Evaluation akışının oluşturulması

Resim-16'da görüleceği üzere oluşan groundedness_score nodunda Connection alanından GPT-4 seçilir. Son olarak save butonuna tıklanır.

Resim-16: Groundedness Score bağlantısının oluşturulması

Aynı adımları uygulayarak Resim-17 ve Resim-18'de gösterilen QnA Relevance Evaluation ve QnA GPT Similarity Evaluation akışları da eklenir.

Resim-17: QnA Relevance Evaluation
Resim-18: QnA GPT Similarity Evaluation

Ardından Promt Flowda Runtime’ın altındaki Start seçeneği seçilir. Resim-19'daki gibi Evaluate menüsünden Custom evaluation seçeneği seçilir.

Resim-19: Custom Evaluation oluşturulması

Prompt_variants seçeneğinde GPT-4 kotasını aşmamak adına Resim-20'de gösterilen 2 varyant seçilir.

Resim-20: Varyantların seçimi aşaması

Resim-21'deki gibi Add New Data seçeneği seçilir. Buradan önceden “.csv” formatında oluşturduğumuz bir test verisini upload ederiz.

Resim-21: Test verisinin karşıya yüklenmesi

Resim-22'de gösterildiği gibi Evaluation Settings’den son yaratmış olduğumuz 3 evaluation flow’u seçeriz. Ardından Resim-23, Resim-24 ve Resim-25'de gösterildiği gibi question, context, ground_truth ve answer alanlarını ayarlarız. Son olarak review and submit e tıklayarak değerlendirme işlemini başlatırız.

Resim-22: Oluşturulan 3 EvaluationFlow’un Seçimi
Resim-23: QnA GPT Similarity Evaluation Parametreleri
Resim-24: QnA Groundedness Evaluation Parametreleri
Resim-25 QnA Relevance Evaluation Parametreleri

Son aşamada Resim-26'deki çıktıyı elde ederiz.

Resim-26: Sonuç çıktısı

Sonuç

Bu yazımda Yapay Zeka ve Büyük Dil Modellerinin operasyonel süreçlerinden, bu süreçlerde kullanılan LLMOps ve MLOps kavramlarından ve aralarındaki farklardan ve LLMOps’un süreçlerinden ve günümüzde neden yaygın olarak benimsendiğinden bahsettim. Ayrıca Microsoft Azure üzerinde bazı LLMOps süreçlerinin uygulamalı olarak nasıl gerçekleştirilebileceğine de değinmiş olduk.

Bana aşağıdaki Linkedin adresim üzerinden ulaşabilirsiniz. Bir sonraki blog yazısında görüşmek dileğiyle, sağlıklı ve huzurlu günler dilerim.

Batuhan Güney Linkedin

Kaynakça

  • Aryan, Abi. (2024). What Is LLMOps? O’Reilly Media, Inc.
  • Chen, T. (2024, March). Challenges and Opportunities in Integrating LLMs into Continuous Integration/Continuous Deployment (CI/CD) Pipelines. In 2024 5th International Seminar on Artificial Intelligence, Networking and Information Technology (AINIT) (pp. 364–367). IEEE.
  • Deza, Alfredo. (2024). Azure LLMOps. Pragmatic AI Labs.
  • Doan, Ryan. (2024). Essential Guide to LLMOps. Packt Publishing.
  • Huang, K., Manral, V., & Wang, W. (2024). From LLMOps to DevSecOps for GenAI. In Generative AI Security: Theories and Practices (pp. 241–269). Cham: Springer Nature Switzerland.
  • Kulkarni, A., Shivananda, A., Kulkarni, A., & Gudivada, D. (2023). Applied Generative AI for Beginners. Apress, Berkeley, CA.
  • Knobbout, Max. (2024) LLMOps Concepts. Datacamp
  • LLMOps Workshop, Microsoft Azure,2024, https://microsoft.github.io/llmops-workshop/
  • Schillaci, Z. (2024). LLM Adoption Trends and Associated Risks. In Large Language Models in Cybersecurity: Threats, Exposure and Mitigation (pp. 121–128). Cham: Springer Nature Switzerland.
  • Shan, R., & Shan, T. (2024, June). Enterprise LLMOps: Advancing Large Language Models Operations Practice. In 2024 IEEE Cloud Summit (pp. 143–148). IEEE.
  • Williams, Kesha. (2024) What is LLMOps, and how is it different from MLOps? Pluralsight.

--

--