Code Llama: Ein Llama lernt programmieren
Seite 3: Python-spezifische Modelle
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:]
.