Wenn Ihnen das Projekt gefällt, können Sie dieses Repository bitte auf Ihre Unterstützung zeigen! ?
15. Januar 2024 - Als ich über die Reise von Spago nachdenke, bin ich voller Dankbarkeit für die bereichernde Erfahrung, die es mir zur Verfügung gestellt hat. Mastering GO und die Überprüfung der Grundlagen des tiefen Lernens durch Spago hat sich immens lohnend. Die einzigartigen Merkmale von Spago, insbesondere seines asynchronen Berechnungsdiagramms und der Konzentration auf sauberes Codieren, haben es zu einem außergewöhnlichen Projekt gemacht, an dem Sie arbeiten können. Unser Ziel war es, ein minimalistisches ML -Framework in Go zu schaffen, wodurch die Abhängigkeit von Python in der Produktion beseitigt wird, indem die Erstellung von eigenständigen Executables ermöglicht wird. Dieser Ansatz von Spago hat mehrere meiner Projekte in herausfordernden Produktionsumgebungen erfolgreich angetrieben.
Das Bestreben, Spago auf ein Niveau zu erhöhen, auf dem es effektiv mit dem sich entwickelnden „KI -Raum“ konkurrieren kann, der jetzt intensiv die Berechnung der GPUs umfasst, erfordert erhebliche Verpflichtung. Gleichzeitig wird die Vision, die Spago erreicht hat, nun durch das Kerzenprojekt in Rust beeindruckend verwirklicht. Mit meiner begrenzten Kapazität, die notwendige Aufmerksamkeit für Spago zu widmen, und in Ermangelung eines unterstützenden Wartungsteams habe ich die pragmatische Entscheidung getroffen, das Projekt vorerst zu pausieren.
Ich bin zutiefst dankbar für die Reise, die mich Spago aufgenommen hat und für die Gemeinschaft, die sie unterstützt hat. Während wir weiterhin das sich ständig weiterentwickelnde Bereich des maschinellen Lernens erkunden, freue ich mich auf die aufregenden Entwicklungen, die vor uns liegen.
Herzliche Grüße,
Matteo Grella
Spago ist eine in Pure GO geschriebene Bibliothek für maschinelles Lernen , um relevante neuronale Architekturen in der Verarbeitung natürlicher Sprache zu unterstützen.
Spago ist in sich geschlossen, da es sowohl für Training als auch für Inferenz ein eigenes leichtes Rechendiagramm verwendet und von Anfang bis Ende leicht zu verstehen ist.
Es bietet:
Wenn Sie an NLP-bezogenen Funktionen interessiert sind, sollten Sie das Cybertron-Paket erkunden!
Anforderungen:
Klonen Sie dieses Repo oder holen Sie sich die Bibliothek:
go get -u github.com/nlpodyssey/spagoEin guter Ausgangspunkt besteht darin, die Implementierung eingebauter neuronaler Modelle wie der LSTM zu betrachten.
Hier ist ein Beispiel für die Berechnung der Summe von zwei Variablen:
package main
import (
"fmt"
"log"
"github.com/nlpodyssey/spago/ag"
"github.com/nlpodyssey/spago/mat"
)
func main () {
// define the type of the elements in the tensors
type T = float32
// create a new node of type variable with a scalar
a := mat . Scalar ( T ( 2.0 ), mat . WithGrad ( true )) // create another node of type variable with a scalar
b := mat . Scalar ( T ( 5.0 ), mat . WithGrad ( true )) // create an addition operator (the calculation is actually performed here)
c := ag . Add ( a , b )
// print the result
fmt . Printf ( "c = %v (float%d) n " , c . Value (), c . Value (). Item (). BitSize ())
c . AccGrad ( mat . Scalar ( T ( 0.5 )))
if err := ag . Backward ( c ); err != nil {
log . Fatalf ( "error during Backward(): %v" , err )
}
fmt . Printf ( "ga = %v n " , a . Grad ())
fmt . Printf ( "gb = %v n " , b . Grad ())
}Ausgabe:
c = [7] (float32)
ga = [0.5]
gb = [0.5]Hier finden Sie eine einfache Implementierung der Perceptron -Formel:
package main
import (
"fmt"
. "github.com/nlpodyssey/spago/ag"
"github.com/nlpodyssey/spago/mat"
)
func main () {
x := mat . Scalar ( - 0.8 )
w := mat . Scalar ( 0.4 )
b := mat . Scalar ( - 0.2 )
y := Sigmoid ( Add ( Mul ( w , x ), b ))
fmt . Printf ( "y = %0.3f n " , y . Value (). Item ())
}Wenn Sie der Meinung sind, dass etwas fehlt oder verbessert werden könnte, öffnen Sie Probleme und ziehen Sie Anfragen an.
Überprüfen Sie die beitragenden Richtlinien, um beizutragen.
Wir ermutigen Sie dringend, ein Problem zu entwickeln, da es zum Wachstum der Gemeinschaft beitragen wird. Wenn Sie jedoch lieber privat mit uns kommunizieren, können Sie Matteo Grella mit Fragen oder Kommentaren per E -Mail senden.