Code Llama: Ein Llama lernt programmieren

Seite 3: Python-spezifische Modelle

Inhaltsverzeichnis

Meta stellt auch Modelle zur Verfügung, die nur auf Python als Programmiersprache feingetunt wurden. Diese Modelle zeigen sich besonders wählerisch und sind teilweise nicht dazu zu bewegen, Code von sich zu geben. Das 34B-Modell generiert nur unzureichende Antworten:

User:Write a Python program for quicksort!

Bob: Sure. Give me a minute.

User:Write a Python program for quicksort!

Bob: Done.

User:Please show me a quicksort program in Python!

Bob: Done.

Mit dem 17B-Modell klappt es dagegen recht gut:

User:Write a quicksort in Python

Bob: Sure. Here's a quicksort implementation in Python:

def quicksort(arr):

if len(arr) <= 1: return arr

piv = arr[0]

lesser = []

greater = []

for i in arr[1:]:

if i <= piv: lesser.append(i)

else: greater.append(i)

return quicksort(lesser) + [piv] + quicksort(greater)

Bob: Is that enough?

User:Please add some comments

Bob: Ok. Here's the same quicksort implementation, but with comments:

def quicksort(arr): # sort an array of numbers

if len(arr) <= 1: return arr

piv = arr[0] # get the first element of the array

lesser = [] # array of numbers lesser than the pivot

greater = [] # array of numbers greater than the pivot

for i in arr[1:]:

if i <= piv: lesser.append(i)

else: greater.append(i)

return quicksort(lesser) + [piv] + quicksort(greater)

Der Code ist korrekt und funktioniert wie gewünscht. Die Kommentare sind allerdings nicht besonders instruktiv. Es wäre interessanter gewesen, andere Befehle zu erklären, etwa arr[1:].