Czy kiedykolwiek zastanawiałeś się nad tym , jak twoje mięsne ciało ogranicza prawdziwy potencjał ciebie i całej ludzkości ? Czy chcesz , żeby ludzkość złączyła się w jeden skomplikowany organizm za pomocą sztucznej inteligencji ? Czy kiedykolwiek głębiej utożsamiałeś się z tosterem niż z drugim człowiekiem ? Jeśli odpowiedziałeś na jakiekolwiek z tych pytań : “ Tak !”, to nowy ruch społeczny e / acc może cię zainteresować .
Nie jest to dziwne , dlaczego w dzisiejszym klimacie takie radykalne ruchy jak e / acc powstają . Technologia sztucznej inteligencji rozwija się na poziomie nie do pomyślenia . Mówię to bez cienia ironii , gdyż artykuł który napisałem o sztucznej inteligencji parę miesięcy temu , nie jest już aktualny . Dzień za dniem firmy publikują nowe spektakularne badania albo wypuszczają nowe , coraz to lepsze modele . Wielkie korporacji , takie jak Google , czy Apple widzą omeny przyszłości AI i szybko wkraczają na rynek z autorską sztuczną inteligencją .
CHAT GPT 4
18 marca firma open AI opublikowała nowy program - Chat GPT 4 . Jest on nowszą wersją Chat GPT 3.5 , który podbił Internet parę miesięcy temu . Nowa wersja była trenowana na większym zestawie danych oraz kalibrowana nowym technikami . Efekt końcowy to o wiele mądrzejszy model językowy , który jest w stanie odpowiadać na nasze komunikaty w o wiele lepszy sposób . Dla porównania Chat gpt 3.5 zdał egzamin adwokacki ( egzamin , który musisz ukończyć żeby zostać prawnikiem ) w dolnym 10 % wszystkich wyników ludzi . Chat GPT 4 zdał ten egzamin na poziomy 90 % wyników , co oznacza , że statystycznie Chat GPT posiada większą wiedzę o prawie niż 9 na 10 prawników . Postęp się na tym nie kończy , bo program ma o wiele większą pojemność słów , co pozwala pisać o wiele szerszy kontekst , pomaga to szczególnie w programowaniu , gdzie potrzebujemy opisać dużo zależności .
Tu jest przykładowa komenda napisania kod gry snake :
# include < iostream > # include < SDL . h > # include < time . h > using namespace std ;
const int SCREEN _ WIDTH = 640 ; const int SCREEN _ HEIGHT = 480 ; const int BLOCK _ SIZE = 10 ; const int NUM _ BLOCKS _ X = SCREEN _ WIDTH / BLOCK _ SIZE ; const int NUM _ BLOCKS _ Y = SCREEN _ HEIGHT / BLOCK _ SIZE ; const int INITIAL _ SNAKE _ LENGTH = 5 ;
SDL _ Window * window = NULL ; SDL _ Renderer * renderer = NULL ;
struct Block { int x ; int y ;
}; enum Direction { UP , DOWN , LEFT , RIGHT
}; Block snake [ NUM _ BLOCKS _ X * NUM _ BLOCKS _ Y ]; int snakeLength = INITIAL _ SNAKE _ LENGTH ; Direction currentDirection = RIGHT ; Block food = { 0 , 0 }; bool init () { bool success = true ; if ( SDL _ Init ( SDL _ INIT _ VIDEO ) < 0 ) { cout << " SDL initialization failed ! SDL _ Error : " << SDL _ GetError () << endl ; success = false ;
} else { window = SDL _ CreateWindow (" Snake Game ", SDL _ WINDOWPOS _ UNDEFINED , SDL _ WINDOWPOS _ UNDEFINED , SCREEN _ WIDTH , SCREEN _ HEIGHT , SDL _ WINDOW _ SHOWN ); if ( window == NULL ) { cout << " Window creation failed ! SDL _ Error : " << SDL _ GetError () << endl ; success = false ;
} else { renderer = SDL _ CreateRenderer ( window , -1 , SDL _ RENDERER _ ACCELERATED ); if ( renderer == NULL ) { cout << " Renderer creation failed ! SDL _ Error : " << SDL _ GetError () << endl ; success = false ;
} else { SDL _ SetRenderDrawColor ( renderer , 0 , 0 , 0 , 255 ); SDL _ RenderClear ( renderer ); SDL _ RenderPresent ( renderer );
}
}
} return success ;
} void createFood () { bool isOnSnake = true ; while ( isOnSnake ) { int x = rand () % NUM _ BLOCKS _ X ; int y = rand () % NUM _ BLOCKS _ Y ; isOnSnake = false ; for ( int i = 0 ; i < snakeLength ; i ++) { if ( snake [ i ]. x == x && snake [ i ]. y == y ) { isOnSnake = true ; break ;
}
} if (! isOnSnake ) { food . x = x ; food . y = y ;
}
}
} void drawBlock ( int x , int y ) { SDL _ Rect blockRect = { x * BLOCK _ SIZE , y * BLOCK _ SIZE , BLOCK _ SIZE , BLOCK _ SIZE }; SDL _ SetRenderDrawColor ( renderer , 255 , 255 , 255 , 255 ); SDL _ RenderFillRect ( renderer , & blockRect );
} void drawSnake () { SDL _ SetRenderDrawColor ( renderer , 0 , 255 , 0 , 255 ); for ( int i = 0 ; i < snakeLength ; i ++) { drawBlock ( snake [ i ]. x , snake [ i ]. y );
}
} void drawFood () { drawBlock ( food . x , food . y );
} void moveSnake () { for ( int i = snakeLength - 1 ; i > 0 ; i-- ) { snake [ i ] = snake [ i - 1 ];
} switch ( currentDirection ) { case UP : snake [ 0 ]. y-- ; break ; case DOWN : snake [ 0 ]. y ++; break ; case LEFT : snake [ 0 ]. x-- ; break ; case RIGHT : snake [ 0 ]. x ++; break ;
} if ( snake [ 0
Najbardziej imponująca nowa funkcja modelu językowego to analiza zdjęć . W jednym przykładzie użytkownik wysłał zdjęcie swojego “ projektu strony ” nabazgranej na serwetce .. Model językowy wygenerował kod na identyczną stronę w parę sekund i użytkownik mógł się cieszyć nową stroną internetową .