Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(Cookbook): Add Turkish translation for agent data analyst notebook #219

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion notebooks/tr/_toctree.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,8 @@
- local: semantic_segmentation_fine_tuning_inference
title: Özel Bir Veri Seti Üzerinde Anlamsal Segmentasyon Modeli Fine-Tuning ve Inference API Üzerinden Kullanımı


- title: Ajan Uygulamaları
isExpanded: false
sections:
- local: agent_data_analyst
title: Veri Analizi Ajanı - Göz açıp kapayıncaya kadar verilerinizi analiz edin ✨
267 changes: 267 additions & 0 deletions notebooks/tr/agent_data_analyst.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,267 @@
{
Copy link
Collaborator

@merveenoyan merveenoyan Oct 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ajan desek daha doğru olur, bot diyince chatbot çağrışımı yapıyor, bir de agent yerine ajan yazabiliriz kalan her yerde tutarlılık adına

Dataframelerden -> dataframe'lerden*


Reply via ReviewNB

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ajan olarak bilerek çok çevirmek istemedim biraz tuhaf geldi açıkçası assistan olarak düşündüm ama acaba her yerde agent olarak mı bıraksak?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ajan en doğrusu bence tam altını doldurduğu için
asistanın kapsamı daha geniş

"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"# Veri Analizi Ajanı: Göz açıp kapayıncaya kadar verilerinizi analiz edin ✨\n",
"Yazar: [Aymeric Roucher](https://huggingface.co/m-ric)\n",
"\n",
"Bu eğitim ileri düzey konular içermektedir. Bu eğitim içeriğinden önce Cookbook'ta yer alan [Ajan eğitimine](https://github.com/huggingface/cookbook/blob/main/notebooks/en/agents.ipynb) bakmanızı öneririz.\n",
"\n",
"Bu notebook ile bir veri analisti ajanı oluşturacağız: Veri analizi kütüphaneleri ile donatılmış ve Dataframelerden sonuçlar çıkartabilen ve bu sonuçları grafiklerle gösterebilen bir ajan.\n",
"\n",
"[Kaggle Titanic yarışmasındaki](https://www.kaggle.com/competitions/titanic) verileri analiz ederek yolcuların hayatta kalma olasılıklarını tahmin etmek istediğimizi düşünelim.\n",
"\n",
"Ama bu konuya başlamadan önce, otomatik bir ajanın trendleri çıkararak ve bazı grafikler çizerek analiz hazırlamasını istiyorum.\n",
"\n",
"Bu sistemi kuralım.\n",
"\n",
"Gerekli kütüphane gereksinimlerini yüklemek için aşağıdaki kodu çalıştıracağız:\n"
],
"metadata": {
"id": "pix5sPJeoiMA"
}
},
{
"cell_type": "code",
"source": [
"!pip install seaborn \"transformers[agents]\""
],
"metadata": {
"id": "zK7vGRYCojql"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"İlk olarak `ReactCodeAgent` kullanarak bir ajan oluşturacağız. (Ajan türleri hakkında daha fazla bilgi edinmek için bu [dökümantasyonu](https://huggingface.co/docs/transformers/en/agents) okuyabilirsiniz.)\n",
"\n",
"ReactCodeAgent kodu doğrudan çalıştırabilir dolayısı ile herhangi farklı bir araç kullanmamıza gerek yoktur.\n",
"\n",
"Veri bilimiyle ilgili kütüphaneleri kullanmasına izin verdiğimizden emin olmak için `[\"numpy\", \"pandas\", \"matplotlib.pyplot\", \"seaborn\"]` kütüphanelerini `\"additional_authorized_imports\"` parametresi ile aktarıyoruz.\n",
"\n",
"Python yorumlayıcısı yalnızca çalışma ortamında yüklü kütüphaneleri kullanabilir. Bu sebeple `\"additional_authorized_imports\"` parametresine aktardığımız kütüphanelerin çalışma ortamınızda kurulu olduğundan emin olun.\n",
"\n",
"⚙ Ajanımızı, `HfEngine` sınıfı aracılığıyla HF'nin Inference API'sini kullanan [meta-llama/Meta-Llama-3.1-70B-Instruct](https://huggingface.co/meta-llama/Llama-3.1-70B-Instruct) modeliyle çalıştıracağız. Inference API, herhangi bir açık kaynak modelini hızlı ve kolay bir şekilde çalıştırmamıza olanak tanır.\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n"
],
"metadata": {
"id": "ONR4fZmbrrnw"
}
},
{
"cell_type": "code",
"source": [
"from transformers.agents import HfEngine, ReactCodeAgent\n",
"from huggingface_hub import login\n",
"import os\n",
"\n",
"login(os.getenv(\"HUGGINGFACEHUB_API_TOKEN\"))\n",
"\n",
"llm_engine = HfEngine(\"meta-llama/Meta-Llama-3.1-70B-Instruct\")\n",
"\n",
"agent = ReactCodeAgent(\n",
" tools=[],\n",
" llm_engine=llm_engine,\n",
" additional_authorized_imports=[\"numpy\", \"pandas\", \"matplotlib.pyplot\", \"seaborn\"],\n",
" max_iterations=10,\n",
")"
],
"metadata": {
"id": "0zf6_TnHrdAk"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## Veri analizi 📊🤔\n",
"\n",
"Yarışmadan alınan notları fonksiyona argüman olarak verelim ve ajanımızı `run` methodu ile çalıştıralım."
],
"metadata": {
"id": "DPOHaLM18sIW"
}
},
{
"cell_type": "code",
"source": [
"import os\n",
"\n",
"os.mkdir(\"./figures\")"
],
"metadata": {
"id": "EC1R4pxvtheR"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"\"\"\"\n",
"## Değişken notları\n",
"pclass: Sosyo-ekonomik durumu (SES) temsil eden bir gösterge\n",
"1.sınıf = Üst\n",
"2.sınıf = Orta\n",
"3.sınıf = Alt\n",
"\n",
"age: Yaş, 1'den küçükse kesirli bir değerdir. Eğer yaş tahmin ediliyorsa, xx.5 şeklindedir.\n",
"\n",
"sibsp: Veri seti aile ilişkilerini şu şekilde tanımlar...\n",
"Kardeş = erkek kardeş, kız kardeş, üvey erkek kardeş, üvey kız kardeş, Eş = koca, karı (nişanlılar göz ardı edilmiştir)\n",
"\n",
"parch: Veri seti aile ilişkilerini şu şekilde tanımlar...\n",
"Ebeveyn = anne, baba, Çocuk = kız, oğul, üvey kız, üvey oğul\n",
"Bazı çocuklar yalnızca bir bakıcıyla seyahat ettikleri için, bu durumda parch=0'dır.\n",
"\"\"\"\n",
"additional_notes = \"\"\"\n",
"### Variable Notes\n",
"pclass: A proxy for socio-economic status (SES)\n",
"1st = Upper\n",
"2nd = Middle\n",
"3rd = Lower\n",
"age: Age is fractional if less than 1. If the age is estimated, is it in the form of xx.5\n",
"sibsp: The dataset defines family relations in this way...\n",
"Sibling = brother, sister, stepbrother, stepsister\n",
"Spouse = husband, wife (mistresses and fiancés were ignored)\n",
"parch: The dataset defines family relations in this way...\n",
"Parent = mother, father\n",
"Child = daughter, son, stepdaughter, stepson\n",
"Some children travelled only with a nanny, therefore parch=0 for them.\n",
"\"\"\"\n",
"\n",
"\"\"\"\n",
"Sen bir veri analizi uzmanısın.\n",
"Lütfen kaynak dosyasını yükle ve içeriğini analiz et.\n",
"Elindeki değişkenlere göre, bu verilerle ilgili sorulabilecek 3 ilginç soru listele, örneğin hayatta kalma oranlarıyla belirli korelasyonlar hakkında.\n",
"Sonra bu soruları, ilgili sayıları bularak teker teker yanıtla.\n",
"Bu arada, matplotlib/seaborn kullanarak bazı grafikler çiz ve bunları (zaten mevcut olan) './figures/' klasörüne kaydet: Her grafiği çizmeden önce plt.clf() ile temizlemeyi unutma.\n",
"\n",
"Sonuçlarınızda: bu korelasyonları ve trendleri özetleyin.\n",
"Her sayının ardından gerçek dünya içgörüleri çıkarın; örneğin: \"is_december ile boredness arasındaki korelasyon 1.3453'tür, bu da insanların kışın daha çok sıkıldığını gösterir.\"\n",
"Sonuçlarınız en az 3 numaralı ve ayrıntılı parça içermelidir.\n",
"\"\"\"\n",
"analysis = agent.run(\n",
" \"\"\"You are an expert data analyst.\n",
"Please load the source file and analyze its content.\n",
"According to the variables you have, begin by listing 3 interesting questions that could be asked on this data, for instance about specific correlations with survival rate.\n",
"Then answer these questions one by one, by finding the relevant numbers.\n",
"Meanwhile, plot some figures using matplotlib/seaborn and save them to the (already existing) folder './figures/': take care to clear each figure with plt.clf() before doing another plot.\n",
"\n",
"In your final answer: summarize these correlations and trends\n",
"After each number derive real worlds insights, for instance: \"Correlation between is_december and boredness is 1.3453, which suggest people are more bored in winter\".\n",
"Your final answer should have at least 3 numbered and detailed parts.\n",
"\"\"\",\n",
" additional_notes=additional_notes,\n",
" source_file=\"titanic/train.csv\",\n",
")"
],
"metadata": {
"id": "N_c5S8tm9BbJ"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"print(analysis)"
],
"metadata": {
"id": "WHRN66Yh9MOg"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Etkileyici, değil mi? Ajanınıza kendi grafiklerini gözden geçirmesi için bir görselleştirme aracı da sağlayabilirsiniz!\n",
"\n",
"## Veri bilimi ajanı: Tahminleri çalıştır 🛠️👉\n",
"**Modelimizin veriler üzerinde tahminler yapmasına izin vererek** bir adım daha ilerleyelim.\n",
"\n",
"Bunu yapmak için, `additional_authorized_imports` içinde `sklearn` kullanımına da izin veriyoruz."
],
"metadata": {
"id": "c7QrYCxR9aGE"
}
},
{
"cell_type": "code",
"source": [
"agent = ReactCodeAgent(\n",
" tools=[],\n",
" llm_engine=llm_engine,\n",
" additional_authorized_imports=[\n",
" \"numpy\",\n",
" \"pandas\",\n",
" \"matplotlib.pyplot\",\n",
" \"seaborn\",\n",
" \"sklearn\",\n",
" ],\n",
" max_iterations=12,\n",
")\n",
"\"\"\"\n",
"Sen bir ML uzmanısın.\n",
"Lütfen \"titanic/train.csv\" dosyası üzerinde hayatta kalmayı tahmin etmek için bir ML modeli eğit.\n",
"Sonuçları './output.csv' dosyasına yaz.\n",
"Kullanımdan önce fonksiyonları ve modülleri içe aktarmayı unutma!\n",
"\"\"\"\n",
"output = agent.run(\n",
" \"\"\"You are an expert machine learning engineer.\n",
"Please train a ML model on \"titanic/train.csv\" to predict the survival for rows of \"titanic/test.csv\".\n",
"Output the results under './output.csv'.\n",
"Take care to import functions and modules before using them!\n",
"\"\"\",\n",
" additional_notes=additional_notes + \"\\n\" + analysis,\n",
")"
],
"metadata": {
"id": "q2c7g4rr9yXH"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"Ajanımızın çıkardığı test çıktıları, Kaggle'a gönderildiğinde 0.78229 puan alıyor ve 17,360 sonuç arasından #2824 sıraya yerleşiyor.\n",
"\n",
"Bu sonuç, yazarın yıllar önce bu yarışmaya ilk girdiğinde elde ettiği sonuçtan çok daha iyi bir sonuçtur.\n",
"\n",
"Sonuçlarınız değişebilir, ancak yine de ajanın birkaç saniyede bu sonucu başarması gerçekten etkileyici.\n",
"\n",
"🚀 Veri analisti ajanı ile sadece basit bir deneme yaptık. Kullanım durumunuza daha iyi uyacak şekilde çok daha fazla geliştirebilirsiniz."
],
"metadata": {
"id": "DbkkLpf0-DQj"
}
}
]
}