LINUX.ORG.RU
ФорумTalks

35 лет назад Гвидо ван Россум написал в сети Usenet: «This is Python»...

 


0

2

Python 0.9.1 part 01/21:

Guido van Rossum guido at cwi.nl
Wed Feb 20 04:35:26 AEST 1991
Previous message (by thread): unbatcher out of sync?
Next message (by thread): Python 0.9.1 part 03/21
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

: This is a shell archive.
: Extract with 'sh this_file'.
: Extract this part first since it makes all directories
echo 'Start of pack.out, part 01 out of 21:'
echo -n 'Making directories ... '
err="no"
test -d 'demo' || mkdir 'demo' || err="yes"
test -d 'demo/scripts' || mkdir 'demo/scripts' || err="yes"
test -d 'demo/sgi' || mkdir 'demo/sgi' || err="yes"
test -d 'demo/sgi/audio' || mkdir 'demo/sgi/audio' || err="yes"
test -d 'demo/sgi/audio_stdwin' || mkdir 'demo/sgi/audio_stdwin' || err="yes"
test -d 'demo/sgi/gl' || mkdir 'demo/sgi/gl' || err="yes"
test -d 'demo/sgi/gl_panel' || mkdir 'demo/sgi/gl_panel' || err="yes"
test -d 'demo/sgi/gl_panel/apanel' || mkdir 'demo/sgi/gl_panel/apanel' || err="yes"
test -d 'demo/sgi/gl_panel/flying' || mkdir 'demo/sgi/gl_panel/flying' || err="yes"
test -d 'demo/sgi/gl_panel/nurbs' || mkdir 'demo/sgi/gl_panel/nurbs' || err="yes"
test -d 'demo/sgi/gl_panel/twoview' || mkdir 'demo/sgi/gl_panel/twoview' || err="yes"
test -d 'demo/stdwin' || mkdir 'demo/stdwin' || err="yes"
test -d 'doc' || mkdir 'doc' || err="yes"
test -d 'lib' || mkdir 'lib' || err="yes"
test -d 'src' || mkdir 'src' || err="yes"
echo 'done'
if test "$err" = "yes"
then echo "didn't make it."
fi
if test -s 'README'
then echo '*** I will not over-write existing file README'
else
echo 'x - README'
sed 's/^X//' > 'README' << 'EOF'
This is Python, an extensible interpreted programming language that
combines remarkable power with very clear syntax.

This is version 0.9 (the first beta release), patchlevel 1.

Python can be used instead of shell, Awk or Perl scripts, to write
prototypes of real applications, or as an extension language of large
systems, you name it.  There are built-in modules that interface to
the operating system and to various window systems: X11, the Mac
window system (you need STDWIN for these two), and Silicon Graphics'
GL library.  It runs on most modern versions of UNIX, on the Mac, and
I wouldn't be surprised if it ran on MS-DOS unchanged.  I developed it
mostly on an SGI IRIS workstation (using IRIX 3.1 and 3.2) and on the
Mac, but have tested it also on SunOS (4.1) and BSD 4.3 (tahoe).

Building and installing Python is easy (but do read the Makefile).
A UNIX style manual page and extensive documentation (in LaTeX format)
are provided.  (In the beta release, the documentation is still under
development.)

Please try it out and send me your comments (on anything -- the
language design, implementation, portability, installation,
documentation) and the modules you wrote for it, to make the first
real release better.  If you needed to hack the source to get it to
compile and run on a particular machine, send me the fixes -- I'll try
to incorporate them into the next patch.  If you can't get it to work
at all, send me a *detailed* description of the problem and I may look
into it.

If you want to profit of the X11 or Mac window interface, you'll need
STDWIN.  This is a portable window system interface by the same
author.  The versions of STDWIN floating around on some archives are
not sufficiently up-to-date for use with Python.  I will distribute
the latest and greatest STDWIN version at about the same time as Python.

I am the author of Python:

	Guido van Rossum
	CWI, dept. CST
	Kruislaan 413
	1098 SJ  Amsterdam
	The Netherlands

	E-mail: guido at cwi.nl

The Python source is copyrighted, but you can freely use and copy it
as long as you don't change or remove the copyright:

/***********************************************************
Copyright 1991 by Stichting Mathematisch Centrum, Amsterdam, The
Netherlands.
# Fancy NURBS demo.  Require Z buffer and Panel Library.

from gl import *
from GL import *
from DEVICE import *
from nurbsdata import *
import panel

#
# flags = trim_f, invis_f, cpvis_f, tpvis_f, axvis_f, freeze_f
#
TRIM	= 0
VIS	= 1
CPVIS	= 2
TPVIS	= 3
AXVIS	= 4
FREEZE	= 5
flags = [0, 1, 0, 0, 0, 0]

def draw_axis () :
	cpack (0x0)
	zero = (0.0, 0.0, 0.0)
	#
	one = (1.0, 0.0, 0.0)
	smallline (zero, one)
	cmov (1.0, 0.0, 0.0)
	charstr ('x')
	#
	one = (0.0, 1.0, 0.0)
	smallline (zero, one)
	cmov (0.0, 1.0, 0.0)
	charstr ('y')
	#
	one = (0.0, 0.0, 1.0)
	smallline (zero, one)
	cmov (0.0, 0.0, 1.0)
	charstr ('z')

DELTA = 0.1

def cross (p) :
	p0 = [p[0], p[1], p[2]]
	p1 = [p[0], p[1], p[2]]
	for i in range (0, 3) :
		p0[i] = p0[i] + DELTA
		p1[i] = p1[i] - DELTA
		smallline (p0, p1)
		p0[i] = p0[i] - DELTA
		p1[i] = p1[i] + DELTA

def smallline (p0, p1) :
	bgnline ()
	v3f (p0)
	v3f (p1)
	endline ()

def draw_pts (pnts, color) :
	linewidth (2)
	cpack (color)
	for i in pnts :
		cross (i)

def init_windows():
	foreground()
	wid = winopen('nurbs')
	wintitle('NURBS Surface')
	doublebuffer()
	RGBmode()
	gconfig()
	lsetdepth(0x000, 0x7fffff)
	zbuffer( TRUE )

def init_view():
	mmode(MPROJECTION)
	ortho( -5., 5., -5., 5., -5., 5. )
	#
	mmode(MVIEWING)
	loadmatrix(idmat)
	#
	lmbind(MATERIAL, 1)

def set_scene(flags):
	#
	lmbind(MATERIAL, 0)
	RGBcolor(150,150,150)
	lmbind(MATERIAL, 1)
	clear()
	zclear()
	#
	if not flags[FREEZE] :
		rotate( 100, 'y' )
		rotate( 100, 'z' )

def draw_trim_surface(flags):
	pnts = ctlpoints
	if flags[VIS] :
		bgnsurface()
		nurbssurface(surfknots,surfknots,pnts,ORDER,ORDER,N_XYZ)
		if flags[TRIM]:
			bgntrim()
			nurbscurve(trimknots,trimpoints,ORDER-1,N_STW)
			endtrim()
		endsurface()
	#
	if flags[CPVIS] :
		for i in pnts :
			draw_pts (i, RED)
	#
	if flags[TPVIS] :
		tpts = trimpoints
		draw_pts (tpts, YELLOW)
	#
	if flags[AXVIS] :
		draw_axis ()
	#
	swapbuffers()

def make_lights():
	lmdef(DEFLMODEL,1,[])
	lmdef(DEFLIGHT,1,[])
	#
	# define material #1
	#
	a = []
	a = a + [EMISSION, 0.0, 0.0, 0.0]
	a = a + [AMBIENT,  0.1, 0.1, 0.1]
	a = a + [DIFFUSE,  0.6, 0.3, 0.3]
	a = a + [SPECULAR,  0.0, 0.6, 0.0]
	a = a + [SHININESS, 2.0]
	a = a + [LMNULL]
	lmdef(DEFMATERIAL, 1, a)
	#
	# turn on lighting
	#
	lmbind(LIGHT0, 1)
	lmbind(LMODEL, 1)

def main():
	init_windows()
	make_lights()
	init_view()
	#
	panel.needredraw()
	panels = panel.defpanellist('nurbs.s')
	p = panels[0]
	#
	def cbtrim (a) :
		flags[TRIM:TRIM+1] = [int (a.val)]
	p.trim.upfunc = cbtrim
	#
	def cbquit (a) :
		import sys
		sys.exit (1)
	p.quit.upfunc = cbquit
	#
	def cbmotion (a) :
		flags[FREEZE:FREEZE+1] = [int (a.val)]
	p.motion.upfunc = cbmotion
	#
	def cbxyzaxis (a) :
		flags[AXVIS:AXVIS+1] = [int (a.val)]
	p.xyzaxis.upfunc = cbxyzaxis
	#
	def cbtrimpnts (a) :
		flags[TPVIS:TPVIS+1] = [int (a.val)]
	p.trimpnts.upfunc = cbtrimpnts
	#
	def cbcntlpnts (a) :
		flags[CPVIS:CPVIS+1] = [int (a.val)]
	p.cntlpnts.upfunc = cbcntlpnts
	#
	def cbnurb (a) :
		flags[VIS:VIS+1] = [int (a.val)]
	p.nurb.upfunc = cbnurb
	#
	set_scene(flags)
	setnurbsproperty( N_ERRORCHECKING, 1.0 )
	setnurbsproperty( N_PIXEL_TOLERANCE, 50.0 )
	draw_trim_surface(flags)
	#
	while 1:
		act = panel.dopanel()
		#
		wid =  panel.userredraw ()
		if wid :
			winset (wid)
			reshapeviewport()
			set_scene(flags)
			draw_trim_surface(flags)
		#
		set_scene(flags)
		draw_trim_surface(flags)

main()
★★★★★
Ответ на: комментарий от Stanson

Зато можешь на условном озоне или алике купить сколько угодно FPGA ускорялок для чего угодно, в том числе и твоих нейросеточек.

Я вот знаю, что видеокарты я могу закупить с некоторой гарантией осуществимости и расчёта, что у пользователей ПО они есть, а если я разработаю софт с использованием FPGA мне придётся ещё и торговать ими.

При том сколько угодно - это пару штук для любительских экспериментов или пару сотен для поставок коммерческого решения?

Нет, просто у тебя руки в жопе. Ты потребитель самого низкого пошиба. Поэтому и покупаешься на маркетинговое враньё корпораций про нейросеточки.

Я не знаю что и откуда у тебя, но ты просто невероятным образом игнорируешь реальность. Так всё-таки повторю, твои компьютерные аналоги без нейросеток для:

распознавания речи

машинного перевода

биометрии

генерации картинок (на литсайтах уже редкость обычные)

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Если сейчас квантовые компьютеры - херня, которая едва 21 на 7 и 3 разложить смогла, то ещё не значит, что не смогут раскладывать числа сильно поболее.

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

Если хоть немного следить за темой, видно, что отрасль сейчас очень бурно развивается

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

А вот если заглянуть в код - то никакого развития не видно вообще.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous_incognito

А пруфы будут?

Некто Броди в 1800каком-то году получил оксид графена. Те самые чудодейственные чешуйки графена в один атом толщиной к которым по краям были прилеплены несколько атомов кислорода.

Сам найдёшь всю остальную историю этого бесполезного открытия.

Альтернативы квадрокоптерам ты тоже не предложишь? Что-нибудь не слишком дорогое, малогабаритное, весящее часто меньше кг, которое можно запустить минут за 15-20 облететь какую-то территорию и передать снимки. И которое не требует слишком сложного управления.

Внезапно, классические одномоторные самолётики тоже прекрасно работают на фронте. И батарейки, кстати, в них хватает намного дольше. Могут часами облетать территории. А бензиновые Шахеды с Гераньками нынче нехило рулят в обоих войнах со сбрендившим западом.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous_incognito

распознавания речи

Лучшая и надёжнейшая распознавалка речи которой я когда-либо пользовался - cvoicecontrol. При грамотной настройке - ни единой ошибки распознавания за годы при использовании в автомобиле.

машинного перевода

Х.з. Мне нафиг не нужно, я английский как native speaker знаю.

биометрии

Биометрия вообще должна быть запрещена, т.к. опасна для пользователя.

генерации картинок (на литсайтах уже редкость обычные)

Ненужно.

Итого, два ненужно, одно опасное говно, и распознавание речи в котором рулит вовсе не нейросеть.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Телефон херней перестал быть уже через 20 лет, а у Stanson какой-то слишком приземлённый прагматизм.

Ручная коммутация в пределах города, 1 телефон на 200 человек, дальная связь через спец каналы в отдельных звукоизолированных будках.

Если сейчас квантовые компьютеры - херня, которая едва 21 на 7 и 3 разложить смогла, то ещё не значит, что не смогут раскладывать числа сильно поболее.

Я до сих пор считаю, что квантовые компы — это полнейшая дичь и никакой технологии там нет.

byko3y ★★★★
()
Ответ на: комментарий от Stanson

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

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

А вот если заглянуть в код - то никакого развития не видно вообще.

А ты заглядывал?

anonymous_incognito ★★★★★
()
Ответ на: комментарий от Stanson

Лучшая и надёжнейшая распознавалка речи которой я когда-либо пользовался - cvoicecontrol. При грамотной настройке - ни единой ошибки распознавания за годы при использовании в автомобиле.

Это не распознавалка речи в совремённом понимании, а голосовой ассистент с предварительным обучением набору команд. Есть фразы, которые произносятся по 3-4 раза и сопоставляемые им команды.

Мне же нужен транскрибатор (ASR), то есть, то что позволит перевести речь (причём произвольного диктора или даже нескольких) в слова. Запись на диктофоне расшифровать. Или например субтитры к фильму сгененировать.

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

Например, в CMU Sphinx - проекте, который делался ещё с 80-х годов и в котором достигли больших успехов к середине 2010-х, доля ошибок (WER) даже на чистом английском языке составляла примерно 18% даже в идеальных условиях. В конце-концов, даже сами создатели не рекомендовали её использовать на произвольном большом словаре слов.

А вот нейросети, причём запускаемые локально, дают из коробки точность 4%-5% и так или иначе реально пригодны для реальной работы по распознаванию.

Х.з. Мне нафиг не нужно, я английский как native speaker знаю.

Даже если это так, то а) не все знают, б) кроме английского и русского и другие языки есть.

Биометрия вообще должна быть запрещена, т.к. опасна для пользователя.

Речь не об опасности или вредности технологии, а о преимуществе нейросетей в ней. Она есть и очевидная.

Ненужно.

Тебе не нужно, другим таки нужно, судя по рынку.

Итого, два ненужно, одно опасное говно, и распознавание речи в котором рулит вовсе не нейросеть.

Итого в трёх случаях подмена вопроса о технологическом преимуществе на личную нужность или не нужность, а в четвёртом похоже вообще не о том. Кстати, программа cvoicecontrol настолько древнее г. мамонта, что на совремённых системах ещё и не соберётся просто так.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Это не распознавалка речи в совремённом понимании

Ну начинается.

Мне же нужен транскрибатор (ASR), то есть, то что позволит перевести речь (причём произвольного диктора или даже нескольких) в слова.

А мне нужно надёжное распознавание только и исключительно опреденённых команд при большом уровне шума. Нейросети с шумом вообще не дружат.

Даже если это так, то а) не все знают, б) кроме английского и русского и другие языки есть.

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

Речь не об опасности или вредности технологии, а о преимуществе нейросетей в ней. Она есть и очевидная.

Биометрия должна быть запрещена. Любой, кто её внедряет и пытается совершенствовать, должен сидеть в тюрьме.

Тебе не нужно, другим таки нужно, судя по рынку.

Судя по рынку другим и «чесалки для спины в виде руки скелета» нужны.

Кстати, программа cvoicecontrol настолько древнее г. мамонта, что на совремённых системах ещё и не соберётся просто так.

Прекрасно всё собирается. Я её даже на альсу переписал. Не знаю насчёт тренировки, но распознавание работает без проблем. С древних времён один и тот же файлик таскаю, переучивать не надо было никогда. Понадобится - не думаю что какие-то проблемы возникнут, а если что, то допилю и тренировку.

Оценивать софт в категориях типа «говно мамонта» - это идиотизм, ты же в курсе?

Stanson ★★★★★
()
Ответ на: комментарий от anonymous_incognito

А ты заглядывал?

Разумеется. Всё то же самое, что и во времена перцептрона. А переписывание кода с фортрана на CL ничего нового не привносит.

Stanson ★★★★★
()

А теперь python может сэмулировать Гвидо и написать зис из Гвидо. Который напишет зис ис питон

alt-tab-let ★★★
()
Ответ на: комментарий от Stanson

Ну начинается. А мне нужно надёжное распознавание только и исключительно опреденённых команд при большом уровне шума. Нейросети с шумом вообще не дружат.

Вообще-то, в этой теме это мне нужно было распознавание речи для расшифровки её записей и это я попросил не нейросетевой аналог распознавалки. Ты в ответ сначала начал говорить, что это не требуется (потому что речи на совещаниях), потом привёл в пример программу, которая решает другую задачу и закончил, что «а мне нужно».

cvoicecontrol требует предварительной записи по нескольку раз каждой управляющей фразы, причём фразы желательно диктовать подлиннее для большей надёжности. Потом каждой фразе сопоставляется какая-то команда. Это вообще почти ничего общего с распознаванием речи не имеет. Распознавание речи - это когда произвольную фразу распознавалка (ASR) может перевести в предложение.

Аналога назвать ты не смог, даже вышеупомянутый CMU Sphinx, который действительно является системой распознавания речи, а не карты команд, привязанных к набору записанных фраз. И который совершенно уступает совремённым нейросетевым моделям, вроде whisper.

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

Покажи мне машинный переводчик, который лучше нейросетей умеет в смыслы. Как раз нейросети умеют в контекст, в отличие от традиционных, которые обмазываются кучей специализированных словарей, но или никак или плохо автоматически переключаются между ними.

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

Биометрия должна быть запрещена. Любой, кто её внедряет и пытается совершенствовать, должен сидеть в тюрьме.

Вопрос в том кто и для чего её применяет. Но спор даже не об этом, а о технических преимуществах нейросетей. Биометрия - это пример.

Прекрасно всё собирается. Я её даже на альсу переписал.

В этой теме уже 7-летней давности видно как оно прекрасно собиралось. Голосовой ассистент. Что доступно?

Оценивать софт в категориях типа «говно мамонта» - это идиотизм, ты же в курсе?

«говно мамонта» - это косвенное указание на (не)нужность софта, а ты выше постоянно оцениваешь технические преимущества или недостататки с позиции нужно/не нужно, причём персонально тебе.

Разумеется. Всё то же самое, что и во времена перцептрона. А переписывание кода с фортрана на CL ничего нового не привносит.

Ты похоже даже не в курсе на каком языке пишут. CL - это в данном случае, что? Common Lisp? Нейросети на нём сейчас не пишут, массово по крайней мере, речь не про эксперименты. PyTorch внутри написан на Python и C++ к слову.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Вообще-то, в этой теме это мне нужно было распознавание речи для расшифровки её записей

А, то есть то что тебе нужно - это нужно. А если кому-то нужно что-то отличное, то это «говно мамонта». :) Ну да, «логика» нейросетей. :) Забавно как пользователи нейросетей опускаются до их уровня.

Покажи мне машинный переводчик, который лучше нейросетей умеет в смыслы

Ещё раз. Лучший переводчик - это словарик. Который даст все возможные переводы слова, а уже тот, кому нужен перевод выберет наиболее подходящий вариант.

И ты так и не назвал какая неросеть переводит с китайского без нефритовых стержней. :)

Вопрос в том кто и для чего её применяет.

Вопрос не в этом, а в том, что если кому-то понадобится твоя биометрия, то ему запросто в голову может придти отрезать тебе палец, например.

Но спор даже не об этом, а о технических преимуществах нейросетей. Биометрия - это пример.

Ну так генерация бреда - тоже пример.

«говно мамонта» - это косвенное указание на (не)нужность софта

Да-да, конечно-конечно. Инновации ради инноваций. Суть современного IT, тащемта. Какой-нибудь LAPAC - тоже «говно мамонта».

а ты выше постоянно оцениваешь технические преимущества или недостататки с позиции нужно/не нужно, причём персонально тебе.

Так ты же делаешь абсолютно то же самое. :)

Ты похоже даже не в курсе на каком языке пишут. CL - это в данном случае, что?

Это ты похоже даже не в курсе на каком языке пишут, раз не понял о чём речь. :) Тот, кто действительно занимается нейросетями мгновенно понял бы что речь об OpenCL на котором пишется код для выполнения на GPU. Так что ты абсолютно ничего про то, как (и на чём) на самом деле работают нейросети не знаешь.

Что до лиспа - ну когда-то он действительно подавал надежды в смысле ИИ. Но с приходом ИИ™ это вообще задвинули настолько далеко, насколько возможно, чтобы не сбивал стадо с баблоёмкого пути нейросеточек. Ну и недоделали лисп, конечно. Хоть он и является чуть ли не единственным языком в котором может реально происходить генерация нового кода по мере выполнения программы, программа на лисп сама себя в процессе выполнения изменять, увы, не может.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

А, то есть то что тебе нужно - это нужно. А если кому-то нужно что-то отличное, то это «говно мамонта». :) Ну да, «логика» нейросетей. :) Забавно как пользователи нейросетей опускаются до их уровня.

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

Ещё раз. Лучший переводчик - это словарик. Который даст все возможные переводы слова, а уже тот, кому нужен перевод выберет наиболее подходящий вариант.

Ты меня удивляешь чуть ли не с каждой затронутой темой. Словарик - не лучший переводчик, словарик - вообще не переводчик. Практически сколько-то серьёзно переводить, выбирая наиболее подходящий вариант из словаря, невозможно. Любой переводчик должен быть знать, что не так и редко подходящих в текущем контексте значений слова нет ни в одном словаре (а иногда и самого слова нет) и до перевода надо догадываться. Или, наоборот, этих значений как собак нерезанных, как например у глаголов to be, to go.

И ты так и не назвал какая неросеть переводит с китайского без нефритовых стержней. :)

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

Да-да, конечно-конечно. Инновации ради инноваций. Суть современного IT, тащемта. Какой-нибудь LAPAC - тоже «говно мамонта».

LAPAC не застыл и активно поддерживается.

Это ты похоже даже не в курсе на каком языке пишут, раз не понял о чём речь. :) Тот, кто действительно занимается нейросетями мгновенно понял бы что речь об OpenCL на котором пишется код для выполнения на GPU. Так что ты абсолютно ничего про то, как (и на чём) на самом деле работают нейросети не знаешь.

Была мысль, что ты имел ввиду OpenCL, но штука в том, что нейросети с использованием этой библиотеки редкость. Мне это не нравится, но так сложилось, что Nvidia вовремя подсуетилась, её не мотало из стороны в сторону и она с самого начала появления Cuda в 2007-м весьма щедро спонсировала её использование. Поэтому в основном для ускорения вычислений используется CUDA или HIP - её адаптация от AMD.

По любому, ни OpenCL, ни CUDA не очень корректно считать языком программирования, хотя формально они используют доработанные под параллельные вычисления на GPU варианты языка Си.

При этом основным совремённым движком (фреймворком) для нейросетей сейчас является PyTorch, на котором сейчас и написаны почти все сети, несколько лет назад пальма первенства была у Tensorflow/Keras. Оба этих движка написаны на C++ и Python, хотя когда-то Torch - прародитель PyTorch был написан на Си и Lua.

Ну и недоделали лисп, конечно. Хоть он и является чуть ли не единственным языком в котором может реально происходить генерация нового кода по мере выполнения программы, программа на лисп сама себя в процессе выполнения изменять, увы, не может.

Ну вот тебе пример, когда может. На лету меняется функция рекурсии.

;; modf.lsp

;; Директива компилятору, что функцию нельзя встраивать (inline).
;; Иначе модификация может не возыметь эффекта.
(declaim (notinline evolving-recursion))

;; 1. Рекурсия
(defun evolving-recursion (n)
  (format t "[Старая версия] Глубина: ~a~%" n)
  (if (<= n 0)
      0
      (progn
        ;; Точка модификации: если достигли глубины 3, меняем функцию
        (when (= n 3)
          (format t ">>> Модификация на лету! <<<~%")
          (setf (symbol-function 'evolving-recursion)
                (lambda (x)
                  (format t "[Новая версия] Глубина: ~a (выход) ~%" x)
                  100)))
        
        ;; Рекурсивный вызов. Его не будет после модификации.
        (+ 1 (evolving-recursion (1- n))))))

;; Тестовый запуск
(format t "~%=== Запуск теста ===~%")

(let ((result (evolving-recursion 5)))
  (format t "~%Результат: ~a~%" result))

Выполнение кода:

$ clisp modf.lsp 

=== Запуск теста ===
[Старая версия] Глубина: 5
[Старая версия] Глубина: 4
[Старая версия] Глубина: 3
>>> Модификация на лету! <<<
[Новая версия] Глубина: 2 (выход) 

Результат: 103

Так что ты абсолютно ничего про то, как (и на чём) на самом деле работают нейросети не знаешь.

Пока что получается, что ты не знаешь или твои знания застряли на уровне 15-20 лет назад.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от anonymous_incognito

много разглагольствований о каких-то внешних свистелках вместо сути.

Распознавание речи само по себе не имеет ценности. Это инструмент, он нужен для выполнения какой-то задачи.

Фортрановый код LAPAC не менялся с тех пор как его для f90 подправили. С тех пор патчики под нестабильные, постоянно меняющиеся системы сборки не затрагивают код.

Пистон не умеющий в многопоток как «язык на котором пишут нейросети», а OpenCL не язык программирования - это даже не смешно.

Ну вот тебе пример, когда может. На лету меняется функция рекурсии.

Она не меняется, она в лучшем случае генерируется новая лямбдой. Код (+ 1 (evolving-recursion (1- n)))))) никуда не денется ни при выполнении, ни при последующем запуске.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Распознавание речи само по себе не имеет ценности. Это инструмент, он нужен для выполнения какой-то задачи.

Даже 2+2 подсчитать нужно для выполнения какой-то задачи. И что? Тебе не нужны, другим нужны расшифровки диктофонных записей или субтитры к (видео), в том числе с переводом, в том числе с переводом на лету.

Фортрановый код LAPAC не менялся с тех пор как его для f90 подправили. С тех пор патчики под нестабильные, постоянно меняющиеся системы сборки не затрагивают код.

Не особо в курсе насчёт LAPAC, но допустим так, во всяком случае, код держат актуальным для сборки и запуска в совремённых системах.

Пистон не умеющий в многопоток как «язык на котором пишут нейросети», а OpenCL не язык программирования - это даже не смешно.

Смешно, что мне для подтверждения того, что нейросети пишутся на Python достаточно дать ссылку хотя бы на код whisper - системы распознавания речи. https://github.com/openai/whisper ты там справа внизу можешь увидеть статистику от гитхаба: Languages Python 100.0%

Ещё ссылку на код PyTorch, фреймворка, использованного для whisper https://github.com/pytorch/pytorch там статистика:

Python 61.7%
C++ 30.6%
Cuda 2.8%
C 1.3%
Objective-C++ 1.1%
CMake 0.6%
Other 1.9%

OpenCL, как видишь там нет, есть неофициальные сборки бекенда для PyTorch для ускорения с использованием OpenCL, но в мейнстриме их нет и проект https://github.com/artyom-beilis/pytorch_dlprim не похоже, что развивается.

Вообще, если бы OpenCL использовался у меня не было бы иногда проблем с запуском нейросеток на GPU от AMD. Так что я отлично знаю, что никакой OpenCL не используется. Массово, по крайней мере, практически для нейросеток это можно сказать, что экзотика.

А как так получается, что Python не умеет многопоточность (это не совсем кстати так, но пусть), но на нём пишут нейросети мог бы и сам знать, если бы действительно интересовался.

Она не меняется, она в лучшем случае генерируется новая лямбдой. Код (+ 1 (evolving-recursion (1- n)))))) никуда не денется ни при выполнении, ни при последующем запуске.

На тебя не угодишь, исполняемый код функции меняется? Меняется. До выхода из неё исполняются текущие символы. Без модификации выход из рекурсии по достижении нуля, а не 2. Ну вот тебе для наглядности код с бесконечной рекурсией, а выход из неё появляется только в результате модификации функции и без модификации исполняемого кода не было бы выхода.

;; Директива компилятору, что функцию нельзя встраивать (inline).
;; Иначе модификация может не возыметь эффекта.
(declaim (notinline evolving-recursion))

;; Бесконечная рекурсия (нет проверки на 0)
(defun evolving-recursion (n)
  (format t "[Старая версия] Глубина: ~a~%" n)
  (progn
    ;; если достигли глубины 3, меняем функцию
    (when (= n 3)
      (format t ">>> Меняем код на лету! <<<~%")
      (setf (symbol-function 'evolving-recursion)
            (lambda (x)
              (format t "[Новая версия] Глубина: ~a (выход из рекурсии)~%" x)
              100)))
    
    ;; Рекурсивный вызов без условия остановки
    (+ 1 (evolving-recursion (1- n)))))


;; === Запуск теста ===
(format t "~%=== Запуск теста ===~%")

(let ((result (evolving-recursion 5)))
  (format t "~%Результат: ~a~%" result))

А вообще, наверное самомодификацию проще всего на Forth делать, через доступ к памяти, но мне сейчас неохота тратить время, ставить forth и вспоминать как на нём писать.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 2)
Ответ на: комментарий от anonymous_incognito

Вообще, если бы OpenCL использовался у меня не было бы иногда проблем с запуском нейросеток на GPU от AMD. Так что я отлично знаю, что никакой OpenCL не используется. Массово, по крайней мере, практически для нейросеток это можно сказать, что экзотика.

Забавно, не правда-ли? Ты не видишь некоего противоречия между мейнстримом и тем, что действительно было бы полезно для нейросетей?

И да, т.к. нейросети я если и пишу, то делаю это сам, а не пользуюсь готовым мейнстримом, так что у меня никаких проблем с использованием OpenCL для нейросетей нет вообще.

И да, OpenCL это не столько библиотека, сколько компилятор и загружалка в GPU. Из собственно библиотеки там лишь тонкая прослойка для передачи данных из/в GPU и запуска скомпилированного кода на GPU. Библиотек для GPUшного кода оно, увы, не предоставляет.

На тебя не угодишь, исполняемый код функции меняется? Меняется.

Нет. Просто имя функции связывается с другим адресом в памяти, только и всего. Старый код при этом никуда не девается. Это почти то же самое что

#include <stdio.h>

int inc( int a ) { return a+1; }
int dec( int a ) { return a-1; }
int (*f)( int a ) = inc;

int f3( int a )
{
   if( a > 3 ) f = dec;
   return f( a );
}

int main()
{
   int a = 0;
   for( int i = 0; i < 10; i++ )
   {
      a = f3( a );
      printf( "step %d: %d\n", i, a );
   }
}

единственное отличие в том, что конкретно clisp скорее всего сгенерирует код другой функии (dec например) во время исполнения, а не при компиляции.

Из интересного тут может происходить только генерация нового кода при вызове лямбды, да и то далеко не во всех лиспах, зачем-то нынче форсят compile-time хрень, т.е. весь возможный бинарный код генерируется при компиляции и потом не изменяется никак, в том числе тупо снятием крыжика w с сегментов содержащих код. БизАпаСтнасть!

А вообще, наверное самомодификацию проще всего на Forth делать, через доступ к памяти, но мне сейчас неохота тратить время, ставить forth и вспоминать как на нём писать.

Да, Forth зачётная штука, но очень особенная, даже особеннее лиспа. Ну и практически все программирование на нём состоит из того, что нынче называется «bad programming practices» и выкорчёвывается откуда только можно. За то что вспомнил Forth - заслуженный тебе респект.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous_incognito

машинный перевод тоже нужен и широко применяется.

Применяется. Для простых на язык текстов даже успешно. Вот только есть языки с грамматическими категориями рода, одушевлённости и пр., а есть без. Есть языки флексивные, есть аналитические. И все без исключений естественные языки имеют «контекстно зависимый смысл».

Например: «Очень умный», «Умный очень» и «Слишком умный» вовсе не синонимы в русском языке.

И если говорить за русский язык, то в нём много больше слов, нежели в самом толстом словаре, поскольку богатые средства гибкого словообразования позволяют создавать ранее отсутствующие слова, которые таки будут понятны любому носителю русского языка. И перевод без потери смысла таких слов будет невозможен, разве что на языки той же языковой группы.

Примеры понятных отсутствующих в русском слов: мерчуха или мерчёвка (ща же мода на феминитивы, да?); проститутошная (пример из книги); шавермячная, шавермная или шаурмная (как правильнее?).

Собственно, есть легенда о 10 переводчиках ООН, которые по кругу цепочкой переводили одно предложение (типа, английский – немецкий – французский – испанский – итальянский и т.д.) и когда первый получил 10 перевод, тот вообще не совпал с исходной фразой.

mister_VA ★★
()

Гвидо ван Россум написал в сети Usenet: «This is Python»…

и программисты эволюционировали в мартышек :-)

splinter ★★★★★
()
Ответ на: комментарий от mister_VA

Не совсем понял, это возражение на тему полезности нейросетей?

Потребность в автоматическом машинном переводе есть. Нейросети объективно показали качество перевода, более высокое, чем все другие технологии и даже, чем многие люди.

Совсем переводчиков нейросети не лишили работы. Понятно, что встречаются сложные случаи, оттенки и нюансы смыслов, с которыми они не всегда справляются (кожанные «надмозги» к слову тоже) есть случаи, когда точность перевода имеет исключительно важное значение.

Да и просто в целом качественный литературный перевод всё же пока лучше у людей выходит, чем у машин, хотя сейчас уже не все отличат машинный перевод.

К слову о кожанных. Допустим нейросеть не смогла точно передать на английский язык разницу смыслов «Очень умный», «Умный очень» и «Слишком умный», но и люди не все могут, я например, не настолько хорошо его знаю, чтобы суметь сыграть на таких оттенках смысла.

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

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от anonymous_incognito

Не совсем понял, это возражение на тему полезности нейросетей?

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

Нейросети объективно показали качество перевода, более высокое, чем все другие технологии и даже, чем многие люди.

Угу, вот только машинный перевод делает банальные ошибки, вроде неверного грамматического рода, особенно если перевод идёт «непонятный язык – английский – нужный язык». Постоянно путает ты/вы. Опознание сленговых и профессиональных выражений так же не на уровне.

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

я например, не настолько хорошо его знаю, чтобы суметь сыграть на таких оттенках смысла.

Так флексивные языки и дают возможность играть на оттенках смыслов и значений, но даже перевод такой игры с одного флексивного (латынь) на другой (русский) может быть невозможна, поскольку это не чисто языковые приёмы, а культурно-исторический контекст.

У перевода с аналитических на флексивные другая проблема. Для привыкших к кучерявости литературных текстов на своём языке, стиль аналитических языков выглядит бледным и невзрачным.

Касаемо других областей, так LLM в них тоже надо затачивать под исключительно эти области, данные для обучения должны отбирать профессионалы в этой области, а это опять дорого.

Коммерческую выгоду могут давать нейросети для компьютерной графики, но это будет профессиональный инструмент для профессионалов на профессиональном оборудовании с АЭС в качестве ИБС. Пока даже самые лучшие сгенерированные видеокадры с одного взгляда отличаются от «естественно снятых» и вовсе не из-за нелепых ошибок.

mister_VA ★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)