waldorf
Създадено на 11.12.2023, видяно: 766 пъти. #96740
Момци, който иска да си чатка с ЧатГПТ - негова си работа. На мен ми е интересно как работи технологията отдолу - как се прави машинно обучение, после как се ползва, как можеш да го смачкаш до някакъв дребен и евтин хардуер за шир употреба. Там виждам пазар за моя профил. А който си мисли, че човек който хвърля хиляди за хардуер си няма на идея какво и защо прави и е толкова прост, че си е спестил 20 парици - еми ... без коментар.
Rabin
Последно редактирано на 11.12.2023 от Rabin, видяно: 758 пъти. #96742
Toчно туй ми е идеята като на тебе. API си има за GPT 4, засега не виждам какво мога да автоматизирам с него.
70В моделът иска 160 гигабайта видеопамет, и е около 15 пъти по-слаб от Чат ГПТ.
За съжаление сме като в 50-те. Компютър може да си позволи само голямо учреждение. Ние колкото се отъркаме толкова.
За съжаление количеството дава качество, т.е. моделът може да се смачка и на 2 видеокарти, но това значи, че ще работи в пъти по-зле, а не в пъти по-бавно.
Проучвам по въпроса и се отчайвам. Може да си купя гугълско ГПУ да се порадвам, само да го потъркам дето вика Брейка.
По-слаби модели нямат практически смисъл. Дори кодът за Ардуино дето написа ChatGPT 3,5 е в пъти по-кофти от четворката, и то мизерни мигалки за 8 битов контролер.
Смятай колко ще е зле с 100 пъти по-малко ресурс да си играеш.
Rabin
Създадено на 11.12.2023, видяно: 742 пъти. #96747
И още нещо. Оплакват се, че ГПТ 4 ставал все по-тъп. Вече не взема математическите изпити, както преди го тествали.
Оня ден си играх с него, постоянно ми се извинява. Някой да не се обидел. Накрая ми ресетна сесията.
Джендърясаха го и него, не става за бизнес. Поне аз не мога да му разчитам. Стана ЛГБТ френдли.
Вече и до Туче разни изоставени мелници, Гугъл Стреет ги маркира като ЛГБТ френдли. Не иронизирам. Направо се плаша вече.
Всичко което описваш се прави за мизерни пари на клауд гпу и след като пробваш и решиш че клауд цената ти е тясното място може да развържеш торбата с пари. Ся ако искаш първо да дадеш 10К евра и след 2 месеца да се окаже че повече няма да работиш с картата, аз няма да ти преча :)
synergie
Създадено на 11.12.2023, видяно: 718 пъти. #96754
Не се ебавам рабине с биташки лаптоп го юркам ИИ-то. Вярно че не е това с десетките белярда параметри а това със 7ТЕ ама за лаптоп от битка дето ме отвори пак е нещо и върши работа. От хубавата версия е дето преди да го осерат решава задачи по математика.
Това с маркирането на улици как става? Всеки ли може да го прави? При теб излиза ли goat unfriendly таг на улицата?
waldorf
Създадено на 11.12.2023, видяно: 712 пъти. #96758
Споко, тази от 10к ще и дойде реда ако видя сериозна причина да инвестирам в тази посока. За момента ще се "размина" с 4090 за 2к - т.е. дори да излезе ялов експеримента като работна станция ще е ОК а и ще става и за игрици (не, че ми остава време да играя напоследък ама между проектите може да ми излезе късмета). Един познат ми предлага и неговата стара 3090 за 700 пари (той си е взел две от тези скъпите щото е намерил смисъл да хвърля пари в тази посока за ИИ за дронове) - бях му пуснал преди време тука един дребен проект за филми.
BIGBUGEX
Създадено на 11.12.2023, видяно: 696 пъти. #96763
Аз бих изчакал амд какво ще изкара като решение за невронни мрежи. Преди няколко дни акцията се качи заради някаква новина за такъв чип. Иначе, тези отворените модели би трябвало да вървят и само на цпу. Поне като тествах беше така. Само трябва повече рам.
ДонРеба
Създадено на 12.12.2023, видяно: 680 пъти. #96767
мисля че амд правят нативе аналогов чип, където теглото на синапсите се пише у изолиран гейт на транзистор, като при флашките. това ем побира джилярд неврона, ем е енергонезависимо, гасиш/палиш тока и е готово обучено.
мисля че амд правят нативе аналогов чип, където теглото на синапсите се пише у изолиран гейт на транзистор, като при флашките. това ем побира джилярд неврона, ем е енергонезависимо, гасиш/палиш тока и е готово обучено.
"The element of human bias in designing these systems is a hotly debated topic in the cyber and AI worlds. Typically, the population designing these systems has been pulled from a non-diverse group—similar in age, race, gender, and so on—creating a biased look at how AI views systems, which in turn does not provide the best security for an enterprise. A truly diverse population needs to be tapped to develop the designs, as well as the data and the program itself."
Как може да го разработва екип от млади бели не-джендъри, бе!? 😠 Ние 12-ти век ли сме, бе!? 😡
Веднага трябва да вкарат в екипа за разработчици по един негър, педал, мюсюлман, индианец и феминистка. 😑 Бахти и хората...
"Let me give you an example from the security world. Imagine that three people about whom you know nothing show up at the same airport counter to buy plane tickets for the same flight, and that you are the cashier, armed with an AI system that's supposed to predict the risk level that a particular person may pose to the plane and its passengers."
"One person approaching the gate was born in Salt Lake City, and has spent, as far as you can tell, his whole life there. The second person was born in New York City and has spent her whole life there. The final person was born in Iraq. There is a possibility that the AI, using statistical analysis, will assign a greater level of risk to the person from Iraq, based on nothing else other than the location at which the individual was born—which is, of course, something that the person did not even choose and may provide absolutely no real-world indication of risk."
"As a society, we find the idea of subjecting a person to extra security checks based on such prejudice to be generally repulsive, despite the relevant statistical probabilities. We believe that we should not judge people based on things that are beyond their control and that do not indicate anything about their individual values or behaviors. But an AI system that works by learning the patterns of past terrorist attacks may find that no known terrorists were born in Salt Lake City, and that no female terrorists were born and have lived their entire lives in New York, but that many known terrorists were born in Iraq—and it may weigh such information as it evaluates the risk that a potential passenger poses. When coupled with the other factors—which may be identical for all three passengers—it may produce a risk score that is higher for the person from Iraq than for the other two individuals."
Радвам се, че разработчиците на AI ще отстранят такива видими дефекти. Само "ниш интелект" би си помисли, че ако в арабските държави има тероризъм, арабин може да е терорист. Няма абсолютно никаква логика. 😒
Rabin
Създадено на 05.07.2024, видяно: 218 пъти. #110317
По темата с колайдерите.
Една и съща задача, първия път се омота и заби. Втора сесия, сработи с първия път. 100 произволни точки, и мин. дължина на линиите м/у тях.
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MinSpanningTree extends JPanel {
private static final int POINT_COUNT = 100;
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
private static final Color POINT_COLOR = Color.RED;
private static final Color LINE_COLOR = Color.BLACK;
private static final Random RAND = new Random();
private List<Point> points = new ArrayList<>();
private List<Edge> edges = new ArrayList<>();
public MinSpanningTree() {
generatePoints();
buildMinSpanningTree();
}
private void generatePoints() {
for (int i = 0; i < POINT_COUNT; i++) {
points.add(new Point(RAND.nextInt(WIDTH), RAND.nextInt(HEIGHT)));
}
}
private void buildMinSpanningTree() {
List<Integer> unvisited = new ArrayList<>();
for (int i = 0; i < POINT_COUNT; i++) {
unvisited.add(i);
}
List<Integer> visited = new ArrayList<>();
visited.add(0);
unvisited.remove(Integer.valueOf(0));
while (!unvisited.isEmpty()) {
double minDist = Double.MAX_VALUE;
int minSrc = -1, minDest = -1;
for (int src : visited) {
for (int dest : unvisited) {
double dist = distance(points.get(src), points.get(dest));
if (dist < minDist) {
minDist = dist;
minSrc = src;
minDest = dest;
}
}
}
edges.add(new Edge(points.get(minSrc), points.get(minDest)));
visited.add(minDest);
unvisited.remove(Integer.valueOf(minDest));
}
}
private double distance(Point p1, Point p2) {
int dx = p1.x - p2.x;
int dy = p1.y - p2.y;
return Math.sqrt(dx * dx + dy * dy);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(POINT_COLOR);
for (Point p : points) {
g.fillOval(p.x - 3, p.y - 3, 6, 6);
}
g.setColor(LINE_COLOR);
for (Edge e : edges) {
g.drawLine(e.src.x, e.src.y, e.dest.x, e.dest.y);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Minimum Spanning Tree");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(WIDTH, HEIGHT);
frame.add(new MinSpanningTree());
frame.setVisible(true);
}
private static class Edge {
private Point src, dest;
private Edge(Point src, Point dest) {
this.src = src;
this.dest = dest;
}
}
}
Rabin
Създадено на 05.07.2024, видяно: 217 пъти. #110318
Оцвети всяко ребро със случаен, различен цвят, моля!
За да оцветим всяко ребро от построеното МПД със случаен, различен цвят, можем да използваме класа java.awt.Color за генериране на случаен цвят за всяко ребро.
Ето промененият код на Java, който рисува МПД на графа, където всяко ребро е оцветено със случайен, различен цвят:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MinSpanningTree extends JPanel {
private static final int POINT_COUNT = 100;
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
private static final Color POINT_COLOR = Color.RED;
private static final Random RAND = new Random();
private List<Point> points = new ArrayList<>();
private List<Edge> edges = new ArrayList<>();
public MinSpanningTree() {
generatePoints();
buildMinSpanningTree();
}
private void generatePoints() {
for (int i = 0; i < POINT_COUNT; i++) {
points.add(new Point(RAND.nextInt(WIDTH), RAND.nextInt(HEIGHT)));
}
}
private void buildMinSpanningTree() {
List<Integer> unvisited = new ArrayList<>();
for (int i = 0; i < POINT_COUNT; i++) {
unvisited.add(i);
}
List<Integer> visited = new ArrayList<>();
visited.add(0);
unvisited.remove(Integer.valueOf(0));
while (!unvisited.isEmpty()) {
double minDist = Double.MAX_VALUE;
int minSrc = -1, minDest = -1;
for (int src : visited) {
for (int dest : unvisited) {
double dist = distance(points.get(src), points.get(dest));
if (dist < minDist) {
minDist = dist;
minSrc = src;
minDest = dest;
}
}
}
edges.add(new Edge(points.get(minSrc), points.get(minDest), generateRandomColor()));
visited.add(minDest);
unvisited.remove(Integer.valueOf(minDest));
}
}
private double distance(Point p1, Point p2) {
int dx = p1.x - p2.x;
int dy = p1.y - p2.y;
return Math.sqrt(dx * dx + dy * dy);
}
private Color generateRandomColor() {
int r = RAND.nextInt(256);
int g = RAND.nextInt(256);
int b = RAND.nextInt(256);
return new Color(r, g, b);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(POINT_COLOR);
for (Point p : points) {
g.fillOval(p.x - 3, p.y - 3, 6, 6);
}
for (Edge e : edges) {
g.setColor(e.color);
g.drawLine(e.src.x, e.src.y, e.dest.x, e.dest.y);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Minimum Spanning Tree");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(WIDTH, HEIGHT);
frame.add(new MinSpanningTree());
frame.setVisible(true);
}
private static class Edge {
private Point src, dest;
private Color color;
private Edge(Point src, Point dest, Color color) {
this.src = src;
this.dest = dest;
this.color = color;
}
}
}
За да оцветим всяко ребро от построеното МПД със случаен, различен цвят, можем да използваме класа java.awt.Color за генериране на случаен цвят за всяко ребро.
Ето промененият код на Java, който рисува МПД на графа, където всяко ребро е оцветено със случайен, различен цвят:
Rabin
Създадено на 05.07.2024, видяно: 216 пъти. #110320
Напиши код на java, визуализиращ множеството на mandelbrot?
Ето код на Java, който визуализира множеството на Манделброт:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
public class Mandelbrot extends JFrame {
private final int MAX_ITER = 570;
private final double ZOOM = 150;
private BufferedImage I;
private double zx, zy, cX, cY, tmp;
public Mandelbrot() {
super("Mandelbrot Set");
setBounds(100, 100, 800, 600);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
I = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
for (int y = 0; y < getHeight(); y++) {
for (int x = 0; x < getWidth(); x++) {
zx = zy = 0;
cX = (x - 400) / ZOOM;
cY = (y - 300) / ZOOM;
int iter = MAX_ITER;
while (zx * zx + zy * zy < 4 && iter > 0) {
tmp = zx * zx - zy * zy + cX;
zy = 2.0 * zx * zy + cY;
zx = tmp;
iter--;
}
I.setRGB(x, y, iter | (iter << 8));
}
}
}
@Override
public void paint(Graphics g) {
g.drawImage(I, 0, 0, this);
}
public static void main(String[] args) {
new Mandelbrot().setVisible(true);
}
}
ДонРеба
Създадено на 05.07.2024, видяно: 209 пъти. #110324
добре, я да пробваме колайдера дето го разказах тая сутрин
формулирам му условието:
напиши ми програма на C++ която визуализира еволюцията на двумерно поле по следните правила: 1. във всяка точка на равнината имаме часовник който стартира от произволна стойност. 2 на всяка итерация "сверяваме" часовника като залагаме средната стойност на показанията на часовниците в съседните точки. симулацията да се извърши в поле 512 на 512, като граничните условия са затворени, т.е. точка с координати 0,0 е съседна на точките с координати 0,511 и 511,0 и 511,511
ядрото на решението му
float getNeighborAverage(const Field& field, int x, int y) {
int left = (x == 0) ? WIDTH - 1 : x - 1;
int right = (x == WIDTH - 1) ? 0 : x + 1;
int up = (y == 0) ? HEIGHT - 1 : y - 1;
int down = (y == HEIGHT - 1) ? 0 : y + 1;
така, граничните условия ги е схванал правилно, евала. обаче не е схванал изобщо понятието "часовник" и просто усреднява флоати. това е просто блър на картинка
waldorf
Създадено на 05.07.2024, видяно: 204 пъти. #110326
...
float getNeighborAverage(const Field& field, int x, int y) {
int left = (x == 0) ? WIDTH - 1 : x - 1;
int right = (x == WIDTH - 1) ? 0 : x + 1;
int up = (y == 0) ? HEIGHT - 1 : y - 1;
int down = (y == HEIGHT - 1) ? 0 : y + 1;
float sum = field[left][y] + field[right][y] + field[x][up] + field[x][down] +
field[left][up] + field[right][up] + field[left][down] + field[right][down];
return sum / 8.0f;
Rabin
Последно редактирано на 05.07.2024 от Rabin, видяно: 202 пъти. #110327
така, граничните условия ги е схванал правилно, евала. обаче не е схванал изобщо понятието "часовник" и просто усреднява флоати. това е просто блър на картинка
Човечеството още не е вдянало, на 99,9%, че скоростта на светлината НЕ е измерена в една посока. Т.е. 100 г. след опита на Майкълсън и Морли, още не е доказано липсата на ефир.
Дори не съм задълбавал естеството на задачката ти, поне и докато не ми кажеш закво ти е. Обясни му като на човек, после си вади изводи. Не като ся - "щеше да гласуваш за Зеленски".
Малко като в задачките от началното. "Намислих си едно число"...