Bir fincan Starbucks ve iki saatlik zamanınız karşılığında, kendi eğitimli açık kaynaklı büyük ölçekli modelinize sahip olabilirsiniz. Model, tıp, programlama , hisse senedi alım satımı ve aşk tavsiyesi gibi çeşitli becerileri geliştirmek için farklı eğitim verileri yönlerine göre ince ayar yapılabilir ve böylece büyük ölçekli modelinizin sizi daha "anlayışlı" hale gelmesi sağlanır. Açık kaynaklı DolphinScheduler tarafından desteklenen, açık kaynaklı, büyük ölçekli bir modeli eğitmeyi deneyelim!
ChatGPT'nin doğuşu şüphesiz bizi yapay zekanın geleceğine dair beklentiyle doldurdu. Gelişmiş ifadesi ve güçlü dil anlama yeteneği dünyayı hayrete düşürdü. Ancak ChatGPT, Hizmet Olarak Yazılım (SaaS) olarak sunulduğundan, kişisel gizlilik sızıntıları ve kurumsal veri güvenliği sorunları her kullanıcı ve şirket için endişe vericidir. Giderek daha fazla açık kaynaklı büyük ölçekli modeller ortaya çıkıyor ve bu da bireylerin ve şirketlerin kendi modellerine sahip olmalarını mümkün kılıyor. Ancak açık kaynaklı büyük ölçekli modellere başlama, bunları optimize etme ve kullanmanın giriş engelleri yüksektir ve bu da herkesin bunları kolayca kullanmasını zorlaştırır. Bu sorunu çözmek için açık kaynaklı büyük ölçekli modellerin eğitimi, ayarlanması ve dağıtımı için tek tıklamayla destek sağlayan Apache DolphinScheduler'ı kullanıyoruz. Bu, herkesin verilerini kullanarak kendi büyük ölçekli modellerini çok düşük maliyetle ve teknik uzmanlıkla eğitmesine olanak tanır.
Amacımız yalnızca profesyonel yapay zeka mühendislerinin değil, GPT'ye ilgi duyan herkesin kendilerini daha iyi "anlayan" bir modele sahip olmanın mutluluğunu yaşamasıdır. Herkesin kendi yapay zeka asistanını şekillendirme hakkına ve yeteneğine sahip olduğuna inanıyoruz. Apache DolphinScheduler'ın sezgisel iş akışı bunu mümkün kılar. Bonus olarak Apache DolphinScheduler, GitHub'da 10.000'den fazla yıldıza sahip bir büyük veri ve yapay zeka planlama aracıdır. Apache Yazılım Vakfı kapsamında üst düzey bir projedir; bu, onu ücretsiz olarak kullanabileceğiniz ve herhangi bir ticari sorun hakkında endişelenmeden kodu değiştirebileceğiniz anlamına gelir.
İster kendi verilerinizle bir model eğitmek isteyen bir sektör uzmanı olun, ister derin öğrenme modellerinin eğitimini anlamak ve keşfetmek isteyen bir yapay zeka meraklısı olun, iş akışımız sizin için uygun hizmetler sağlayacaktır. Karmaşık ön işleme, model eğitimi ve optimizasyon adımlarını çözer ve daha "anlaşılır" bir ChatGPT büyük ölçekli modeli oluşturmak için yalnızca 1-2 saatlik basit işlemlere ek olarak 20 saatlik çalışma süresi gerektirir.
Öyleyse bu büyülü yolculuğa başlayalım! Yapay zekanın geleceğini herkese taşıyalım.
Öncelikle 3090 ekran kartına ihtiyacınız var. Masaüstü bilgisayarınız varsa doğrudan kullanabilirsiniz. Değilse, çevrimiçi olarak GPU'lu kiralık birçok ana bilgisayar vardır. Burada örnek olarak AutoDL'yi kullanıyoruz. https://www.autodl.com/home adresini açın, kaydolun ve oturum açın. Bundan sonra, ekranda gösterilen 1, 2 ve 3. adımlara göre bilgi işlem gücü pazarındaki ilgili sunucuyu seçebilirsiniz.
Burada yüksek maliyet-performans oranı sunan RTX 3090 ekran kartının tercih edilmesi öneriliyor. Test sonrasında RTX 3090'ı bir veya iki kişinin çevrimiçi görevler için kullanabileceği tespit edildi. Daha hızlı eğitim ve yanıt hızları istiyorsanız daha güçlü bir grafik kartını tercih edebilirsiniz. Eğitim bir kez yaklaşık 20 saat sürerken test yaklaşık 2-3 saat gerektirir. 40 yuan'lık bir bütçeyle bunu kolayca halledebilirsiniz.
Topluluk aynasına tıklayın ve ardından aşağıdaki kırmızı kutuya WhaleOps/dolphinscheduler-llm/dolphinscheduler-llm-0521
girin. Görüntüyü aşağıda gösterildiği gibi seçebilirsiniz. Şu anda yalnızca V1 sürümü mevcuttur. Gelecekte yeni sürümler yayınlandıkça en son sürümü seçebilirsiniz.
Modeli birden fazla kez eğitmeniz gerekiyorsa sabit disk kapasitesini 100 GB civarına çıkarmanız önerilir.
Oluşturduktan sonra aşağıdaki resimde gösterilen ilerleme çubuğunun tamamlanmasını bekleyin.
Kendi açık kaynaklı büyük ölçekli modelinizi arayüzde dağıtmak ve hata ayıklamak için DolphinScheduler yazılımını başlatmanız gerekir ve aşağıdaki yapılandırma çalışmasını yapmamız gerekir:
İki yöntem mevcuttur. Tercihinize uygun olanı seçebilirsiniz:
Aşağıda gösterilen JupyterLab düğmesine tıklayın.
Sayfa JupyterLab'a yönlendirilecektir; oradan giriş yapmak için “Terminal”e tıklayabilirsiniz.
2. Terminal aracılığıyla giriş yapın (kodlayıcılar için):
Aşağıdaki görseldeki butondan SSH bağlantı komutunu alabiliriz.
Daha sonra terminal üzerinden bağlantıyı kurun.
DolphinScheduler'da, iş akışı tanımları, ortam yapılandırmaları, kiracı bilgileri vb. dahil olmak üzere tüm meta veriler veritabanında depolanır. DolphinScheduler başlatıldığında kullanıcıların bu iş akışlarını görmesini kolaylaştırmak için önceden tanımlanmış iş akışı meta verilerini kopyalayarak doğrudan içe aktarabiliriz. ekrandan.
Terminali kullanarak aşağıdaki dizine gidin:
cd apache-dolphinscheduler-3.1.5-bin
import_ds_metadata.sh
dosyasını açmak için vim import_ds_metadata.sh
komutunu çalıştırın. Dosyanın içeriği aşağıdaki gibidir:
Set variables
Hostname
HOST="xxx.xxx.xxx.x"
UsernameUSERNAME="root"PasswordPASSWORD="xxxx"PortPORT=3306Database to import intoDATABASE="ds315_llm_test"SQL filenameSQL_FILE="ds315_llm.sql"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD -e "CREATE DATABASE $DATABASE;"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD $DATABASE < $SQL_FILE
Xxxx.xxx.xxx.x ve xxxx'i genel ağınızdaki MySQL veritabanının ilgili yapılandırma değerleriyle değiştirin (Alibaba Cloud, Tencent Cloud'da bir tane için başvurabilir veya kendiniz yükleyebilirsiniz). Ardından şunu yürütün:
bash import_ds_metadata.sh
Yürütmeden sonra, eğer ilgileniyorsanız, veritabanındaki ilgili meta verileri kontrol edebilirsiniz (MySQL'e bağlanın ve görüntüleyin, koda aşina değilseniz bu adımı atlayın).
Sunucu komut satırında aşağıdaki dosyayı açın ve DolphinScheduler'ı önceden içe aktarılan veritabanına bağlamak için yapılandırmayı değiştirin:
/root/apache-dolphinscheduler-3.1.5-bin/bin/env/dolphinscheduler_env.sh
Veritabanı bölümünde ilgili konfigürasyonu değiştirin ve diğer bölümleri değiştirmeden bırakın. 'HOST' ve 'PASSWORD' değerlerini içe aktarılan veritabanının yapılandırma değerleriyle değiştirin, yani xxx.xxx.xxx.x ve xxxx:
export DATABASE=mysqlexport SPRING_PROFILES_ACTIVE=${DATABASE}export SPRING_DATASOURCE_URL="jdbc:mysql://HOST:3306/ds315_llm_test?useUnicode=true&characterEncoding=UTF-8&useSSL=false"export SPRING_DATASOURCE_USERNAME="root"export SPRING_DATASOURCE_PASSWORD="xxxxxx"......
Yapılandırdıktan sonra çalıştırın (ayrıca bu dizinde /root/Apache-dolphinscheduler-3.1.5-bin):
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
Çalıştırıldıktan sonra tail -200f standalone-server/logs/dolphinscheduler-standalone.log
kullanarak günlükleri kontrol edebiliriz. Bu noktada DolphinScheduler resmi olarak başlatıldı!
Hizmeti başlattıktan sonra, bir URL'ye yönlendirilmek için AutoDL konsolunda (kırmızıyla vurgulanmış) “Özel Hizmetler” e tıklayabiliriz:
URL'yi açtığınızda 404 hatası gösteriyorsa endişelenmeyin. URL'ye /dolphinscheduler/ui sonekini eklemeniz yeterli:
AutoDL modülü 6006 numaralı bağlantı noktasını açar. DolphinScheduler'ın bağlantı noktasını 6006 olarak yapılandırdıktan sonra, sağlanan giriş noktası aracılığıyla ona erişebilirsiniz. Ancak URL yönlendirmesi nedeniyle 404 hatasıyla karşılaşabilirsiniz. Bu gibi durumlarda URL'yi manuel olarak doldurmanız gerekir.
Kullanıcı adı: admin
Şifre: dolphinscheduler123
Giriş yaptıktan sonra “Proje Yönetimi” butonuna tıklayarak önceden tanımlanmış “vicuna” isimli projeyi görebilirsiniz. Projeye girmek için “vicuna”ya tıklayın.
Vicuna projesine girdiğinizde üç iş akışı göreceksiniz: Eğitim, Dağıtım ve Kill_Service. Gelin bunların kullanımlarını, büyük modellerin nasıl yapılandırılacağını ve verilerinizin nasıl eğitileceğini inceleyelim.
İlgili iş akışlarını yürütmek için aşağıdaki çalıştır düğmesine tıklayabilirsiniz.
Eğitim iş akışına tıkladığınızda iki tanım göreceksiniz. Bunlardan biri, Lora aracılığıyla modele ince ayar yapmak içindir (esas olarak alpaca-lora, https://github.com/tloen/alpaca-lora kullanarak), diğeri ise eğitilen modeli temel modelle birleştirerek nihai modeli elde etmektir. .
Büyük modellerin dağıtımına yönelik iş akışı (temel olarak FastChat, https://github.com/lm-sys/FastChat kullanılarak). Dağıtılan modeli sonlandırmak için önce kill_service'i çağıracak, ardından sırayla denetleyiciyi başlatacak, modeli ekleyecek ve ardından Gradio web hizmetini açacak.
Başlangıç parametreleri aşağıdaki gibidir:
Bu iş akışı, dağıtılan modeli sonlandırmak ve GPU belleğini serbest bırakmak için kullanılır. Bu iş akışının hiçbir parametresi yoktur ve onu doğrudan çalıştırabilirsiniz. Dağıtılan hizmeti durdurmanız gerekirse (örneğin, modeli yeniden eğitmeniz gerektiğinde veya GPU belleği yetersiz olduğunda), dağıtılan hizmeti sonlandırmak için doğrudan kill_service iş akışını yürütebilirsiniz.
Birkaç örnek üzerinden geçtikten sonra dağıtımınız tamamlanacaktır. Şimdi pratik işlemlere bir göz atalım:
Eğitim iş akışını yürüterek ve varsayılan parametreleri seçerek iş akışını doğrudan başlatın.
Günlükleri aşağıda gösterildiği gibi görüntülemek için ilgili göreve sağ tıklayın:
Görev durumunu ve günlüklerini kenar çubuğunun sol alt kısmındaki görev örneği panelinde de görüntüleyebilirsiniz. Eğitim süreci sırasında mevcut eğitim adımları, kayıp ölçümleri, kalan süre vb. dahil olmak üzere günlükleri kontrol ederek ilerlemeyi izleyebilirsiniz. Geçerli adımı gösteren bir ilerleme çubuğu vardır; burada adım = (veri boyutu * dönem) / toplu boyut.
Varsayılan verilerimiz /root/demo-data/llama_data.json
konumundadır. Mevcut veri kaynağı, Çin tıbbi verileri kullanılarak hassas şekilde ayarlanmış bir tıbbi model olan Huatuo'dur. Evet örneğimiz aile hekimi yetiştirmek:
Belirli bir alanda verileriniz varsa kendi verilerinizi işaret edebilirsiniz, veri formatı aşağıdaki gibidir:
Örneğin:
{"instruction": "calculation", "input": "1+1 equals?", "output": "2"}
Talimat ve giriş alanlarını tek bir talimat alanında birleştirebileceğinizi lütfen unutmayın. Giriş alanı boş da bırakılabilir.
Eğitim sırasında, kendi verilerinizi yürütmek için data_path parametresini değiştirin.
Not:
İlk eğitim uygulaması sırasında temel model, TheBloke/vicuna-7B-1.1-HF gibi belirtilen konumdan getirilecektir. Bir indirme işlemi olacaktır, bu nedenle lütfen indirme işleminin tamamlanmasını bekleyin. Bu modelin seçimi kullanıcı tarafından belirlenir ve ayrıca diğer açık kaynaklı büyük modelleri de indirmeyi seçebilirsiniz (lütfen bunları kullanırken ilgili lisanslara uyun).
Ağ sorunları nedeniyle temel model indirme işlemi, ilk eğitim uygulamasının yarısında başarısız olabilir. Bu gibi durumlarda başarısız olan göreve tıklayabilir ve eğitime devam etmek için onu yeniden çalıştırmayı seçebilirsiniz. İşlem aşağıda gösterilmiştir:
Eğitimi durdurmak için, eğitim için kullanılan GPU belleğini serbest bırakacak olan durdur düğmesine tıklayabilirsiniz.
İş akışı tanımı sayfasında, çalıştırmak ve modeli dağıtmak için dağıtma iş akışına tıklayın.
Kendi modelinizi eğitmediyseniz aşağıdaki resimde gösterildiği gibi vicuna-7b
modelini dağıtmak için dağıtım iş akışını TheBloke/vicuna-7B-1.1-HF varsayılan parametreleriyle yürütebilirsiniz:
Önceki adımda bir model eğittiyseniz artık modelinizi dağıtabilirsiniz. Dağıtımdan sonra kendi büyük modelinizi deneyimleyebilirsiniz. Önceki adımdaki modelin output_path
doldurmanız gereken başlangıç parametreleri aşağıdaki gibidir:
Sonra konuşlandırılan iş akışı örneğine girelim. İş akışı örneğine tıklayın ve ardından "dağıt" önekiyle iş akışı örneğine tıklayın.
Görev günlüklerini görüntülemek ve büyük model bağlantımızın konumunu bulmak için sağ tıklayın ve “refresh_gradio_web_service” seçeneğini seçin.
İşlem aşağıda gösterilmiştir:
Günlüklerde herkese açık olarak erişilebilen bir bağlantı bulacaksınız, örneğin:
İşte iki bağlantı. 0.0.0.0:7860
bağlantısına erişilemiyor çünkü AutoDL yalnızca zaten dolphinscheduler için kullanılan 6006 numaralı bağlantı noktasını açıyor. Aşağıdaki [https://81c9f6ce11eb3c37a4.gradio.live.](https://81c9f6ce11eb3c37a4.gradio.live.)
gibi bağlantıya doğrudan erişebilirsiniz.
Lütfen bu bağlantının her dağıtım yaptığınızda değişebileceğini, dolayısıyla onu günlüklerden tekrar bulmanız gerektiğini unutmayın.
Bağlantıya girdiğinizde kendi ChatGPT'nizin konuşma sayfasını göreceksiniz!
Evet! Artık kendi ChatGPT'niz var ve verileri yalnızca size hizmet ediyor!
Ve yalnızca bir fincan kahvenin maliyetinden daha azını harcadınız~~
Devam edin ve kendi özel ChatGPT'nizi deneyimleyin!
Bu veri odaklı ve teknoloji odaklı dünyada, özel bir ChatGPT modeline sahip olmak ölçülemez bir değere sahiptir. Yapay zeka ve derin öğrenmenin gelişmesiyle birlikte kişiselleştirilmiş yapay zeka asistanlarının şekillendirilebildiği bir çağdayız. Kendi ChatGPT modelinizi eğitmek ve dağıtmak, yapay zekayı ve onun dünyamızı nasıl dönüştürdüğünü daha iyi anlamamıza yardımcı olabilir.
Özetle, bir ChatGPT modelini kendi başınıza eğitmek ve dağıtmak, veri güvenliğini ve gizliliğini korumanıza, belirli iş gereksinimlerini karşılamanıza, teknoloji maliyetlerinden tasarruf etmenize ve DolphinScheduler gibi iş akışı araçlarını kullanarak eğitim sürecini otomatikleştirmenize yardımcı olabilir. Ayrıca yerel yasa ve düzenlemelere uymanıza da olanak tanır. Bu nedenle, bir ChatGPT modelini kendi başınıza eğitmek ve dağıtmak, dikkate alınması gereken değerli bir seçenektir.
Burada da yayınlandı.