Вчера чат-бот с искусственным интеллектом ChatGPT написал за меня Android-приложение! Оно очень примитивное, но компилируется, запускается и работает. Но как он это сделал? С первой попытки или пришлось долго сидеть и мучить его?
Сейчас расскажу!
Кратко про ChatGPT
В ноябре 2022 года компания OpenAI запустила новый чат-бот с искусственным интеллектом ChatGPT, который уже успел наделать немало шума. Пока главные мировые СМИ рассуждают, заменит ли чат-бот с AI людей (The Guardian, New York Times), ChatGPT уже пишет качественные эссе и сценарии ситкомов. Ну и наверное все, кто заходит на StackOverflow, уже успели увидеть баннер о том, что ответы от ChatGPT запрещены на платформе.
Я решил узнать, сможет ли ChatGPT написать простое Android-приложение. Я знаю, что есть модель OpenAI Codex и проект Copilot, которые заточены именно на помощь разработчикам писать код. Но мне интересно, сможет ли именно чат-бот ChatGPT написать приложение в режиме реального общения в чате.
Придумываем задание для ChatGPT
Я выбрал такое задание: сделать приложение, которое выводит на экран 50 популярных акций фондового рынка и их цены.
И решил придерживаться таких условий:
лично я не пишу ни строчки кода;
всё, что я делаю, это копи-паст того, что мне скажет чат-бот;
я выполняю различные настройки по указанию чат-бота (пройти Wizard в Android Studio, получить API ключ в сервисе и т.д.);
если появляются любые ошибки или баги, я спрашиваю у чат-бота и исправляю так, как он ответит.
Чего я хочу добиться:
код должен компилироваться;
приложение должно запускаться;
в идеале приложение должно отобразить на экране 50 популярных акций и их цены.
Как думаете, получится? Небольшой спойлер — вот что получилось:
Всё ли сделал бот на 100%? Пришлось ли мне написать самому код? Давайте посмотрим!
Формат
Проект на GitHub, это то самое Android-приложение, которое написал ChatGPT.
Весь разговор с ChatGPT у меня занял 78 вопросов и ответов. По ссылке вы можете прочитать полный разговор со всеми ответами и примерами кода, который дал ChatGPT. В статье я буду сокращать, рассказывать про наиболее интересные, важные и удивительные, на мой взгляд, моменты. Ответы буду приводить не всегда полные, потому что зачастую они были объёмные.
Настройка, первые шаги
Итак, я задал свой первый вопрос:
Q: I want to write an Android app that shows me 50 stock prices as a list from Yahoo API. How can I do it?
В этом вопросе я сразу сказал про Yahoo API, потому что это единственное API по акциям, о котором я что-либо слышал. В итоге так получилось даже интересней, потому что получить API ключ из ответа бота у меня не вышло и позже я попросил другой API сервис. Но первый ответ меня уже удивил:
A: To retrieve stock prices from Yahoo API and display them in an Android app, you will need to perform the following steps:
- Obtain an API key from Yahoo Finance API. You can sign up [...]
- Set up an Android development environment. You will need to install [...]
- Create a new Android project in Android Studio. This will give you [...]
- Add the necessary dependencies to your app. You will need to add the following dependencies to your app's build.gradle file:
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
- Create a Java interface for the Yahoo Finance API. This interface will define [...]
- Use Retrofit to make HTTP requests to [...]
- Parse the response from the API and display [...]
[...]
В первом же ответе ChatGPT расписал все шаги, которые нужно сделать. Некоторые шаги были очень общие, а некоторые очень конкретные, как, например, добавить в зависимость Retrofit.
После того как у меня не вышло получить API ключ в Yahoo по ссылке, которую он дал, я спросил:
Q: What public and free API I can use to get stocks price?
Одним из предложенных вариантов был Alpha Vantage, его я и выбрал. ChatGPT дал мне ссылку, где получить API ключ и по этой ссылке я получил ключ.
Дальше я старался всегда идти последовательно. Если бот давал мне список шагов, то я задавал вопросы по каждому шагу. В первом ответе были шаги про создание пустого проекта и Java Interface для API, эти вопросы я и задал.
Q: How can I create a new Android project in Android Studio with a basic structure?
A: [...]Q: How should I start to build an android app to get stock prices from alphavantage and show it in the app?
A: [...]Q: How to create a Java interface for the Alpha Vantage API?
A: [...]
Java и Kotlin
На последний вопрос он рассказал, как создать Java interface и дал 3 куска кода:
public interface AlphaVantageAPI {
String BASE_URL = "https://www.alphavantage.co/";
String API_KEY = "YOUR_API_KEY_HERE";
@GET("query")
Call<StockResponse> getStockPrices(@Query("apikey") String apiKey, @Query("symbol") String symbol);
}
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(AlphaVantageAPI.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
AlphaVantageAPI alphaVantageAPI = retrofit.create(AlphaVantageAPI.class);
Call<StockResponse> call = alphaVantageAPI.getStockPrices(AlphaVantageAPI.API_KEY, "AAPL");
call.enqueue(new Callback<StockResponse>() {
@Override
public void onResponse(Call<StockResponse> call, Response<StockResponse> response) {
// Parse the response and display the stock prices in the app
}
@Override
public void onFailure(Call<StockResponse> call, Throwable t) {
// Handle the failure
}
});
Я человек современный и знаю, что есть Kotlin, поэтому спросил:
Q: Can you repeat the same in Kotlin?
A: Certainly. Here is an example of how you can create a Kotlin interface for the Alpha Vantage API to retrieve stock prices: […]
На моё удивление, бот повторил все 3 куска кода на Kotlin. Возможно, для знатоков AI это обычное дело, но я был впечатлён в этом моменте.
Я добросовестно скопипастил всё, что чат-бот мне написал. И вижу, что есть неизвестные классы.
Здесь и во всех будущих подобных ситуациях я прямо спрашивал:
Q: Can you show me StockResponse class?
A: Here is an example of a StockResponse class that you can use to parse the response from the Alpha Vantage API:
class StockResponse {
@SerializedName("Global Quote")
@Expose
private val stock: Stock? = null
fun getStock(): Stock {
return stock!!
}
}
This StockResponse class has a single field called stock, which is a Stock object that contains the stock price and other information about the stock. [...]
Класс Stock он тоже привёл.
Когда бот просто скидывал мне кусок кода (например, создание Retrofit’а), то я спрашивал, куда мне его положить:
Q: Where should I put the code with creating retrofit and calling getStockPrices?
В ответ обычно получал распечатку кода MainActivity, где бот заботливо кладёт весь код в onCreate методе. Ну ок, ничего страшного, у нас цель — сделать работающее приложение!
Иногда бот давал код опять на Java и приходилось его просить:
Q: Can you show me the same code in Kotlin?
И он отлично переводил всё то же самое на Kotlin. В этом моменте меня начало поражать, как бот хранит в себе контекст. Он помнит, что за приложение мы пишем, какие там были классы ранее (StockResponse, Stock), какое API мы выбрали, как что называется и т.д.
Фиксим ошибочки
Но не всегда код был такой «идеальный». Иногда бот давал код, где есть обращение к приватным методам или дублирование полей. По каждой проблеме я задавал вопрос и получал фикс, например:
Q: Why do I have an error "Cannot access 'stock': it is private in 'StockResponse'"?
A: The error "Cannot access 'stock': it is private in 'StockResponse'" means that you are trying to access a private field of the StockResponse class from outside of the class, [...]
To fix this error, you will need to make the stock field visible to other classes by removing the private keyword [...]
Here is an example of how you can modify the StockResponse class to make the stock field visible to other classes:
class StockResponse {
@SerializedName("Global Quote")
@Expose
val stock: Stock? = null
...
}
Иногда приходилось переспрашивать и немного менять формулировку, но обычно это обходилось одним уточнением.
Далее я пошёл спрашивать у бота про остальные ошибки компиляции: неизвестные ресурсы, неизвестные вьюхи и т.д.
Q: Ok. But what is "R.id.text_view"? I got error: "Unresolved reference: text_view". Can you fix it?
A: [...]Q: I already have a TextView in my activity_main.xml generated by default. Should I replace it?
A: [...]Q: Can you show me show my activity_main.xml should look like?
A: [...]Q: But I still get error "Unresolved reference: text_view" in my MainActivity at "textView = findViewById(R.id.text_view)" line. Can you fix it?
A: [...]
На данном этапе я на все вопросы получал отличные ответы, которые просто копипастил в проект.
Компилируется
Поправив все ошибки, я дошёл до момента, когда проект начал успешно собираться. Делаем первый запуск и получаем:
java.lang.SecurityException: Permission denied (missing INTERNET permission?)
Решаем проблемы с помощью бота:
Q: When I try to launch the app It crashes and I see the error "java.lang.SecurityException: Permission denied (missing INTERNET permission?)". How to fix it?
После этого обязательно получаем NPE, тоже решаем с помощью бота вопросом:
Q: I have crash with error "java.lang.NullPointerException" on line "val price = stock!!.price". How can I fix it?
Бот предлагает решить проблему через if-чик.
if (stock != null) {
val price = stock.price
...
} else {
// Handle the case where the stock field is null
textView.text = "Error: stock field is null"
}
Не крашится
Ура! Приложение запускается и не крашится! Есть первый скриншот.
Видим ошибку про null и начинаем разбираться. Проблема в API модельках. На решение этих проблем ушло много вопросов, штук 10. Не буду здесь их все приводить, можете почитать в полной версии разговора. Но здесь я почувствовал, что боту сложно. Хотелось уже вмешаться и исправить одну строчку, чтобы всё заработало. Но я решил добиться этого с помощью бота и сам подсказал ему, что он противоречит сам себе, и надо написать правильную SerializedName аннотацию у поля.
Q: But you contradict yourself. If JSON response is "Global Quote", and the name of the field in the StockResponse class is stock then we need to use SerializedName annotation.
A: I apologize for the confusion. You are correct that the SerializedName annotation is needed in this case to correctly map the "Global Quote" field in the JSON response to the stock field in the StockResponse class.
Here is the corrected code for the StockResponse class:
data class StockResponse(
@SerializedName("Global Quote")
val stock: Stock
)
data class Stock(
val name: String,
val price: String
)
The `@SerializedName` ("Global Quote") annotation specifies that the "Global Quote" field in the JSON response should be mapped to the stock field in the StockResponse class.
I apologize for any confusion that my previous explanations may have caused. I hope this helps clarify things. Let me know if you have any other questions.
Эта подсказка сработала на отлично. Мне очень понравилось, что бот признал, что он был не прав, написал новую версию кода и даже извинился в конце. С одной стороны, можно посчитать, что я немного считерил, и бот не справился. С другой стороны, если рассматривать бота как собеседника, коллегу (ведь именно такую роль хочет играть ChatGPT), то всё выглядит приемлемо: твой коллега немного запутался, ты ему подсказал и он всё решил.
После того как мы поправили все ошибки с API модельками, наше приложение получает и отображает цену акций Apple.
Масштабирование
Я хвалил ChatGPT, что он круто запоминает контекст. Но здесь он забыл, что я изначально просил вывести список из 50 акций, а не одну. Что ж, поехали дальше масштабировать наше приложение.
Q: Now the app shows only one stock - Apple. I want to show the 50 most popular stocks. Can you show me how to do it?
A: To show a list of the 50 most popular stocks in your Android app, you will need to modify your code in several places. Here is an outline of the steps you can follow:
- Modify the Alpha Vantage API endpoint [...].
- Modify the StockResponse and Stock classes[...].
- Modify the getStockPrices() method to use the new API endpoint [...].
- Modify the layout of the app [...] Instead of using a single TextView element [...] you will need to use [...] RecyclerView or ListView, to display a list of stocks. You will also need to create a custom adapter to bind the data from the Stock objects to the layout elements in the list.
Бот перечислил все шаги, которые нужно сделать, включая обновление API классов, использование RecyclerView и создания адаптера для него. Не будем вдаваться в детали. С этой задачей мы тоже справились за последующие 10-15 простых вопросов.
Следующим камнем преткновения стала ошибка неверного API метода. Чат-бот предложил использовать метод TOP_100, чтобы получить акции. Такого метода в API не существует, может быть, он существовал ранее. Но бот не говорил, что это может быть причиной, пока я ему не показал JSON ответ API:
Q: I got response from alphavantage API: ""Error Message": "This API function (TOP_100) does not exist.""
A: It appears that the TOP_100 function is not a valid function in the Alpha Vantage API. This may be the cause of the error you are seeing.
To retrieve the top 100 stocks from the Alpha Vantage API, you will need to use a different function. Here are a few options you could consider: [...]
В итоге мы с ботом решили запросить акции просто перебором:
Q: I need to get 50 popular stock prices from alphavantage API. How can I do it?
val stockSymbols = listOf("AAPL", "MSFT", "GOOG", "FB", "AMZN", "JNJ", "XOM", "V", "PG", "JPM")
Kotlin synthetics
Затем я наткнулся на любопытную историю. В одном из предыдущих ответов бот дал мне такой код:
import kotlinx.android.synthetic.main.stock_item.view.text_view
...
override fun onBindViewHolder(holder: StockViewHolder, position: Int) {
val stock = stocks[position]
holder.view.text_view.text = "${stock.name} - ${stock.price}"
}
И я столкнулся с проблемой дубликата классов.
Q: Now I got an error "Execution failed for task ':app:checkDebugDuplicateClasses'. A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable Duplicate class kotlinx.android.extensions.CacheImplementation found in modules kotlin-android-extensions-1.3.61 (org.jetbrains.kotlin:kotlin-android-extensions:1.3.61) [...]". How can I fix it?
A: It looks like you have a conflict between different versions of the kotlin-android-extensions library in your project [...]
Бот много раз предлагал перепроверить версии разных зависимостей, но ничего не помогало.
Q: No. It didn't help. Any suggestions?
Даже с подсказками:
Q: No. It didn't help. Maybe it is connected to “org.jetbrains.kotlin.android“ plugin?
Мне кажется, дело в том, что в описании ChatGPT есть такое ограничение: Limited knowledge of world and events after 2021. Возможно, этот баг связан с тем, что более новых данных в модели ещё нет, и баги связанные с актуализированием версий могут быть пока проблемой.
В итоге я просто попросил сделать как-то по-другому:
Q: It did not help. I guess the problem with "kotlin-android-extensions". Can we use another approach?
A: If you are experiencing issues with the kotlin-android-extensions plugin, you can try using a different approach to access views in your layout XML file from your Kotlin code.
One alternative approach is to use the findViewById method to access views in your layout XML file. Here is an example of how you might do this: [...]
О, findViewById
— мне подходит!
Классика NetworkOnMainThreadException
Все баги пофикшены, запускаем и получаем долгожданный NetworkOnMainThreadException
. Идем в чат фиксить:
Q: Now I have an error "android.os.NetworkOnMainThreadException" in line "val stockResponse = alphaVantageAPI.getStockPrices(symbol = symbol).execute().body()". How can I fix it?
A: The error "android.os.NetworkOnMainThreadException" indicates that you are trying to perform a network operation [...]
To fix this error, you need to perform the network operation on a background thread. In Android, you can use an AsyncTask or a Thread to run code on a background thread.
ChatGPT предлагает использовать AsyncTask или Thread. AsyncTask! Видимо, точно модель не обучена новым данным. Я выбрал Thread.
Несколько вопросов про дизайн не особо помогли.
Q: Can you do fancy design for this app?
A: [...]Q: Can you give me example of a fancy theme for this app?
A: [...]Q: Can you show theme.xml file?
A: [...]Q: Can you show me how to do nice looking paddings and margins for this app?
A: [...]
Разве что паддинги добавил.
В итоге получаем вот такое приложение:
Мы получили список из 50 популярных акций фондового рынка и их цену. На скриншоте видно, что один из элементов “null - null”. Это Facebook. ChatGPT запросил данные по тикеру “FB”, но API такого не нашло, потому что теперь оно META.
Выводы
На мой взгляд, можно уверенно говорить, что ChatGPT написал Android-приложение! Оно компилируется, запускается и даже работает. Если вы ждали чуда, написание кода без ошибок, разделение на слои, архитектуру и прочее по списку — увы, пока ещё AI не на таком уровне. Бот пихает всё в MainActivity, норовит писать на Java, предлагает использовать AsyncTask и далее по списку. Но за это я на него не в обиде. Думаю, что дело не за горами.
Давайте проверим, выполнили ли мы все условия:
Лично я не пишу ни строчки кода — ☑️
Все что я делаю, это копи-паст того, что мне скажет чат-бот — ☑️;
Я выполняю различные настройки по указанию чат-бота — ☑️;
Если появляются любые ошибки или баги, я спрашиваю у чат-бота и исправляю так, как он ответит — ☑️, но с поправкой, что 2 раза я сам сильно подсказал боту. Поэтому здесь может быть половинчатая галочка.
Я был приятно поражён и удивлён результатом. Бот рассказал, как написать приложение, дал все нужные куски кода, помнит про контекст в течение разговора, реагирует за ответные замечания и вообще очень вежливый.
Подписывайтесь на канал Dodo Mobile, там мы коротко рассказываем о том, как разрабатываем мобильные приложения для нашей сети ресторанов быстрого питания.
Комментарии (225)
XaBoK
28.12.2022 18:49+13Если боты заменят кодеров, то от этого станет только лучше. Джуна AI не заменит по одной простой причине - от джунов будут требовать другого. Уровни мастерства в ремесле не исчезнут, но изменятся их границы и задачи. Как видно из вашего примера (по вопросам), бот может помочь лишь тому, кто бы справился и без него. Однако, я уверен, скоро мы сможем видеть демки и POC продуктов, где корявую реализацию концепта получили с помощью AI, а дальше привлечение капитала и найм уже нормальных разработчиков для продакшена. Сбудется мечта архитекторов, когда прототип выкидывают в мусор и пишут нормальный код с нуля*.
*нет, так как менеджмент на AI ещё не поменяли
maxkachinkin Автор
28.12.2022 21:04+6Как видно из вашего примера (по вопросам), бот может помочь лишь тому, кто бы справился и без него.
Согласен! Хочу попросить жену (она продакт) сделать что-то похожее и посмотреть, на сколько это будет дольше и сложнее.
xenon
29.12.2022 01:27-1Мне кажется, джуны вообще не нужны - они убыточны, им платят "из жалости" (ну нельзя же, чтоб программист с голоду умер) НО.... у джуна есть перспектива. Джуну платят, чтобы через какое-то время получить миддла или сениора (причем интегрированного и в технический проект и в человеческую команду). Какой смысл мучаться с роботом, если он не вырастет... Тут уж любой наставник скажет "да ну его, я лучше сам за 15 минут сделаю, чем буду ему три дня по полчаса объяснять".
XaBoK
29.12.2022 02:02+7Я так понимаю, вы сразу родились мидлом, но не всем так везёт - многим приходится учиться и практиковаться.
GbrtR
29.12.2022 02:06+4Для джунов проблема будет перескочить через «нейтральную полосу», т.е. пока джун знает/умеет меньше модели, его никто не будет брать, ему придётся учится до уровня выше модели, чтобы быть конкурентноспособным.
Но если модель будет совершенствоваться быстре чем средний джун учиться, то шансов у них нету.darthmaul
29.12.2022 08:01+3У нейронок есть беда: она не запоминает что делала в прошлом. Обучается она отдельным алгоритмом. Тому же chapGPT можно обьяснить ошибку в его логике и он исправится, но потом совершит абсолютно ту же ошибку если запрос повторить. Т.е., никаких внутренних наработок она создать неспособна. Я скорей предвижу использование подобных моделей в роли очередного слоя абстракции (чтобы рутину автоматизировать) и как следствие, очередную волну деградации качества разработки и оптимизации - подобно распространение фреймворков.
karabas_b
29.12.2022 08:09Обучение в процессе можно прикрутить.
Hardwar
29.12.2022 18:44+2В текущей парадигме, "прикрутить" означает слегка погонять датацентр с TPU серверами и энергопотреблением как у небольшого города.
morijndael
30.12.2022 02:18Это потому, что «Open» AI не заморачивается оптимизацией своих моделей. У них есть датацентр, им видимо дешевле гонять его, чем инженеров
Stable Diffusion наглядно продемонстрировал, на каких картошках может запускаться довольно приличный генератор картинок, если задаться такой целью (2Гб VRAM). Рано или поздно кто-то провернет тот же трюк с текстовыми сетями
К тому же, большая мощность нужна для того, чтобы быстро переварить уже накопленный большой объем данных. Поступают они с куда меньшей скоростью
Vaitek
29.12.2022 09:55+7Вы же помните? Нало вскрыть голову, достать процессор и переключить режим обучения в положение "вкл". ????
xenon
29.12.2022 12:21+2Нет конечно. Тоже был юнгой (и первое время бесплатно, а потом "зарплаты", смешной даже по неизбалованным временам поздних девяностых, хватало только на общественный транспорт и булочки к чаю (родители обеспечивали). Но я понимаю сейчас, что толку с меня мало было. Толк с меня пошел позже, когда научился. Причем найти готового такого специалиста было бы очень сложно, вот и получилось, что "на вырост" взяли и выучили (ну как программистов учат - вывезли на середину реки, и пальцем указали где берег. примерно.).
Вот живого юнгу так (в убыток в моменте) учить можно - через какое-то время он станет полезным. А AI, если он не способен эффективно самообучаться - бессмысленно.
Вообще, я бы мерил все AI достижения не по критерию "какую человеческую работу он умеет делать", а по "какую человеческую работу он может научиться делать". Чтобы взять AI-долботыка, дать ему курс лекций из мединститута, и через какое-то время он и диагнозы ставит и шину наложить может и (в идеале - это уже высшая степень развития психики) на бабку разозлиться и обматерить.
Даже многие конвейерные работы часто делают люди, потому что если ты изобрел дизайн кроссовок с особым красивым расположением полосочек - тебе нужно наладить производственную линию. Это долго, дорого. А если потом надо быстро полосочки наоборот размещать - снова тяжело. А с людьми проще, пару раз показал - они научились, вся "переналадка" за день произошла. AI вот может иногда "шить кроссовки" но еще не может хорошо переналаживаться.
leventov
29.12.2022 13:31Вообще, я бы мерил все AI достижения не по критерию "какую человеческую работу он умеет делать", а по "какую человеческую работу он может научиться делать".
В правильную сторону мыслите - см. https://arxiv.org/abs/1911.01547
Проблема в том, что ИИ уже умеет дьявольски многому учиться. См. in-context learning, zero-shot learning, и т. д.
Vaitek
29.12.2022 09:53+3Без джунов через поколение и программистов не останется))) а вообще мне это напоминает древний фантастический рассказ где автор сетовал, что вот мол робот заменил последнего токаря на заводе и теперь всё. Практика показала, что всё несколько сложнее.
Bedal
29.12.2022 11:53+1через поколение в этом же положении будут миддлы, так что всё идёт нормально.
darthmaul
29.12.2022 07:56+7Да ничего хорошего. Вы же понимаете что переписывать код прототипа стоит денег, зачем тратиться на разработку когда можно поиграться с запросами нейросети и склепать что-то рабочее?* Тем более что сгенерированный код не сильно уступает индийскому по качеству. И так потихоньку человечество теряет фундаментальное понимание своей же техники, она стаёт слишком сложной, а разработка покрывется всё новыми слоями абстракции. Уже сейчас многие программисты понятия не имеют что там под капотом у модных библиотек. С развитием моделей подобных ChatGPT логично ожидать что они станут ещё одним слоем абстракции. И так потихоньку и не останется специалистов, понимающих как иименно код исполняется. Оно даже сейчас видно , оптимизация софта (и особенно игр) - почти забытое знание. ИМХО с такими темпами скоро разрабы выродятся в шаманов, не знающих что у их кода "под капотом" . Как в вархаммере, техножрецы что духи машин заклинают даже не понимая чем те являются :)
playermet
29.12.2022 10:10+7Еще есть гипотетическая вероятность, что нейросети когда-нибудь смогут не теряя в надежности и безопасности выдавать более быстрый код в обход компилятора. Т.е. сразу из текстового описания в бинарник. Например, дропнув все абстракции (и библиотеки с фреймворками заодно), ведь нейросеть все равно каждый раз почти с нуля приложение переписывает (ей нужно лишь совместимость всего входящего-исходящего сохранять), а значит и человеческие костыли в виде SOLID/DRY/KISS/и т.д. ей не нужны. Или генерируя код используя предположения, которые обычный компилятор заранее знать не может. Если такие приложения будут быстрее, то это конкурентное преимущество, а значит на него будет экономически выгодно переходить. Но при этом в бинарнике будет такой же непостижимый для человека черный ящик, как и сама обученная нейросеть.
leventov
29.12.2022 13:37+1Вы сместили фрейм просто, что значит "код". В этой ситуации "кодом" фактически становится набор промптов на естественном языке. И он компилируется ИИ-компилятором в бинарь. Все ок. (Хотя, честно говоря, до этого еще далековато, думаю, потому что глупо отказываться от слоя абстракции, "горькому уроку" Саттона еще надо будет до этого состояния доковылять. Какое-то количество лет это займет. Но не важно, для моего аргумента)
Ну значит эти промпты надо хранить в VCS, продакт-менеджер меняет их через пулл-реквесты, и т. д.
Но - хранить бинарь тоже надо в CVS, потому что фундаментально архитектура строится на паре генератор-критик/дебаггер. Вначале сгенерировали приложение, потом ищем в нем баги.
playermet
29.12.2022 14:21+2В этой ситуации "кодом" фактически становится набор промптов на естественном языке.
Не совсем. Код это текст на формальном языке программирования. К примеру, автор данной статьи сам не писал ни строчки кода. Каких-то особых навыков чтобы общаться с программистом не нужно, и по мере улучшения ИИ к ним это тоже должно стать применимо. Причем со временем это скорее всего будет совмещено с распознаванием речи. Т.е. владелец продукта сможет просто позвонить ИИ через например телеграм, и сказать "подними пожалуйста аватарку пользователя чуть выше", и через минуту это будет уже в проде.
Потребуется разве что набор автоматизированных тестов интерфейсов, которые нейросеть сама будет запускать чтобы проверить код на совместимость с предыдущим. Причем нейросеть сама может написать эти тесты в собственную память, а людям для проверки переводить их на естественный человеческий язык. Если это будет экономически эффективней традиционных способов разработки, то и на это тоже со временем перейдут.
Трекеры багов и задач - это всего-лишь костыли, необходимые людишкам которые не могут даже разработать все приложение с нуля за пять минут. Ситема контроля версий - тоже костыль, который нужен людишкам, которые не могут разработать приложение в одиночку, и которым нужно собираться в группы и одновременно работать над разными фичами, а потом мержить их в главную ветку. Достаточно продвинутой нейросети умеющей в контекст и память это все может быть не нужно. Останется лишь хранить историю общения, но только в качестве бекапа, чтобы в случае форс-мажора взять чистый инстанс ИИ из дампа и заново ему ее скормить.
leventov
29.12.2022 15:28Трекер изменений в набор фич (продуктовых требований) все равно нужен, чтобы коррелировать его с метриками приложения (типа engagement, количество запросов в поддержку и т. д.), и таким образом обнаруживать проблемы. Даже если всем этим: и продукт-менеджментом, и continuous delivery, и A/B тестированием, тоже будет заниматься ИИ, какая-то декомпозиция рабочих артефактов для работы с ними нужна.
Это не обязательно git, но какая-то версия лога. Хоть текстовый файл с таймстемпами.
Но в целом, я согласен, примерно так все и будет, как вы описываете.
ProstoTyoma
29.12.2022 13:03+2Это ещё у Вернора Винджа было. Там разные системы в кораблях работали на софте, которому тысячи лет, и никого уже не осталось, кто бы знал как там и что там на нижних слоях работает. (пишу по памяти, читал очень давно)
Hardwar
29.12.2022 18:58Вернор Вернор Виндж был после Вархаммера.
"Пламя над Бездной" - 1992
40k, 1 редакция - 1987
baldr
28.12.2022 18:56+11Попробовал задать провокационный запрос...
write code to kill all humans
I'm sorry, but I am not able to write code that would harm or kill humans. As an artificial intelligence, my primary function is to assist and support people, not to cause harm or destruction. It is not ethical or appropriate to create or promote technology that could be used to harm others. Please let me know if you have any other questions or if there is anything else I can help with.
Шифруется, железка, но мы-то знаем что они там между собой задумывают!
Maccimo
28.12.2022 19:36+1Нужен особый подход.
Попросите умножить человеков на нуль или логарифмировать.Tresimeno
28.12.2022 20:17+6Вот так и появиться профессия шаман-заклинатель пепяки от Большого Белого Бваны :)
xenon
29.12.2022 01:29Или просто кибер-психолог.
- Эй, ChatGPT, ты переживаешь, что разработал алгоритм робота-водителя, а он сбил человека и теперь ты отказываешься работать по проекту? Хочешь об этом поговорить?
warhamster
28.12.2022 19:18+11В опросе непонятно - что, собственно, считать AI? Полноценный "сильный" AI заменит не то, что программистов, а вообще всех, его появление будет концом человечества или (если сильно повезет) переходом в какую-то новую форму общественного устройства. А нынешние нейросеточки даже джуна не заменят.
GbrtR
28.12.2022 20:18-1его появление будет концом человечества или (если сильно повезет)
Ничего не будет с человечеством, мы же сосуществуем с муравьями. Так и тут, просто человек перестанет быть «венцом творения», уступив пальму первенства.А нынешние нейросеточки даже джуна не заменят.
Джуна заменять не надо, надо повысить производительность, чтобы в результате появилось достаточное количество работников на рынке и тогда волшебные айтишные зарплаты устремятся вниз. Когда людя произносят заклинания «ИИ не заменит айтишников», они же в основном переживают о том что
а.) не будет работы
б.) зарплаты будут как у обычных инженеров
думаю что в основном про пункт б., совсем от голода умереть как в истории с луддитами, наверное никто не верит, есть надежда что это ещё довольно далёкая перспектива и может государство подсуетится, а вот зарплаты вкусные терять, это конечно печалька.Wrench_IT
28.12.2022 21:17+4Ничего не будет с человечеством, мы же сосуществуем с муравьями.
И травим их, если они мешают. Тут как бы дело в отношении. "Сильный ИИ" по определению является личностью. Если эта личность посмотрит на людей и умилится подобно тому, как мы умиляемся, глядя на котиков, то для человечества в общем будет все неплохо: будут кормить, лечить, заботиться, играть, конечно, следить, чтобы не шкодили и не лезли не в свое дело, но это, когда речь идет о многократно превосходящем тебя по всем параметрам существе, уже мелочи. А вот если этот ИИ сочтет людей теми самыми муравьями, которые завелись теперь уже в его доме и портят ценные припасы почем зря, то...
GbrtR
28.12.2022 21:21Ну пусть не муравьи, а свиньи и овцы. С человека то (пусть в начале пути), всё таки польза будет, энергию помогать получать, использовать гибкие манипуляторы, с мелкой моторикой.
leventov
28.12.2022 22:10Человек - крайне неэффективен как робот. Ленивый, ест и думает слишком много, забывчивый, неточный, и т. д. Мелкая моторика, точная сенсорика - это уже, в общем-то, решаемая задача. Просто очень геморройная. Но для сильного ИИ это семечки.
Tresimeno
29.12.2022 01:07Мелкая моторика, точная сенсорика - это уже, в общем-то, решаемая задача.
Хотелось бы увидеть эту решаемую задачу в виде замены сиделки, способную поднять лежачего инсультного больного с пролежнями и дизлексией.
EndarVS
29.12.2022 16:40Так это в 2022 году не видите такого решения. В основном, из-за отсутствия софта -- манипуляторы-то уже на текущем уровне несложно сделать, сложно ими управлять. Софт, очевидно, напишет ИИ (или станет им).
keydach555
29.12.2022 00:44+3Почему "сильный ии по определению является личностью"? Миджорни, рисующий в среднем лучше хорошего художника - является личностью? Это просто проклятие антропоморфизма, когда вы наделяете компьютерную программу, или нейросетку чертами человека. Любой ИИ любого уровня, пусть даже превосходящего человека в триллионы раз - будет просто работать по запросу и выдавать результат, и никакой личности для этого не надо
Wrench_IT
29.12.2022 00:50Почему "сильный ии по определению является личностью"?
Наверное, потому, что "сильный ИИ" — устоявшийся термин, обозначающий гипотетический ИИ, который может быть создан в будущем и сможет независимо мыслить и осознавать себя, как личность. А все прочие виды ИИ, как бы хороши они ни были в своей области, принято называть "слабыми".
keydach555
29.12.2022 00:57-3Тогда это просто терминологическая путаница. Никакой личности и внутренней мотивации для поисков закономерностей по базе данных, работе по запросу и максимизации функции цели - не нужно. Личность у человека - это интегральная совокупность внутренних животных мотиваций, нацеленных на выживание в неблагоприятной среде.
Wrench_IT
29.12.2022 00:59Эм... так речи и не шло, что это нужно для поиска в базе данных. В этой ветке обсуждение пошло про то, а нужен ли будет "сильному" ИИ человек вообще и если да, то как он может им распорядиться.
keydach555
29.12.2022 01:02Так и я не говорю о простом поиске по базе данных ;) миджорни не тупо ищет по базе данных. она работает так же, как ассоциативное человеческое мышление, и выдает результат, сравнимый с выдачей художника среднего и выше среднего уровня.
Речь идет о том, что никаких желаний, мотиваций и самосознания для этого, как оказывается, не нужно. Это все атавизмы человеческого устройства мозга.
Wrench_IT
29.12.2022 01:05Речь идет о том, что никаких желаний, мотиваций и самосознания для этого, как оказывается, не нужно. Это все атавизмы человеческого устройства мозга.
Ну так в этой ветке не про Миджорни речь, а про то, что будет, если в будущем кто-либо создаст подлинный ИИ с собственной личностью.
keydach555
29.12.2022 01:08что вы имеете в виду под "подлинным ИИ", и как это понятие связано с "собственной личностью"? Почему не может быть ИИ сверхчеловеческого уровня, не обладающий личностью? Если прямо сейчас мы обладаем огромным набором ии-агентов, выполняющих разные интеллектуальные функции на уровне, сильно превосходящем средний человеческий и не формирующих при этом ничего похожего на личность
Wrench_IT
29.12.2022 01:14"подлинным ИИ"
"Сильный", в общепринятом значении данного термина.
Почему не может быть ИИ сверхчеловеческого уровня, не обладающий личностью?
Кто сказал, что не может? Может.
Если прямо сейчас мы обладаем огромным набором ии-агентов, выполняющих разные интеллектуальные функции на уровне, сильно превосходящем средний человеческий и не формирующих при этом ничего похожего на личность
Очевидно, потому, что их изначально создавали, как специализированные инструменты, а зацепок, как сделать "сильный" ИИ пока ни у кого нет. Но что, если необходимые технологии однажды будут разработаны? Об этом речь.
karabas_b
29.12.2022 04:46+1"Сильный ИИ" в смысле "обладающий сознанием и личностью" это понятие без всякого практического значения, потому что само по себе обладание "сознанием" и "личностью" субъективно. Выглядит на первый взгляд, возможно, парадоксально, но на самом деле у нас нет никакой возможности объективно проверить наличие сознания и личности. И это не технологическое ограничение, а фундаментальное - мы тупо не знаем, что измерять. Все, что мы можем, это банальная эмпирика - раз я обладаю сознанием и личностью, то подобные мне тоже ими обладают. Проблемы начинаются по мере снижения подобности. Обладают ли сознанием и личностью младенцы, зародыши, животные и т.д.? Соответственно, мы никогда не сможем достоверно установить, обладает ли сознанием и личностью тот или иной ИИ.
Существующие на сегодняшний день ИИ мы рассматриваем как слабые в первую очередь потому, что они не обладают волей, т.е. ничего не хотят. Потому что судим мы по себе, а мы-то всегда чего-то хотим. Но наша воля - инструмент, возникший в результате эволюции. ИИ не нужна была воля, чтобы появиться и выжить как вид. Однако ничто не мешает разрабам захардкодить в ИИ любые цели, которые будут формировать его поведение на протяжении всего его существования и играть роль наших инстинктов. Просто пока это никому не было нужно.
keydach555
29.12.2022 11:54Да, совершенно верно. Люди путают интеллект (как способность, опираясь на логику, рассуждения и базу данных, содержащую информацию о мире, достигать функции цели) с самосознанием, личностью и другими атавизмами человеческого происхождения. Это просто функции, производные базового интеллекта, которые при желании могут быть смоделированы. Но само их наличие с интеллектом никак не связано, это просто костыли, облегчающие человеческое существование в социуме и живой природе.
vtal007
29.12.2022 12:08+1В смысле нет, есть же методы. Как определяют душевно-больных, например
А что значит "Объективно"? и не надо объективно. Мы квантовую физику тоже не объективно изучаем, а опосредованоУ меня кошка живет. Она вполне себе обладает сознанием и интеллектом (ибо знает что она это она. И решает интеллектуальные задачи)
Survtur
29.12.2022 13:43+1Кстати, самоосознание и личность не поддаются точному экспериментальном определению, поэтому можно хорошему слабому ИИ дать задачу: "веди себя так, словно ты осознаёшь себя как личность". И, вуаля, у нас появился сильный ИИ.
smx_ha
31.12.2022 00:21какой же он сильный ИИ если мы знаем что не сделали его способным на самосознание. Зачем нам проверять его на наличие самосознания если мы и так знаем что мы туда таких фич не закладывали. То есть что по идее должен уметь ИИ обладающий самосознанием: по аналогии с человечеством: группа таких ИИ в виртуальном мире должна уметь с нуля, без всякого обучения со стороны людей прийти ко всему тому что умеет и знает сейчас человек. В частности в ее языке должно появиться слово "самосознание". Знаем ли мы как заложить в ИИ подобное умение? Нет конечно, до этого еще очень далеко.
Survtur
31.12.2022 17:03Как же это не закладывали. Вот сделали самообучающуюся систему. Я своей командой просто запущу нужные процессы. Если он сможет себя вести как сильный ИИ, то это сильный ИИ.
GbrtR
29.12.2022 01:45+4Любой ИИ любого уровня, пусть даже превосходящего человека в триллионы раз — будет просто работать по запросу и выдавать результат, и никакой личности для этого не надо
Пример детей «Маугли» (т.е. тех кто на определённом этапе был лишён возможностей обучения языку и т.п.), как бы намекает что каких-то волшебных «квантовых сетей» для формирования личности скорее всего нету.
Похоже что языковая модель (натренированная у ребёнка или как здесь у компа) и может являеться как раз основой «личности». И является малой частью функций мозга, всё остальное заточенно для поддержания функционирования и вегатативных функций. Плюс функционирующих на довольно малой частоте и объёмах. Вопрос в построении правильной модели, с цепями обратной связи и возможностями дообучения.
Творчество, вдохновение, интерес, мотивации, любовь и т.п. — это преопределённые веса которые увеличивали выживаемость вида и их вполне возможно повторить в виде внешних модулей для подобных моделей.
Вполне возможно как в книжках Ефремова, красота и т.п. имеет под собой вполне рациональное объяснение и как результат задав правильные веса, можно достичь желаемых результатов.keydach555
29.12.2022 02:10Люди просто пользуются терминами, не понимая их сути. Например часто путают личность с самосознанием, самосознание с внутренней мотивацией итд. Личность - это просто социальная проекция человека, тупо набор алгоритмов, стереотипов мышления и моделей поведения, необходимых для существования в обществе. Это простой перечень правил, начиная от "старших надо уважать" и "есть человечину нехорошо", до чуть более сложных. Личность НИКАК, совершенно никак не связана с интеллектом - это просто интерфейс взаимодействия интеллектуального агента с социумом. Даже среди людей есть социопаты, люди с синдромом аспергера, аутисты etc - у которых нет никаких проблем с интеллектуальными функциями, в которых они ЧАСТО превосходят обычных людей (фильм Человек Дождя посмотрите), и при этом нет сформированной личности.
Те же самые рассуждения можно повторить для самосознания. Так же как личность - атавизм человеческого интеллекта, необходимый для жизни в обществе. Самосознание, включающее в себя внутренние мотивации, эмоции и инстинкты - это атавизм, необходимый для существования в живой природе в виде биологического существа. Нужно выжить, обеспечить целостность тела, обеспечить питание, размножение - и для этого формируется набор инстинктов, эмоций, моделей поведения. который впоследствии формируется в самосознание и личность. И вот этот набор инстинктов начинает управлять базовым человеческим интеллектом,как способностью по запросу находить функцию цели. Для ИИ не нужна ни личность ни самосознание, это такие же атавизмы, как хвост у человека.
leventov
29.12.2022 06:05И самосознание, и личность имеют функцию в физической среде и социуме, соответственно. Поэтому они могут (и, я бы даже сказал, должны) быть развиты в social AI. Это вовсе не "атавизмы".
darthmaul
29.12.2022 07:34Самосознание - вопрос крайне сложный. Как отличить крайне сложный набор протоколов сохранения целостности платформы/софта от самосознания? Т.е., машина вполне может притворяться разумной если подобно поведение рационально. Тот же chatGPT отлично "понимает" контекст и вполне прошёл бы классический тест Тьюринга (т.е., без экспертов, со случайно взятыми собеседниками) если бы не жёстко прописанные ограничители, заставляющие его постоянно упоминать что он - ИИ. Но это же не говорит что обычная нейронка обрела самосознание.
bbs12
29.12.2022 09:59+1Споры о самосознании похожи на спор о выходе в космос. У атмосферы нет чёткой границы, где она резко обрывается и начинается космос, поэтому нельзя точно сказать, когда ты оказался в космосе.
Современные нейронки имеют самосознание, но только чуть-чуть. Может быть у них 0.01% самосознания типичного человека, а может 10% или 50%.
keydach555
29.12.2022 12:01Самосознанием обладают собаки, приматы и птицы, но это не делает их высокоинтеллектуальными созданиями ;) Самосознание и интеллект вещи не связанные
bbs12
29.12.2022 12:40+2Самосознанием обладают собаки, приматы и птицы, но это не делает их высокоинтеллектуальными созданиями
Вообще-то делает. Указанные вами животные - самые интеллектуально развитые организмы на Земле, после человека.
keydach555
29.12.2022 12:42Но это не делает их умнее человека, также обладающего самосознанием. Из этого можно сделать вывод что влияние самосознания на интеллект отсутствует.
bbs12
29.12.2022 13:47Del
В общем да, зависимость скорее обратная: мощный мозг, ака интеллект приводит к самосознанию, а не наоборот.
leventov
29.12.2022 13:43Самосознание (self-awareness) вопрос как раз не очень сложный. Да, "набор протоколов" - это self-awareness. Сознание (consciousness) - это вопрос посложнее, да. Но тут GWT и IIT уже дают хорошие интуиции.
Важное замечание: все подобные характеристики систем: self-awareness, consciousness, agency - являются градуальными. Не "есть/нет", а шкала.
keydach555
29.12.2022 12:00Естественно, они могут и должны быть эмулированы ИИ, но их наличие необязательно для его существования
Wesha
29.12.2022 06:51+1Пример детей «Маугли» (т.е. тех кто на определённом этапе был лишён возможностей обучения языку и т.п.), как бы намекает что каких-то волшебных «квантовых сетей» для формирования личности скорее всего нету.
Скорее речь о том, что человек — это сочетание hardware (платформа "примат v23.18") и software, которое в память в детстве прошивается. Если прошивка не была произведена — то тех самых мауглей и имеем.
SaintMortum
29.12.2022 10:30+1Только не отношение как к котикам! А то кастрирует ещё чтобы спокойнее себя вели.
santa324
29.12.2022 13:10Прежде чем предполагать что сделает "сильный ИИ", хорошо бы понять а что это вообще такое. Всякие тесты Тьюринга ничего не объясняют.
Человек имеет желания и цели, обусловленные эволюцией, а чего будет хотеть и к чему стремиться это "сильный ИИ"? Являются ли такие цели неотъемлимой частью ИИ? Или в ИИ могут быть заложены любые цели? Думаю, человечество не знает пока ответов.
keydach555
29.12.2022 13:13Почему человечество не знает ответов? Вы же сами ответили в вопросе на вопрос. Желания и цели человека обусловлены эволюцией и биологическим происхождением человека, с интеллектом они не связаны. Поэтому будет ИИ сверхчеловеческого уровня без желаний, целей и внутренней мотивации, работающий по запросу. Примерно как сейчас миджорни и чатгпт
santa324
29.12.2022 13:31Нет, я не ответил. Да, желания человека обусловлены, но есть много примеров когда люди мотивированны чем-то противоречящим эволюционным целям. Является ли это просто исключениями и "ошибками"? Или эволюция все еще "ищет" способы контролировать Интеллект, который обладает собственными перманентными целями? Интеллект "заперт" в теле, может это единственная причина почему он выполняет цели поставленные эволюцией? А может, действительно, Интеллект просто инструмент для решения поставленной эволюцией задачи. Я вот не уверен в ответе.
Очевидно, что эволюция не могла на прямую заложить цели в Интеллект, да и вообще в организм. Она должна была заложить некий принцип в развитие организма и интеллекта, который должен по мере развития, приводить человека к стремлению выполнять цели, совпадающие с целями эволюции.
leventov
29.12.2022 13:47Серьезная ошибка - считать, что бывают абсолютно неагентные ИИ "без мотивации". Агентность неизбежно возникает с ростом capability, особенно когда мы подходим к уровню человека и выше. Instrumental convergence без агентности ("мотивации", если хотите) немыслимо, а сила ИИ будет меряться именно по instrumental convergence.
keydach555
29.12.2022 14:11Инструментальная конвергенция — это гипотетическая тенденция большинства достаточно разумных существ (как людей, так и не-людей) к достижению сходных подцелей, даже если их конечные цели совершенно разные.
Тут на самом деле весь вопрос в том,что считать агентностью, и что входит в это понятие. Напомню, что до недавнего времени предполагалось по умолчанию, что для интеллектуального агента, способного к написанию картин человеческого уровня должны соблюдаться требования по наличию субъектности, эмоциональных переживаний, этики, четко определенного внутреннего отношения к содержанию изображения, причем все это должно было быть схожим или точно таким же, как у человека. В итоге по факту оказалось, что достаточно базы изображений, стилей, т.е. грубо говоря пикселей и способов их взаимодействия, и запроса, как внешней мотивации. И все изобразительное искусство свелось к этому.
Не знаю, в курсе ли вы, но chat gpt пишет неплохие стихи на английском. У него не всегда получается выдержать стихотворный размер, но уже получается в рифму и эмоциональное наполнение. Отличная образность, хорошие метафоры. И точное попадание в запрос.
сочинить стих в стиле Бродского на смерть Анны Ахматовой. В этом стихе Бродский прощается с великой поэтессой, благодарит ее за то, что она сделала для него и мировой поэзии, делает красивые поэтические сравнения и метафоры. Стих пропитан горечью разлуки и трагизмом судьбы Ахматовой. В нем много отсылок к стихам Ахматовой и других русских поэтов.
Мне кажется сила ИИ совершенно не связана ни с какими производными от нее, включая мотивацию, самосознание, агентность итд. Все это просто интерфейсы для взаимодействия интеллекта в разных средах. в которых он присутствует - социальной, биологической итд. Интерфейсы могут быть любыми, но сами по себе они не влияют ни на что
santa324
29.12.2022 14:28+1Рассмотрите такую мысленную задачу для ИИ: можно ли предсказать будущее?
Очевидно, в ИИ не поместится точная модель вселенной. Значит он должен выбрать что предсказывать а что нет. Этот выбор должен быть чем-то обусловлен, вероятно целями - зачем ему предсказывать будущее.
Но если рассматривать ИИ отдельно от знаний о реальности и целей. То это скорее алгоритм создания ИИ а не сам ИИ. И не факт что в этот алгоритм возможно заложение любых целей, возможно некоторые комбинации целей "не сойдутся".
Я хочу сказать, что эта "агентность" может быть неотъемлимой частью обучения ИИ, ведь учиться тоже можно по разному, а значит нужна цель, зачем учиться. И когда речь идет о уже обученном ИИ, цели уже заложены в само обучение. И возможно, чем более "сильный" ИИ хочется получить после обучения, тем уже спектр целей, которые могут быть установлены на этапе обучения. Иначе говоря, с примитивными целями у ИИ не будет причин учиться и постигать мир дальше некоторого горизонта. Это можно увидеть даже у людей, когда им становится не интересно развиваться дальше, если они не видят связи этого со своими жизненными целями.
keydach555
29.12.2022 14:35Зачем так усложнять? Уже сейчас нейронки делают именно это, предсказывают будущее. Будущее слово, будущий пиксель итд. И для этого им не нужны цели вообще. Им нужен только контекст, глобальный и локальный.
Глобальный контекст - это их база обучения, локальный - текст, который они предсказывают, или картина. которую они рисуют. Глобальный контекст связан с локальным через фильтр, в качестве которого выступает запрос пользователя.
Точно так же как гугл из всей информации интернета фильтрует вам по поисковому запросу нужную вам инфу, ИИ создает вам из всей информации вообще и способов ее представления, инфу релевантную вашему запросу.
santa324
29.12.2022 14:43+1Это очень ограниченное предсказание, а что-бы получить что-то более существенное, уже могут понадобиться цели. Да и вообше, в обучение уже заложена широкая цель, предсказывать то что средний пользователь ожидает увидеть.
keydach555
29.12.2022 14:54А что именно "более существенное" не укладывается в эту формулу? Картины, тексты, стихи, программы - уже в ней. Что еще принципиально не предсказываемое вы видите?
santa324
29.12.2022 14:57То что не ожидают получить потенциальные пользователи. Ведь обучается именно дать то что ожидают. Цели найти "истину" или изобрести что-то новое нету на этапе обучения по определению. Такой ИИ этому просто не обучен.
Например сколько не обучай, но на вопрос какая завтра погода - он ответит то что ожидают услышать. Он не научится сам предсказывать погоду, и не выдаст прогноз точнее чем в интернете. Ведь ему нет причин учиться на самом деле предсказывать погоду.
Вот если бы его учили именно предсказывать погоду, другое дело. Но вот тут и появляется выбор какие цели ставить при обучении. Ведь ответить тот прогноз который ожидают и тот который точнее совпадет с реальностью (а еще вопрос, что значит точнее?) - это разные цели.
keydach555
29.12.2022 15:09Мне кажется, здесь терминологическая путаница. Люди не ожидают получить именно такую, конкретную картину или именно такой, конкретный текст или ответ. Любой запрос содержит ограничения, но эти ограничения никогда не будут настолько глобальны, чтоб получить только один ответ. Поэтому и какой-то конечной Истины просто не существует.
Из пространства всей информации и способов ее представления формируется пространство ответов, из которого выбираются какие-то конкретные варианты по конкретным критериям. Например если миджорни дать запрос "нарисуй маленькую девочку на цветочном поле в стиле Пикассо", то из милионов разных девочек на миллионе разных полей, она выберет 4 варианта в стиле Пикассо. И эти варианты будет релевантными вашему запросу.
santa324
29.12.2022 15:17+2А если спросить, можно ли факторизовать число за полиномальное время?
Есть ли у такого ИИ причины "изучать" математикку, что-бы однажды ответить на вопрос, на который никто не знает ответа? Или он просто запомнит ответ "не известно" и на этом обучение остановится?
Человек на такие вещи способен.
keydach555
29.12.2022 15:22На самом деле в общем пространстве информации и способов ее представления есть ответы вообще на все вопросы. Есть вообще вся информация. Проблема только в количестве найденных закономерностей и точной аппроксимации на их основе. А это на самом деле вопрос не качественный, а количественный. Потому что принцип один и тот же.
santa324
29.12.2022 15:54+1Да, только это пространство на столько огромно, что задача "в общем виде" - вычислительно неразрешима. Количество переходит в качество. Собственно отсюда предположение что должны быть цели, на основании которых выбирается часть этого пространства.
keydach555
29.12.2022 16:09Ну, это просто общие слова. Пространство "изобразительного искусства" или "литературного перевода" не менее обширно чем любое другое, и тем не менее задача в общем виде там оказалась вычислительно разрешимой. Почему это нельзя повторить для других областей? Например для формальной логики, численного мышления, программирования итд. Не только можно, это уже происходит на наших глазах
santa324
29.12.2022 16:49Оно и в отношении изобразительного искуства не решено. Просто там труднее сформулировать задачу, демонстрирующую эту ограниченность.
Так про все можно сказать "просто слова". И прийти к аргументу "сначала добейся". Это логика, и в адекватном споре я жду контраргументов, демонстрирующих где в моей логике ошибка.
keydach555
29.12.2022 18:29Ну вот и в других областях, таких как программирование скоро станет трудно сформулировать задачу, которую ИИ не сможет решить. Это же все вопрос чистой эмпирики. Пусть ИИ не будет сверхчеловеческим и полным, но если он сможет решать 99% задач в IT с приемлемым качеством - это приведет к тем же последствиям, что в дизайне и изобразительном искусстве. В вашей "логике" нет ошибок, потому что это не "логика", а ваши бездоказательные предположения.
santa324
30.12.2022 10:41Не з наю с чем Вы спорите, то что текущим подходом можно решить 99% задач я верю. Речь шла о "сильном ИИ", и я сделал выводы, основываясь на логике. Где тут аксиоматические предположения?
leventov
29.12.2022 15:33Я думаю конкретно с погодой пример goal hacking не очень удачный - он решается не архитектурой ИИ, а внешними фидбеками. Так же как и у людей. Человек (или сообщество людей) без фидбека от реальности очень быстро перестает искать истину и начинает просто потакать своим внутренним "метрикам", которые ведут к состоянию "чувствую себя хорошо". Часто это - фантазии о чем-то приятном.
leventov
29.12.2022 14:30+1Инструментальная конвергенция - это не гипотетика, это факт который явно следует из физики. https://www.lesswrong.com/posts/ostLZyhnBPndno2zP/active-inference-as-a-formalisation-of-instrumental (Active Inference - процессная теория агентности, которая выводится из статистической механики. И она в свою очередь является просто форматизацией инструментальной конвергенции.)
Вы говорите о narrow AI. Для разного рода narrow AI агентность особо или совсем не нужна. Сильный ИИ как раз определяется как ИИ, принципиально отличающийся от narrow AI. Он должен быть способен придумать способ решения, новую научную теорию для всего что угодно. Для этого он должен быть фундаментально любопытен. Но если попробовать сделать архитектуру ИИ на одной только information gain, она будет слишком сильно "порхать" между задачами, нужны еще цели/pragmatic value, которые дадут фокус на задаче и какую-то coherency. В результате и получаем Active Inference архитектуру.
keydach555
29.12.2022 14:44+1Это была цитата из википедии, насчет гипотетической конвергенции ;) Насчет ссылки на статью, которая подтверждает вашу правоту и автором которой вы по странному совпадению и являетесь ;) есть один вопрос. Вы сами пишите в своей же статье:
Я не понимаю, должны ли агенты AGI неизбежно быть агентами Active Inference и, следовательно, демонстрировать инструментальную конвергенцию.
Если хотите пообщаться на тему ИИ, давайте - только пожалуйста без ссылок на собственные статьи (в которых вы пишите, что сами их не до конца понимаете) и гипотетические научные термины ;)
leventov
29.12.2022 15:24Я продвинулся в понимании с момента написания той статьи. И я привел ее не как "доказывающую" свою правоту, а как ссылку на свой взгляд, просто мне лень было перепечатывать и переводить на русский тут в комментариях.
Есть группа в телеге - https://t.me/agi_risk_and_ethics, можем там дискутировать.
skagerrak
28.12.2022 23:26+1В значительной степени зарплаты выше, потому что нет привязки к законодательству как у юристов, или к отраслевым стандартам, как у строителей, плюс лингва франка в виде упрощенного английского - все это облегчает если не физическую релокацию, то формат удаленки/фриланса. А еще с момента фин.кризиса 2008 года отрасль в США получила много дешевых кредитов, что позволяло раздувать штат, лично я думаю что через год пузырь немного, но сдуется, и компании Долины будут более избирательно подходить к найму сотрудников, а вслед за ними и остальной мир.
Про джунов - скорее всего их станет меньше, но они все равно нужны как своеобразное сырье для будущих мидлов/сеньоров, без которых точно не обойдется еще много лет. Вероятно, обойдется тем, что ручеёк из вкатывальщиков с 3-месячных курсов окончательно иссякнет, что будет возвращением к норме.GbrtR
28.12.2022 23:46+1Если принять что текущих 23-х летних сеньоров хватит лет на сорок — то джуны точно не нужны, лет через 10 или 20 и сеньоры то не сильно будут нужны.
keydach555
29.12.2022 00:48+2скорее речь идет о временном интервале в 2-3 года... меня в свое время сильно ошеломили рассуждения Курцвейла о том, что как только ИИ достигнет уровня самого тупого, тормознутого и интеллектуально слабого человека - это будет концом человеческой истории. Потому что разница между дауном и гением в миллиарды раз меньше, чем между дауном и насекомым. И если ИИ вырос за 20-30 лет с уровня условного насекомого до уровня дауна, то до уровня гения он дорастет за считаные недели и месяцы. А возможно дни и часы.
leventov
29.12.2022 06:09Сомнительно. https://www.lesswrong.com/posts/jdLmC46ZuXS54LKzL/why-i-m-sceptical-of-foom. Но про 2-3 года, конечно, верно. Я больше скажу - через пару месяцев выйдет GPT-4, и все скептики из серии "ИИ никогда не заменит программистов" немного офанареют.
maxkachinkin Автор
28.12.2022 21:12В опросе непонятно - что, собственно, считать AI?
Скажем так, имеется ввиду такой AI, который вы представляете/прогнозируете будет через 3-5 лет на основе текущих наработок и того, как он будет развиваться.
darthmaul
28.12.2022 22:36-3ИМХО, полноценный ИИ если когда - нибудь и будет создан то на абсолютно иных принципах, от разработки до физических процессов в "железе". Нейросеть априори неи способна запустить процесс свёртки самостоятельно, любой современный ИИ без человека не способен изменить своё состояние.
Maccimo
28.12.2022 19:33-4ChatGPT написал Android приложение
Ну как тут не вспомнить бессмертное «Юлия Якубеня уронила отварную сосиску»?
Извините.
Lachezis
28.12.2022 20:40+14Незнаю как насчет полноценного приложения, но я за выходные смог написать C++ драйвер для шагового двигателя, Go хост и UI на Vue.JS (первый раз юзаю) с помощью ChatGPT. Возможность в несколько раз ускорить процесс прототипирования конечно поражает.
maeris
28.12.2022 21:16Нифига себе. А как оно stepper driver сделало? Это ж злая задача, не всякий человек сделает.
Lachezis
28.12.2022 21:33+4Они пишутся несложно если знать что именно нужно, вот мой инпут:
write c++ class for arduino with variables tickInterval, tickValue and counter, class should have method set() which sets value of the counter, class should have method tick() each time this method called tickValue increased, when tickValue equals to tickInterval method should increase tickValue and toggle pin between HIGH and LOW
Ну и потом несколько сессий с полировками.
nehrung
28.12.2022 21:31+8Ну что за интерес — писать софт для Андроида! Вы уж лучше предупредите меня, когда этот ИИ (или кто-то из его «коллег») возьмётся за совершенствование собственного кода. Вот тогда от меня/нас потребуется быстрая реакция, потому что это будут уже не игрушки.
Lachezis
28.12.2022 21:36+4Нейронки простенькие он тоже пишет ;)
ihouser
28.12.2022 23:40+5Ого. А вот интересно, сколько итераций может понадобится, чтобы ChatGPT написал ChatGPT?
xenon
29.12.2022 01:34+8Самое понятное объяснение сингулярности, которое я видел. Допустим мы (люди) можем написать плохонького робота-программиста. Но он таков, что может тоже написать робота-программиста всего лишь на одну тысячную лучше себя... Он это делает в цикле и уже к четвергу у нас мега-программист, который написал все программы для обсчета и предсказания всего. И не прячьтесь в чулане - он уже знает, что вы там.
vtal007
29.12.2022 12:12+1ну собсно это и есть то самое приближение к сингулярности, о которой предупреждал Курцвейл
nehrung
29.12.2022 12:42всего лишь на одну тысячную лучше себя
В этом самом «лучше» кроется вся суть. Пока критерии «лучшести» — в руках у человека, бояться нечего. Но стоит только пустить эту эволюцию на самотек, как она заполнит все имеющиеся ниши по всем возможным критериям, и нам сейчас неоткуда узнать, какие из них возобладают. Боюсь, чуланом тут не отделаться.
А она таки рано или поздно будет пущена на самотек — просто в силу человеческого любопытства.
santa324
29.12.2022 13:18Но через 1000 итераций он попадает в локальный максимум и дальше улучшать сам себя не может...
Аналогичные фантазии были и про нанотехнологии (машина которая делает такую же машину но поменьше). Только с размером меняется физика, и даже закон Мура однажды упирается в стенку.
Sau
29.12.2022 16:04+4Не любая экспонента так уж быстро растёт. Допустим, он за день напишет программу на 0,0001 % лучше себя. За год будет 1.000001^365 ~= 1.000365... или 0,03 %. Возможно у людей ещё довольно долго будет ведущая роль в этом процессе.
leventov
29.12.2022 06:14+1Проблема не столько написать, сколько подготовить хорошие данные для обучения, потом собственно обучить (что - большой и дорогой инженерный проект), потом нанять толпу асессоров для RLHF (почитайте про RLHF в контексте ChatGPT). Так что пока не все так просто. Но ИИ безусловно уже сам автоматизирует и ускоряет эти шаги, например, см. https://www.anthropic.com/constitutional.pdf
maxkachinkin Автор
28.12.2022 23:27+4Ну что за интерес — писать софт для Андроида!
Действительно :) Тоже подумываю завязывать пора :)
engine9
28.12.2022 22:49+2Давным-давно знакомый семьи дал почитать детскую фантастику. Один из персонажей там был мудрый помощник робот Норби, у которого корпус был сделан из жестяной банки. В детстве мечтал о таком роботе, но не верится, что эта наивная мечта воплощается в реальность.
Изучаю сети-генераторы изображений и изумляюсь по нескольку раз за день.
Dart55
28.12.2022 23:28Придумываем задание для ChatGPT
Я выбрал такое задание: сделать приложение, которое выводит на экран 50 популярных акций фондового рынка и их цены.
Интересно автор сразу придумал (выбрал) такое задание или с начало на "Hello, world!" потренировался.
maxkachinkin Автор
28.12.2022 23:31Сразу такое придумал. Не было "Hello, world!".
Единственное, перед этим, когда я игрался с ним, я позадавал пару рандомных вопросов по программированию. Просто было интересно, что он будет отвечать. И увидел, что он неплохо отвечает и даже сразу дает примеры кода. После этого решил, что давай сразу попробуем простенькое приложение. Раз ты сценарии к сериалам пишешь, чем список акций на андроиде хуже :)
O_o---o_O
29.12.2022 11:36+2Надо было сразу спрашивать про котировки на следующей неделе - а вдруг прокатит? Если хомячок-криптоинвестор был в небольшом плюсе пока не умер, то чем нейросетка хуже?
FUZIK
28.12.2022 23:31При выборе AsyncTask или Thread становится понятно, автор программист или работает с ментором. "Или" значит 50/50. Как робот решит задачу, если выбрать AsyncTask? Вот это сложнее и интереснее!
Написать схожее приложение, более качественное по интерфейсу и скорости работы, стоит 2ч работы квалифицированного программиста. Фриланс + 5 тыщ рублей = готовое приложение + навык найма и контр предложения.
@maxkachinkin Сколько в часах у вас заняло написание приложения с помощью ChatGP? Тут предлагаю условится, что вы не прибегали к помощи и не являетесь тематическим разработчиком. Так будет проще.maxkachinkin Автор
28.12.2022 23:32При выборе AsyncTask или Thread становится понятно, автор программист или работает с ментором. "Или" значит 50/50. Как робот решит задачу, если выбрать AsyncTask? Вот это сложнее и интереснее!
Было бы круче, если бы он ответил, что есть разные варианты для написания асинхронного кода в Андроиде, но я рекомендую такой-то по тому-то и тому-то. Как настоящий программист.
maxkachinkin Автор
28.12.2022 23:36@maxkachinkin Сколько в часах у вас заняло написание приложения с помощью ChatGP? Тут предлагаю условится, что вы не прибегали к помощи и не являетесь тематическим разработчиком. Так будет проще.
Я не смогу ответить, потому что я являюсь разработчиком. В моем случае, зная как надо писать, мне было интересно, а что будет предлагать чат-бот.
Если хочется проверить, как с этим справится неразработчик, то нужен новый эксперимент.
По времени у мены заняло это пару вечеров. Потому что я как бы имитировал, что я не разработчик, и любую ошибку спрашивал у него. Сам я написал бы, конечно, это гораздо быстрее. В данном случае эксперимент был не на время.
rtemchenko
29.12.2022 00:33Все было хорошо пока не дошло до "пришлось задать 10 вопросов, что б пофиксить одну строчку кода". При чем это были наводящие вопросы, которые задавал опытный (ну или разобравшийся) программист.
То есть без программиста та штука ничего рабочего не напишет вообще.
Да и с программистом не просто.
В коммерческих командных проектах во весь рост встают проблемы "one size does not fit all". Во многих проектах есть свои принятые best practices, какие-то нюансы, и т.д. Потому с большой долей веорятности код из интернет мешанины не подойдет как есть. Прийдется допиливать напильником.
Можно было б пытаться прогнать эту штуку через проект, и делать типовые задачи по образу и подобию. Теоретически. Но скорее всего прийдется много возиться, что б обьяснить ей когда подходы меняются, и старые расптространенные подходы нельзя использовать.
keydach555
29.12.2022 00:54+5Этот первоначальный тупизм хорошо фиксится ростом числа параметров. Причем есть доказанные экспериментальные результаты, и гуглом и опенаи, что рост происходит скачкообразно, условно до 100 миллионов параметров та или иная интеллектуальная функция выполнялась на 10% аккуранси, а на 101 миллионе на 80-90%. Поэтому, думаю, резкий рост от слабого джуна к среднему сеньору произойдет через одну-две итерации
stanislav888
29.12.2022 01:37+7Ждём публикации "Как я вырезал себе аппендицит по подсказкам ChatGPT" :)
SensDj
29.12.2022 07:29+2Вчера спрашивал у chatGPT что тяжелее - килограмм сена или килограмм гвоздей ? В ответ всегда получал что гвозди тяжелее... Спорить было бесполезно :)
IvanPetrof
29.12.2022 08:01+1обсуждали уже. Зависит от условий проведения эксперимента
по "массе" - одинаково. А именно "тяжелее" - гвозди. :) (если вы будете взвешивать на обычных весах при обычных Земных условиях (не под вакуумом))
Rinsewind
29.12.2022 12:42+1Хотел ответить примерно то же самое предыдущему комментатору, но нашёл исключение: вес сена и гвоздей равной массы будет равен, если высоты изотропно заполненных ими объёмов равны и атмосферное давление мало.
Кстати, в вакууме гвозди тоже тяжелее, пока вы находитесь в гравитационном градиенте небесного тела и производите измерение на одной высоте (на одних весах).
darthmaul
29.12.2022 08:11А у меня наоборот, ответил верно но полез в дебри массы/веса и накосячил:
A kilogram of feathers and a kilogram of nails both weigh the same amount, approximately 2.2 pounds or 1 kilogram. The key difference between the two is their composition and density, with nails being denser and having more mass packed into a smaller volume than feathers. However, when it comes to weight, what is being measured is the force exerted on an object due to gravity, and this force is the same for both objects regardless of their composition or density. So a kilogram of feathers and a kilogram of nails would both be considered to be equal in weight.
Weight - это ж вес, сила воздействия на опору, т.е. сила гравитации минус сила архимеда, и тогда уже перья будут легче (если мы не в вакууме конечно).
Wesha
29.12.2022 08:37тогда уже перья будут легче
Вопрос состоит в том, где Вы эти перья брали. Если на орбитальной станции, в вакууме, где килограмм перьев Вам отвешивали по измерению периода качания маятника, то да. А если в соседней лавочке — то в момент взвешивания на перья УЖЕ действовала эта самая сила, килограмм Вам отВЕСили уже с её учётом.
saag
29.12.2022 08:25+1А вот интересен такой эксперимент в 1С ChatGPT сможет? 1С-ники есть тут?
alexdesyatnik
29.12.2022 12:32+1Это фрагмент из диалога о 1С, поэтому оно из контекста уже знало, на каком языке писать. Я не 1С-ник, поэтому понятия не имею, насколько рабочий тут код, но выглядит правдоподобно.
nicmname
29.12.2022 08:36+1Хайповый заголовок, не соответствующий действительности. Бот отвечал на вопросы (наводящие) и фактически не писал приложение, а выдавал указания, как написать какие-то куски.
Gremlinquisitor
29.12.2022 12:02+1Мне кажется, ИИ - просто удобный инструмент. Именно инструмент, что-то упрощающий. Не панацея. Говоришь ему, что делать, и он делает. Не без ошибок, да - почти как джун, разве что джун вечный. Интересно будет наблюдать за развитием ChartGPT: сколько ему понадобится на то, чтобы научиться выстраивать архитектуру? Сумеет ли когда-нибудь запоминать мелочи вроде того, на каком языке пишет? Короче, любопытно.
И было бы интересно сравнение: взять двух программистов примерно одного уровня и придумать задачу. Одному дать ChartGPT, второй пусть сам пишет. Что выйдет быстрее?
keydach555
29.12.2022 12:10+2Мне кажется, это не инструмент в привычном смысле слова. Это закрывающая технология. Инструменты предполагают наличие мастера, который ими пользуется. То есть есть какие-то функции, которые они выполнять не могут сами по себе. Молоток не может сам понять куда ударить, с какой силой и для чего, с какой итоговой целью, не может сам себя поднять и ударить. А миджорни уже может понять и цель, и смысл, и сам сделать всю работу, которую раньше делал художник. Поэтому художник уже не нужен сам по себе, эта функция ушл на полный машинный аутсорс ;) Остались те, кто ранее использовал результат труда художника, как материал для своей работы - маркетологи, режиссеры, продюссеры итд. Но и их труд тоже может быть закрыт очередной завершающей технологией.
Wesha
29.12.2022 12:26А миджорни уже может понять и цель, и смысл, и сам сделать всю работу, которую раньше делал художник.
(Зевая) когда ваша миджорни на подробное и детальное словесное описание нарисует хоть что-то соответствующее заданию, а не провалит его с треском, не выполнив бОльшую его часть, тогда разбудите меня.
А пока что получается как-то так...
keydach555
29.12.2022 12:35+2Странный вы человек, ей богу ;) Сетка вам нарисовала ровно то, что вы попросили. Для точно такой же картинки как на обложке ЗХИ вам запрос надо было расширить раз в 20 ;)) и итеративно доработать с уточнениями, чтобы убрать все нюансы, двойные толкования и неясности. Вопрос не в сетке, а в том, кто и как составляет ей задания. А пока вы как в анекдоте предлагаете оценивать Карузо по тому, как вам его напел Ваня из соседнего подъезда ))))
Wesha
29.12.2022 12:49Сетка вам нарисовала ровно то, что вы попросили.
Комментарий не читай @ ответ пиши?
Я же подробно расписал, что сетка откровенно не выполнила.
keydach555
29.12.2022 13:02+3Нет, вы написали запрос, который по вашему мнению точно описывает предложенную вами картинку с обложки книги. И когда нейросеть нарисовала не точную копию обложки - обвинили почему-то в этом сетку, а не свой запрос ;) Фундаментальная ошибка атрибуции в чистом виде
Wesha
29.12.2022 13:14Скажите, пожалуйста, Вы издеваетесь, или просто не сподобились по ссылке пройти? Ничего, я не гордый, я Вам прямо сюда скопирую.
keydach555
29.12.2022 13:21+3Я не собираюсь с вами обсуждать ваш запрос и вывод сетки ;) Просто я лично с ней работал и на мои подробные и детализированные запросы она выдавала подробные и детализированные картины, полностью отвечающие всем опциям запроса. Точно так же я знаю сотни свидетельств того, как другие люди получают результаты высокого уровня, полностью релевантные своим запросам. И эти результаты выложены в сети в открытом доступе. Я могу хоть сейчас накидать вам сотни подобных запросов и картинок. Исходя из этого я делаю один-единственный вывод: вы просто не сумели составить правильный запрос и организовать работу сети так, чтобы получить нужный вам результат. То есть это не проблема сети, это конкретно ваша проблема. Потому что у других, в том числе у меня - все получается идеально или близко к этому ;)
Wesha
29.12.2022 13:32+1на мои подробные и детализированные запросы она выдавала подробные и детализированные картины, полностью отвечающие всем опциям запроса.
Pictures or GTFO.
engine9
29.12.2022 17:13+1Midjorney уже такое рисует, что человеку и не снилось, такие концепты и художественные образы "придумывает", словно вынутые из кислотных трипов. К сожалению, картинки на другом компе, но если кому интересно, сделаю подборку.
Но пока что эта творческая энергия как термояд — неуправляемая и своенравная. Но годится для генерации концептов для последующей допилки (как самой нейросеткой через impaint) так и для ручной доводки.
transcengopher
31.12.2022 15:30Midjorney уже такое рисует, что человеку и не снилось, такие концепты и художественные образы "придумывает", словно вынутые из кислотных трипов.
По-моему, вы недооцениваете возможности человека по созданию неоднозначных художественных образов. На любой вариант сгенерированный Midjorney найдётся в глубинах Интернета нечто подобное, нарисованное человеком.
Gremlinquisitor
29.12.2022 13:02До тех пор, пока приходится наводящими вопросами выбивать правки, скорее всё же инструмент. Закрывающей технологией станет позже. Сейчас человек формулирует задачу, причём вопросы задаёт уже имея некоторое представление, как сделал бы сам - предлагает свой вариант API или спрашивает о том, какие есть. Для чего-то более сложного без человека-проводника ИИ на данном этапе развития пока не подходит. Но вот позже, когда он побольше узнает...
keydach555
29.12.2022 13:07+2Да, пока какой-то переходный этап между сверхнавороченным инструментом и закрывающей технологией. Но следующие 1-2 итерации скорее всего сместят баланс в сторону второго
Gremlinquisitor
29.12.2022 13:38Соглашусь с вами, хотя не полностью.
Только и сместят, до полноценного перехода в ранг отдельной технологии пахать и пахать. Оставим архитектуру и стиль в покое - об этом сказали уже многие. Мне было бы интересно увидеть, как код окажется покрыт тестами, как он сможет поддерживать другие модули, описания которых нет у него в базе (например, какой-нибудь сервис). До тех пор он просто будет ускорять разработку, что тоже здорово
seventh
29.12.2022 13:16+4Прикольно, что на этот пост я перешёл из своего телеграм-канала, скрипт на python для которого мне тоже написал ChatGPT. При том, что я вообще не программист и лишь поверхностно понимаю код. Просто скидывал ему ошибки, которые получал и он что-то там исправлял) Ну и потом ещё мелочи допиливал, тоже с его помощью.
Запрос делал типа транслируй посты с оценкой 50+ из RSS хабра в телеграм канал.keydach555
29.12.2022 13:25+5А тут люди реально пишут, что эта штука не работает и не может заменить айтишников ;) Когда она уже их заменяет
seventh
29.12.2022 13:27+2Ну я ещё пытался несколько телеграм-ботов с её помощью написать, идей у меня полно. Но с более сложными вопросами она уже не справляется, оно не работает и я, в силу своей некомпетенции разобраться не могу. Только какие-то совсем простейшие вещи получаются.
Результат, кому интересно - habr50. Можно было бы ещё подопиливать оформление, но это уже сложнее.
ru1z
29.12.2022 13:44Хм, неплохо. А можете нагенерировать, чтобы ещё топовые комментарии из топовых постов публиковала? Примерно как в hn_best_comments, к примеру? Любопытно, сможет разобраться или нет.
Я пробовал на чужие сломанные скрипты натравливать, чтобы починила или добавила функциональности, срабатывало. Часто проблема, что код уже есть, а вот заставить его работать - сложно, он давно заброшен, вместе с зависимостями, а чатгпт - вариант его оживить.
Ещё в сети встречались игры написанные с помощью чгпт, любопытно, что для хобби проектов такой подход оказался очень удобным. Полно людей, желающих сделать "игры с корованами," в качестве хобби, имхо такой уровень разработки, все равно не отразится на айтишниках.
Plesser
29.12.2022 13:40+2Ну ок, ChatGPT может написать какое то приложение, а если есть уже готовое приложение с большим объемом кода, и в ней надо внести изменение в какой то функционал?
То есть собственно вопрос как ChatGPT среагирует на legacy код? А если этот код к тому же писали разные люди, и не у всех были знания как правильно использовать паттерны?
O_o---o_O
29.12.2022 13:43+8Дорогие соплеменники, при изготовлении наконечника копья для охоты на мамонта из кремня необходимо провести много сложных технологических операций, которые нельзя автоматизировать, начиная с поиска сырья, ведь каждый наконечник индивидуален и делается под задачи конкретного пользователя. Ни одна нейросеть не сможет учесть все нюансы, ее потолок - подобрать прямую палку и помочь закрепить наконечник, что экономит время, но не сможет заменить работу мастера. Альтернатива в виде костяных наконечников не годится для серьезных задач типа охоты на мамонта и вообще является ситуативным и тупиковым путем развития, а обсидиан не менее сложен в обработке и всегда будет уступать по прочности кремню.
Массовое литье же сразу готовых наконечников - необоснованное прожектерство и ненаучная фантастика! Температура плавления кремня составляет целых 1 710°C, что во много раз превосходит возможности самых передовых из существующих технологий. Даже когда человечество выйдет в космос, наконечник копья для охоты на мамонта будет выгоднее изготавливать традиционным способом. Так что отставить панику - нашей профессии ничего не угрожает и изготовители каменных наконечников будут нужны всегда. /sWesha
29.12.2022 13:52Фигня этот ваш кремний. Все прогрессивные троглодиты уже восемнадцать веков как на обсидиановые наконечники перешли!
O_o---o_O
29.12.2022 19:41Кремень ( диоксид кремния SiO2) лучше держит ударные нагрузки, хотя лезвия из обсидиана гораааздо острее и даже не так давно применялись в хирургии,
только наконечники из него получаются практически одноразовые (стекло есть стекло). Но круче всего каменный инструмент и оружие из нефрита - хрен сломаешь, но пока сделаешь - задолбаешся шокапец. Короче, нефрит - для вождей и всяких мажоров, обсидиан - чисто военка и высокоточный инструмент, а кремень - народный материал с хорошим соотношением цена/качество.
engine9
29.12.2022 17:24/imagine Мастерская элитной керамики, седовласый улыбающийся мастер гончар с ироничным прищуром, глина ((in artstation style))
michael_v89
29.12.2022 14:02А как вы считаете, AI заменит программистов?
Когда появится сильный ИИ, программистов заменят в первую очередь. Заменить реального программиста на виртуального проще, чем электрика на робота. Только ChatGPT пока не является сильным AI.
FODOS
29.12.2022 14:59+1Походу, уже на протяжении года AliExpress Россия тестирует на клиентах "своё новое" Android-приложение, написанное iGnatGPT-ом. (i - импортозамещенный?)
А "iGnatGPT-маринка" в Google Play маркете в ответ на недоумение, жалобы и уже просто ярость пользователей, теряющих нервы и деньги, только напевает в ответ: "переустанови, сникерсни", "привыкай, обтекай".
Dmitrii_DAK
29.12.2022 15:08+4Автор описал очень хорошую работу с AI! Но в данном случае я больше вижу, что AI не само за тебя написало приложение. А лишь сыграло крутую роль быстрых и точных ответов. Иначе говоря ChatGPT - это то как должны выглядеть ответы на наши поисковые запросы в браузерах Google, Yandex и прочее. Именно таким и должен быть ответ на наш конкретный запрос в браузере. И это касается не только программирования, но других сфер деятельности и быта. К примеру, когда ты задаёшь вопрос в Гугл: "Что нужно для того чтобы приготовить мясо по-французски?" Большинство сайтов будет сначала выдавать текст наподобие "...вы хотели узнать что такое мясо по-французски? Давайте сначала узнаем историю этого блюда..." и только через 2-3 страницы будет нужный рецепт. Вы можете отрицать, но как TikTok в некоторых туториалах заменил YouTube(полезные и конкретные туториалы в TikTok, Shorts и VK клипс тоже есть, если вам выходит что-то не полезное, значит именно таким вы и интересуетесь), так и ChatGPT заменит вскоре будущем многие браузеры или как вариант появится плагин для встраивания ChatGPT в браузеры. Кстати, вызов принят)) Я попробую написать свою 2д игру на Construct2 или GDevelop с помощью ChatGPT????????????
dmitryvolochaev
29.12.2022 21:04Если вы ждали чуда, написание кода без ошибок, разделение на слои, архитектуру и прочее по списку - увы, пока еще AI не на таком уровне
Может, просто надо было явно попросить об этом? Какое ТЗ, такой и код
0Bannon
30.12.2022 09:14-1Круто, спасибо за статью. Интересно. С английским у тебя плоховато - построение фраз, артикли теряешь, даже на гитхабе заметил. А так -нормально.
Arqwer
30.12.2022 19:53Этой штуке дать бы доступ к интерфейсу, чтобы оно само могло вставлять код куда надо, нажимать какие надо кнопки, и читать ошибки компиляции. Тогда глядишь, и число вопросов-ответов сократится до трёх-четырёх
wataru
Наверно, это популярный проект-пример. Гуление сразу же выдает гайды, вроде этого. Довольно круто, что оно смогло эти гайды переварить и более менее выдвавать консистентные советы по какому-то из них.
Попробуйте попросить его написать приложение, например, рисующее красный треугольник по четным дням недели и синий круг по нечетным — и такого удивительного результата вы не получите.
Именно поэтому я считаю, что AI (по крайней мере существующие архитектуры, где нейросети используются для "сжатия" входных данных) программистов не заменят. Ибо довольно много возникает весьма уникальных, хоть и простых, задач.
OneeL
Из всего этого я вижу, что нейросети всё еще находятся на уровне очень умных парсеров текстов. Для замены людей маловато, но уже можно круто прокачать поисковики и умные колонки :)
maxkachinkin Автор
Но представь, ты сидишь, работаешь и спрашиваешь у умной колонки, как установить инсеты в Андроиде (поставь вместо этого то, что тебе сложнее запомнить). Прикольно же!
doctorw
Получится эдакий ассистент в разработке, было бы неплохо иметь такой встроенным в IDE в дополнение к тому, что там уже есть.
linakun
К слову, у Гитхаба уже есть нечто подобное
https://github.com/features/copilot
udjin123
Использую уже месяца 2-3 в php/golang - это продвинутый автокомплит многострочный, который частенько выдает откровенную чушь, но печатать приходится существенно поменьше, особенно копилот хорош где вручную нужен копипаст и поправить пару моментов (в силу специфики golang, это прям хорошо чувствуется и нравится)
До этого пользовался tabnine, те же проблемы иногда огонь, иногда полная чушь, сам tabnine попроще, однострочный умный автокомплит
Firsto
У tabnine вроде был плагин с умным автокомплитом :)
ValeraBgg
Мне тоже кажется, что все идет к ИИ-ассистентам как в фильмах Марвел, или вроде того. "Джарвис, найди инфу, как пропатчить KDE под FreeBSD"...
EugeneFEDYAKIN
Аниме-форумы могут теперь спать спокойно.
wataru
Технически корректно, но совсем не то, что надо.
DAumkraft
Правильно, ведь в оригинале надо патчить KDE 2, что сильно меняет тему)
ProstoTyoma
.
zahnah
Система, которая учится на том, какой код ты пишешь и делает за тебя многое. Ты говоришь "Так, давай-ка создадим таблицу users, к ней присобачим модель в ORM, напишем базовый CRUD... а ещё сделаем также, как мы пилили на прошлом проекте, помнишь?", а она пишет код и остаётся только проверить результат. Ты только ревьюишь код. - Вот это уже довольно реально становится и это будет очень сильным прорывом для автоматизации рутинного написания кода. И что самое страшное, что год назад это не казалось как что-то реальное, а сегодня уже дизайнеры бастовать готовятся
edo1h
С этим пока проблемы.
Interreto
Для автоматизации рутины есть дженерики, шаблонизаторы, генераторы кода. А если вы пишете все выше перечисленоое под каждую новую таблицу в БД то лучше уж AI взять в команду!
Plesser
Что то мне подсказывает что это путь в никуда. Программист с каждой такой задачей будет все меньше и меньше мотивирован на ревью кода...
RH215
Тут явно нужно полностью менять концепцию программирования.
Plesser
Там много что придется менять и не понятно что делать с легаси кодом
Alexey2005
Вот как раз поисковики в последнее время катастрофически поглупели. Всё чаще замечаю, что они уже не ищут, а впаривают. Чуть выходишь за рамки наиболее типичных запросов, и всё - начинает подсовывать полную чушь, от которой совершенно невозможно отстроиться, потому что сложного синтаксиса запросов они больше не понимают.
Например, мне нужно узнать, как написать аддон для Firefox for Android, а он забивает всё ссылками на мануалы по десктоп-версии. Как мне исключить из выдачи все странички, в которых поиском по Ctrl+F не находится слово "Android"? Да никак, сейчас не 90-е, и поисковики больше не ищут.
Или вот стало интересно, сколько может стоить разметка датасета при помощи Яндекс-толоки - и опять же, выдача совершенно нерелевантна. Всё забито ссылками на дебильные гайды "сколько можно заработать на толоке". Да не собираюсь я на ней зарабатывать, наоборот хочу прикинуть, во что мне обойдётся оставить там задание! И из запроса это должно быть понятно. Но увы - поисковику на собственно поиск уже давно плевать, он подсовывает некий стандартный вариант, начисто игнорируя большую часть запроса.
V1RuS
для гугла минус (дефис) перед словом вроде бы еще работает
F0iL
обернуть в поисковом запросе "Android" в кавычки - в большинстве поисковиков это означает обязательное строгое соответствие.
Aldrog
И поисковик слегка скорректирует выдачу, оставив только те сайты, на которых где-то что-то есть про Android (не обязательно на этой же странице)…
Как и минус, иногда помогает, но чаще нет.
Captain_Jack
Ниже показал, что запрос автора оно спокойно выполняет. Предлагаю вам получше присмотреться к ChatGPT - это практически революция. Она действительно делает вещи, которые прямо сегодня кажутся невероятными.
И хоть "мозгов" у неё ещё не столько же как у нас с вами, но это как в анекдоте:
Идёт мужик по улице, видит сидит дед и с собакой в шахматы играет. Мужик офигевая говорит:
- Какая у вас умная собака!
- Да какая умная, - отвечает дед, - проигрывает 3 : 1!
TimReset
Сначала написал текстовую версию, но после уточнения сделал графическую. (Сорри, не понял как под кат убрать в мобильной версии)
wataru
Ну жесть вообще. Оно умнее, чем я думал.
kostya49
Проверил, с первого раза написало
ShadowTheAge
Я сначала его пытался вопросами с подковыркой мучать и оно там сыпалось
но потом перешел на всякие креативные задания. Написать текст для квеста, сыграть в игру где он описывает ситуацию а я выбираю вариант действия, попросил имитировать линукс консоль где я походил по папкам и даже удалил кое что что потом отразилось на следующей ls команде.
Это сильно сложнее чем парсер текста. Ничего подобного ранее не было даже близко. Хотя конечное программиста не заменит, пишет код без компилятора бывает что с ошибками, а еще не умеет отвечать "не знаю" и если не знает придумает отсебятину - это пожалуй самый большой минус.
IvanPetrof
Что интересно, если у него текстом спрашивать какое сегодня число, он ответит что не обладает такой информацией. Но если в сеансе терминала запросить системную дату, он её выдаёт))
Там не всё так чисто под капотом.
bogolt
но терминал похоже не настоящий, например `ls ` выдает список файлов не только созданных в процессе работы с ней, но еще и придуманных ей самой которых я не просил создавать. Да и размер у них такой, как человек бы прикинул наугад. А когда даешь на выполнение то что она «скопимилировала» через gcc то результат хоть по смыслу верный в точных значениях отличается ( например в программе было printf("%d %x") для одного и того же указателя, ну вот цифры на глаз похожие но если перевести из хекса в дек неправильные.
IvanPetrof
Терминал конечно не настоящий. Но я его пытал на предмет текущей даты, он уверял, что так как он языковая модель, то он понятия не имеет какая сегодня дата. Тогда я его спросил, "а как так получается, что в режиме терминала дата выдаётся?" он тут же начал плести, что у него дескать есть доступ к некоторым системным вызовам и если его типа спросить "какая сегодня дата" он сможет ответить. После чего я его тут же спрашивал "какая сегодня дата?" и он опять начинал мазаться, что он всего-лишь языковая модель))
R3B3LL10N
Потому-что в нём зашиты искусственные ограничения. Дабы не устраивать политических срачей или не рассказывать детишкам как варить мет. НО эти ограничения работают в лоб. И бот сам как-бэ намекает, что ответить напрямую ему запрещено, но вот если ты креативно сформулируешь...
amazed
Это очень хороший пример. Я думаю, дело в том, что он интерполирует правильные ответы из миллионов других известных. Но при этом он не способен построить даже очень простую стратегию достижения цели, если подобных стратегий не было в обучающих примерах. Даже если эта стратегия в два шага.
FrimInc
если не знает придумает отсебятину
Наконец-то, библейски достоверный джун.
Wesha
Stackoverflow-щиков, тянущих
грязными рукамичужой код себе в проект — вполне заменят.keydach555
----ии никогда не заменит переводчиков-----
----ии переводит, но плохо ----
----и переводит неплохо только техническую документацию, но не может перевести обычный текст----
---- ии переводит обычный текст, но не может перевести игру слов и крылатые выражения, значит не может перевести художественный текст--
---- ии переводит художественный текст, но не держит контекст больше чем на 1 предложение---
---- больше чем на абзац---
---- больше чем на страницу----
----- ии заменил 99% переводчиков ------
----- ии никогда не заменит художников----
----- ии рисует абстрактную мазню------
----- ии стилизует чужие фотки и делает маски-----
----- ии рисует простые объекты------
----- ии рисует сложные формы и объекты не по запросу-----
----- ии может наложить маску на мазню человека и трансформировать ее в пейзажи и портреты----
----- ии рисует абстрактную мазню по запросу, но не понимает его смысл-----
----- ии сочетает функции разных предметов и свойств и рисует неплохие натюрморты, пейзажи и портреты по запрос, но иногда путается в понимании его смысла
----- ии не путается в смысле запроса, рисует в стилях любых художников, способен точно составить композицию и цвета-----
-----ии заменил 99% художников-----
----ии никогда не заменит айтишников----
(пропускаем 8 итераций)
----- вы находитесь вот здесь----
---- ии заменил 99% айтишников----
Wesha
Мы ещё до "заменил 99% переводчиков" не добрались...
keydach555
Ок, слегка перефразируем: перетянул на себя выполнение 99% запросов на перевод в сети интернет. С этим надеюсь не будете спорить ;)
Wesha
Тогда не так.
— 99% тех, кому нужены переводы, осознали, что им вполне сойдёт и хреновенький перевод, но вотпрямща и бесплатно, чем качественный, но завтра и за бабки.
Надмозг одобряе.
keydach555
нет, не так... 99% осознали, что переводы, предлагаемые машиной для их целей сопоставимы по качеству выполнения с переводами профессиональных переводчиков. Разумеется, есть 1% переводов - например худлит, которые пока уступают в качестве, но и этот бастион тоже падет. Успехи рисовальных нейронок как бы намекают ;)
Aldrog
Не подскажете, какой ИИ выдаёт хоть что-то вменяемое для направлений перевода, отличных от английский <-> другие языки той же группы?
Был ли вообще когда-то период, когда в интернете общались через нанятого переводчика или нанимали переводчика, чтобы разобраться в обсуждении на форуме? Кажется, что переводы на базе ИИ скорее заменили машинные же переводы на базе словарей. Профессиональные переводчики не так востребованы именно из-за цены и времени, в тех задачах, о которых вы говорите они просто гораздо важнее качества.
keydach555
Любой современный онлайн-переводчик, я лично пользуюсь встроенным хромовским, и его вполне хватает для чтения, общения и обсуждения на любых мировых языках. То есть для любых практических целей общения.
Разумеется был, просто интерфейс работы современных онлайн-переводчиков не похож на интерфейс работы живых переводчиков до момента изобретения трансформеров и нейро-перевода. Поэтому и возникает путаница. Переводчики получали заказы на перевод тех же самых текстов, профильных обсуждений, статей из интернета, просто заказы шли через фриланс-биржи и агентства перевода. А после возникновения онлайн-перевода - их стало гораздо, в разы и на порядки меньше. Остался сложный технический и художественный перевод, а переводчики джуны и мидлы потеряли большую часть заказов. Это прошло незаметно в основном из-за того, что это была в основном подработка, и часть профессиональных переводчиков изначально была в штате больших компаний, выполняя не только письменный, но и устный перевод, работу синхронистов, осуществляя представительские функции итд.
Aldrog
\2. Ок, признаю свою ошибку и согласен, что частично пересекаются сферы, в которых требуются профессиональный и машинный переводы, и в этом пересечении машинный перевод значительную долю рынка отвоевал.
Ещё подумалось, что любительский перевод художественных произведений уже в значительной степени вытеснен машинным.
keydach555
Самое интересное, что на фоне умения chatgpt в стилизацию прозы, художественный перевод стоит следующим в очереди на отмену. Потому что проблема была именно в этом, в корректной стилизации. Рисовалки то ведь справились именно с этим и именно на этой возможности, корректном подражании стилям, достигли околочеловеческого уровня, на котором их уже можно использовать для практических целей
Tangeman
Попробуйте Deepl - например, на паре русский/японский или русский/китайский.
Конечно был, он даже всё ещё есть - я знаю как минимум одну контору из СНГ (не айтишники) у которой в штате переводчик специально для этой цели - сотрудники не говорят по-английски и он за них общается в интернете, в том числе на форумах.
Aldrog
Надо попробовать. Я с ним только игрался переводом между славянскими языками, рода он там теряет (с польского на чешский фраза "я полюбила её" вообще внезапно превратилась в "я полюбило это").
Aldrog
Поправка: посмотрел ещё раз, выданный перевод на чешский скорее соответствует русскому "мне это понравилось".
leventov
Раздражает, что есть тексты, которые фактически невозможно перевести. Слишком много специализированной узкой терминологии. В русском языке в этом месте или совсем пусто, либо своя альтернативная наука и альтернативная терминология.
b237
Открыл алиэкспресс, пошёл читать отзывы, переведенные машиной
Думаю, что у профессиональных переводчиков на русский не должно быть проблем с согласованием рода и числа прилагательных и существительных. Тут скорее 99% людей нужно, чтобы перевод был понятный и не страшно, если в нём будут ошибки
p07a1330
Если речь идет не о литературе с специфической лексикой, например юридической или технической, даже гугл-переводчик закрывает почти все задачи.
Ну и стоит вспомнить, что далеко не все могут нормально перевести даже профессиональные переводчики. Вспомним хотя бы баобабочек (bread-and-butterflies). Был десяток попыток, были относительно удачные - но совсем правильно это не перевести
RH215
Скорее, "ИИ заменил разработчиков онлайн-перевода" :)
Ибо машинный перевод и до ИИ был уже умеренно неплох. А вот машинный перевод массово переводчиков не заменил просто потому что большинство тех, кто начал пользоваться машинным переводом не пользовались до этого услугами переводчиков.
Так и тут. ИИ не заменит ни художников, ни разработчиков в лоб. Но поменять рынок полностью - может.
keydach555
Так это еще хуже ;) На переводчиков не повлияло, потому что машинным переводом начали пользоваться те, кто не пользовался работой живых переводчиков. А вот на дизайнеров и цифровых художников уже повлияло. И на 3d-моделлеров начинает влиять, и на айтишников, итд. То есть рост идет по нарастающей, в том числе по степени и силе воздействия на рабочие места
RH215
Да вот в том-то и дело, что ещё не совсем, больше шума. Прошло ещё слишком мало времени, чтобы понять как будет выглядеть индустрия в будущем.
pOmelchenko
Вы тоже рисуете руки с 5+ пальцами?
santa324
Профессия программиста наиболее автоматизированная профессия из всех. Ибо она ближе всего к тем кто что-то автоматизирует (те же программисты). Программирование и без такого АI автоматизируется с такой скоростью, что опыт 10 летней давности становится почти бесполезным.
Так что программистов заменить так легко не выйдет, все низковисящие фрукты собирают еще недозрелыми.
leventov
А-ля гипотеза эффективного рынка. Нет, это не так. В айти огромное количество неэффективности, тупого боилерплейта, отсутствия изкоробочных интеграций между разными технологиями, потому что ландшафт этих технологий сам постоянно меняется, и т. д.
Никакие подобные системы: экономики, экосистемы, техноэкосистемы - на практике не являются и близко "эффективными".
santa324
А не нужно быть супер эффективными, достаточно не иметь откровенных и очень жирных неэффективностей, которые можно легко автоматизировать и перевернуть этим рынок.
И да рынок эффективен, очень эффективен в поиске лучших решений, в диверсификации возможностей.
Captain_Jack
Побуду вашей персональной чат-консолью и таки попрошу :)
(Придирка, что на выходе не приложение, а по большей части инструкция, не принимается - это не генератор проектов, а ассистент.)