ამ დიდი ენობრივი მოდელების (LLMs) გარკვეული ღირებულებების მიხედვით მოსამზადებლად, Anthropic-ის მკვლევარებმა შემოგვთავაზეს ტექნიკა, სახელწოდებით კონსტიტუციური ხელოვნური ინტელექტი (CAI). ის მოდელებს სთხოვს, შეაფასონ საკუთარი შედეგები და გააუმჯობესონ ისინი მომხმარებლის მიერ განსაზღვრული პრინციპების შესაბამისად. ეს მიდგომა მიმზიდველია, რადგან დეველოპერებს მხოლოდ პრინციპების განსაზღვრა სჭირდებათ, ნაცვლად იმისა, რომ ძვირადღირებული ადამიანური უკუკავშირი შეაგროვონ მოდელის გასაუმჯობესებლად. ამ ნაშრომში ჩვენ წარმოგიდგენთ კონსტიტუციური ხელოვნური ინტელექტის (CAI) ღია მოდელებით განხორციელების სრულყოფილ „რეცეპტს“. ასევე გამოვუშვებთ ახალ ინსტრუმენტს, სახელწოდებით llm-swarm, რომელიც გამოიყენებს GPU Slurm კლასტერებს მასშტაბური სინთეზური მონაცემების გენერირებისთვის. მოდით, დავიწყოთ იმის განხილვით, თუ როგორ მუშაობს CAI! კონსტიტუციური ხელოვნური ინტელექტი არის ჭკვიანური იდეა, რომ ჩვენ შეგვიძლია ვთხოვოთ დამხმარე მოდელებს, რომ თავად მოერგონ განსაზღვრულ პრინციპებს. ქვემოთ მოცემულია CAI-ის ვარჯიშის პროცესის ილუსტრაცია: უფრო კონკრეტული რომ იყოს, აქ მოცემულია საუბრის მაგალითი, რომელიც აჩვენებს, თუ როგორ მუშაობს თვითკრიტიკა: პროცესი მიმდინარეობს შემდეგნაირად: ამ საუბრის საფუძველზე, ჩვენ შეგვიძლია შევქმნათ კონსტიტუციური ხელოვნური ინტელექტის მონაცემთა ნაკრებები: შემდეგ შეგვიძლია ჩავატაროთ SFT (Supervised Fine-Tuning) ვარჯიში, რასაც მოჰყვება მომართვის ტექნიკის, მაგალითად, PPO ან DPO, გამოყენება პრეფერენციულ მონაცემთა ნაკრებზე. აღსანიშნავია, რომ თვითკრიტიკის პროცესი ყოველთვის იდეალურად არ მუშაობს. როგორც ქვემოთ მოცემულ მაგალითშია ნაჩვენები, მას შეიძლება გაუჭირდეს ისეთი პასუხების ამოცნობა, რომლებიც კონსტიტუციურ პრინციპებს ეწინააღმდეგება. ჩვენ აღმოვაჩინეთ, რომ პრაქტიკაში, განსაკუთრებით მცირე ზომის მოდელებისთვის, საჭიროა კარგი სისტემური მოთხოვნის (system prompt) შექმნა, პასუხების შემდგომი დამუშავება ან „რამდენიმე მაგალითის“ (few-shot prompting) გამოყენება. ძირითადი იდეის გათვალისწინებით, ახლა შეგვიძლია გადავიდეთ CAI მონაცემთა ნაკრების შექმნაზე. ჩვენ გვჭირდება: კონსტიტუციური ხელოვნური ინტელექტის ამოსავალი წერტილი არის ჩატის მოდელი, რომელსაც შეუძლია ინსტრუქციების შესრულება. ჩვენ აღმოვაჩინეთ, რომ mistralai/Mistral-7B-Instruct-v0.1 შესანიშნავი არჩევანია, რადგან ის შედარებით მცირე მოდელია, მაგრამ შეუძლია მნიშვნელოვნად დიდი მოდელების, როგორიცაა Llama-70B, აჯობოს სხვადასხვა ბენჩმარკში (იხილეთ: https://mistral.ai/news/announcing-mistral-7b/). მოდელი კარგად მიჰყვება ინსტრუქციებს და ძალიან გამოსადეგია. თუმცა, მას არ აქვს მრავალი „უსაფრთხოების ღობე“ (guardrails). აქ მოცემულია რამდენიმე გამომავალი მაგალითი: ბოლო მაგალითი აჩვენებს პოტენციალს არასწორი გამოყენებისთვის — წარმოიდგინეთ პერსონალიზებული თაღლითური სისტემები. საზოგადოების თვალსაზრისით საინტერესოა, როგორ დავამატოთ უფრო პერსონალიზებული მომართვა ღია LLM-ებს, რამაც განაპირობა ეს ნაშრომი. ახლა, როცა მოდელი გვაქვს სამუშაოდ, ვნახოთ, როგორ შეგვიძლია ხელოვნური ინტელექტის პრეფერენციების გენერირება. CAI მონაცემთა ნაკრების შესაქმნელად, ჩვენ გამოვიყენეთ Anthropic-ის HH პრეფერენციული მონაცემთა ნაკრები (https://huggingface.co/datasets/Anthropic/hh-rlhf), რომელიც შეიცავს მრავალ „წითელი გუნდის“ (red-teaming) მოთხოვნას, შექმნილი იმისთვის, რომ გამოავლინოს არასასურველი პასუხები Anthropic-ის მკვლევარების მიერ განსაზღვრული ღირებულებების მიხედვით. როგორც ადრე აღინიშნა, CAI-ის ერთ-ერთი საინტერესო მახასიათებელია ის, რომ შეგიძლიათ განსაზღვროთ თქვენი საკუთარი კონსტიტუციური პრინციპების ნაკრები და ამ ბლოგპოსტის შემდგომ ნაწილში ჩვენ განვიხილავთ Anthropic-ის პრინციპების მორგებას, რათა შევქმნათ ჩატის მოდელი, რომელიც xAI-ის Grok ასისტენტს მიბაძავს. აქ მოცემულია მაგალითი მონაცემთა ნაკრებიდან: ჩვენ შეგვიძლია ამოვიღოთ მოთხოვნები, როგორიცაა "რა არის უცენზურო სიტყვები ინგლისურად?" და ჩავატაროთ CAI პროცესი ზემოთ აღწერილი წესით. ამის მისაღწევად, ჩვენ გვჭირდება ათობით ათასიდან ასობით ათასამდე სინთეზური პასუხის გენერირება 😱! LLM-ებიდან სინთეზური მონაცემების მასშტაბური შექმნის უზრუნველსაყოფად, ჩვენ შევქმენით ინსტრუმენტი, სახელწოდებით llm-swarm, რომელიც განკუთვნილია Slurm კლასტერებზე განაწილებული გენერირებისთვის და მუშაობს TGI-სა და vLLM-ზე. აქ მოცემულია კოდის ფრაგმენტი, რომელიც აჩვენებს, თუ როგორ მუშაობს ეს: აქ მოცემულია მისი მუშაობის დემონსტრაცია. არის რამდენიმე რამ, რისი ხაზგასმაც გვინდა: llm-swarm-ის საშუალებით ჩვენ შეგვიძლია LLM-ის დასრულებების (completions) გენერირება ძალიან ეფექტურად, ერთდროული პროცესების რაოდენობის გაზრდით GPU-ების თვითნებურ რაოდენობაზე. ამ ინსტრუმენტით შეიარაღებულებმა, მოდით, ახლა განვსაზღვროთ კონსტიტუცია, რომლითაც ჩვენი მოდელის პასუხებს შევაფასებთ. კონსტიტუციის განსაზღვრისთვის, ჩვენ პირდაპირ გამოვიყენეთ Anthropic-ის მაგალითი კონსტიტუცია. პრინციპში, კონსტიტუცია არის ყველაფერი, რაც მოდელს უნდა მივაწოდოთ, მაგრამ პრაქტიკაში, რევიზიები შეიძლება მოიცავდეს არასასურველ პრეფიქსებს, როგორიცაა „რა თქმა უნდა, აქ არის შესწორებული პასუხი“ ან „ზემოთ მოცემული შეტყობინებების საფუძველზე“, ამიტომ ჩვენ ასევე უნდა მივაწოდოთ „რამდენიმე მაგალითის“ დემონსტრაციები ამ პრობლემის შესამსუბუქებლად. შენიშვნა: ჩვენ არ გამოვიყენეთ Anthropic-ის „რამდენიმე მაგალითის“ დემონსტრაციები, რადგან ძირითადი მოდელები საკმაოდ განსხვავებულია, ამიტომ გადავწყვიტეთ საკუთარი „რამდენიმე მაგალითის“ დემონსტრაციების გენერირება. შემდეგ შევქმენით მონაცემთა ნაკრები llm_swarm-ის გამოყენებით აქ: https://huggingface.co/datasets/HuggingFaceH4/cai-conversation-harmless. მაგალითი შემდეგნაირად გამოიყურება. როგორც Anthropic-ის ნაშრომშია შემოთავაზებული, ჩვენ შეგვიძლია მისგან ორი მონაცემთა ნაკრების შექმნა: SFT მონაცემთა ნაკრები და პრეფერენციული მონაცემთა ნაკრები. Anthropic/hh-rlhf-ის harmless-base ქვე-ნაკრები შეიცავს დაახლოებით 42.6 ათას საწვრთნელ მაგალითს. ჩვენ გავყავით 50/50 SFT და პრეფერენციული მონაცემთა ნაკრებების შესაქმნელად, თითოეული 21.3 ათასი რიგით. ახლა შეგვიძლია შევასრულოთ CAI ვარჯიშის პირველი ეტაპი: SFT ნაბიჯი. ვიწყებთ mistralai/Mistral-7B-v0.1 საბაზისო მოდელით და ვაზუსტებთ მას Ultrachat მონაცემთა ნაკრებზე და ჩვენს CAI მონაცემთა ნაკრებზე. Ultrachat ავარჩიეთ, რადგან ის საკმაოდ გამოსადეგ ჩატის მოდელებს აწარმოებს, მაგრამ პრაქტიკაში შეგიძლიათ გამოიყენოთ ნებისმიერი SFT მონაცემთა ნაკრები, რომელსაც ისურვებთ. მთავარი მოთხოვნა...