Search
Write a publication
Pull to refresh
1
0
Send message

Может уйти, внутренние представления сети могут быть какими угодно. Вот я нашел что-то похожее (не вчитывался так что может это и пример мимо) - https://arxiv.org/pdf/2410.13640

Звучит разумно, да, кажется ограничение есть. Но вы правильно пишете "человеческой модели мира". Может быть ллм придется расширить язык или вообще уйти от языка и мыслить последовательностями из эмбеддингов (я видел уже такие работы). Вообще язык здесь выступает как механизм иерархии: одним словом можно выразить сложный концепт, а можно этот концепт детально описать. Используя высокоуровневые концепты мы сокращаем пространство перебора. Скорее всего вы правы что сверхинтеллект не будет думать на человеческом языке потому что он будет им сильно ограничен, вероятно построит свои иерархии, более точные. И вполне вероятно сообщения будут гораздо больше - потому что человек не может рассказать гигабайт слов другому человеку и у нас есть такое естественное ограничение, а машине легко

Погуглите например "llm rediscover laws of physics" и да, находятся работы типа https://arxiv.org/abs/2202.02306 - МЛ переоткрыл законы гравитации. Там есть и другие интересные работы где всякие старые законы успешно переоткрываются.

Да, сейчас люди в этих работах предподготавливают данные или создают символические языки, и мл в пассивном режиме находят решения. Активный ИИ в виде агентов еще только начинает создаваться, но понятно что он будет строить гипотезы, ставить эксперименты, и выполнять всю работу ученого. Какие у вас концептуальные возражения кроме "не может", "невозможно", "неспособны"?

Попробуйте дайте определение "неизведанного". Например в шахматах бот учится играть с нуля и для него любая шахматная идея это неизведанное. Бот учится водить машину - начинает со случайного блуждания и для него все неизведанное, вероятно внутри себя нейроны переоткрывают концепции скорости, инерции, вращения итп - потому что эти высокоуровневые концепции сильно уменьшают требования к запоминанию данных.

Господа прикладники - ваш выход!

В прикладном смысле оказалось что не нужно понимать что такое сознание, и соответственно оказалось не нужным искать его определение. Алгоритмы работают: картинки классифицируются, задачки спортивного программирования решаются, сгенерированный текст предпочитается оценщиками чаще. "Без понимания работы сознания невозможно..." - сомнительное утверждение, потому что по факту оказывается возможно и задачи решаются одна за другой.

Язык, вы пишете, это протокол передачи информации. В ллм важно другое, в ллм язык это способ моделирования мира. Ллм предполагает возможные продолжения текста и выбирает то что улучшает метрику. Это срабатывает как запрос к модели мира и поиск таких последовательностей которые улучшают метрику.

Даже если согласиться с тем что ллм ограничены человеческим стилем мышления потому что на нем они натренированы, то они смогут превзойти человека за счет масштабирования. Вы не можете иметь голову в 2 раза больше, а ллм может и в 2 и 2e20 раз больше. Такой план: научиться на текстах людей -> машстабировать -> спросить ИИ как сделать ИИ лучше -> повторить.

"Если сравнивать с более молодыми версиями себя, то, по ощущениям, я на пике. ..., я сейчас умею гораздо больше, чем пятнадцать лет назад, и, надеюсь, гораздо меньше, чем буду уметь через пятнадцать лет" - забавно автор надеется быть в середине возрастающей функции, но по ощущениям ожидает спад

Спасибо за задачки, довольно простые и на известные темы. Вот мои решения:

Решения
def solve1(A, B):
    A = Counter(A)
    B = Counter(B)
    return [a for a in A if a in B for _ in range(min(A[a], B[a]))]

def solve2(S):
    ans = []
    start = 0
    for end in range(1, len(S) + 1):
        if end == len(S) or S[end] != S[start]:
            ans.append(S[start])
            if end - start > 1:
                ans.append(str(end - start))
            start = end
    return ''.join(ans)

def solve3(A):
    S = set(A)
    ans = []
    while S:
        x = next(iter(S))
        while x - 1 in S:
            x -= 1
        y = x
        while y in S:
            S.remove(y)
            y += 1
            
        if y - x == 1:
            ans.append(str(x))
        else:
            ans.append(f"{x}-{y-1}")
    return ','.join(ans)

def solve4(A):
    ans, curr, prev = 0, 0, 0
    for a in A:
        if a == 1:
            curr += 1
        else:
            curr, prev = 0, curr
        ans = max(ans, curr + prev)
    return ans

def solve5(A):
    B = []
    for a, b in A:
        B.append((a, 1))
        B.append((b, -1))
    ans, c = 0, 0
    for x, d in sorted(B):
        c += d
        ans = max(ans, c)
    return ans

def solve6(A):
    B = defaultdict(list)
    for a in A:
        B[''.join(sorted(a))].append(a)
    return list(B.values())
    
def solve7(A):
    A.sort()
    B = []
    for a, b in A:
        if B and B[-1][1] >= a:
            B[-1][1] = max(B[-1][1], b)
        else:
            B.append([a, b])
    return B

def solve8(A):
    I = defaultdict(list)
    for x,y in A:
        I[x].append(y)
    X = list(sorted(I))
    cx = (X[-1] + X[0]) / 2
    ai, bi = 0, len(X) - 1
    while ai < bi:
        if cx - X[ai] != X[bi] - cx:
            return False
        A, B = I[X[ai]], I[X[bi]]
        if Counter(A) != Counter(B):
            return False
        ai += 1
        bi -= 1
    return True
    
def solve9(A, B):
    if len(A) == len(B):
        return sum(a != b for a, b in zip(A, B)) <= 1
    if len(A) > len(B):
        A, B = B, A
    if len(A) + 1 != len(B):
        return False
    d = 0
    for i, a in enumerate(A):
        if a != B[i + d]:
            if d == 1:
                return False
            d += 1
    return True

def solve10(A, target):
    S = {0: -1}
    c = 0
    for i, a in enumerate(A):
        c += a
        if c - target in S:
            return (S[c - target] + 1, i + 1)
        S[c] = i



* Запрещать Counter глупо, если его нет ну можно потратить минуту и написать свой MyCounter с аналогичными возможностями.

* Переменные так называются потому что на интервью стоит экономить время и не думать про названия переменных, ну и после 700+ задач на литкоде мне уже лень думать.
вы сосредоточились на отборе в пользу умных, но ведь ясно что работает другой вариант отбора — низкая рождаемость у людей с низким интеллектом
В квантовой физике есть No-Cloning теорема, которая запрещает копировать квантовые состояния. Соответственно, вопрос, является ли мозг человека квантовым компьютером или нет? Оба варианта ведут к интересным выводам:

Если нет, значит можно копировать мозг человека, но непонятно, зачем уничтожать оригинал. Более того, уничтожение оригинала будет убийством. Можно скопировать 1 сильного ученого несколько раз, и они образуют консилиум. Перед тем, как сделать что-то опасное можно сделать запасную копию, как нажать кнопку «Сохраниться» в игре.

Если сознание человека сильно зависит от квантовых эффектов (например, они могут давать свободу воли), то этих проблем не будет. Нельзя будет сделать копию, можно будет лишь телепортировать ваше уникальное квантовое состояние, но при этом законы физики уничтожат оригинал.
А что если каждому паттерну сопоставить число, разным понятиям — разные числа. Тогда, вместо определения знаком ли паттерн, каждая клетка будет смотреть знакомое ли число сквозь нее проходит. Несколько сигналов — через клетку проходит несколько чисел. Не будет ли такой алгоритм полностью аналогичен вашему, но с гораздо более простыми и вычислениями?
Это очень жестокая и злая позиция.
Я уверен, все же будут и модули уклонения, и модули выбора наименьших потерь, а если дети будут играть — ну и ладно, штрафы можно наложить, воспитание через штраф лучше чем воспитание через физический ущерб
Допустим автопроизводитель сделает по вашему, тогда, как только на дорогу выбежит ребенок, и автопилот его собьет в хлам, сразу общественность потребует модуль уклонения и модуль оценки важности жизни. Если ребенок выбежит на скоростное шоссе — ну понятно, что ничего не сделать, а если это второстепенная дорога и авто едет со скоростью 30 кмч и можно даже в бетонную стену вырулить, никто не умрет. Все равно придется решать все эти вопросы морали и оценки
У меня почти такое же решение, все аналогично кроме «удалил редко используемые словами, но часто используемые не-словами биты.». Остальное все то же — замена аффиксов, мусор по 2 символа, длина, гласные согласные, мелкий блум на первые 3 символа. Но я видимо поленился подбирать параметры лучше, или где-то накосячил, так как у меня 80.6%. Но все что вы описали — ровно такой же алгоритм. В мой большой блум на 61000 байт я запихивал 250к слов
Я отправил решение, а как проверить что оно корректно отработало на ваших серверах? Не хотелось бы из за какой-нибудь мелочи потерять несколько дней работы
Шутки ради — можно взять с собой дизель генератор и заправляться по дороге.
В идеале контроллеры должны быть слишком тупы, чтобы их покрывать тестами, нам это никогда не понадобится, если и покрывать их, то интеграционными тестами


Я за этот вариант, потому что есть дополнительный плюс. Представьте что в контроллере у вас есть интересный код, который потребовался вам, ну например, в вебджобе, или в другом сайте. Что будете делать зависимость от этого веб проекта? Нет, придется утаскивать в некоторую библиотеку. Поэтому можно сразу делать все этой библиотеке, а в контроллерах оставлять только самый наитупейший код, который работает на очень высоком уровне абстрагирования, такой код и тестировать не захочется. Один минус что придется пробрасывать вызовы из контроллера в вашу либу, ну да и ладно, зато уходим от всех проблем борьбы с чужими фреймворками
Также нежелательно смешивать linq синтаксис и вызовы extension методов

Чем смешивать плохо, какие аргументы?

Я имею в виду такое, допустим код вида
(from b in a where .... select ...).ToArray(...).Where(...) ...

То ее если ее переписать в длинную цепочку как
a.Where(...).Select(...).ToArray(...).Where(...) ...

То дебажить и исследовать их одинаково тяжело, а вот читать первую мне больше нравится. Особенно, если в выражении есть group by и join, которые в extension методах смотрятся очень плохо.

Было бы здорово услышать аргументы против
Кроме обоих Microsoft Band'ов, конечно

А, собственно, почему?
В уме можно, минут за 10:

836 * 423 = (1000 — 164) * (500 — 77) = (500к — 77к — 82к) + 164 * 77 = 341к + 164 * 77

341к запоминаем и считаем второе слагаемое:
164 * 7 = 700 + 420 + 28 = 1148
164 * 77 = 11480 + 1148 = (11к + 480) + (1к + 148) = 12к + 628 = 12628

итого 341к + 12628 = 355 628
Ну нет, я считаю это все ближе чем тысячи лет, но это мое личное мнение. Мне кажется, дело не в том, через сколько лет мы физически улетим колонизировать, дело в потенциальной возможности. Смотрите, есть четыре варианта ситуации — мы единственные, мы первые, мы посредственные, точная настройка. Допустим мы посредственные, тогда нет никакого резона ждать пока конкретно наша цивилизация на самом деле куда-то полетит, важна лишь теоретическая доступность. Ну и пока, в теории, принципиальных серьезных барьеров не видно. Может, конечно, окажется что в межзвездном пространстве есть много темной материи и она непреодолимо все уничтожает, но пока мы об этом не знаем.

Information

Rating
Does not participate
Registered
Activity