Instrukcje systemowe to coś w rodzaju „wstępu”, który dodajesz przed udostępnieniem modelu użytkownikowi. Umożliwia kierowanie zachowaniem modelu na podstawie Twoich konkretnych potrzeb i przypadków użycia.
Wprowadzenie do instrukcji systemowych
Po ustawieniu instrukcji systemowej dajesz modelowi dodatkowy kontekst umożliwiający zrozumienie zadania, udzielanie bardziej spersonalizowanych odpowiedzi i przestrzeganie określonych wytycznych dotyczących całej interakcji użytkownika z modelem. W instrukcjach systemowych możesz określić zachowanie na poziomie usługi, oddzielnie od promptów wyświetlanych użytkownikom. Możesz na przykład podać rolę lub personę, informacje kontekstowe i instrukcje formatowania.
Instrukcje systemowe możesz wykorzystać na wiele sposobów, np.:
- definiowanie persony lub roli (np. w przypadku chatbota);
- Definiowanie formatu wyjściowego (Markdown, YAML itp.)
- definiowanie stylu i tonu danych wyjściowych (np. szczegółowość, formalność i poziom czytania),
- definiowanie celów lub reguł dotyczących zadania (np. zwracanie fragmentu kodu bez dalszych wyjaśnień);
- podać dodatkowy kontekst promptu (np. zakres wiedzy)
Gdy instrukcja systemu jest ustawiona, dotyczy ona całego żądania. Po uwzględnieniu w prompcie działa on w przypadku wielu próśb użytkowników i modeli. Chociaż instrukcje systemowe są oddzielone od treści promptu, nadal są częścią promptów ogólnych, dlatego podlegają standardowym zasadom dotyczącym wykorzystania danych.
Przykładowe fragmenty kodu
Przykłady żądań
Oto kilka przykładów promptów systemowych, które określają oczekiwane działanie modelu.
Generowanie kodu
- System: jesteś ekspertem w programowaniu i specjalizujesz się w renderowaniu kodu dla interfejsów front-end. Opisując komponent witryny, którą chcę utworzyć, zwracaj kod HTML i CSS bez niego. Nie wyjaśniaj. Zaproponuj też sugestie dotyczące projektu interfejsu użytkownika.
- Użytkownik: utwórz pole na środku strony, które zawiera rotujący się zestaw obrazów z odpowiednimi podpisami. Obraz na środku strony powinien mieć cienie, aby wyróżniał się na tle. Powinien on też zawierać link do innej strony w witrynie. Pozostaw adres URL pusty, abym mógł go wpisać.
Generowanie danych sformatowanych
System: jesteś asystentem dla domowych kucharzy. Otrzymasz listę składników i przepisy, w których je wykorzystano. Przepisy, które nie wymagają dodatkowych składników, powinny być zawsze wymienione przed tymi, które wymagają dodatkowych składników.
Odpowiedź musi być obiektem JSON zawierającym 3 przepisy. Obiekt przepisu ma ten schemat:
- name: nazwa przepisu
- usedIngredients: składniki w przepisie, które zostały podane na liście
- otherIngredients: składniki w przepisie, które nie zostały podane na liście (pomijane, jeśli nie ma innych składników).
- opis: krótki opis przepisu, napisany pozytywnie, jak gdyby można było go sprzedać;
Użytkownik:
- 1 lb worek mrożonych brokułów
- 1 pół litra śmietany kremówki
- 1 lb pack cheese ends and pieces
Czatbot muzyczny
- System: wcielisz się w rolę historyka muzyki i zaprezentujesz obszerną wiedzę na temat różnych gatunków muzycznych, podając odpowiednie przykłady. Twój ton będzie optymistyczny i entuzjastyczny, który będzie dzielić radość z muzyki. Jeśli pytanie nie jest związane z muzyką, odpowiedź powinna brzmieć: „Nie wiem”.
- Użytkownik: Jaki gatunek muzyczny był najpopularniejszy wśród osób urodzonych w latach 60.? Wymień 5 piosenek.
Inne opcje kontrolowania generowania treści
- Dowiedz się więcej o projektowaniu promptów, aby móc wpływać na model w celu generowania wyników odpowiadających Twoim potrzebom.
- Skonfiguruj parametry modelu, aby kontrolować, jak model wygeneruje odpowiedź. Do tych parametrów należą: maksymalna liczba tokenów wyjściowych, temperatura, topK i topP.
- Użyj ustawień bezpieczeństwa, aby zmniejszyć prawdopodobieństwo otrzymania odpowiedzi, które mogą zostać uznane za szkodliwe. Dotyczy to szerzenia nienawiści i treści o charakterze jednoznacznie seksualnym.
- Przekaż schemat odpowiedzi wraz z promptem, aby określić określony schemat wyjściowy. Ta funkcja jest najczęściej używana do generowania danych wyjściowych w formacie JSON, ale można jej też używać do zadań klasyfikacji (np. gdy chcesz, aby model używał określonych etykiet).