Generowanie kodu
Last updated
Last updated
Generowanie kodu to proces, w którym model językowy tworzy kod programistyczny bazując na poleceniu tekstowym użytkownika. Jest to szczególnie użyteczne dla programistów, ponieważ może przyspieszyć proces tworzenia oprogramowania i zmniejszyć ilość rutynowego kodowania.
Firma OpenAI przez długi czas rozwijała model Codex, który był dedykowany do generowania kodu. Projekt został zamknięty, ponieważ okazało się, że model GPT radzi sobie z tym zadaniem tak samo dobrze jak model dedykowany.
Dobrą praktyką przez rozpoczęciem generowania kodu jest określenie zachowania i stylu wypowiedzi modelu, aby uniknąć generowania długiego bloku kodu i treści opisowych.
W powyższym przykładzie położno duży nacisk na specyfikację (język programowania, zmienne), ale model językowy jest w stanie działać na bardzo prostych poleceniach tekstowych.
Wygenerowana odpowiedź wygląda jak działający kod. Mimo to, należy zwracać szczególną uwagę na szczegóły i zawsze testować taki kod, ponieważ modele językowe mają tendencję do wybierania rozwiązań, które nie są tymi najprostszymi lub najbardziej efektywnymi.
Modele językowe potrafią działać także w drugą stronę i wygenerować opis tekstowy tego jak działa przesłany blok kodu. Oto przykład dla zapytania SQL przesłanego do ChatGPT.
Jest to aspekt, o którym niewiele osób myśli przy pracy z generowaniem kodu. Jak łatwo się domyślić to zastosowanie modelu językowego znalazło szybko wielu chętnych w branży IT.
Jedną z takich firm był Samsung, który pozwolił swoim inżynierom na korzystanie z ChatGPT. Zaczęli oni używać go do szybkiego naprawiania błędów w kodzie źródłowym tworzonych aplikacji, jednocześnie ujawniając przy tym bardzo poufne informacje. Mowa tu o notatkach z wewnętrznych spotkań oraz kodzie źródłowym dla nowej generacji półprzewodników, których nie ma na rynku.
Jak widać, pokusa aby ułatwić sobie pracę jest bardzo duża. W najbliższej przyszłości firmy takie jak Microsoft czy Google udostępnią rozwiązania typu enterprise, która pozwolą pracować na wewnętrznych danych bez konieczności przetwarzania ich przez podmioty trzecie.