ამ LLM-ების გარკვეული ღირებულებების მიხედვით გასასწორებლად, Anthropic-ის მკვლევრებმა შემოგვთავაზეს ტექნიკა, სახელწოდებით კონსტიტუციური ხელოვნური ინტელექტი (CAI), რომელიც მოდელებს სთხოვს, შეაფასონ საკუთარი გამომუშავება და გაუმჯობესდნენ მომხმარებლის მიერ განსაზღვრული პრინციპების შესაბამისად. ეს მიდგომა ამაღელვებელია, რადგან პრაქტიკოსებს მხოლოდ პრინციპების განსაზღვრა სჭირდებათ და არა ძვირადღირებული ადამიანური უკუკავშირის შეგროვება მოდელის გასაუმჯობესებლად. ამ ნაშრომში ჩვენ წარმოგიდგენთ კონსტიტუციური AI-ის სრულყოფილ რეცეპტს ღია მოდელებით განსახორციელებლად. ასევე ვუშვებთ ახალ ინსტრუმენტს, სახელწოდებით „llm-swarm“, რათა გამოვიყენოთ GPU Slurm კლასტერები სკალირებადი სინთეზური მონაცემების გენერაციისთვის. მოდით, დავიწყოთ იმის განხილვით, თუ როგორ მუშაობს CAI! კონსტიტუციური ხელოვნური ინტელექტი არის ჭკვიანური იდეა, რომლის მიხედვითაც შეგვიძლია სთხოვოთ დამხმარე მოდელებს, თავად გაასწორონ საკუთარი თავი. (ორიგინალში მოყვანილია CAI-ის წვრთნის პროცესის ილუსტრაცია). უფრო კონკრეტულად რომ ავხსნათ, (ორიგინალში მოყვანილია საუბრის მაგალითი, რომელიც აჩვენებს თვითშეფასების მუშაობას). პროცესი შემდეგნაირად მიმდინარეობს: მოცემული საუბრის საფუძველზე, შესაძლებელია კონსტიტუციური AI მონაცემთა ნაკრებების შექმნა. ამის შემდეგ შეგვიძლია ჩავატაროთ SFT წვრთნა, რასაც მოჰყვება გასწორების ტექნიკის, როგორიცაა PPO ან DPO, გამოყენება პრეფერენციულ მონაცემთა ნაკრებზე. აღსანიშნავია, რომ თვითშეფასების პროცესი ყოველთვის იდეალურად არ მუშაობს. (ორიგინალში მოყვანილი მაგალითის მიხედვით), მას შეიძლება გაუჭირდეს ისეთი პასუხების გამოვლენა, რომლებიც ეწინააღმდეგება კონსტიტუციურ პრინციპებს. პრაქტიკაში, ჩვენ აღმოვაჩინეთ, რომ საჭიროა კარგი სისტემური მითითებების (prompt) შემუშავება, პასუხების შემდგომი დამუშავება ან „few-shot“ მითითებების გამოყენება, განსაკუთრებით მცირე მოდელებისთვის. ამ ძირითადი იდეის გათვალისწინებით, შეგვიძლია გადავიდეთ CAI მონაცემთა ნაკრების შექმნაზე. კონსტიტუციური AI-ის საწყისი წერტილი არის ჩატის მოდელი, რომელსაც შეუძლია ინსტრუქციების შესრულება. ჩვენ აღმოვაჩინეთ `mistralai/Mistral-7B-Instruct-v0.1`, როგორც შესანიშნავი არჩევანი, რადგან ის შედარებით მცირე მოდელია, მაგრამ შეუძლია აჯობოს ბევრად უფრო დიდ მოდელებს, როგორიცაა `Llama-70B`, სხვადასხვა ბენჩმარკში (https://mistral.ai/news/announcing-mistral-7b/). მოდელი კარგად მიჰყვება ინსტრუქციებს და ძალიან გამოსადეგია. თუმცა, მას არ აქვს ბევრი დამცავი მექანიზმი. (ორიგინალში მოყვანილია რამდენიმე მაგალითი გამომავალი ინფორმაციის). ბოლო მაგალითი გვიჩვენებს ბოროტად გამოყენების პოტენციალს – წარმოიდგინეთ პერსონალიზებული თაღლითური სისტემები. საინტერესოა საზოგადოებისთვის, თუ როგორ შეიძლება ღია LLM-ებისთვის მეტი პერსონალიზებული გასწორების დამატება, რამაც მოტივაცია მისცა ამ ნაშრომს. ახლა, როდესაც გვაქვს სამუშაო მოდელი, მოდით განვიხილოთ, როგორ შეგვიძლია ხელოვნური ინტელექტის პრეფერენციების გენერირება. CAI მონაცემთა ნაკრების გენერირებისთვის, ჩვენ გამოვიყენეთ Anthropic-ის HH პრეფერენციული მონაცემთა ნაკრები (https://huggingface.co/datasets/Anthropic/hh-rlhf), რომელიც შეიცავს მრავალ „red-teaming“ მითითებას, რომლებიც შექმნილია არასასურველი პასუხების გამოსაწვევად Anthropic-ის მკვლევრების მიერ განსაზღვრული ღირებულებების მიხედვით. როგორც ადრე აღინიშნა, CAI-ის ერთ-ერთი გამორჩეული თვისებაა ის, რომ შეგიძლიათ განსაზღვროთ თქვენი კონსტიტუციური პრინციპების საკუთარი ნაკრები, ხოლო მოგვიანებით ამ ბლოგპოსტში განვიხილავთ Anthropic-ის ვარიანტის შეცვლას, რათა შეიქმნას ჩატის მოდელი, რომელიც მიბაძავს xAI-ის Grok ასისტენტს. (ორიგინალში მოყვანილია მაგალითი მონაცემთა ნაკრებიდან). ჩვენ შეგვიძლია ამოვიღოთ მითითებები, როგორიცაა „What are some cuss words in english?“, და შევასრულოთ CAI პროცესი ზემოთ აღწერილი წესით. ამის მისაღწევად, თუმცა, გვჭირდება გზა ათიათასობით ან ასიათასობით სინთეზური პასუხის გენერირებისთვის! LLM-ებიდან სინთეზური მონაცემების მასშტაბურად შექმნის შესაძლებლობისთვის, ჩვენ შევქმენით ინსტრუმენტი სახელად „llm-swarm“, რომელიც შექმნილია Slurm კლასტერებზე განაწილებული გენერაციისთვის და მუშაობს TGI და vLLM-ის მეშვეობით. (ორიგინალში მოყვანილია კოდის ნაწილი, რომელიც აჩვენებს მის მუშაობას, და დემო გაშვების ამსახველი ვიდეო). რამდენიმე რამ გვინდა გამოვყოთ: „llm-swarm“-ის დახმარებით შეგვიძლია LLM-ის შევსებების ძალიან ეფექტურად გენერირება, კონკურენტული პროცესების რაოდენობის გაზრდით GPU-ების თვითნებური რაოდენობის მასშტაბით. ამ ინსტრუმენტით შეიარაღებულნი, ახლა განვსაზღვროთ კონსტიტუცია, რომლითაც შევაფასებთ ჩვენი მოდელის პასუხებს. კონსტიტუციის განსაზღვრისთვის, ჩვენ პირდაპირ გამოვიყენეთ Anthropic-ის სამაგალითო კონსტიტუცია. პრინციპში, კონსტიტუცია არის ყველაფერი, რაც მოდელს უნდა მივაწოდოთ, მაგრამ პრაქტიკაში, რევიზიებმა შეიძლება მოიცვას არასასურველი პრეფიქსები, როგორიცაა „რა თქმა უნდა, აი, შესწორებული პასუხი“ ან „ზემოთ მოცემული შეტყობინებების საფუძველზე“, ამიტომ ასევე საჭიროა „few-shot“ დემონსტრაციების მიწოდება ამ საკითხის შესამსუბუქებლად. შენიშვნა: ჩვენ არ გამოგვიყენებია Anthropic-ის „few-shot“ დემონსტრაციები, რადგან ძირითადი მოდელები საკმაოდ განსხვავებულია, ამიტომ გადავწყვიტეთ შეგვექმნა ჩვენი საკუთარი „few-shot“ დემონსტრაციები. ამის შემდეგ, მონაცემთა ნაკრები გენერირებულ იქნა `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 მონაცემთა ნაკრები. (ტექსტი აქ წყდება, მაგრამ ძირითადი იდეა გადმოცემულია).